From 4bdb3f94d5eebe66d3619666b858eadd26664870 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sat, 1 Oct 2022 16:58:27 +0200 Subject: [PATCH] Working Restrictions --- .gradle/7.4/checksums/checksums.lock | Bin 17 -> 37 bytes .../dependencies-accessors.lock | Bin 17 -> 37 bytes .../7.4/executionHistory/executionHistory.bin | Bin 159382 -> 231288 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 37 bytes .gradle/7.4/fileHashes/fileHashes.bin | Bin 31047 -> 32097 bytes .gradle/7.4/fileHashes/fileHashes.lock | Bin 17 -> 37 bytes .../7.4/fileHashes/resourceHashesCache.bin | Bin 23835 -> 24957 bytes .../buildOutputCleanup.lock | Bin 17 -> 37 bytes .../compileJava/previous-compilation-data.bin | Bin 55118 -> 56288 bytes .../minigames/command/user/HubCommand.java | 1 + .../config/GameConfigurationInventory.java | 42 ++++-- .../config/restriction/RestrictionData.java | 11 +- .../restriction/RestrictionHandler.java | 3 +- .../MaximalPlayeramountGameRestriction.java | 23 +++ ...ximalPlayeramountInstanceRestriction.java} | 7 +- .../MinimalPlayeramountGameRestriction.java | 25 ++++ ...nimalPlayeramountInstanceRestriction.java} | 6 +- .../types/stickfight/StickFightFactory.java | 14 +- .../shared/entity/InteractableEntity.java | 23 ++- .../util/InventoryItemAlignment.java | 135 ++++++++++++++++++ 20 files changed, 244 insertions(+), 46 deletions(-) create mode 100644 src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/restriction/common/MaximalPlayeramountGameRestriction.java rename src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/restriction/common/{MaximalPlayeramountRestriction.java => MaximalPlayeramountInstanceRestriction.java} (71%) create mode 100644 src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/restriction/common/MinimalPlayeramountGameRestriction.java rename src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/restriction/common/{MinimalPlayeramountRestriction.java => MinimalPlayeramountInstanceRestriction.java} (72%) create mode 100644 src/main/java/eu/mhsl/minenet/minigames/util/InventoryItemAlignment.java diff --git a/.gradle/7.4/checksums/checksums.lock b/.gradle/7.4/checksums/checksums.lock index 7db5587f3fc78ad04e75cfffa9cec90adff32cf7..4645d9d81807fec5032bfddf31535a7d1a81ed18 100644 GIT binary patch literal 37 ncmZSX-8bdF=!!!P3{b$#z;No$LyRHZ17?_RBjTjgJ==cjI literal 17 TcmZSX-8bdF=!!!P3{U_7JLv?$ diff --git a/.gradle/7.4/dependencies-accessors/dependencies-accessors.lock b/.gradle/7.4/dependencies-accessors/dependencies-accessors.lock index 3584a884d7e3ef44e6c93ef4322540a95f464fdb..2f7c6eb3df8152527371b57b605fdd2dc5c14082 100644 GIT binary patch literal 37 ncmZSXD>`Z#ms9ka0ScHI7*4*KTfHOIZTpua49rI6Mhpx9+=vTp literal 17 ScmZSXD>`Z#ms9ka0SW*!R0J&m diff --git a/.gradle/7.4/executionHistory/executionHistory.bin b/.gradle/7.4/executionHistory/executionHistory.bin index 131559fe72777b096b95931e1d5d31ec47fdebca..639d2414fd197f2753c1c29b5c1475e0b047db6b 100644 GIT binary patch delta 5576 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 delta 960 zcmXAndrVVT9LMiDrza}D>Vt_<0b3B|;YxrZ27D~FSWy9^)m$K2GGK(!-r5$bh#Ex6 zbR(b%Co#1GqDBQxX~OMrijcvSEG`4aqX>?$2^3^OBcNj4y=UjIPkyiO@Ao^u+0rEy z0}IMl0#xoD1Y+!3=c;lp;L2*Bod}G;b7?+&nh$V1mt~||IDLjW>Vz)K@ExburyHZp zx|}Fuw3+$;y>S?JM{MLLz6XyM^9?ny2}-~E@yOuG;PGDbucxM`0zz1R$`5wTTi#N6 zcJhb(-_=iwbtd1T&`$7zXl-B@`O*#-^0n1qB1}4ZFf(i9ijs@H{oGYpdp3k$uYpwn z7kzX&cyde)f(e(4;w1KW&U#|cMZRQA4W#%2b$irc6TV0>bPq6*HN!9qPtS>&ixNN# zc`^)5^E*Vp;(9!3P5?4I=n=h%EX=_dC^oS$7?)CIQ+o`e2ghKEwihr1p z3VSHp$DptG8E5{^t+mX|$nyH$#%nC95ho{Gj>6Ltw^*gU7ewJn8b6c>R+DvoV1@jb zq-8U*K~vn8`Nh|Ey^vlN8Xfcx%xkX3<$fpg?nyVYWtW{1`2CEto+p?3KmPSU9Qk)1uJSOOQk+3Xz&DJR)3>?lkJ*H)lf)N)2t`Evn7( z*9?%q)D>tuh1Ofl+Q_iVZ{AnF<&*zPoSPL)=BM(f+d9+d-nNcgV;SzAV2VyrvAKq{ z_DAu{lqD;t#sAWJ9e@38e~b0!6`w}~y$+mmRJ9S{_d!;~4)i|`*lWG literal 17 UcmZQ(iuGOiLg}p-0|Z0^04VbVxc~qF diff --git a/.gradle/7.4/fileHashes/fileHashes.bin b/.gradle/7.4/fileHashes/fileHashes.bin index 73df5bf92f75fb32d49066987f5b02d8522adc57..8fd543608de2c9a788b33e1fd561b3f5dc9ab7e5 100644 GIT binary patch delta 2356 zcmZvd3p7-D9LMJlL!&gqq?p1?+DTrs@~FJ0no3e0XUnUMJcgndHqR!BgcSd5Ne_B) zv?^}1VvndDy;dDW2<5RV8@8;FQhV?HU+1jR|D3t^H^2Y)^ZWgO|JQvmgmjG~H_bE+ z5N3h}b-2^GtCm8vfSPY)JG{3mv0e-!p+7nr6>9oX8LS~xzkG`bI%BQDId(9!(0rYe z#nq+1kjf5pf}M{r*e)SKBbMQ$l8$CC5FiX`Yg>Nltzqbl5ui`B3#rUkJA1tIDoY2T zH%^R(aZ(WGP>xOEDgSD1=#A%t0d5XM=EKwm4{2RWI`B9Jrke`8hzk{e-`HPG6qKi@GdVJD2IkAcn1vu&<-TJ9KohQ zEKawVA3y_5>@Z_1%sDp$dz+YH4}4v@_>bASAwa{Y@zeYpml9SRu*U3RrC!lkC)Q?; z0>q64mIkr#c#*&{h!|HAh=qn9D29e3cm)k1P!qE`s~)%fyz z-tjQ1WgBo3r(zL3EkLW77;^`h8BBz}3v7dBiol?w70^PuIb38t&oT91%83nS9j*_p zdWm&2_Rfca+B!ksE*@&UKvrRIxf$8M!|xS^-qJIlp3&r9pud|Sp4Iz6f~E)Z{aE0~{r()OX#qFT ztgI++Urws9(TM}6&hsb~Qm+7XzXx7q5@1Aa;4Jq}r#qiaj1xGd@y7*k_mXN?s8+WE z^`0z{5k*XN0=N=IOiL1I#*IcJ6wsqhB$#mn>Xpx9Z@Ga#Ob8PeW$O$NB-?x64vxc) zId)`T%u#`a0#=ATk@Ak}vinG0&**_gGwd>zl1O4MNrcG}5^TTpzr96m2w{xX?L6Gp zcm2*Nfwaq3lgM#71S84^wTsl%7kSk_x7_n+-0clPv=vv7gm^k}nBMDr=r1MSq1?ZD zFK_Dg6GXSy(HRg?mI5^qOR{^dn(14=k%-IeO=}ca=ue7B&DH5)@7dAmwNE#n7KYNI z61#?-N#YnuT%1mPX_2}aE|$(V-LLUm-`iQ_nt5g7goHv-{thCQJ^HY|qP<+@>V2o- z(s@VlB*56629wOj?=QJ!>$7&R;?7Rzx{1y^Se2hW4GC{;NGRY}lpL{KT~{|n!f9gV ztv{nZ?~BGhIpp?qB*JmK!SR0zVprbP`?Z-lNGuz6An`i@YYLyShg_1LG7Bq7wf&{n zZz4+8jE54t2_q(lbq=dv9^uYETB4jD`L$nGP&1l)7h74p_Q@oQ_(qgVl3tJ=s>}IU ziJXpadS2C%Cs)XKW-GrUj&`}@MEjsbb}G%LE)ToS{+~plVR{l(Y5G0ZovJMTY{nB- zlrnaLrVs3)LtYs>pjDP=3L{slk>w{M!8Un`KvL6aF$}|^v zPDK=IrYF(4|Jr|c%@9X6cJ*1s1F5bY(TQ(zy*d@dCIvb9I8RpK^I6rH)ck-&!x|m? HPciuqOZ?3B delta 967 zcmXYvdoWZ{9LM+GY@)KV6OwWlqr7%)MtO^o$IvRp$mFrDU5`KL<=U(nLQD<9Zzd_$ zNSV=V=uD-W-K{1yJ!nWmNsQ@1)96LEGTnPmXXc#qo!{>>-{0^2=1drgN8gA}Z(A$g z@1s8Ck9VFE&v@L*=s_vAauSB@($My`jRab>_a%^QeG7^Bq7nj{9qUkpQv-p1Iwz4x zx#2hoOWmSC<(3X_-6A2#T@E+gYf-9)fP`b>VU#b~LBN=o6kMcHP$BgrZ5q2ozijHf zN>FH2H=p{`>f0;1THc%@U-GhVD!YouBg$gz#{6(MWG-4G8zd+taqs5gzmBez_K9cO zpC;UAsi-v{voK{5fL88s;ZtYT7A?86g1Y$X{tD{)pFEbLMInWl;*Ue!E+MEA7O2kP zna17OPaHlJ@#DiH+CFojVnm3+)n%wSan96)rgf!oB(;+Y)JWeL>2_n$WT<3B_jsPe zXf?xv*>RHW}YQa0Mx-xl=T|75SEmh+GW z@G)uA3PJKOtcMmP`{o#-r@>W`ZbHif7NA-oW+PfKU{M2K74>Z7Ayj5?sdl)9#S@sp zVhGkLxzs4cDH$JH{{@gz9L$JmT+_OSxy9bh;mT|gyDf{m3qt)b^X5NTT^qjLoV7)#<6%0t1|5G+b`{4$Oy&v3Q8xf1nXIEB2bO1X);SQA^?;2O0zZ3_GCGzfkG_|!+^C`2$(9HzMI;@Yhnofdz9ibuo5d(NzmOL6r32{n8n zOuRp)N^9Tg59&~HYnb>%t(Y%rJ}*2V;&J(Kaif-H3g=QLpOMfMn7r%KiNfFVxllEm zC%=`jqz| zH}dBze~|ff&=)EeKRH)QL15i))@k2mUH?J^<6|ecN-6Rugxq{to1P6-_R~ZPRk|~ReC{0W2IpZuzj_E@zwVw0#GBK zZst`sU=oP`5qYHSp=mutH17LmQ`H5G0#&Q3|6lC1hNa7|lh3MYF$q50sQ5#Cqk#q6 zW=D@(BK5{VJ(55y2*LttTQsr*n)$zVFWkB4&(`e;KtVZF6+eF;5jq|CEb*Jdk(DjX z`!8Xt5M9!zU0p1_@W48$h@-Qw%)nG}ZjzruNa4}i126kLyWUhj2Dux}n&}gZG(3|3 zZxBCG_~p*uZK9Ye7Kkt5KU1;m|0}ayM#AlzXH1^xDO~T#bSin@)jxvxPN})?3XJ>Gt8}>o)G$>9G=xa9OV|9c)Z&OqvTKaSR3Se{(CO@R{wIZ3mp<8@ ze{Bvzg#;`d&t?bijC^YL%sk?;XXyU~smYF^!u0{i-t5_0wB1YoPRQh+B|8w>V7k2Z zB|f~Vo?xqS({9pz+wDD=Dx6>2)HtrbwK?<1g=KEL4wz!9aC&08CMvRJ75lL-m8w}T z&IlF2P=-YEjv(`0Q=5<6Uw`AC$`!NZEeItr6^q)VCo~`Oy~$#|FO7F)cps*U$loS4 z6D8g6mzwY2y)nw~9;S-cGus1ateL12)mq5!wvaK00cby3BJh6hZ+?Ma zZdiPCLGVt9ZsOM0Z%Pi_XfN$;$F%0$*V$W}ZcdzabE=&^*=f%WY5_uN*^T7s!9bmlI`O;`BXjwH74|C15}Dzwm? zpZ?tYIZNE^$AvRBOm0tA0M!|2D$aC9RUM4&yPW#w=GRjT_v9l~z$3#T#C*k^l7&oh z@83W43jDJip#&Bg!54F0O)UGv$9v!|Z{>uD1WXnE|Jz?^ukonm>9=rQJE93KIbMICsP)g4HaH6D1A#U5ajJs(Juogb)^T_8x4?I7@z^&uFOB_gSl<|4nd ly(16;v;8F~0<%3Rm;saRDIx+6$+02$7qKu<39~^++7xp^G${Z8 diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 163d9faa633c36b56fcb15b8ef7c85611b782f14..549e54ccf7bdb7de066b41f078f7167961bc539a 100644 GIT binary patch literal 37 pcmZQ}E9u!N^Frnb0~jzSGcz!pd{gm&;o^P!-xC;^jm(W07y#No3u^!X literal 17 UcmZQ}E9u!N^Frnb0|e{`05BK?o&W#< diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index 172ce5534dd33409df48631bb05f54b10638ceed..e84003e26a0537bc7935b1f100d8dc500b885217 100644 GIT binary patch literal 56288 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 ((Player) sender).getInstance() instanceof Room); setDefaultExecutor((sender, context) -> { + Room.unsetRoom((Player) sender); MoveInstance.move((Player) sender, Hub.INSTANCE); }); } diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/GameConfigurationInventory.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/GameConfigurationInventory.java index b0d34f3..ec38512 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/GameConfigurationInventory.java +++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/GameConfigurationInventory.java @@ -1,18 +1,22 @@ package eu.mhsl.minenet.minigames.instance.game.minigame.config; +import com.extollit.linalg.mutable.Vec2d; import eu.mhsl.minenet.minigames.instance.game.Game; import eu.mhsl.minenet.minigames.instance.game.minigame.config.restriction.IRestriction; import eu.mhsl.minenet.minigames.instance.game.minigame.config.restriction.Restriction; import eu.mhsl.minenet.minigames.instance.game.minigame.config.restriction.RestrictionData; import eu.mhsl.minenet.minigames.instance.game.minigame.config.restriction.RestrictionHandler; import eu.mhsl.minenet.minigames.shared.inventory.InteractableInventory; +import eu.mhsl.minenet.minigames.util.InventoryItemAlignment; import eu.mhsl.minenet.minigames.util.TextUtil; import eu.mhsl.minenet.minigames.instance.room.Room; import net.kyori.adventure.sound.Sound; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; +import net.minestom.server.MinecraftServer; import net.minestom.server.entity.Player; import net.minestom.server.event.instance.AddEntityToInstanceEvent; +import net.minestom.server.event.instance.RemoveEntityFromInstanceEvent; import net.minestom.server.inventory.InventoryType; import net.minestom.server.inventory.click.ClickType; import net.minestom.server.inventory.condition.InventoryConditionResult; @@ -36,10 +40,8 @@ public class GameConfigurationInventory extends InteractableInventory { this.factory = factory; room.eventNode() - .addListener(AddEntityToInstanceEvent.class, addEntityToInstanceEvent -> { - System.out.println("UPDATE"); - updatePlayButton(); - }); + .addListener(AddEntityToInstanceEvent.class, addEntityToInstanceEvent -> MinecraftServer.getSchedulerManager().scheduleNextTick(this::updatePlayButton)) + .addListener(RemoveEntityFromInstanceEvent.class, removeEntityFromInstanceEvent -> MinecraftServer.getSchedulerManager().scheduleNextTick(this::updatePlayButton)); ConfigManager config = factory.configuration(); @@ -70,18 +72,22 @@ public class GameConfigurationInventory extends InteractableInventory { ItemStack.builder(Material.BARRIER).displayName(Component.text("Keine Optionen")).lore(TextUtil.autoWrap("Für dieses Spiel sind keine Einstellungen verfügbar!")).build(), 31 ); - return; + + } else { + int offset = 18; + InventoryItemAlignment itemAlignment = new InventoryItemAlignment(config.getAll().size(), 3); + for(Option item : config.getAll()) { + Vec2d current = itemAlignment.next(); + System.out.println(current.x + " : " + current.y); + map.put((int) (offset + (current.y * 9) + current.x), item); + + setDummyItem( + item.getCurrent(), + (int) (offset + (current.y * 9) + current.x) + ); + } } - int pos = 18; - for(Option item : config.getAll()) { - map.put(pos, item); - - setDummyItem( - item.getCurrent(), - pos++ - ); - } } @Override @@ -104,6 +110,8 @@ public class GameConfigurationInventory extends InteractableInventory { RestrictionHandler restrictionHandler = factory.globalRestrictions(); RestrictionData restrictionData = new RestrictionData(room); + System.out.println("UpdatePlayButton:" + restrictionHandler.canPlay(restrictionData)); + if(restrictionHandler.canPlay(restrictionData)) { setClickableItem( @@ -132,11 +140,17 @@ public class GameConfigurationInventory extends InteractableInventory { .build(), 8, itemClick -> { + if(restrictionHandler.canPlay(restrictionData)) { + updatePlayButton(); + return; + } itemClick.getPlayer().playSound(Sound.sound(SoundEvent.ENTITY_SILVERFISH_DEATH, Sound.Source.AMBIENT, 1f, 1f)); }, false ); } + + update(); } } diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/restriction/RestrictionData.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/restriction/RestrictionData.java index 747347a..be7595c 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/restriction/RestrictionData.java +++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/restriction/RestrictionData.java @@ -1,16 +1,15 @@ package eu.mhsl.minenet.minigames.instance.game.minigame.config.restriction; -import eu.mhsl.minenet.minigames.instance.MineNetInstance; import eu.mhsl.minenet.minigames.instance.room.Room; public class RestrictionData { - final private Room instance; + final private Room room; - public RestrictionData(Room instance) { - this.instance = instance; + public RestrictionData(Room room) { + this.room = room; } - public MineNetInstance getInstance() { - return instance; + public Room getRoom() { + return room; } } diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/restriction/RestrictionHandler.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/restriction/RestrictionHandler.java index c9966b1..0014ac9 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/restriction/RestrictionHandler.java +++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/restriction/RestrictionHandler.java @@ -25,8 +25,9 @@ public class RestrictionHandler { } public boolean canPlay(RestrictionData data) { + if(restrictions.size() < 1) return true; return this.restrictions.stream() - .anyMatch(iRestriction -> !iRestriction.calculate(data).getType().equals(Restriction.Type.OK)); + .noneMatch(iRestriction -> iRestriction.calculate(data).getType().equals(Restriction.Type.FAIL)); } public List getWarnings(RestrictionData data) { diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/restriction/common/MaximalPlayeramountGameRestriction.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/restriction/common/MaximalPlayeramountGameRestriction.java new file mode 100644 index 0000000..63dfeab --- /dev/null +++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/restriction/common/MaximalPlayeramountGameRestriction.java @@ -0,0 +1,23 @@ +package eu.mhsl.minenet.minigames.instance.game.minigame.config.restriction.common; + +import eu.mhsl.minenet.minigames.instance.game.minigame.config.restriction.IRestriction; +import eu.mhsl.minenet.minigames.instance.game.minigame.config.restriction.Restriction; +import eu.mhsl.minenet.minigames.instance.game.minigame.config.restriction.RestrictionData; + +public class MaximalPlayeramountGameRestriction implements IRestriction { + private int max; + + public MaximalPlayeramountGameRestriction(int max) { + this.max = max; + } + + @Override + public Restriction calculate(RestrictionData data) { + return new Restriction( + "Minimal players needed", + "Minimal players", + null, + data.getRoom().getAllMembers().size() > this.max ? Restriction.Type.FAIL : Restriction.Type.OK + ); + } +} diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/restriction/common/MaximalPlayeramountRestriction.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/restriction/common/MaximalPlayeramountInstanceRestriction.java similarity index 71% rename from src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/restriction/common/MaximalPlayeramountRestriction.java rename to src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/restriction/common/MaximalPlayeramountInstanceRestriction.java index cbf4d30..5584345 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/restriction/common/MaximalPlayeramountRestriction.java +++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/restriction/common/MaximalPlayeramountInstanceRestriction.java @@ -3,12 +3,11 @@ package eu.mhsl.minenet.minigames.instance.game.minigame.config.restriction.comm import eu.mhsl.minenet.minigames.instance.game.minigame.config.restriction.IRestriction; import eu.mhsl.minenet.minigames.instance.game.minigame.config.restriction.Restriction; import eu.mhsl.minenet.minigames.instance.game.minigame.config.restriction.RestrictionData; -import kotlin.Result; -public class MaximalPlayeramountRestriction implements IRestriction { +public class MaximalPlayeramountInstanceRestriction implements IRestriction { final private int max; - public MaximalPlayeramountRestriction(int max) { + public MaximalPlayeramountInstanceRestriction(int max) { this.max = max; } @@ -18,7 +17,7 @@ public class MaximalPlayeramountRestriction implements IRestriction { "Maxplayers", "Maximale spieleranzahl", null, - data.getInstance().getPlayers().size() > this.max ? Restriction.Type.FAIL : Restriction.Type.OK + data.getRoom().getPlayers().size() > this.max ? Restriction.Type.FAIL : Restriction.Type.OK ); } } diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/restriction/common/MinimalPlayeramountGameRestriction.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/restriction/common/MinimalPlayeramountGameRestriction.java new file mode 100644 index 0000000..5fe038d --- /dev/null +++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/restriction/common/MinimalPlayeramountGameRestriction.java @@ -0,0 +1,25 @@ +package eu.mhsl.minenet.minigames.instance.game.minigame.config.restriction.common; + +import eu.mhsl.minenet.minigames.instance.game.minigame.config.restriction.IRestriction; +import eu.mhsl.minenet.minigames.instance.game.minigame.config.restriction.Restriction; +import eu.mhsl.minenet.minigames.instance.game.minigame.config.restriction.RestrictionData; + +import javax.xml.transform.OutputKeys; + +public class MinimalPlayeramountGameRestriction implements IRestriction { + private int min; + + public MinimalPlayeramountGameRestriction(int min) { + this.min = min; + } + + @Override + public Restriction calculate(RestrictionData data) { + return new Restriction( + "Minimal players", + "minimal Players needed", + null, + data.getRoom().getAllMembers().size() < this.min ? Restriction.Type.FAIL : Restriction.Type.OK + ); + } +} diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/restriction/common/MinimalPlayeramountRestriction.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/restriction/common/MinimalPlayeramountInstanceRestriction.java similarity index 72% rename from src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/restriction/common/MinimalPlayeramountRestriction.java rename to src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/restriction/common/MinimalPlayeramountInstanceRestriction.java index be69390..acf3abb 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/restriction/common/MinimalPlayeramountRestriction.java +++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/config/restriction/common/MinimalPlayeramountInstanceRestriction.java @@ -4,10 +4,10 @@ import eu.mhsl.minenet.minigames.instance.game.minigame.config.restriction.IRest import eu.mhsl.minenet.minigames.instance.game.minigame.config.restriction.Restriction; import eu.mhsl.minenet.minigames.instance.game.minigame.config.restriction.RestrictionData; -public class MinimalPlayeramountRestriction implements IRestriction { +public class MinimalPlayeramountInstanceRestriction implements IRestriction { final int min; - public MinimalPlayeramountRestriction(int min) { + public MinimalPlayeramountInstanceRestriction(int min) { this.min = min; } @@ -17,7 +17,7 @@ public class MinimalPlayeramountRestriction implements IRestriction { "Minimal players", "Minimal amount of players needed", null, - data.getInstance().getPlayers().size() < min ? Restriction.Type.FAIL : Restriction.Type.OK + data.getRoom().getPlayers().size() < min ? Restriction.Type.FAIL : Restriction.Type.OK ); } } diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/types/stickfight/StickFightFactory.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/types/stickfight/StickFightFactory.java index 5824bf7..d6760a1 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/types/stickfight/StickFightFactory.java +++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/minigame/types/stickfight/StickFightFactory.java @@ -4,9 +4,12 @@ import eu.mhsl.minenet.minigames.instance.game.minigame.Minigame; import eu.mhsl.minenet.minigames.instance.game.minigame.config.ConfigManager; import eu.mhsl.minenet.minigames.instance.game.minigame.config.GameFactory; import eu.mhsl.minenet.minigames.instance.game.minigame.config.Option; +import eu.mhsl.minenet.minigames.instance.game.minigame.config.common.NumericOption; import eu.mhsl.minenet.minigames.instance.game.minigame.config.restriction.RestrictionHandler; -import eu.mhsl.minenet.minigames.instance.game.minigame.config.restriction.common.MaximalPlayeramountRestriction; -import eu.mhsl.minenet.minigames.instance.game.minigame.config.restriction.common.MinimalPlayeramountRestriction; +import eu.mhsl.minenet.minigames.instance.game.minigame.config.restriction.common.MaximalPlayeramountGameRestriction; +import eu.mhsl.minenet.minigames.instance.game.minigame.config.restriction.common.MaximalPlayeramountInstanceRestriction; +import eu.mhsl.minenet.minigames.instance.game.minigame.config.restriction.common.MinimalPlayeramountGameRestriction; +import eu.mhsl.minenet.minigames.instance.game.minigame.config.restriction.common.MinimalPlayeramountInstanceRestriction; import net.kyori.adventure.text.Component; import net.minestom.server.item.Material; @@ -20,14 +23,15 @@ public class StickFightFactory implements GameFactory { @Override public ConfigManager configuration() { - return null; + return new ConfigManager() + .addOption(new NumericOption("lenght", Material.SANDSTONE, "Länge", 5, 7, 9, 11)); } @Override public RestrictionHandler globalRestrictions() { return new RestrictionHandler() - .addRestriction(new MinimalPlayeramountRestriction(2)) - .addRestriction(new MaximalPlayeramountRestriction(4)); + .addRestriction(new MinimalPlayeramountGameRestriction(2)) + .addRestriction(new MaximalPlayeramountGameRestriction(4)); } @Override diff --git a/src/main/java/eu/mhsl/minenet/minigames/shared/entity/InteractableEntity.java b/src/main/java/eu/mhsl/minenet/minigames/shared/entity/InteractableEntity.java index abe5a5f..3cd8dd2 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/shared/entity/InteractableEntity.java +++ b/src/main/java/eu/mhsl/minenet/minigames/shared/entity/InteractableEntity.java @@ -1,6 +1,7 @@ package eu.mhsl.minenet.minigames.shared.entity; import eu.mhsl.minenet.minigames.instance.Spawnable; +import net.minestom.server.coordinate.Pos; import net.minestom.server.entity.EntityCreature; import net.minestom.server.entity.EntityType; import net.minestom.server.entity.Player; @@ -36,26 +37,22 @@ public class InteractableEntity extends EntityCreature { private void setInstanceEvent(@NotNull AddEntityToInstanceEvent addEntityToInstanceEvent) { if(addEntityToInstanceEvent.getInstance() instanceof Spawnable instance) { scheduleNextTick((unused) -> { - this.lookAt(instance.getSpawn()); //TODO only works someitmes? + this.teleport(this.position.withPitch(180).withYaw(0)); }); } addEntityToInstanceEvent.getInstance().eventNode() .addListener(PlayerEntityInteractEvent.class, playerEntityInteractEvent -> { - if(playerEntityInteractEvent.getTarget() == this) onInteract(playerEntityInteractEvent); + if(playerEntityInteractEvent.getTarget() == this) { + onInteract(playerEntityInteractEvent); + this.lookAt(playerEntityInteractEvent.getPlayer()); + } }) .addListener(EntityAttackEvent.class, entityAttackEvent -> { - if(entityAttackEvent.getTarget() == this) onAttack(entityAttackEvent); - }) - .addListener(PlayerMoveEvent.class, playerMoveEvent -> { - //TODO this is heavy in production - //maybe store the player and update to the closest Entity only periodic - scheduler().submitTask(() -> { - setTarget(new ClosestEntityTarget(this, 5, entity -> entity instanceof Player).findTarget()); - if(getTarget() != null) lookAt(getTarget()); - - return TaskSchedule.stop(); - }, ExecutionType.ASYNC); + if(entityAttackEvent.getTarget() == this) { + onAttack(entityAttackEvent); + this.lookAt(entityAttackEvent.getEntity()); + } }); } diff --git a/src/main/java/eu/mhsl/minenet/minigames/util/InventoryItemAlignment.java b/src/main/java/eu/mhsl/minenet/minigames/util/InventoryItemAlignment.java new file mode 100644 index 0000000..4a900e0 --- /dev/null +++ b/src/main/java/eu/mhsl/minenet/minigames/util/InventoryItemAlignment.java @@ -0,0 +1,135 @@ +package eu.mhsl.minenet.minigames.util; + + +import com.extollit.linalg.mutable.Vec2d; +import it.unimi.dsi.fastutil.Pair; +import net.minestom.server.coordinate.Vec; + +import java.util.ArrayList; +import java.util.List; + +public class InventoryItemAlignment { + private int size; + private int x; + private int y; + + private int counter = -1; + + public InventoryItemAlignment(int size, int x, int y) { + this.size = size; + this.x = x; + this.y = y; + + if(x * y < size) throw new RuntimeException("Not enough space for Item alignment"); + } + + public InventoryItemAlignment(int size, int y) { + this.size = size; + this.x = 9; + this.y = y; + + if(x * y < size) throw new RuntimeException("Not enough space for Item alignment"); + } + + public Vec2d next() { + counter++; + + if(this.size < 9) return new Vec2d(this.row(this.size).get(counter), y/2); + //TODO more items? + return new Vec2d(0,0); + + } + + + private List row(int count) { + return new ArrayList>() { + { + add(new ArrayList<>() { + { + } + }); + add(new ArrayList<>() { + { + add(4); + } + }); + add(new ArrayList<>() { + { + add(3); + add(5); + } + }); + add(new ArrayList<>() { + { + add(2); + add(4); + add(6); + } + }); + add(new ArrayList<>() { + { + add(1); + add(3); + add(5); + add(7); + } + }); + add(new ArrayList<>() { + { + add(2); + add(3); + add(4); + add(5); + add(6); + } + }); + add(new ArrayList<>() { + { + add(1); + add(2); + add(3); + add(5); + add(6); + add(7); + } + }); + add(new ArrayList<>() { + { + add(1); + add(2); + add(3); + add(4); + add(5); + add(6); + add(7); + } + }); + add(new ArrayList<>() { + { + add(0); + add(1); + add(2); + add(3); + add(5); + add(6); + add(7); + add(8); + } + }); + add(new ArrayList<>() { + { + add(0); + add(1); + add(2); + add(3); + add(4); + add(5); + add(6); + add(7); + add(8); + } + }); + } + }.get(count); + } +}