From 3d71110f377d2314ec96828e41b1c05830710ed0 Mon Sep 17 00:00:00 2001 From: newt_00 Date: Fri, 7 Feb 2025 17:51:16 -0500 Subject: [PATCH] added levetation wand mechanic --- .../stash-dir/CoswayUtil$1.class.uniqueId5 | Bin 0 -> 2193 bytes ...CoswayUtil$AnchorShield$1.class.uniqueId13 | Bin 0 -> 2042 bytes .../CoswayUtil$AnchorShield$2.class.uniqueId7 | Bin 0 -> 1871 bytes .../CoswayUtil$AnchorShield$4.class.uniqueId2 | Bin 0 -> 3355 bytes .../CoswayUtil$AnchorShield.class.uniqueId9 | Bin 0 -> 9487 bytes .../stash-dir/CoswayUtil.class.uniqueId6 | Bin 0 -> 8896 bytes .../stash-dir/PhantomDodge$1.class.uniqueId10 | Bin 0 -> 794 bytes .../stash-dir/PhantomDodge.class.uniqueId11 | Bin 0 -> 3285 bytes .../stash-dir/ShadowStep.class.uniqueId8 | Bin 0 -> 3998 bytes .../WitherContract$2.class.uniqueId3 | Bin 0 -> 1429 bytes .../stash-dir/WitherContract.class.uniqueId12 | Bin 0 -> 4521 bytes src/main/java/CoswayUtil/CoswayUtil.java | 3 +- src/main/java/CoswayUtil/GiveWandCommand.java | 23 ++++ .../java/CoswayUtil/MobLevitationWand.java | 111 ++++++++++++++++++ src/main/resources/plugin.yml | 6 +- 15 files changed, 141 insertions(+), 2 deletions(-) create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/CoswayUtil$1.class.uniqueId5 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/CoswayUtil$AnchorShield$1.class.uniqueId13 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/CoswayUtil$AnchorShield$2.class.uniqueId7 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/CoswayUtil$AnchorShield$4.class.uniqueId2 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/CoswayUtil$AnchorShield.class.uniqueId9 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/CoswayUtil.class.uniqueId6 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/PhantomDodge$1.class.uniqueId10 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/PhantomDodge.class.uniqueId11 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/ShadowStep.class.uniqueId8 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/WitherContract$2.class.uniqueId3 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/WitherContract.class.uniqueId12 create mode 100644 src/main/java/CoswayUtil/GiveWandCommand.java create mode 100644 src/main/java/CoswayUtil/MobLevitationWand.java diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/CoswayUtil$1.class.uniqueId5 b/build/tmp/compileJava/compileTransaction/stash-dir/CoswayUtil$1.class.uniqueId5 new file mode 100644 index 0000000000000000000000000000000000000000..bfbd7abfe81895238cba766987b6d3933083a0cc GIT binary patch literal 2193 zcma)7U2_v<6nKM?%frrT!8b~o;BfT99^ z;5g%W>5R_kt=xDc7eLi<9B1Uhf8alHkg-1RCV{PXMt5d+&z^JM^Pcm(=REt{U*G=( zpdTN{u?`UxQ4Q;%2<&p)h1_hdQZfCUS1KEGHOp{wrvk;fnr-W|mLZ^=Fm2O6DGQ)(p$PSL0?7r#AGa;jHYO~6$#6Y^bS67;Nx!V;YQAaZ1{}*WO1|mX zg;pfct|F;n13Cm!YdHzTOy6*I-*E*tuZlF>&@)a7n^bJpumx#>jwf-NE&^&<_r{E? zeo)9oxniq^r?5>RY6t36Gq$DM3%T*xOH8t$;%Vj|D$}ri(_hNfYiq$X*r8&lhF$0u z*ctMxIdGc`*EdVD@uS7*$ti(N;pI&$`(i?1dnj$Ttwj|Kv5URA$h zH}exHt_sxD7sAmWx4&FHQvzZ=S^Up7f5ooff|?kSL~q)YcfCbYH_ zU6P}QUv}nLw!UbPKNvCM*4Sp^D(@oiCEnLKBh^MHFqeOH!DD#1wpupXfqvQWb?#px zJs3P!#ntD`8e=QffCLFd7~fSS!lc?JeZ5o})vJwCSK;Q*x>WnnBn%6;@!^6~mNB`s_zRPu@acX28mPituz z^mvk63<})AaAz`_;PnH>FWkY|j`R2M$}(PUgWN(dwi!ljhp${q0F6T@L*TB9z;ShsMQlEOVd!xdU1+~*Tqr7p^RzQGc% z1&8zi^+S4xnI3`iNdDYYD@;~VQKG1#OT~dm1bBqj$U`iyFpYI}8}N`ZqRd71$a}cX bcN919K0XXIH}DbP9kh+Jf?H@|M+Mj4B#0!% literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/CoswayUtil$AnchorShield$1.class.uniqueId13 b/build/tmp/compileJava/compileTransaction/stash-dir/CoswayUtil$AnchorShield$1.class.uniqueId13 new file mode 100644 index 0000000000000000000000000000000000000000..cb71c748eb8f6e3ba749366a3104b3c9936f4ab0 GIT binary patch literal 2042 zcma)7-BTM?6#rfFaY=GpC~as%X{9B$2^1n&K}m~+GzgkN1)5r_wwq*47M5MQy8-*) zj1QeY`Q(h9>G;+M`>f+vd_bT51Dx^uMgIxM5zpN~*&rR8ncRDGK7Qw(-#zE#`+vUK z1TX<3gckTX`~m?48R8k!-casbbu>M-dyG#QrK)KyR5evE$A=h#PF1tzA)ec{dXhsr zj8=p=!U7QphF;UEq>8nb70pT6rK(!4>8h2QbOrM@!%&L4N+B+2hUSbj_!7xN7zfeD z(JpWZ9Sny&2n|1mP(^jFnU-F*89EZl+_JK+q-rvcoMt=e2#z4i(J62g#~2Pas~K7~ zN3|5kv=};@yl1xMgwTcK9NhvZaFSx|BJ7wj@Ty|Zs_#1Pt(T-nkH9IMX7C%X_{a{n zt{9cnTya?~IcbhKL%Sy@H;)K;u zInD_TV6Yj}HE19$YPy;=9L>>GLh9LrRMgGVN@`NB3y$Kb1o|9?IEDqD$9ab1o~V0m ziATDr>&wtZx$bXEkRur7cv0Xbj1lAen-QOcws>ca%He1;Se`CsX^Nf>;Q}slj0?Ps zOALoSNINzR;pyx|;rh+Y+ZHA5|ymxtwoLrLFIe|Q8$!AqDl#1GDL53&!6d2AXo~9d< zWa-bCWg@jLry1&OZMCRci;b@9keAR43UNzaxGnU{Zf7|26zK7xG?iUmb*g6hief3N zD!mi=`m7pJ8B*LiLNWF{!{gK$0=6tVh7(?D_SP8%36x|fP#=2j8eKrj4LJ$+DBZ3i z&jVD}rIoz0=BCG?P}%I$OB{5|lTC_!t`S}^YgS2}qLv~)cWYo!jt7!tjgoHKno((R zB2bkhu!EAcoXbQ`NfueoG}owgW>wpnHf@K4@`~e{?cYY>dqA23gAXTu5$SfpQM z@1ikWrE`GH-ft)40tBrD%ht(Ukm~-|I8eu7hFpIgF@^`YM~7z^zC&;RTpiCc%nodh z_qA_M@n~pxEF25hkz%Oh1%}U% z{sgC_WP%(beV>EHB3~l=0AlC-+T9R)wDs-X0IeTC+S-sQ`XEyrBr1R((T$%lik~Ti zU+6u4#clkC_wYOJk?aG~eTYBs5&m?kI8UkHMikfZ26-1~7GB2^5i&|-+`yYeTQ}D6 z7T$I#yT47@O^S01{BQZc*R@6O669#1BS$aCEk+b>(ceh8S;*1HQIyJyTaxf*t#k=U p5Qzi)Me+P7Q=As4c!zdB4UGykSF#M9_72ibVHvCRPV(95^Dmh81&IIv literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/CoswayUtil$AnchorShield$2.class.uniqueId7 b/build/tmp/compileJava/compileTransaction/stash-dir/CoswayUtil$AnchorShield$2.class.uniqueId7 new file mode 100644 index 0000000000000000000000000000000000000000..f5b2622ecf193b5de26413b6540eed94736cd0b7 GIT binary patch literal 1871 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 F{{d3VoR9zj literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/CoswayUtil$AnchorShield.class.uniqueId9 b/build/tmp/compileJava/compileTransaction/stash-dir/CoswayUtil$AnchorShield.class.uniqueId9 new file mode 100644 index 0000000000000000000000000000000000000000..540101a8276bd4475b4b9d22f76172fa688818ee GIT binary patch literal 9487 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 BwzvQQ literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/CoswayUtil.class.uniqueId6 b/build/tmp/compileJava/compileTransaction/stash-dir/CoswayUtil.class.uniqueId6 new file mode 100644 index 0000000000000000000000000000000000000000..0dd76ffc583ff179a17fb749e21e783d5a375ad8 GIT binary patch literal 8896 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 literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/PhantomDodge$1.class.uniqueId10 b/build/tmp/compileJava/compileTransaction/stash-dir/PhantomDodge$1.class.uniqueId10 new file mode 100644 index 0000000000000000000000000000000000000000..b8ab886f4986838fba49bf3a623f547f1120438a GIT binary patch literal 794 zcmZ`%+iuf95IviiIB^Vh%cU16Ev<{v2x0nykb){fS}0Peq5^r}B&)>K*{#;=RC(i< zkU$6?_y9f%G3!(!Nch2X^Eqe6w+@UVsw$}Suq*HB?tZ>#i@&pwzqiMnGh zjhY;(;YfrB4D~5b!i#y4VWXq;DC%eD=dp=|G_jdQ$GK~HsG{b=^HGP-u)6?E2V*hJ z5}~7)IrA)&lJ^tAPvH8~eRFZeYnp;A7b;tSu<~(~4+XOw^S4PaBXmMKA&d zZ-p7FVV7$@5k_cIE$d7&c<)rE2jW$1*Rs6$7ao7)Q%<8E%R!>jSdQirF18s~3%=gR z4t5#*^nzc?D=~)6#($R5P54acmR(BqRHWuarG}Vqq!hZH@H7=Ew&`A~bUG{u?8Q)2 zqNk1(@;50uwD&~bYd-o4*8B$dbB?)1wgN`>2)D`J$$1|6RmupDHLTP74T@_d`6&RX z1#KEWSu6dFycO`8U%TRSFPD3b8cuR~%dw(!c?b6>D`6A&$vfD>1B7{H3wt?^ I<$MbN0O{Pf=>Px# literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/PhantomDodge.class.uniqueId11 b/build/tmp/compileJava/compileTransaction/stash-dir/PhantomDodge.class.uniqueId11 new file mode 100644 index 0000000000000000000000000000000000000000..eff2edabaa0690f6b2bb1bc241f3477aaaf2185d GIT binary patch literal 3285 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 literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/WitherContract.class.uniqueId12 b/build/tmp/compileJava/compileTransaction/stash-dir/WitherContract.class.uniqueId12 new file mode 100644 index 0000000000000000000000000000000000000000..6ce948aa9e35fa55ff84ae6365e654dee610be43 GIT binary patch literal 4521 zcma)Ad3Y3O8UIbP*-17-py6DoWq}lP09(KU&C<}EP3R_6vLw>h!en{*rM+7yfl@U@c2ht(N1o>Ps<_@0TwTH28i-l-e9(NO3=QeD33Twzi-BrH$*s4BOK2%4}^#v%pRpjpCt z)0&J=6tY>}iEA^O;lw9$W;z@15#P7x)U?(wRwXn|YEES_BVlE0ThhnuV@ot*36{!O zreHZ%NLW^#OhO}NCe5_!=%&y(D6qUijaOoojB6Dq=qmpm}qJ<=y(sUNp8iR+jf6l}&82@81WkfY^?j6u~P)@y^% z=!Wo#Y0bt3(Ws-Qvt)l3*2}n2!gW4?s!$4bw=38obX__=lp5^cdtmgo{$zh@&j@e! zC6gjVIu#_alX_DVhQX|6Nw_ws1y#_U*|@js`n*fQF5Kb)Ic{1xYQ7}M`&r;nI1LsPAZ+1Qi^b}VmB*s()q!N|lMGnQAa>?Rqs zW3g*QK@_=e%Ti~Py6r@eL9Iygu14rMEF-HRhdfdC=}?M1QCwVq=o(FHE~DZK6tWnx zCZ=UPPk{weG*!+M+l*qJ39d5DSiu6^OgeX+5(=1+aYVsU%<_zigfa;o!=N6~j#3^g z`5l7e`3hcudnJSncRA=Uul^@w+*cJ?*PvM$_p=N5OfJDbEL^EsB6gMvlwP9X0X#@c zGBijv(nNJdAok{Cx~)&3@lpjZ!^^3unqle&a;T)2u)xGC6}(CqEbDfEe%hfv$IDI3 zh1bib2p&eQAb+ib*WvXv*w*i%3dCVZ?7dOJn{a|s1P()@$Ansk+J*$jn-#nTZzU;x zC=?m;hx9x|ZXDZE#~ z`|y6R>W;bO)AsN(k2;&n&r+D%(q~5^=1!|c$%SE0ha{i zv5L$1*k#f0&MjqLF`4+CU5OC#GRAt%41;iCQa7}bLViNCQtCvGE6pMqa$_ocI-g66 zA!kabuB-e4FN+>>nufPFnl0pV?$9KmBM=T(8LeEc!qcT5yRu3!mO3nloFiUSrK**w z&1!uHLs27woZV%4a0QY$&dK1_6zl}>K9HG(+|@m!DP$%8Z3?V?4qv&oZdvz?_S7M zpPL^p12flr*`pv!&FBTHAaO8TSn5fx0Jm){^15H8X)u5+cO+}}?RfQ$2QCZ75XZ)n z@mqY* zGi7G%di_-zEg!|!GMK}-mLl+fZfGWUIi1EiVN;@$}5 z4Gjb2=jdmLwuun$>+o@Y zi+8;N?$_`dX+ICCz2kAnkMgMopX7HFYWcmK94pX(C@%47nMaK$@F_ltK~+d)bmG(a z4EHEgNaI9kv3x+oou~=d;jy5f9n!|N-SUa+@i0dU5>9*52NSgQ@ww}Yb(-`H$ zO`Rcf+$^E9uKh8{&E0e8ZTDm>!O$FT>kLQ3Phxd@G(3kr(NHv8#HfS|*bi3v=hom1 zlxV1V!o3%^)Vj88acy5s%VV@=4c}tcVmsFHb)W@tBnwl-H+ZcPF95t3px(;k>$!IPA~O5W<4|Xa zU`-Y=CDCj{z!j}4g2Tv3^oqNCBXf5$5y#jB=J4Xy z6Q{6%Kyu}w8jPQLx)===@d_cSPC9!L5A(QJQ+z1OPZ6&X&U`}=Cu?{>>MT_Xxd?A! zB!KUD4Y(0;Y$I0N8C^RthMRB@JCVlC$fJwHQ#T>#nMZekbKp0Lq)e{O_!hqHVtRZY z)8qIKzDp2jI=+YR6O;x#h#%mGJohN0^GEnG{qYm-i#YW5e#$+8cQZo&K~#n*qwsGG z{0lXWc&$wHIpW_$23I)z_X!|Aa>#5dn b`1uw7#HW=Enp3=rpL5;?f5u<&cSQdOMpE$t literal 0 HcmV?d00001 diff --git a/src/main/java/CoswayUtil/CoswayUtil.java b/src/main/java/CoswayUtil/CoswayUtil.java index 75e5841..29ae4cf 100644 --- a/src/main/java/CoswayUtil/CoswayUtil.java +++ b/src/main/java/CoswayUtil/CoswayUtil.java @@ -77,7 +77,8 @@ public final class CoswayUtil extends JavaPlugin implements Listener { getServer().getPluginManager().registerEvents(new PhantomDodge(this), this); // Register the WitherContract listener getServer().getPluginManager().registerEvents(new WitherContract(this), this); - + Bukkit.getPluginManager().registerEvents(new MobLevitationWand(this), this); + this.getCommand("getwand").setExecutor(new GiveWandCommand()); } @Override diff --git a/src/main/java/CoswayUtil/GiveWandCommand.java b/src/main/java/CoswayUtil/GiveWandCommand.java new file mode 100644 index 0000000..f15ba07 --- /dev/null +++ b/src/main/java/CoswayUtil/GiveWandCommand.java @@ -0,0 +1,23 @@ +package CoswayUtil; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +public class GiveWandCommand implements CommandExecutor { + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (sender instanceof Player) { + Player player = (Player) sender; + ItemStack wand = MobLevitationWand.createWand(); // Calls the wand creation method + player.getInventory().addItem(wand); + player.sendMessage("You have received the Levitation Wand!"); + return true; + } + sender.sendMessage("Only players can use this command!"); + return false; + } +} diff --git a/src/main/java/CoswayUtil/MobLevitationWand.java b/src/main/java/CoswayUtil/MobLevitationWand.java new file mode 100644 index 0000000..547e037 --- /dev/null +++ b/src/main/java/CoswayUtil/MobLevitationWand.java @@ -0,0 +1,111 @@ +package CoswayUtil; + +import org.bukkit.*; +import org.bukkit.entity.*; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.persistence.PersistentDataType; +import org.bukkit.scheduler.BukkitRunnable; +import org.bukkit.util.Vector; + +import java.util.HashMap; +import java.util.UUID; + +public class MobLevitationWand implements Listener { + private final NamespacedKey wandKey = new NamespacedKey("your_plugin", "levitation_wand"); + private final HashMap levitatedMobs = new HashMap<>(); + private final CoswayUtil plugin; + + public MobLevitationWand(CoswayUtil plugin) { + this.plugin = plugin; + } + + @EventHandler + public void onPlayerUseWand(PlayerInteractEvent event) { + Player player = event.getPlayer(); + ItemStack item = player.getInventory().getItemInMainHand(); + + // Check if the player is holding the custom wand + if (!isLevitationWand(item)) return; + + event.setCancelled(true); // Prevent default interaction + + UUID playerId = player.getUniqueId(); + + // If already holding a mob, release it + if (levitatedMobs.containsKey(playerId)) { + releaseMob(player); + return; + } + + // Try to pick up a nearby mob + Entity target = getNearestEntity(player); + if (target != null) { + levitatedMobs.put(playerId, target); + target.setGravity(false); + target.setInvulnerable(true); + startLevitating(player, target); + } else { + player.sendMessage(ChatColor.RED + "No entity found to pick up!"); + } + } + + private boolean isLevitationWand(ItemStack item) { + if (item == null || item.getType() != Material.STICK || !item.hasItemMeta()) return false; + ItemMeta meta = item.getItemMeta(); + return meta.getPersistentDataContainer().has(wandKey, PersistentDataType.STRING); + } + + private Entity getNearestEntity(Player player) { + return player.getNearbyEntities(5, 5, 5).stream() + .filter(entity -> entity instanceof LivingEntity && !(entity instanceof Player)) + .findFirst() + .orElse(null); + } + + private void startLevitating(Player player, Entity entity) { + new BukkitRunnable() { + @Override + public void run() { + if (!levitatedMobs.containsKey(player.getUniqueId()) || !player.isOnline()) { + releaseMob(player); + cancel(); + return; + } + + Vector direction = player.getLocation().getDirection().normalize().multiply(5); + Location newLocation = player.getLocation().add(direction); + + entity.teleport(newLocation); + + // Spawn particle chain + for (double i = 0; i <= 1; i += 0.1) { + double x = player.getLocation().getX() + (newLocation.getX() - player.getLocation().getX()) * i; + double y = player.getLocation().getY() + (newLocation.getY() - player.getLocation().getY()) * i; + double z = player.getLocation().getZ() + (newLocation.getZ() - player.getLocation().getZ()) * i; + player.getWorld().spawnParticle(Particle.SOUL_FIRE_FLAME, new Location(player.getWorld(), x, y, z), 2, 0, 0, 0, 0); + } + } + }.runTaskTimer(plugin, 0L, 2L); + } + + private void releaseMob(Player player) { + Entity entity = levitatedMobs.remove(player.getUniqueId()); + if (entity != null) { + entity.setGravity(true); + entity.setInvulnerable(false); + } + } + + public static ItemStack createWand() { + ItemStack wand = new ItemStack(Material.STICK); + ItemMeta meta = wand.getItemMeta(); + meta.setDisplayName(ChatColor.LIGHT_PURPLE + "Levitation Wand"); + meta.getPersistentDataContainer().set(new NamespacedKey("CoswayUtil", "levitation_wand"), PersistentDataType.STRING, "true"); + wand.setItemMeta(meta); + return wand; + } +} diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 8cdd307..d3f5f8b 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -16,4 +16,8 @@ commands: gravitygauntlet: description: "Gives the player a Gravity Gauntlet" usage: "/gravitygauntlet" - permission: CoswayUtil.GravityGauntlet \ No newline at end of file + permission: CoswayUtil.GravityGauntlet + getwand: + description: "Gives player a levitation wand" + usage: "/getwand" + permission: CoswayUtil.wand \ No newline at end of file