diff --git a/src/main/java/com/seodisparate/TurnBasedMinecraft/TurnBasedMinecraftMod.java b/src/main/java/com/seodisparate/TurnBasedMinecraft/TurnBasedMinecraftMod.java index 4fc7b07..0ae12db 100644 --- a/src/main/java/com/seodisparate/TurnBasedMinecraft/TurnBasedMinecraftMod.java +++ b/src/main/java/com/seodisparate/TurnBasedMinecraft/TurnBasedMinecraftMod.java @@ -30,7 +30,7 @@ public class TurnBasedMinecraftMod public static final Duration BattleDecisionTime = Duration.ofSeconds(15); private static Logger logger; - public static BattleManager battleManager; + private static BattleManager battleManager; private static int packetHandlerID = 0; public static Entity attackingEntity; @@ -103,4 +103,9 @@ public class TurnBasedMinecraftMod event.setCanceled(true); } } + + public static BattleManager getBattleManager() + { + return battleManager; + } } diff --git a/src/main/java/com/seodisparate/TurnBasedMinecraft/common/Battle.java b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/Battle.java index 80b025d..d41da57 100644 --- a/src/main/java/com/seodisparate/TurnBasedMinecraft/common/Battle.java +++ b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/Battle.java @@ -6,18 +6,23 @@ import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Hashtable; +import java.util.List; import java.util.Map; import com.seodisparate.TurnBasedMinecraft.TurnBasedMinecraftMod; +import com.seodisparate.TurnBasedMinecraft.common.networking.PacketBattleInfo; +import com.seodisparate.TurnBasedMinecraft.common.networking.PacketHandler; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; public class Battle { private final int id; private Map sideA; private Map sideB; + private Map players; private Instant lastUpdated; private State state; @@ -72,6 +77,7 @@ public class Battle this.id = id; this.sideA = new Hashtable(); this.sideB = new Hashtable(); + players = new HashMap(); playerCount = 0; if(sideA != null) { @@ -81,6 +87,7 @@ public class Battle if(e instanceof EntityPlayer) { ++playerCount; + players.put(e.getEntityId(), (EntityPlayer)e); } } } @@ -92,6 +99,7 @@ public class Battle if(e instanceof EntityPlayer) { ++playerCount; + players.put(e.getEntityId(), (EntityPlayer)e); } } } @@ -123,6 +131,7 @@ public class Battle if(e instanceof EntityPlayer) { ++playerCount; + players.put(e.getEntityId(), (EntityPlayer)e); if(state == State.DECISION) { ++undecidedCount; @@ -136,6 +145,7 @@ public class Battle if(e instanceof EntityPlayer) { ++playerCount; + players.put(e.getEntityId(), (EntityPlayer)e); if(state == State.DECISION) { ++undecidedCount; @@ -147,6 +157,7 @@ public class Battle { sideA.clear(); sideB.clear(); + players.clear(); playerCount = 0; undecidedCount = 0; } @@ -219,6 +230,19 @@ public class Battle return state; } + public void notifyPlayersBattleInfo() + { + if(TurnBasedMinecraftMod.getBattleManager() == null) + { + return; + } + PacketBattleInfo infoPacket = new PacketBattleInfo(getSideAIDs(), getSideBIDs()); + for(EntityPlayer p : players.values()) + { + PacketHandler.INSTANCE.sendTo(infoPacket, (EntityPlayerMP)p); + } + } + public void update() { if(lastUpdated == null) diff --git a/src/main/java/com/seodisparate/TurnBasedMinecraft/common/BattleManager.java b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/BattleManager.java index 39fcbef..40dcd12 100644 --- a/src/main/java/com/seodisparate/TurnBasedMinecraft/common/BattleManager.java +++ b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/BattleManager.java @@ -102,6 +102,8 @@ public class BattleManager { PacketHandler.INSTANCE.sendTo(new PacketBattleEntered(IDCounter), (EntityPlayerMP)notInBattle); } + + battle.notifyPlayersBattleInfo(); return true; } @@ -127,6 +129,7 @@ public class BattleManager PacketHandler.INSTANCE.sendTo(new PacketBattleEntered(IDCounter), (EntityPlayerMP)e); } } + newBattle.notifyPlayersBattleInfo(); return newBattle; } diff --git a/src/main/java/com/seodisparate/TurnBasedMinecraft/common/networking/PacketBattleDecision.java b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/networking/PacketBattleDecision.java index 8a7f313..a3f0bcf 100644 --- a/src/main/java/com/seodisparate/TurnBasedMinecraft/common/networking/PacketBattleDecision.java +++ b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/networking/PacketBattleDecision.java @@ -3,7 +3,6 @@ package com.seodisparate.TurnBasedMinecraft.common.networking; import com.seodisparate.TurnBasedMinecraft.TurnBasedMinecraftMod; import com.seodisparate.TurnBasedMinecraft.common.Battle; import com.seodisparate.TurnBasedMinecraft.common.Battle.Decision; -import com.seodisparate.TurnBasedMinecraft.common.Combatant; import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayerMP; @@ -43,7 +42,7 @@ public class PacketBattleDecision implements IMessage @Override public IMessage onMessage(PacketBattleDecision message, MessageContext ctx) { - Battle b = TurnBasedMinecraftMod.battleManager.getBattleByID(message.battleID); + Battle b = TurnBasedMinecraftMod.getBattleManager().getBattleByID(message.battleID); if(b != null && b.getState() == Battle.State.DECISION) { EntityPlayerMP player = ctx.getServerHandler().player; diff --git a/src/main/java/com/seodisparate/TurnBasedMinecraft/common/networking/PacketBattleEntered.java b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/networking/PacketBattleEntered.java index 7039f71..35ad906 100644 --- a/src/main/java/com/seodisparate/TurnBasedMinecraft/common/networking/PacketBattleEntered.java +++ b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/networking/PacketBattleEntered.java @@ -31,13 +31,13 @@ public class PacketBattleEntered implements IMessage buf.writeInt(battleID); } - public static class HandlerBattleEntered implements IMessageHandler + public static class HandlerBattleEntered implements IMessageHandler { @Override - public PacketBattleRequestInfo onMessage(PacketBattleEntered message, MessageContext ctx) + public IMessage onMessage(PacketBattleEntered message, MessageContext ctx) { TurnBasedMinecraftMod.currentBattle = new Battle(message.battleID, null, null); - return new PacketBattleRequestInfo(message.battleID); + return null; } } } diff --git a/src/main/java/com/seodisparate/TurnBasedMinecraft/common/networking/PacketBattleRequestInfo.java b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/networking/PacketBattleRequestInfo.java index 04d6746..812bf9e 100644 --- a/src/main/java/com/seodisparate/TurnBasedMinecraft/common/networking/PacketBattleRequestInfo.java +++ b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/networking/PacketBattleRequestInfo.java @@ -36,7 +36,7 @@ public class PacketBattleRequestInfo implements IMessage @Override public PacketBattleInfo onMessage(PacketBattleRequestInfo message, MessageContext ctx) { - Battle b = TurnBasedMinecraftMod.battleManager.getBattleByID(message.battleID); + Battle b = TurnBasedMinecraftMod.getBattleManager().getBattleByID(message.battleID); if(b == null) { return null; diff --git a/src/main/resources/TBM_Config.xml b/src/main/resources/TBM_Config.xml new file mode 100644 index 0000000..521b40b --- /dev/null +++ b/src/main/resources/TBM_Config.xml @@ -0,0 +1,134 @@ + + 1 + + + 5 + fire + 5 + + + 2 + poison + 35 + + + true + 15 + 5 + + + 8 + 2 + 25 + + + 7 + 40 + + + 2 + 40 + + + 6 + 35 + + + true + 13 + 35 + + + 11 + 2 + + + 6 + 2 + 25 + + + 3 + hunger + 5 + + + 14 + 5 + + + 3 + 12 + + + 8 + 10 + + + 6 + 5 + + + 4 + 15 + + + 1 + 37 + + + 3 + 13 + + + 2 + 10 + + + 0 + 5 + + + 2 + 25 + + + + + + 3 + slowness + 13 + + + 9 + 30 + + + 13 + 10 + + + 5 + 8 + + + 8 + wither + 7 + + + 3 + + + + + 5 + + + 3 + 5 + + + \ No newline at end of file