From 798483020a58b26362a626050da985d15d32af41 Mon Sep 17 00:00:00 2001 From: Kai Date: Sat, 4 Apr 2026 16:59:09 +0200 Subject: [PATCH] feat: implement Effekt, EffektLibrary, and EffektRevolver classes for randomized potion effect management --- .DS_Store | Bin 0 -> 6148 bytes .../main/java/com/xonics/classes/Effekt.java | 28 +++++++++ .../com/xonics/classes/EffektLibrary.java | 59 ++++++++++++++++++ .../com/xonics/classes/EffektRevolver.java | 48 ++++++++++++++ .../classes/com/xonics/classes/Effekt.class | Bin 0 -> 762 bytes .../com/xonics/classes/EffektLibrary.class | Bin 0 -> 2813 bytes .../com/xonics/classes/EffektRevolver.class | Bin 0 -> 1598 bytes .../com/xonics/classes/EffektTyp.class | Bin 0 -> 1061 bytes .../xonics/ef/listeners/PlayerListener.class | Bin 0 -> 1372 bytes .../target/classes/com/xonics/ef/main.class | Bin 0 -> 1134 bytes .../xonics/ef/managers/PluginManager.class | Bin 0 -> 570 bytes .../classes/com/xonics/ef/utils/Utils.class | Bin 0 -> 1289 bytes 12 files changed, 135 insertions(+) create mode 100644 .DS_Store create mode 100644 Effekte Challenge V2/src/main/java/com/xonics/classes/Effekt.java create mode 100644 Effekte Challenge V2/src/main/java/com/xonics/classes/EffektLibrary.java create mode 100644 Effekte Challenge V2/src/main/java/com/xonics/classes/EffektRevolver.java create mode 100644 Effekte Challenge V2/target/classes/com/xonics/classes/Effekt.class create mode 100644 Effekte Challenge V2/target/classes/com/xonics/classes/EffektLibrary.class create mode 100644 Effekte Challenge V2/target/classes/com/xonics/classes/EffektRevolver.class create mode 100644 Effekte Challenge V2/target/classes/com/xonics/classes/EffektTyp.class create mode 100644 Effekte Challenge V2/target/classes/com/xonics/ef/listeners/PlayerListener.class create mode 100644 Effekte Challenge V2/target/classes/com/xonics/ef/main.class create mode 100644 Effekte Challenge V2/target/classes/com/xonics/ef/managers/PluginManager.class create mode 100644 Effekte Challenge V2/target/classes/com/xonics/ef/utils/Utils.class diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..d994099966269a7fd75b76412001d5b75746c8f0 GIT binary patch literal 6148 zcmeHL!A`0}KB;HIEsE}AJiF)tN-|!nu^y<;y@elOP z?1mK312Iu!W}4ZzozB~B-;z!j0Iqj8?f@+S4Z2{h$>tN2>*8xxi;-=j(=o1aiwquz zn6718;4dm5YqyI&E_r0AuHOZ69vQAN(KS8A{!w0xhIuh0M}9Cpdi!0Cy$#06C!N8l zn9Y@igNIGHvm#C7Jv45fp6}0IUb~y|$KT@5r`3CZlSgRcgbH?%;+WXR4C5809+_2D zN?2y5fGJ=K{GI}=**11>1+Xenl{l;S effects = List.of( + new Effekt(PotionEffectType.SPEED, EffektTyp.GOOD), + new Effekt(PotionEffectType.SLOWNESS, EffektTyp.BAD), + new Effekt(PotionEffectType.JUMP_BOOST, EffektTyp.GOOD), + new Effekt(PotionEffectType.OOZING, EffektTyp.NEUTRAL), + new Effekt(PotionEffectType.FIRE_RESISTANCE, EffektTyp.GOOD), + new Effekt(PotionEffectType.INSTANT_DAMAGE, EffektTyp.BAD), + new Effekt(PotionEffectType.INSTANT_HEALTH, EffektTyp.GOOD), + new Effekt(PotionEffectType.HUNGER, EffektTyp.BAD), + new Effekt(PotionEffectType.INVISIBILITY, EffektTyp.GOOD), + new Effekt(PotionEffectType.LEVITATION, EffektTyp.BAD), + new Effekt(PotionEffectType.NIGHT_VISION, EffektTyp.GOOD), + new Effekt(PotionEffectType.POISON, EffektTyp.BAD), + new Effekt(PotionEffectType.REGENERATION, EffektTyp.GOOD), + new Effekt(PotionEffectType.STRENGTH, EffektTyp.GOOD), + new Effekt(PotionEffectType.WEAKNESS, EffektTyp.BAD), + new Effekt(PotionEffectType.WITHER, EffektTyp.BAD), + new Effekt(PotionEffectType.INFESTED, EffektTyp.NEUTRAL), + new Effekt(PotionEffectType.HASTE, EffektTyp.GOOD), + new Effekt(PotionEffectType.MINING_FATIGUE, EffektTyp.BAD), + new Effekt(PotionEffectType.STRENGTH, EffektTyp.GOOD), + new Effekt(PotionEffectType.NAUSEA, EffektTyp.BAD), + new Effekt(PotionEffectType.RESISTANCE, EffektTyp.GOOD), + new Effekt(PotionEffectType.WATER_BREATHING, EffektTyp.GOOD), + new Effekt(PotionEffectType.INVISIBILITY, EffektTyp.NEUTRAL), + new Effekt(PotionEffectType.BLINDNESS, EffektTyp.BAD), + new Effekt(PotionEffectType.NIGHT_VISION, EffektTyp.NEUTRAL), + new Effekt(PotionEffectType.HUNGER, EffektTyp.BAD), + new Effekt(PotionEffectType.HEALTH_BOOST, EffektTyp.GOOD), + new Effekt(PotionEffectType.ABSORPTION, EffektTyp.GOOD), + new Effekt(PotionEffectType.SATURATION, EffektTyp.GOOD), + new Effekt(PotionEffectType.GLOWING, EffektTyp.NEUTRAL), + new Effekt(PotionEffectType.LUCK, EffektTyp.NEUTRAL), + new Effekt(PotionEffectType.UNLUCK, EffektTyp.NEUTRAL), + new Effekt(PotionEffectType.CONDUIT_POWER, EffektTyp.GOOD), + new Effekt(PotionEffectType.DOLPHINS_GRACE, EffektTyp.GOOD), + new Effekt(PotionEffectType.BAD_OMEN, EffektTyp.BAD), + new Effekt(PotionEffectType.HERO_OF_THE_VILLAGE, EffektTyp.GOOD)); + + public static List getEffects() { + return effects; + } + + public static Effekt getEffectByIndex(int index) { + return effects.get(index); + } + + public static int getEffectCount() { + return effects.size(); + } + +} \ No newline at end of file diff --git a/Effekte Challenge V2/src/main/java/com/xonics/classes/EffektRevolver.java b/Effekte Challenge V2/src/main/java/com/xonics/classes/EffektRevolver.java new file mode 100644 index 0000000..6fef47a --- /dev/null +++ b/Effekte Challenge V2/src/main/java/com/xonics/classes/EffektRevolver.java @@ -0,0 +1,48 @@ +package com.xonics.classes; + +import java.util.ArrayList; +import java.util.Collections; + +public class EffektRevolver { + + private int roundSlots; + private int roundsShot; + private boolean isEmpty; + private ArrayList chamber = new ArrayList(); + + public EffektRevolver(int roundSlots) { + this.roundSlots = roundSlots; + this.roundsShot = 0; + this.isEmpty = true; + } + + public void loadRevolver() { + if (this.isEmpty) { + + this.roundsShot = 0; + + ArrayList randomZahlen = new ArrayList<>(); + + for (int i = 0; i < EffektLibrary.getEffectCount(); i++) { + randomZahlen.add(i); + } + + Collections.shuffle(randomZahlen); + + for (int i = 0; i < roundSlots; i++) { + this.chamber.add(EffektLibrary.getEffectByIndex(randomZahlen.get(i))); + } + this.isEmpty = false; + } + + } + + public Effekt shoot() { + if (!this.isEmpty && this.roundsShot < this.roundSlots) { + int chamberNumber = this.roundsShot; + this.roundsShot++; + return this.chamber.get(chamberNumber); + } + return null; + } +} diff --git a/Effekte Challenge V2/target/classes/com/xonics/classes/Effekt.class b/Effekte Challenge V2/target/classes/com/xonics/classes/Effekt.class new file mode 100644 index 0000000000000000000000000000000000000000..a1a1a9f6b9b1ad0d3dea6b41ae6f197e25d426a9 GIT binary patch literal 762 zcma)3+e*Vg6r4@c#-yqBuJta6v{l>>Py`Wu3MwcCAJe$jH8qiDEBaRoir|AE;75sP zllmfFO5p75o}HP@+4qmvHvqd>vSBb(!{nOZC9w=s9(IB>6)E4pxDb)DVKIzc1-Ak3 z1aX@mwXQ^{7;Gu1uhFWXblbeuiz2D`O`>EH^W$vM3ZXi^zY$vu1t|zIEc(BCQJ*dr zw`DBV4#R$J5aqw+>P-e~FF6-3Oq4x17-leQ^`--g<)MJ0Mq?gq3^7!E8H>Z-bxU+l zgH}gS$4|nb(+s*&@B4?Ax|Auy-0$8x$JcNs$zmS}fIeSNRec!AegesJjSuB16`GBN; literal 0 HcmV?d00001 diff --git a/Effekte Challenge V2/target/classes/com/xonics/classes/EffektLibrary.class b/Effekte Challenge V2/target/classes/com/xonics/classes/EffektLibrary.class new file mode 100644 index 0000000000000000000000000000000000000000..871e44c805fad269bf0a41e4bd8baf89e7efcd2e GIT binary patch literal 2813 zcma);TXz#x6vzK3z2w4ao3=oq6zCOFpacai+KNt_X)-XKiJ3`jL5*ohOK3?jNwLNI zUGRQaRJ^|FgVqN{#pSbW=||9ypr63yK68>OEvw?nTFE-U{oj|f=bSzH^`9Sp2B6>z zFFXvLnZlXyVj-W)l){<$bg7grh1Hpv>|9yTO&8O}B`<0jf~V8x(&71Zel~1QpU!5= z4BjlMGUXB(b;r6;&drDQT&X<7;J0$K`E+@qm}MAPV;Yre!9W9*9deOkJbzM(Cn$YY;kfFO!oDEMe%+2M>;j@Kuu8u&5O+p9qSfBu{pM2E0r8IO^Uo@{jHLAC;*Oa939xsP(NJR zvl{w8<@|Tx{t3~KogAHFpFT@BCk@rI#2&gidPIdaBT7Vw`Z#t8QQ&BDJf0dcP0JQI z#L+Ksy=flTjHvM3%dt;*dJQ#cClp=C_H%@VtZ7V3sHuc%X_l=RqpGmo#BsB*HEM={ zb}FKbD^bUEh~t)3rkJYec1(B;avXLN$C5@=O$c;5$B;l=GbS`k8_{&lo)U&TIF1NI zKvyR;Td_6M5cn=mr(5U^EgG{^!bciLIU-K%xT#qZjd4UBZ9)KHR^stEP{94UbUtJ|FBm=?HcQnA%UY9yg5cFcKXO*qMs z6*m8ft{IVP!LuBv1m&{pD-ZoN$DETv8L`YnyxPw*9C-&@ik)2P5S{f01@=bicvTXX zILd<6>dDb#qUduR4+&78G^%KczDKEsO~b*QH<>$!Z^SU5ACE!yenc^YpmdLfgZpGX&TV(q{H zYVfMK*8%E8`Bbh%Q)&GRTbZ*o`2w@qvYb-n(Gt3@5Qgw|@J7=#=*Apb(()&>i!_x& zTL1dx42jOY$MHTc(Uc%>hE2j@?HhpVt;@-POrtKlc}5Ehd2*uJt%*>daD0l()QD2< zJhdxe6&8w_>{!m}-KsauevtxQ)a@F2L6KCnoPNEu^1w$cAN)iaHUKq)4u|LAVBb~n zshS_@YZ;Bp*!UgVt*KhM-m#1>XI&@Py;Xa?T<>1S9>?yL>w&7>C)Wq6{=tgF!Kxrw z@wnAhR9tRz6@D3G*i{51xYJc^kYL1Ba0ygb(I7$01&tCMb6uJwFkBFn;O^?yg3S`x zZj2TQCS8|S30AUfl;F6l*d)PyZj8+mJm7*h326JWqroi_WZW2AC7|tB6zvkMv~ZgQ zGj7lh334vjF2TGDc1TcggYJ}|=z>lO7F^IJ!J-?ZTY`sO&?CWPZt1-eJXukEk7vHc z#c!O0`4WA9h7f)G=t%m}Mn`lv9nnF0yGPN0Ni@>DZNd_QxQJ$aK>t3zLMyIfBYvm% z>Yvz*ztP4Rwy+j@!SoBIgbIn>{Kf*77ZqOiRk6c=mXTz19@d- zJL1-X?w)YrQh?X+I<5S818>r8ly~wiaTC$&D1h2!T>P5W9*CC67zf<6e!Pu$NGUu9 zNh2~ekVpF!yz9X);A>qEU6a0ny7nPC`0)`gSAz6c()uaL6@1L7sjG7zc5^d&K*IL< Ezw_F61poj5 literal 0 HcmV?d00001 diff --git a/Effekte Challenge V2/target/classes/com/xonics/classes/EffektRevolver.class b/Effekte Challenge V2/target/classes/com/xonics/classes/EffektRevolver.class new file mode 100644 index 0000000000000000000000000000000000000000..f0fdbf8beb80e46daa48e7040581a5dc35e29b06 GIT binary patch literal 1598 zcmaJ>O>^5+6g|&&s>V^`CUKoOPTZD$V9PWvh4SSzB@JmYxD8;&ody;twrs0aq>LnI z>KT^&3D}hl+cHDa49qaB`5F8Ib_@$B=RM1`8Dchi_vu~Td(OG%>DRx1{29O+KGqNu zIM?)c%8xwPZU*J1V+Mg0lsDRK>tXnbwdXl|maicpaO#1%XO)%UP+7L|R#8ffFmXYlo`>i9)s5;Ii(utR&)?(J_Ttfq0?V&~RE{_80_7 zq%kuNfq5NCOvq?K#~4n?XiyicA8!F3H<-O%b-zK#Nl)O62ude&xJAVbCj$<%rJiq{0DI#wu6(hS$> z0ZyCRR+G4fH#NM$HqQlK_Z)|5w&w;q-oo329dvu`wv=o(LZiH(Y*1`S%oQCgxXz;N zA~7E!7onE=+|co^M03)1!-mvC61k~k9q-Yw|3bXkuevSkkw9Kn8p%*jz&G8Nx3gt- z9m}P0ZAyD|to_~LXpQ4N`k!GbZ%)=jv-$9jxf}UnEa-ajk}MVe50HjC0@;y(1tz0g zH83JCVBPEaP3xAe)IEBOmnAZsqnqQr{RzaRxf#Wzwbe>vtCjX=magJSW^>#~@p+1G zI^4&&o-v+c+V~0S`%jVC$DEPdN7jh%BWEP`vGl$A_za&5s`w-uPO!)nr<+2SrSh1@ zS)OMGs8z%B3`}o;!vYbMkV0X~ql6so5WEjmeS|H*a z@h$Kw<#C0$uMzKuTpL9B87?U%200RA#3YT|*ib@dSmzd1h_Uj8D7wu|o$Ll#?=!0M zO$uXwA*&%RCQ|c%s)P^NW}y6+k@96J!Z#>#$w>m=A}_-g<368>FXRMBIH&m5o`@%` s8&|wCR2C>=1_tI(B2NAou>8Ul$`STCBECz+15`A?WrmylIEIh@0gIetUjP6A literal 0 HcmV?d00001 diff --git a/Effekte Challenge V2/target/classes/com/xonics/classes/EffektTyp.class b/Effekte Challenge V2/target/classes/com/xonics/classes/EffektTyp.class new file mode 100644 index 0000000000000000000000000000000000000000..b830c7ef925c4af860375333ef7dc054606c46e5 GIT binary patch literal 1061 zcmah|-*3`T7(JH)g;Fd zz8xj*9T_2nBM>>bCqv{Q!a-U_1YthQ%7{W@Sgx6tQJ)OEhTYV<1A`$^8|m7ht=T5W z?xF+%aq{DQG{+ zrAGI}(4EqeFU!A6lqTJ?>!Q(P*z<>ZH<7>ovUx(=GV*xF@Z2AM$XlZ1JM*93!awf{ zDz~JLCbn+8Huihi@q`&x)J|}Q zq}mD1kW$Z)`AQ-I+^28Cl}wR*n%)eRY!z$nE@x0fdPnb)VQyJ0Y-KO7z7Pl#0bUUI zNfbQbIZy^0c<6<{pgehaa)wOjtx&k?l)1NKA#;gG+h1sBZfCAWzoNUsHS#EU8U^BT YeJQ~Tm)QCV_W!s5c3cGoMR(l&17$_xb^rhX literal 0 HcmV?d00001 diff --git a/Effekte Challenge V2/target/classes/com/xonics/ef/listeners/PlayerListener.class b/Effekte Challenge V2/target/classes/com/xonics/ef/listeners/PlayerListener.class new file mode 100644 index 0000000000000000000000000000000000000000..4ee0617086054ee52311532482c22e69547edac5 GIT binary patch literal 1372 zcma)6OH&g;5dMbO!e#~KAw&@Z@(2%E->8dLVM@~z-f|$RCP=vCzkm)IrJ3*UDvSTyZ3nanFMo`ZlDJ z<`qMCdTEcLC!>qPMmG`;Ec7!BWu+23wMt$DyFBj;hT*I(aDR^nGTJu}d(43h8PeIS zk@XlHt>OaSYpEDk)7dtb)kcBMIwQ9?5qU4-nfz2!Mpne03?;GHR7x9eq*g>?x*e$z z_?D}pF9OfT7{)E!WLUgnN(U22G7OZ2i8(V&rk5_IAvUJor0OMb8+R;BGEB5)X!UV0 zg=q$hAa{6$WE~~Ii`&bYK&p~AOnorpU>0{7#w)xmGFlb5`7F%=twO_xhTCZ|*g0Jb3Svt} zy)+WbdESm|kpR@iueCOz33zo|m;+r5ZQRF03lA9PE+mrbNSB2hD;4Xq#S2CU^+>Qs z4BuKyYI?_jaVLaxS*^>ps@G1l<>XS}ZoMixxbL_4$8+bk>feOOaNo~KBfOzLxczv_ zFne~)S?cU~on|;y6qQu2DutiQ3rTGe2%7U58kBd6#y#WnFchJM=M3|0B6KRt0!`V} z|6OVRV+}9^`UTL_OC8rmmWH3+1GIC=GP1qPKVW}ve0J#F*EqCrjn+==fI$q=jxG>4 z2qbFW$ZLdb1hh|Q-DJmBPB8itw-~lpR!@-vPB3=?JlJqbz$VyHf{zlU;=pDCfzO*JN%CMLd2+v#@fGHZ6XMEzI3 zfN0_m@JAWXbg{I8zMR=}+3!2opTEBS0PqA`7RDIz&0vpz476%ST(VWFsdA;xklqej(nbnd2jiGvn5ro)U-kAH zGJGQ%z9hC<&=h`Mgv#j0#&q0K5yNclbSf@GCeS+a(Uf7EDwXinXUc)$l7q{*!jL88T^a7n zkYSE+hZ>fc-5joB(ZV%`nNv;&1r!;k31lQ~hUHPLJ7eefO+CkX}M4C>rXDb1hF?3krsokJ{MDoaf!R~Fa&9lnd)x%?8pxvepr zXD%`*^PNwJ7AjnqCju;__9CjN@x+*qSZz+@1@%u<-a(gREWM)6{S(ivG;1LRu-RQ; ir;}zHUn5nJ30t1=Z1d3Y(0`WdFBY1z5LQ^4!RimHzi)j2 literal 0 HcmV?d00001 diff --git a/Effekte Challenge V2/target/classes/com/xonics/ef/utils/Utils.class b/Effekte Challenge V2/target/classes/com/xonics/ef/utils/Utils.class new file mode 100644 index 0000000000000000000000000000000000000000..86bc214aab7715839eb3043108338406684c81c1 GIT binary patch literal 1289 zcmaJ>-BQy~5dKa}4GpOvD#))O+Ll5Ih#&}pSVTJ(ai+qBj^muBrzM!Cn4}D&*<&wT%woSv;MM1B4 zrse9Ja#hg6(6Ph!xNdQ~sBh$UgyAuqTQqIcTVe>tN4FSSQsul*5ky!+2$O&l8TVp$pv%3MI2^ z%AAvDhdb@PAOrMh=tUo4l(=VX3x{F45hJzDove6M5w;-?6K_CTuQ?IY0In(+Y?5l- zM8gn<8A7hd9cl-4AuXLoG+dYRps@2QqKGSqo#sqG zaZD&kG7Q+l(@XhRGkUIK7lqLIuBp>|yp-&Y1|5?OfpX!W7auk0zwY$nC~j()#x1Jd z9=9rDgOE1aUhSPc_6lD#s}r6L85b$~kGG3i))R zL9Hp9P=>hRj|oF0>v7}tI^V6&n3^qD97C-6j8-@0R8Pnd7zV|pzW@-R6OApc3f*+t z8SSCOSG0cd)hex04Kiq>RjV1$9-&(p=h03Q>HLu(CFpWzM-`ok16;{`LM$jMVcV{`~BSCaSpmnIM9YVF!I!mCkJxOpaFsF$y?E_c?U< r=?v9E(*Nu}d8n8{3agY*FS_x7WC5&^JdD6EL=+5+km?}`0(kTnRRu!A literal 0 HcmV?d00001