From dae6cb4009fb70191a58715a23594ea8c72f73af Mon Sep 17 00:00:00 2001 From: AustinTormasi Date: Thu, 4 Sep 2025 21:27:07 -0400 Subject: [PATCH] red creeper with trident --- .../out/artifacts/Bigbooms_jar/Bigbooms.jar | Bin 1735 -> 4124 bytes .../thewrightserver/bigbooms/Bigbooms.java | 76 ++++++++++++++++-- .../thewrightserver/bigbooms/Bigbooms.class | Bin 2378 -> 4481 bytes 3 files changed, 68 insertions(+), 8 deletions(-) diff --git a/Bigbooms/out/artifacts/Bigbooms_jar/Bigbooms.jar b/Bigbooms/out/artifacts/Bigbooms_jar/Bigbooms.jar index 1552e807ddd93752eefb410e931c7a47bef8f536..39a63c748e7b500a76705f0e5b8b4a77549fa8d7 100644 GIT binary patch delta 3675 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 biz1~#jLk?FK=Ee{_?^KwNJw7M|C#;=iJs72 delta 1329 zcmV-11@3IG5I000iEkqjgP4yutdFai#$kz_dn4yuzU20njPZC4XV z6n=(8H-rT=LV;>EC`b}s7VL|*&?-bywE-1qsM;4d$ry$tGwJSxmw(dsU-X=6#ScC0 zhkof_>N!2VI~!hXptWbu?##~I``l-qxp(G|zh3@Jb(SeACsEt!N%`mLIic@S> zt3o@CTC*agv*~WR&OQ1(F#mrHr{{ze`V)poDqZMA44oF@Ho9OljFwd0(Hnf*6O|3^ zb8m}#PEk~fO4WU5q19pNDS4bXxR+H;skz6%?#9uBUJGYzoJE4+>=7mlreQc!;W}io z^_+3e*^X;5pGn(x}ANno4Wn%z?443}Hp4fT3B7EYtxW%O=x;KAPM}zQS)X4`H zlHgB_KbtPZNuIZDoW})*PGX-|6%*kC(Kf<1wWv8Y8WpnQgtN0TTx7ULVl4z>CAoBq zHC`T0W<$;Vq*U8UzSF3wGEdG-?<7fJ@|%hyiD3(uZCt?!!{A8)7@|TxQw;s7kVMU; zxmE3v32~0$DnsHRd|7|^CO*NZkhYMqF^&m_@is;16?)fM44C;s$p@aOb0cB6_(d}x zF8-)<%gr>i7N!`6+NWEKk71gjYlWBh)#$=Cylde-8}H)-hRc#`r@E^=;ke}>bkpOG z<~!QSs(M37LnaywFw7md{QQXkYxFq)p`@C`4I3ZgBZhdX>1%&gUv}%9VJvkr#G!k- z5CF{C_!v}4=Y*d^yY=+ z%guU`duy)YoydQyl3Oddo(TS1gHgR9DArj1jZTPJhM1CzGW6|K@^+YoRGUh+cHX2H z!}Kw=d2%L_@PsG%_P$Om$6&QiBZl+GBxWldQ98xLWS;zA5gEEywOgt#xs8?@{-@>XhuNtAO-T6t8? z-yJQZmSGq?4JJAsut*Uy!h{?bPx>4!7On*1bJQZu^ zXRu7Zj#5*r= z=@74ntUz~Y90{DG=Mb~+0CVjaW&zUZYe*rp0d#+2@K|P_qd*n`%I_32O6|({3ydvK z{)Wl#acA;ZOfF>}{RAuelvbRf&Y8Z(4{#pnz4h{qW1OOZX005N*00000SYc}( diff --git a/Bigbooms/src/main/java/com/thewrightserver/bigbooms/Bigbooms.java b/Bigbooms/src/main/java/com/thewrightserver/bigbooms/Bigbooms.java index fd0aca3..be0cec4 100644 --- a/Bigbooms/src/main/java/com/thewrightserver/bigbooms/Bigbooms.java +++ b/Bigbooms/src/main/java/com/thewrightserver/bigbooms/Bigbooms.java @@ -1,12 +1,20 @@ package com.thewrightserver.bigbooms; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.entity.Trident; +import org.bukkit.event.entity.ProjectileHitEvent; +import org.bukkit.inventory.ItemStack; +import org.bukkit.metadata.FixedMetadataValue; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.Bukkit; import org.bukkit.entity.Creeper; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.ExplosionPrimeEvent; +import org.bukkit.scheduler.BukkitRunnable; public final class Bigbooms extends JavaPlugin implements Listener { @@ -15,12 +23,12 @@ public final class Bigbooms extends JavaPlugin implements Listener { @Override public void onEnable() { Bukkit.getPluginManager().registerEvents(this, this); - getLogger().info("BigBooms enabled! Creepers now explode 10x bigger."); + getLogger().info("BigBooms enabled!"); } @Override public void onDisable() { - getLogger().info("BigBooms disabled."); + getLogger().info("BigBooms disabled!"); } @EventHandler @@ -29,19 +37,71 @@ public final class Bigbooms extends JavaPlugin implements Listener { creeperCounter++; - // Every 20th creeper becomes Red + // Every 20th Creeper becomes Red if (creeperCounter % 20 == 0) { - // Set custom name using Adventure Components - creeper.customName(Component.text("Red Creeper")); - creeper.isCustomNameVisible(); + // Mark it as Red Creeper + creeper.setMetadata("RedCreeper", new FixedMetadataValue(this, true)); - // Multiply explosion + // Set custom red name using Adventure Component + creeper.customName(Component.text("Red Creeper").color(NamedTextColor.RED)); + creeper.setCustomNameVisible(true); + + // Give a trident visually + ItemStack trident = new ItemStack(Material.TRIDENT); + creeper.getEquipment().setItemInMainHand(trident); + + // Optional: make it powered for extra threat + creeper.setPowered(true); + + // Start trident-throwing task + startTridentTask(creeper); + + // Multiply explosion radius float newRadius = event.getRadius() * 10; event.setRadius(newRadius); - getLogger().info("Red Creeper exploded with radius " + newRadius); } } } + + private void startTridentTask(Creeper creeper) { + new BukkitRunnable() { + @Override + public void run() { + if (!creeper.isValid() || creeper.isDead() || !creeper.hasMetadata("RedCreeper")) { + cancel(); + return; + } + + // Pick a random player + Player target = creeper.getWorld().getPlayers().stream().findAny().orElse(null); + if (target != null) { + Trident tridentProjectile = creeper.getWorld().spawn( + creeper.getLocation().add(0, 1, 0), + Trident.class + ); + tridentProjectile.setShooter(creeper); + tridentProjectile.setVelocity( + target.getLocation().toVector() + .subtract(creeper.getLocation().toVector()) + .normalize() + .multiply(1.5) + ); + // Tag the trident so we can explode it + tridentProjectile.setMetadata("RedCreeperTrident", new FixedMetadataValue(Bigbooms.this, true)); + } + } + }.runTaskTimer(this, 0L, 40L); // every 2 seconds + } + + @EventHandler + public void onTridentHit(ProjectileHitEvent event) { + if (event.getEntity() instanceof Trident trident) { + if (trident.hasMetadata("RedCreeperTrident")) { + trident.getWorld().createExplosion(trident.getLocation(), 10F, false, true); + trident.remove(); + } + } + } } \ No newline at end of file diff --git a/Bigbooms/target/classes/com/thewrightserver/bigbooms/Bigbooms.class b/Bigbooms/target/classes/com/thewrightserver/bigbooms/Bigbooms.class index 04e7e210cdd51278c0238f4e98b402cee9af6c12..979b454e3f7df0f9d7594d79e9a27a78206c4705 100644 GIT binary patch literal 4481 zcma)A33t@i75<(*AbYH^7_$W$Ou{lAYy??az$6sRxR~08*sdugCCD?6vFsUXkTeF` zv`N#_C8tZ;KpWD1-#3~V3~icpZ@TZxU+FnL{hlPxNZ1be99zQuG#b#TA*Evx77J{2+@dj7ot(6Mqf)9CE!&tdr%dB8{~Qgz1s3nMY|DR0pfS@i z+KeVNYe?&8fiAE)@01OHT%L8U;<)cgcS^d(m{lBeoU&&eh+YJi!R-IKR7NG);K!)Ugih1)8aSzf%m< zUQe|HV5`1WGD=*v?4l9wb~oWJ+E1_!DAd}eZH|>>VPhKY*r?%d9rs|9z?y~l1yYuM z+7Vcp3C}2*ls)XbJc24UVT(X(O?tudX2oaFp&_ed8#)EH#ZU?jrqPyv-pHM+lpN1; z?4zz#mH|ScZMk4yK-m^&j@W`nw}$NkYv*qFgz?aX9RlegS%|(h+$*ppMqZY_SulOm z=(Wzt!a(#jYL==pjr;L{hS%$O19lO>0H45i;#iWVEuc*)!Xu{zR%K2^9*9$Pr?C@z zR4#N27zw8*JsSh|$k>F;`vkTHU3gH(L)a(K;z@s2xgdP%%0!NcLsTK@B+_y?B$r-L~|N$@7kD8D>F6W!062FVFc#k5jHVHdh!8YC&M{e9_Rq zpnwrF)r536qYsBQyje#-1_ZV*$adOs%cgG(nq^rCMU)(-Y2#4tpumoWkDHf|nR^6B zH9V|i2*V771&>W=E3hc<1jjy{x#fv9CA&KormX{^octCYqd3Mm%~w6&DJxqAw!X$u zb@nhyj_WvqM+Dj!B|SA6qn2ke(djV8=BS3Z3EUNne9Kl2cHHwupD)Y9zL}qF#$!08 z!PGH^yugYW^?=FpWtk<${K!z>!Q9{o>p?u`W(gSbk3y=DXI899gnW%8)OuWpg$V(j zbu4$LYE{ZXcx965URN_0WPFX1&Mcv%RXe<1y%Ip zmeiSRz(m>T>hKiKY05b2oRzLDsDfP8F@>{iC!TM*{)lT8Xvm1^O%m{gWG<_U7v&y> zrjfyU9dE}w!jd;+7OX1!13O`FYJWSR2;QaR2|P&xo;pjA%Jg=OwzB0urQYlD z4bQ3ubWtE1i;qMDI_f&A;#wtn$nvB9)1C~%NdGz|`_3ok?K_e8oA4Y%t=@N{TA#j5|yp$37U&CLG8dJ4(V}=wK&Fn3V{Rn(_7dgqh1a$N@+tx>vwNZDdMua?u?-3Sef)&4Ww=ta^sb=2C#wd`3nRDZX>A0&^0sCXUs2 z*r~dC*~^5bp|f{@?P?-oQ zgV(D$HqEE1hJUe>y*4Q`KD3JiZxio;0^j9tgSy4B%rE9U?}PmNeSYl<_SxLBS0S>E zFGBkPR~w-Is{13b0x7J-6~5`@QL8`13w#Q^Sd-F=#$d1Q8t%wuXRx9X*=ek8ecd!R z)a5N96|j~P?xfUpF_~>OnbS3yb1;J_VCV5{>Kg95irq8V+lbEAH(tYm zD>yWR!3NA=qye3&8N9UtH}L53D>!)-g~84l6j>Q&Fd6QiX+XAf8a_`w*ZTOxuGF^G zscF1ZfwDSv9q$Grdm00z_warUY~t;B3vubdW^`gV3=ZTwFpT?flGmRJUVYAB567Da zIfFdJUcC>`;y_^k{j~8U9-wyDiSZM>6W_p(=(pu~3O~k6fgdkM7!wQp1TWKHukg%8 z5dWo^pYm0O#LxI_P!km2Rd^iXY7hiBaN&4%+f}?j+uVkyr}3d`1S|>{tkcRS1Uzc;8Xql9sk6?vG)H#@CV@l delta 772 zcmYjOO;gig5Pse!HISwq2%W(Ws6maEmO}YZP}K5e#Sf}h1wloMc`ZRoN)twI=+*0c z!r$P98R-ZIMh{-Ndhx1Pe}XfPn~K)SWOuXs?C!HqUY|P9)q`Jq`v69Vr%e>+mtIkV~i*AOwvz$P@>0gltYEBW=mslvAk+s>=xD4n-PO{p?-j$urzL z#IHrnO&=eDM7Eg_I$G$d_eB5o-2c-?noS{!j&wevj~&u75&fgJ3_YFi)W`|5Nf37RUxrz#{nu%5r+2 P;RSuE6s=$tWyF31f?