summaryrefslogtreecommitdiff
path: root/YWD/src/main/java/fyresmodjam/handlers
diff options
context:
space:
mode:
authorbculkin2442 <bjculkin@mix.wvu.edu>2019-08-22 19:54:41 -0400
committerbculkin2442 <bjculkin@mix.wvu.edu>2019-08-22 19:54:41 -0400
commitc918a1b6d8008773e9beebb48ba1a770405aee20 (patch)
tree7588d9e570addc61d2f318697662e6f2156fa04e /YWD/src/main/java/fyresmodjam/handlers
parent3eb8c7a8fca3f22475d53e30f0b90a6737f313fa (diff)
Bulk update back to sanity
Diffstat (limited to 'YWD/src/main/java/fyresmodjam/handlers')
-rw-r--r--YWD/src/main/java/fyresmodjam/handlers/BasicPacket.java211
-rw-r--r--YWD/src/main/java/fyresmodjam/handlers/ChannelHandler.java72
-rwxr-xr-xYWD/src/main/java/fyresmodjam/handlers/ClientTickHandler.java45
-rwxr-xr-xYWD/src/main/java/fyresmodjam/handlers/CommonTickHandler.java241
-rwxr-xr-xYWD/src/main/java/fyresmodjam/handlers/FyresKeyHandler.java216
-rwxr-xr-xYWD/src/main/java/fyresmodjam/handlers/GUIHandler.java6
-rw-r--r--YWD/src/main/java/fyresmodjam/handlers/IPacket.java16
-rwxr-xr-xYWD/src/main/java/fyresmodjam/handlers/NewPacketHandler.java1112
-rw-r--r--YWD/src/main/java/fyresmodjam/handlers/UpdateBlessingPacket.java5
9 files changed, 736 insertions, 1188 deletions
diff --git a/YWD/src/main/java/fyresmodjam/handlers/BasicPacket.java b/YWD/src/main/java/fyresmodjam/handlers/BasicPacket.java
new file mode 100644
index 0000000..dcf9fd8
--- /dev/null
+++ b/YWD/src/main/java/fyresmodjam/handlers/BasicPacket.java
@@ -0,0 +1,211 @@
+package fyresmodjam.handlers;
+
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+
+import io.netty.buffer.ByteBuf;
+import net.minecraft.entity.player.EntityPlayer;
+
+public class BasicPacket implements IPacket {
+ public static Class<?>[] validClassArray = { Integer.class, Boolean.class, String.class, Character.class,
+ Byte.class, Float.class, Double.class, int[].class, int[][].class };
+ public static ArrayList<Class<?>> validClasses = new ArrayList<Class<?>>();
+ static {
+ for (Class<?> c : validClassArray) {
+ validClasses.add(c);
+ }
+ }
+
+ public Object[] data = null;
+ public byte type;
+
+ public BasicPacket() {
+ }
+
+ public BasicPacket(int type) {
+ if (type == 0 || NewPacketHandler.packetTypes[type] != null) {
+ throw new RuntimeException("Packet slot " + type + " already in use.");
+ }
+
+ NewPacketHandler.packetTypes[type] = this;
+
+ this.type = (byte) type;
+ }
+
+ public BasicPacket(BasicPacket packet, Object... data) {
+ if (isValidPacketType(packet)) {
+ type = packet.type;
+ } else {
+ throw new RuntimeException("Must supply valid packet type.");
+ }
+
+ Class<?>[] classes = getExpectedClasses();
+
+ if (classes != null) {
+ for (Class<?> c : classes) {
+ if (!validClasses.contains(c)) {
+ throw new RuntimeException("Argument class not valid. (" + c + ")");
+ }
+ }
+
+ if (data == null || data.length != classes.length) {
+ throw new RuntimeException("Wrong number of arguments provided.");
+ } else {
+ for (int i = 0; i < data.length; i++) {
+ if (data[i].getClass() != classes[i]) {
+ throw new RuntimeException("Wrong argument class provided. (" + data[i].getClass()
+ + ", expected " + classes[i] + ")");
+ }
+ }
+ }
+ }
+
+ this.data = data;
+ }
+
+ private boolean isValidPacketType(BasicPacket packet) {
+ boolean packetTypeInBounds = packet.type > 0 && packet.type < NewPacketHandler.packetTypes.length;
+ boolean packetTypeMatches = packet == NewPacketHandler.packetTypes[packet.type];
+
+ return packetTypeInBounds && packetTypeMatches;
+ }
+
+ @Override
+ public void readBytes(ByteBuf bytes) {
+ type = bytes.readByte();
+
+ Class<?>[] classes = getExpectedClasses();
+
+ if (classes != null) {
+ data = new Object[classes.length];
+
+ for (int i = 0; i < classes.length; i++) {
+ if (classes[i] == Integer.class) {
+ data[i] = bytes.readInt();
+ }
+ if (classes[i] == int[].class) {
+ int[] array = new int[bytes.readInt()];
+ for (int i2 = 0; i2 < array.length; i2++) {
+ array[i2] = bytes.readInt();
+ }
+ data[i] = array;
+ }
+ if (classes[i] == int[][].class) {
+ int[][] array = new int[bytes.readInt()][];
+
+ for (int i2 = 0; i2 < array.length; i2++) {
+ array[i2] = new int[bytes.readInt()];
+ for (int i3 = 0; i3 < array[i2].length; i3++) {
+ array[i2][i3] = bytes.readInt();
+ }
+ }
+
+ data[i] = array;
+ } else if (classes[i] == Boolean.class) {
+ data[i] = bytes.readBoolean();
+ } else if (classes[i] == String.class) {
+ int length = bytes.readInt();
+ try {
+ byte[] stringBytes = new byte[length];
+ bytes.readBytes(stringBytes);
+ data[i] = new String(stringBytes, "UTF-8");
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ } else if (classes[i] == Byte.class) {
+ data[i] = bytes.readByte();
+ } else if (classes[i] == Float.class) {
+ data[i] = bytes.readDouble();
+ } else if (classes[i] == Double.class) {
+ data[i] = bytes.readFloat();
+ } else if (classes[i] == Character.class) {
+ data[i] = bytes.readChar();
+ }
+ }
+ }
+ }
+
+ @Override
+ public void writeBytes(ByteBuf bytes) {
+ bytes.writeByte(type);
+
+ if (data != null) {
+ for (int i = 0; i < data.length; i++) {
+ if (data[i] instanceof Integer) {
+ bytes.writeInt((Integer) data[i]);
+ } else if (data[i] instanceof int[]) {
+ bytes.writeInt(((int[]) data[i]).length);
+ for (int i2 = 0; i2 < ((int[]) data[i]).length; i2++) {
+ bytes.writeInt(((int[]) data[i])[i2]);
+ }
+ } else if (data[i] instanceof int[][]) {
+ int[][] values = (int[][]) data[i];
+
+ bytes.writeInt(values.length);
+
+ for (int i2 = 0; i2 < values.length; i2++) {
+ bytes.writeInt(values[i2].length);
+ for (int i3 = 0; i3 < values[i2].length; i3++) {
+ bytes.writeInt(values[i2][i3]);
+ }
+ }
+ } else if (data[i] instanceof Boolean) {
+ bytes.writeBoolean((Boolean) data[i]);
+ } else if (data[i] instanceof String) {
+ byte[] stringBytes = ((String) data[i]).getBytes(Charset.forName("UTF-8"));
+ bytes.writeInt(stringBytes.length);
+ bytes.writeBytes(stringBytes);
+ } else if (data[i] instanceof Byte) {
+ bytes.writeByte((Byte) data[i]);
+ } else if (data[i] instanceof Float) {
+ bytes.writeDouble((Double) data[i]);
+ } else if (data[i] instanceof Double) {
+ bytes.writeFloat((Float) data[i]);
+ } else if (data[i] instanceof Character) {
+ bytes.writeChar((Character) data[i]);
+ }
+ }
+ }
+ }
+
+ @Override
+ public void executeClient(EntityPlayer player) {
+ if (NewPacketHandler.packetTypes[type] != this) {
+ NewPacketHandler.packetTypes[type].executeClient(player);
+ }
+ }
+
+ @Override
+ public void executeServer(EntityPlayer player) {
+ if (NewPacketHandler.packetTypes[type] != this) {
+ NewPacketHandler.packetTypes[type].executeServer(player);
+ }
+ }
+
+ @Override
+ public void executeBoth(EntityPlayer player) {
+ if (NewPacketHandler.packetTypes[type] != this) {
+ NewPacketHandler.packetTypes[type].executeBoth(player);
+ }
+ }
+
+ public Class<?>[] getExpectedClasses() {
+ if (NewPacketHandler.packetTypes[type] != this) {
+ return NewPacketHandler.packetTypes[type].getExpectedClasses();
+ } else {
+ return null;
+ }
+ }
+
+ public void sendToPlayer(EntityPlayer player, Object... data) {
+ NewPacketHandler.sendPacketToPlayer(new BasicPacket(this, data), player);
+ }
+
+ public void sendToAllPlayers(Object... data) {
+ NewPacketHandler.sendPacketToAllPlayers(new BasicPacket(this, data));
+ }
+
+ public void sendToServer(Object... data) {
+ NewPacketHandler.sendPacketToServer(new BasicPacket(this, data));
+ }
+}
diff --git a/YWD/src/main/java/fyresmodjam/handlers/ChannelHandler.java b/YWD/src/main/java/fyresmodjam/handlers/ChannelHandler.java
new file mode 100644
index 0000000..82a07c6
--- /dev/null
+++ b/YWD/src/main/java/fyresmodjam/handlers/ChannelHandler.java
@@ -0,0 +1,72 @@
+package fyresmodjam.handlers;
+
+import cpw.mods.fml.common.FMLCommonHandler;
+import cpw.mods.fml.common.network.FMLIndexedMessageToMessageCodec;
+import cpw.mods.fml.common.network.NetworkRegistry;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import io.netty.buffer.ByteBuf;
+import io.netty.channel.ChannelHandlerContext;
+import net.minecraft.client.Minecraft;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.network.INetHandler;
+import net.minecraft.network.NetHandlerPlayServer;
+
+public class ChannelHandler extends FMLIndexedMessageToMessageCodec<IPacket> {
+
+ public ChannelHandler() {
+ addDiscriminator(0, BasicPacket.class);
+
+ }
+
+ @Override
+ public void encodeInto(ChannelHandlerContext ctx, IPacket packet, ByteBuf data) throws Exception {
+ packet.writeBytes(data);
+ }
+
+ @Override
+ public void decodeInto(ChannelHandlerContext ctx, ByteBuf data, IPacket packet) {
+ packet.readBytes(data);
+
+ if (packet instanceof BasicPacket) {
+ NewPacketHandler.packetTypes[((BasicPacket) packet).type].data = ((BasicPacket) packet).data;
+ }
+
+ EntityPlayer player = null;
+
+ switch (FMLCommonHandler.instance().getEffectiveSide()) {
+
+ case CLIENT:
+
+ player = getClientPlayer();
+
+ if (player != null) {
+ packet.executeClient(player);
+ packet.executeBoth(player);
+ }
+
+ break;
+
+ case SERVER:
+
+ INetHandler netHandler = ctx.channel().attr(NetworkRegistry.NET_HANDLER).get();
+ player = ((NetHandlerPlayServer) netHandler).playerEntity;
+
+ if (player != null) {
+ packet.executeServer(player);
+ packet.executeBoth(player);
+ }
+
+ break;
+
+ default:
+ break;
+
+ }
+ }
+
+ @SideOnly(Side.CLIENT)
+ public EntityPlayer getClientPlayer() {
+ return Minecraft.getMinecraft().thePlayer;
+ }
+} \ No newline at end of file
diff --git a/YWD/src/main/java/fyresmodjam/handlers/ClientTickHandler.java b/YWD/src/main/java/fyresmodjam/handlers/ClientTickHandler.java
index a8bd717..69388db 100755
--- a/YWD/src/main/java/fyresmodjam/handlers/ClientTickHandler.java
+++ b/YWD/src/main/java/fyresmodjam/handlers/ClientTickHandler.java
@@ -20,36 +20,26 @@ public class ClientTickHandler {
public void clientTick(ClientTickEvent event) {
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
- if (System.currentTimeMillis() - time > 200
- && player != null) {
+ if (System.currentTimeMillis() - time > 200 && player != null) {
if (player.openContainer != null) {
boolean sendPacket = false;
for (Object object : player.inventory.mainInventory) {
- if (object == null
- || !(object instanceof ItemStack)) {
+ if (object == null || !(object instanceof ItemStack)) {
continue;
}
ItemStack stack = (ItemStack) object;
- if (stack.getItem() != null
- && !ItemStatHelper.skip
- .contains(stack.getItem()
- .getClass())
- && (stack.getTagCompound() == null
- || !stack.getTagCompound()
- .hasKey("processed")
- || stack.getTagCompound()
- .getString("processed")
- .equals("false"))) {
+ if (stack.getItem() != null && !ItemStatHelper.skip.contains(stack.getItem().getClass())
+ && (stack.getTagCompound() == null || !stack.getTagCompound().hasKey("processed")
+ || stack.getTagCompound().getString("processed").equals("false"))) {
sendPacket = true;
}
}
if (sendPacket) {
- NewPacketHandler.UPDATE_PLAYER_ITEMS
- .sendToServer((Object) null);
+ NewPacketHandler.UPDATE_PLAYER_ITEMS.sendToServer((Object) null);
time = System.currentTimeMillis();
}
}
@@ -57,24 +47,15 @@ public class ClientTickHandler {
player.triggerAchievement(ModjamMod.startTheGame);
}
- if (FyresKeyHandler.examine
- .getKeyCode() != ConfigData.examineKey
- || FyresKeyHandler.activateBlessing
- .getKeyCode() != ConfigData.blessingKey) {
- ConfigData.examineKey = FyresKeyHandler.examine
- .getKeyCode();
- ConfigData.blessingKey = FyresKeyHandler.activateBlessing
- .getKeyCode();
+ if (FyresKeyHandler.examine.getKeyCode() != ConfigData.examineKey
+ || FyresKeyHandler.activateBlessing.getKeyCode() != ConfigData.blessingKey) {
+ ConfigData.examineKey = FyresKeyHandler.examine.getKeyCode();
+ ConfigData.blessingKey = FyresKeyHandler.activateBlessing.getKeyCode();
- Configuration config = new Configuration(
- new File(ModjamMod.configPath));
+ Configuration config = new Configuration(new File(ModjamMod.configPath));
config.load();
- config.get("Keybindings", "examine_key",
- ConfigData.examineKey)
- .set(ConfigData.examineKey);
- config.get("Keybindings", "blessing_key",
- ConfigData.blessingKey)
- .set(ConfigData.blessingKey);
+ config.get("Keybindings", "examine_key", ConfigData.examineKey).set(ConfigData.examineKey);
+ config.get("Keybindings", "blessing_key", ConfigData.blessingKey).set(ConfigData.blessingKey);
config.save();
}
}
diff --git a/YWD/src/main/java/fyresmodjam/handlers/CommonTickHandler.java b/YWD/src/main/java/fyresmodjam/handlers/CommonTickHandler.java
index 1a50f3f..2df3e3a 100755
--- a/YWD/src/main/java/fyresmodjam/handlers/CommonTickHandler.java
+++ b/YWD/src/main/java/fyresmodjam/handlers/CommonTickHandler.java
@@ -26,10 +26,8 @@ public class CommonTickHandler {
@SubscribeEvent
public void worldTick(WorldTickEvent event) {
if (event.phase == TickEvent.Phase.START) {
- if (event.world != null
- && event.world.provider.dimensionId == 0) {
- worldData = FyresWorldData
- .forWorld(event.world);
+ if (event.world != null && event.world.provider.dimensionId == 0) {
+ worldData = FyresWorldData.forWorld(event.world);
worldData.markDirty();
}
}
@@ -37,12 +35,10 @@ public class CommonTickHandler {
@SubscribeEvent
public void serverTick(ServerTickEvent event) {
- MinecraftServer server = FMLCommonHandler.instance()
- .getMinecraftServerInstance();
+ MinecraftServer server = FMLCommonHandler.instance().getMinecraftServerInstance();
for (int i = 0; i < server.worldServers.length; i++) {
- WorldServer s = FMLCommonHandler.instance()
- .getMinecraftServerInstance().worldServers[i];
+ WorldServer s = FMLCommonHandler.instance().getMinecraftServerInstance().worldServers[i];
if (s == null) {
continue;
@@ -57,10 +53,8 @@ public class CommonTickHandler {
String blessing;
- if (player.getEntityData()
- .hasKey("Blessing")) {
- blessing = player.getEntityData()
- .getString("Blessing");
+ if (player.getEntityData().hasKey("Blessing")) {
+ blessing = player.getEntityData().getString("Blessing");
} else {
blessing = null;
}
@@ -69,32 +63,21 @@ public class CommonTickHandler {
boolean blessingActive;
- if (EntityStatHelper.hasStat(player,
- "BlessingActive")) {
- blessingActive = Boolean
- .parseBoolean(EntityStatHelper
- .getStat(player, "BlessingActive"));
+ if (EntityStatHelper.hasStat(player, "BlessingActive")) {
+ blessingActive = Boolean.parseBoolean(EntityStatHelper.getStat(player, "BlessingActive"));
} else {
blessingActive = false;
}
- if (EntityStatHelper.hasStat(player,
- "BlessingCooldown")) {
- coolDown = Integer.parseInt(
- EntityStatHelper.getStat(
- player,
- "BlessingCooldown"));
+ if (EntityStatHelper.hasStat(player, "BlessingCooldown")) {
+ coolDown = Integer.parseInt(EntityStatHelper.getStat(player, "BlessingCooldown"));
if (coolDown > 0) {
coolDown--;
}
}
- if (EntityStatHelper.hasStat(player,
- "BlessingTimer")) {
- timer = Integer.parseInt(
- EntityStatHelper.getStat(
- player,
- "BlessingTimer"));
+ if (EntityStatHelper.hasStat(player, "BlessingTimer")) {
+ timer = Integer.parseInt(EntityStatHelper.getStat(player, "BlessingTimer"));
if (blessingActive) {
timer++;
} else {
@@ -102,25 +85,16 @@ public class CommonTickHandler {
}
}
- if (EntityStatHelper.hasStat(player,
- "BlessingCounter")) {
- counter = Integer.parseInt(
- EntityStatHelper.getStat(
- player,
- "BlessingCounter"));
+ if (EntityStatHelper.hasStat(player, "BlessingCounter")) {
+ counter = Integer.parseInt(EntityStatHelper.getStat(player, "BlessingCounter"));
if (BlessingUtils.hasBlessing(player)) {
- if (blessingActive
- && BlessingUtils.hasBlessing(player, "BlessingBerserker")
+ if (blessingActive && BlessingUtils.hasBlessing(player, "BlessingBerserker")
&& timer % 40 == 0) {
- counter = Math.max(
- 0,
- counter - 1);
+ counter = Math.max(0, counter - 1);
if (counter == 0) {
- NewPacketHandler.SEND_MESSAGE
- .sendToPlayer(player,
- "\u00A7cYou calm down.");
+ NewPacketHandler.SEND_MESSAGE.sendToPlayer(player, "\u00A7cYou calm down.");
coolDown = 1200;
timer = 0;
blessingActive = false;
@@ -133,29 +107,15 @@ public class CommonTickHandler {
BlessingUtils.getBlessingInstance(blessing).commonTick(event, player);
}
- if (EntityStatHelper.hasStat(player,
- "BlessingCounter")
- && Integer.parseInt(
- EntityStatHelper.getStat(
- player,
- "BlessingCounter")) != counter) {
- NewPacketHandler.UPDATE_STAT
- .sendToPlayer(player,
- "BlessingCounter",
- "" + counter);
+ if (EntityStatHelper.hasStat(player, "BlessingCounter")
+ && Integer.parseInt(EntityStatHelper.getStat(player, "BlessingCounter")) != counter) {
+ NewPacketHandler.UPDATE_STAT.sendToPlayer(player, "BlessingCounter", "" + counter);
}
- EntityStatHelper.giveStat(player,
- "BlessingActive",
- blessingActive);
- EntityStatHelper.giveStat(player,
- "BlessingCooldown",
- coolDown);
- EntityStatHelper.giveStat(player,
- "BlessingCounter",
- counter);
- EntityStatHelper.giveStat(player,
- "BlessingTimer", timer);
+ EntityStatHelper.giveStat(player, "BlessingActive", blessingActive);
+ EntityStatHelper.giveStat(player, "BlessingCooldown", coolDown);
+ EntityStatHelper.giveStat(player, "BlessingCounter", counter);
+ EntityStatHelper.giveStat(player, "BlessingTimer", timer);
}
@@ -168,128 +128,77 @@ public class CommonTickHandler {
EntityItem item = (EntityItem) o;
if (((EntityItem) o).isBurning()) {
- ItemStack stack = item
- .getDataWatcher()
- .getWatchableObjectItemStack(
- 10);
+ ItemStack stack = item.getDataWatcher().getWatchableObjectItemStack(10);
- if (canAdvanceBurnTaskProgress(
- stack)) {
+ if (canAdvanceBurnTaskProgress(stack)) {
worldData.progress += stack.stackSize;
((EntityItem) o).isDead = true;
String name1;
- if (CommonTickHandler.worldData.currentTask
- .equals("Kill")) {
+ if (CommonTickHandler.worldData.currentTask.equals("Kill")) {
name1 = FyresWorldData.validMobNames[CommonTickHandler.worldData.currentTaskID];
} else {
name1 = FyresWorldData.validItems[CommonTickHandler.worldData.currentTaskID]
.getDisplayName();
}
- if (name1.contains(
- "Block")) {
- if (name1.contains(
- "Block")) {
- name1 = name1.replace(
- "Block",
- "Blocks")
- .replace("block",
- "blocks");
+ if (name1.contains("Block")) {
+ if (name1.contains("Block")) {
+ name1 = name1.replace("Block", "Blocks").replace("block", "blocks");
}
} else {
name1 += "s";
}
- NewPacketHandler.SEND_MESSAGE
- .sendToAllPlayers(
- "\u00A7fCurrent Goal Progress: "
- + worldData.progress
- + "/"
- + worldData.currentTaskAmount
- + " "
- + name1
- + " "
- + worldData.currentTask
- + "ed.");
+ NewPacketHandler.SEND_MESSAGE.sendToAllPlayers("\u00A7fCurrent Goal Progress: "
+ + worldData.progress + "/" + worldData.currentTaskAmount + " " + name1 + " "
+ + worldData.currentTask + "ed.");
if (worldData.progress >= worldData.currentTaskAmount) {
worldData.progress = 0;
worldData.tasksCompleted++;
- NewPacketHandler.LEVEL_UP
- .sendToAllPlayers(
- worldData.rewardLevels);
+ NewPacketHandler.LEVEL_UP.sendToAllPlayers(worldData.rewardLevels);
worldData.giveNewTask();
String name;
- if (worldData.currentTask
- .equals("Kill")) {
+ if (worldData.currentTask.equals("Kill")) {
name = FyresWorldData.validMobNames[worldData.currentTaskID];
} else {
- name = FyresWorldData.validItems[worldData.currentTaskID]
- .getDisplayName();
+ name = FyresWorldData.validItems[worldData.currentTaskID].getDisplayName();
}
if (worldData.currentTaskAmount > 1) {
- if (name.contains(
- "Block")) {
- if (name.contains(
- "Block")) {
- name = name.replace(
- "Block",
- "Blocks")
- .replace("block",
- "blocks");
+ if (name.contains("Block")) {
+ if (name.contains("Block")) {
+ name = name.replace("Block", "Blocks").replace("block", "blocks");
}
} else {
name += "s";
}
}
- NewPacketHandler.SEND_MESSAGE
- .sendToAllPlayers(
- "\u00A7eA world goal has been completed!"
- + (!worldData.getDisadvantage()
- .equals("None") ? " World disadvantage has been lifted!"
- : ""));
-
- NewPacketHandler.SEND_MESSAGE
- .sendToAllPlayers(
- "\u00A7eA new world goal has been set: "
- + (worldData.currentTask
- + " "
- + worldData.currentTaskAmount
- + " "
- + name
- + ". ("
- + worldData.progress
- + " "
- + worldData.currentTask
- + "ed)"));
+ NewPacketHandler.SEND_MESSAGE.sendToAllPlayers("\u00A7eA world goal has been completed!"
+ + (!worldData.getDisadvantage().equals("None")
+ ? " World disadvantage has been lifted!"
+ : ""));
+
+ NewPacketHandler.SEND_MESSAGE.sendToAllPlayers("\u00A7eA new world goal has been set: "
+ + (worldData.currentTask + " " + worldData.currentTaskAmount + " " + name
+ + ". (" + worldData.progress + " " + worldData.currentTask + "ed)"));
worldData.currentDisadvantage = "None";
}
- NewPacketHandler.UPDATE_WORLD_DATA
- .sendToAllPlayers(
- worldData.potionValues,
- worldData.potionDurations,
- worldData.getDisadvantage(),
- worldData.currentTask,
- worldData.currentTaskID,
- worldData.currentTaskAmount,
- worldData.progress,
- worldData.tasksCompleted,
- worldData.enderDragonKilled,
- ConfigData.spawnTraps,
- worldData.rewardLevels,
- worldData.mushroomColors);
-
- worldData.setDirty(
- true);
+ NewPacketHandler.UPDATE_WORLD_DATA.sendToAllPlayers(worldData.potionValues,
+ worldData.potionDurations, worldData.getDisadvantage(), worldData.currentTask,
+ worldData.currentTaskID, worldData.currentTaskAmount, worldData.progress,
+ worldData.tasksCompleted, worldData.enderDragonKilled, ConfigData.spawnTraps,
+ worldData.rewardLevels, worldData.mushroomColors);
+
+ worldData.setDirty(true);
}
}
}
@@ -299,8 +208,7 @@ public class CommonTickHandler {
for (Entity e : addLater) {
WorldServer world = null;
- for (WorldServer s : MinecraftServer
- .getServer().worldServers) {
+ for (WorldServer s : MinecraftServer.getServer().worldServers) {
if (s.provider.dimensionId == e.dimension) {
world = s;
break;
@@ -315,30 +223,16 @@ public class CommonTickHandler {
addLater.clear();
if (worldData != null) {
- if (worldData.getDisadvantage()
- .equals("Neverending Rain")) {
- if (!MinecraftServer
- .getServer().worldServers[0]
- .getWorldInfo()
- .isRaining()) {
- MinecraftServer.getServer().worldServers[0]
- .getWorldInfo()
- .setRaining(true);
+ if (worldData.getDisadvantage().equals("Neverending Rain")) {
+ if (!MinecraftServer.getServer().worldServers[0].getWorldInfo().isRaining()) {
+ MinecraftServer.getServer().worldServers[0].getWorldInfo().setRaining(true);
}
- if (!MinecraftServer
- .getServer().worldServers[0]
- .getWorldInfo()
- .isThundering()) {
- MinecraftServer.getServer().worldServers[0]
- .getWorldInfo()
- .setThundering(true);
+ if (!MinecraftServer.getServer().worldServers[0].getWorldInfo().isThundering()) {
+ MinecraftServer.getServer().worldServers[0].getWorldInfo().setThundering(true);
}
- } else if (worldData.getDisadvantage()
- .equals("Neverending Night")) {
- MinecraftServer.getServer().worldServers[0]
- .getWorldInfo()
- .setWorldTime(18000);
+ } else if (worldData.getDisadvantage().equals("Neverending Night")) {
+ MinecraftServer.getServer().worldServers[0].getWorldInfo().setWorldTime(18000);
}
}
}
@@ -346,17 +240,18 @@ public class CommonTickHandler {
private boolean canAdvanceBurnTaskProgress(ItemStack stack) {
String task = worldData.currentTask;
- if(task == null || !(task.equals("Burn"))) return false;
+ if (task == null || !(task.equals("Burn")))
+ return false;
- if(stack != null && stack.getItem() != null) {
+ if (stack != null && stack.getItem() != null) {
ItemStack target = FyresWorldData.validItems[worldData.currentTaskID];
- if(target != null && target.getItem() != null) {
- if(stack.getItem() != target.getItem()) {
+ if (target != null && target.getItem() != null) {
+ if (stack.getItem() != target.getItem()) {
return false;
}
- if(stack.getItemDamage() != target.getItemDamage()) {
+ if (stack.getItemDamage() != target.getItemDamage()) {
return false;
}
diff --git a/YWD/src/main/java/fyresmodjam/handlers/FyresKeyHandler.java b/YWD/src/main/java/fyresmodjam/handlers/FyresKeyHandler.java
index 4b3dd35..55cb2ed 100755
--- a/YWD/src/main/java/fyresmodjam/handlers/FyresKeyHandler.java
+++ b/YWD/src/main/java/fyresmodjam/handlers/FyresKeyHandler.java
@@ -16,21 +16,16 @@ import fyresmodjam.tileentities.TileEntityTrap;
import net.minecraft.client.Minecraft;
import net.minecraft.client.settings.KeyBinding;
import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.MovingObjectPosition.MovingObjectType;
public class FyresKeyHandler {
- public static KeyBinding examine = new KeyBinding(
- "Examine", Keyboard.KEY_X, "YWD");
- public static KeyBinding activateBlessing = new KeyBinding(
- "Activate Blessing", Keyboard.KEY_K, "YWD");
+ public static KeyBinding examine = new KeyBinding("Examine", Keyboard.KEY_X, "YWD");
+ public static KeyBinding activateBlessing = new KeyBinding("Activate Blessing", Keyboard.KEY_K, "YWD");
- public static KeyBinding[] keyBindings = new KeyBinding[] {
- examine, activateBlessing
- };
+ public static KeyBinding[] keyBindings = new KeyBinding[] { examine, activateBlessing };
public FyresKeyHandler() {
for (KeyBinding k : keyBindings) {
@@ -46,143 +41,84 @@ public class FyresKeyHandler {
if (player != null) {
if (examine.isPressed()) {
- if (minecraft.objectMouseOver != null) {
-
- MovingObjectPosition o = minecraft.objectMouseOver;
-
- if (o.typeOfHit == MovingObjectType.BLOCK) {
- int x = minecraft.objectMouseOver.blockX;
- int y = minecraft.objectMouseOver.blockY;
- int z = minecraft.objectMouseOver.blockZ;
-
- if (minecraft.theWorld
- .getBlock(x, y, z) == ModjamMod.blockPillar
- && (minecraft.theWorld
- .getBlockMetadata(
- x,
- y,
- z)
- % 2) == 1) {
- y--;
- }
-
- TileEntity te = minecraft.theWorld
- .getTileEntity(x,
- y,
- z);
-
- if (te != null && te instanceof TileEntityPillar) {
- Blessing bless = BlessingUtils
- .getBlessingInstance(
- ((TileEntityPillar) te).blessing);
-
- String s = "@\u00A7e "
- + bless.customName()
- + "\n"
- + bless.description()
- + ".";
-
- for (String s2 : s
- .split("@")) {
-
- NewPacketHandler.SEND_MESSAGE.data = new Object[] {
- s2
- };
- NewPacketHandler.SEND_MESSAGE
- .executeClient(Minecraft
- .getMinecraft().thePlayer);
- }
-
- } else if (te != null
- && te instanceof TileEntityTrap) {
- String placedBy = ((TileEntityTrap) te).placedBy;
-
- String s = (placedBy != null
- ? "\u00A7eThis " + ItemTrap.names[te
- .getBlockMetadata()
- % BlockTrap.trapTypes]
- .toLowerCase()
- + " was placed by "
- + (placedBy.equals(
- player.getCommandSenderName())
- ? "you"
- : placedBy)
- + "."
- : "\u00A7eThis " + ItemTrap.names[te
- .getBlockMetadata()
- % BlockTrap.trapTypes]
- .toLowerCase()
- + " doesn't seem to have been placed by anyone.");
- s += " \u00A7eTrap is set to "
- + TileEntityTrap.settings[((TileEntityTrap) te).setting]
- + ".";
-
- NewPacketHandler.SEND_MESSAGE.data = new Object[] {
- s
- };
- NewPacketHandler.SEND_MESSAGE
- .executeClient(Minecraft
- .getMinecraft().thePlayer);
- } else {
- ItemStack stack = new ItemStack(
- minecraft.theWorld
- .getBlock(x, y, z),
- 1,
- minecraft.theWorld
- .getBlockMetadata(
- x,
- y,
- z));
-
- if (stack.getItem() != null) {
- String name = stack
- .getDisplayName()
- .toLowerCase();
-
- NewPacketHandler.SEND_MESSAGE.data = new Object[] {
- "\u00A7eIt's a " + name
- + (!name.contains(
- "block") ? " block."
- : ".")
- };
- NewPacketHandler.SEND_MESSAGE
- .executeClient(Minecraft
- .getMinecraft().thePlayer);
- }
- }
- } else if (o.typeOfHit == MovingObjectType.ENTITY
- && o.entityHit != null) {
- NewPacketHandler.EXAMINE_MOB
- .sendToServer(o.entityHit.dimension,
- o.entityHit.getEntityId());
- }
- }
+ doExamine(minecraft, player);
}
if (activateBlessing.isPressed()) {
- String blessing = player
- .getEntityData()
- .getString("Blessing");
-
- if (blessing != null) {
- FMLLog.info("Triggering blessing");
-
- if (minecraft.objectMouseOver != null) {
- MovingObjectPosition o = minecraft.objectMouseOver;
- if (o.typeOfHit == MovingObjectType.BLOCK) {
- NewPacketHandler.ACTIVATE_BLESSING
- .sendToServer(minecraft.objectMouseOver.blockX,
- minecraft.objectMouseOver.blockY,
- minecraft.objectMouseOver.blockZ);
- }
- } else {
- NewPacketHandler.ACTIVATE_BLESSING
- .sendToServer(player.chunkCoordX,
- player.chunkCoordY,
- player.chunkCoordZ);
- }
+ doActivateBlessing(minecraft, player);
+ }
+ }
+ }
+ }
+
+ private void doActivateBlessing(Minecraft minecraft, EntityPlayer player) {
+ String blessing = player.getEntityData().getString("Blessing");
+
+ if (blessing != null) {
+ FMLLog.info("Triggering blessing");
+
+ if (minecraft.objectMouseOver != null) {
+ MovingObjectPosition o = minecraft.objectMouseOver;
+ if (o.typeOfHit == MovingObjectType.BLOCK) {
+ NewPacketHandler.ACTIVATE_BLESSING.sendToServer(minecraft.objectMouseOver.blockX,
+ minecraft.objectMouseOver.blockY, minecraft.objectMouseOver.blockZ);
+ }
+ } else {
+ NewPacketHandler.ACTIVATE_BLESSING.sendToServer(player.chunkCoordX, player.chunkCoordY,
+ player.chunkCoordZ);
+ }
+ }
+ }
+
+ private void doExamine(Minecraft minecraft, EntityPlayer player) {
+ if (minecraft.objectMouseOver != null) {
+ MovingObjectPosition o = minecraft.objectMouseOver;
+
+ if (o.typeOfHit == MovingObjectType.BLOCK) {
+ int x = minecraft.objectMouseOver.blockX;
+ int y = minecraft.objectMouseOver.blockY;
+ int z = minecraft.objectMouseOver.blockZ;
+
+ if (minecraft.theWorld.getBlock(x, y, z) == ModjamMod.blockPillar
+ && (minecraft.theWorld.getBlockMetadata(x, y, z) % 2) == 1) {
+ y--;
+ }
+
+ TileEntity te = minecraft.theWorld.getTileEntity(x, y, z);
+
+ if (te != null && te instanceof TileEntityPillar) {
+ Blessing bless = BlessingUtils.getBlessingInstance(((TileEntityPillar) te).blessing);
+
+ String s = "@\u00A7e " + bless.customName() + "\n" + bless.description() + ".";
+
+ for (String s2 : s.split("@")) {
+
+ NewPacketHandler.SEND_MESSAGE.data = new Object[] { s2 };
+ NewPacketHandler.SEND_MESSAGE.executeClient(Minecraft.getMinecraft().thePlayer);
}
+
+ } else if (te != null && te instanceof TileEntityTrap) {
+ String placedBy = ((TileEntityTrap) te).placedBy;
+
+ String s = (placedBy != null
+ ? "\u00A7eThis " + ItemTrap.names[te.getBlockMetadata() % BlockTrap.trapTypes].toLowerCase()
+ + " was placed by "
+ + (placedBy.equals(player.getCommandSenderName()) ? "you" : placedBy) + "."
+ : "\u00A7eThis " + ItemTrap.names[te.getBlockMetadata() % BlockTrap.trapTypes].toLowerCase()
+ + " doesn't seem to have been placed by anyone.");
+ s += " \u00A7eTrap is set to " + TileEntityTrap.settings[((TileEntityTrap) te).setting] + ".";
+
+ NewPacketHandler.SEND_MESSAGE.data = new Object[] { s };
+ NewPacketHandler.SEND_MESSAGE.executeClient(Minecraft.getMinecraft().thePlayer);
+ } else {
+ String name = minecraft.theWorld.getBlock(x, y, z).getLocalizedName().toLowerCase();
+
+ NewPacketHandler.SEND_MESSAGE.data = new Object[] {
+ "\u00A7eIt's a " + name + (!name.contains("block") ? " block." : ".") };
+ NewPacketHandler.SEND_MESSAGE.executeClient(Minecraft.getMinecraft().thePlayer);
}
+ } else if (o.typeOfHit == MovingObjectType.ENTITY && o.entityHit != null) {
+ NewPacketHandler.EXAMINE_MOB.sendToServer(o.entityHit.dimension, o.entityHit.getEntityId());
}
}
}
diff --git a/YWD/src/main/java/fyresmodjam/handlers/GUIHandler.java b/YWD/src/main/java/fyresmodjam/handlers/GUIHandler.java
index 207a569..eb61f54 100755
--- a/YWD/src/main/java/fyresmodjam/handlers/GUIHandler.java
+++ b/YWD/src/main/java/fyresmodjam/handlers/GUIHandler.java
@@ -7,14 +7,12 @@ import net.minecraft.world.World;
public class GUIHandler implements IGuiHandler {
@Override
- public Object getServerGuiElement(int ID, EntityPlayer player,
- World world, int x, int y, int z) {
+ public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
return null;
}
@Override
- public Object getClientGuiElement(int ID, EntityPlayer player,
- World world, int x, int y, int z) {
+ public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
return null;
}
diff --git a/YWD/src/main/java/fyresmodjam/handlers/IPacket.java b/YWD/src/main/java/fyresmodjam/handlers/IPacket.java
new file mode 100644
index 0000000..558c28b
--- /dev/null
+++ b/YWD/src/main/java/fyresmodjam/handlers/IPacket.java
@@ -0,0 +1,16 @@
+package fyresmodjam.handlers;
+
+import io.netty.buffer.ByteBuf;
+import net.minecraft.entity.player.EntityPlayer;
+
+public interface IPacket {
+ public void readBytes(ByteBuf bytes);
+
+ public void writeBytes(ByteBuf bytes);
+
+ public void executeClient(EntityPlayer player);
+
+ public void executeServer(EntityPlayer player);
+
+ public void executeBoth(EntityPlayer player);
+} \ No newline at end of file
diff --git a/YWD/src/main/java/fyresmodjam/handlers/NewPacketHandler.java b/YWD/src/main/java/fyresmodjam/handlers/NewPacketHandler.java
index 787a8c9..9a85d40 100755
--- a/YWD/src/main/java/fyresmodjam/handlers/NewPacketHandler.java
+++ b/YWD/src/main/java/fyresmodjam/handlers/NewPacketHandler.java
@@ -1,30 +1,19 @@
package fyresmodjam.handlers;
-import java.nio.charset.Charset;
-import java.util.ArrayList;
-
-import cpw.mods.fml.common.FMLCommonHandler;
-import cpw.mods.fml.common.network.FMLIndexedMessageToMessageCodec;
import cpw.mods.fml.common.network.FMLOutboundHandler;
-import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
import fyresmodjam.ModjamMod;
import fyresmodjam.blessings.BlessingUtils;
import fyresmodjam.blocks.BlockTrap;
+import fyresmodjam.misc.DamageSources;
import fyresmodjam.misc.EntityStatHelper;
import fyresmodjam.misc.ItemStatHelper;
import fyresmodjam.tileentities.TileEntityTrap;
-import io.netty.buffer.ByteBuf;
-import io.netty.channel.ChannelHandlerContext;
-import net.minecraft.client.Minecraft;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
-import net.minecraft.network.INetHandler;
-import net.minecraft.network.NetHandlerPlayServer;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
@@ -38,933 +27,378 @@ public class NewPacketHandler {
public static BasicPacket[] packetTypes = new BasicPacket[256];
- public static int[] potionValues = new int[12];
- public static int[] potionDurations = new int[12];
+ public static int[] potionValues = new int[12];
+ public static int[] potionDurations = new int[12];
public static int[][] mushroomColors = new int[13][2];
public static String currentDisadvantage = null;
- public static String currentTask = null;
- public static int currentTaskID = -1;
- public static int currentTaskAmount = 0;
- public static int progress = 0;
- public static int tasksCompleted = 0;
- public static int rewardLevels = 0;
-
- public static boolean enderDragonKilled = false;
- public static boolean trapsDisabled = false;
-
- public static interface IPacket {
- public void readBytes(ByteBuf bytes);
+ public static String currentTask = null;
+ public static int currentTaskID = -1;
+ public static int currentTaskAmount = 0;
+ public static int progress = 0;
+ public static int tasksCompleted = 0;
+ public static int rewardLevels = 0;
- public void writeBytes(ByteBuf bytes);
+ public static boolean enderDragonKilled = false;
+ public static boolean trapsDisabled = false;
- public void executeClient(EntityPlayer player);
+ public static void sendPacketToPlayer(IPacket packet, EntityPlayer player) {
+ ModjamMod.channels.get(Side.SERVER).attr(FMLOutboundHandler.FML_MESSAGETARGET)
+ .set(FMLOutboundHandler.OutboundTarget.PLAYER);
+ ModjamMod.channels.get(Side.SERVER).attr(FMLOutboundHandler.FML_MESSAGETARGETARGS).set(player);
+ ModjamMod.channels.get(Side.SERVER).writeOutbound(packet);
+ }
- public void executeServer(EntityPlayer player);
+ public static void sendPacketToAllPlayers(IPacket packet) {
+ ModjamMod.channels.get(Side.SERVER).attr(FMLOutboundHandler.FML_MESSAGETARGET)
+ .set(FMLOutboundHandler.OutboundTarget.ALL);
+ ModjamMod.channels.get(Side.SERVER).writeOutbound(packet);
+ }
- public void executeBoth(EntityPlayer player);
+ public static void sendPacketToServer(IPacket packet) {
+ ModjamMod.channels.get(Side.CLIENT).attr(FMLOutboundHandler.FML_MESSAGETARGET)
+ .set(FMLOutboundHandler.OutboundTarget.TOSERVER);
+ ModjamMod.channels.get(Side.CLIENT).writeOutbound(packet);
}
- public static class ChannelHandler
- extends FMLIndexedMessageToMessageCodec<IPacket> {
+ public static final BasicPacket UPDATE_BLESSING = new BasicPacket(1) {
+ @Override
+ public void executeBoth(EntityPlayer player) {
+ player.getEntityData().setString("Blessing", (String) data[0]);
+ }
+
+ @Override
+ public Class[] getExpectedClasses() {
+ return new Class[] { String.class };
+ }
+ };
- public ChannelHandler() {
- addDiscriminator(0, BasicPacket.class);
+ public static final BasicPacket PLAY_SOUND = new BasicPacket(2) {
+ @Override
+ public void executeServer(EntityPlayer player) {
+ String sound = (String) data[0];
+ int x = (Integer) data[1], y = (Integer) data[2], z = (Integer) data[3];
+ player.worldObj.playSound(x, y, z, "fyresmodjam:" + sound, 1.0F, 1.0F, false);
+ }
+ @Override
+ public Class[] getExpectedClasses() {
+ return new Class[] { String.class, Integer.class, Integer.class, Integer.class };
}
+ };
+ public static final BasicPacket UPDATE_POTION_KNOWLEDGE = new BasicPacket(3) {
@Override
- public void encodeInto(ChannelHandlerContext ctx,
- IPacket packet, ByteBuf data)
- throws Exception {
- packet.writeBytes(data);
+ public void executeBoth(EntityPlayer player) {
+ player.getEntityData().setIntArray("PotionKnowledge", (int[]) data[0]);
}
@Override
- public void decodeInto(ChannelHandlerContext ctx,
- ByteBuf data, IPacket packet) {
- packet.readBytes(data);
+ public Class[] getExpectedClasses() {
+ return new Class[] { int[].class };
+ }
+ };
- if (packet instanceof BasicPacket) {
- packetTypes[((BasicPacket) packet).type].data = ((BasicPacket) packet).data;
- }
+ public static final BasicPacket SEND_MESSAGE = new BasicPacket(4) {
+ @Override
+ public void executeClient(EntityPlayer player) {
+ String style = "";
- EntityPlayer player = null;
+ for (String s : ((String) data[0]).split("@")) {
+ String[] words = s.split(" ");
+ s = "";
- switch (FMLCommonHandler.instance()
- .getEffectiveSide()) {
+ for (String word : words) {
+ s += style + word + " ";
- case CLIENT:
+ while (word.contains("\u00A7")) {
+ int firstOccurance = word.indexOf("\u00A7");
+ String string = word.substring(firstOccurance, firstOccurance + 2);
- player = getClientPlayer();
+ if (style.contains(string)) {
+ style = style.replace(string, "");
+ }
+ style += string;
+ if (string.equals("\u00A7r")) {
+ style = "";
+ }
- if (player != null) {
- packet.executeClient(
- player);
- packet.executeBoth(player);
+ word = word.replaceFirst(string, "");
}
+ }
- break;
-
- case SERVER:
+ player.addChatComponentMessage(new ChatComponentText(s));
+ }
+ }
- INetHandler netHandler = ctx
- .channel()
- .attr(NetworkRegistry.NET_HANDLER)
- .get();
- player = ((NetHandlerPlayServer) netHandler).playerEntity;
+ @Override
+ public Class[] getExpectedClasses() {
+ return new Class[] { String.class };
+ }
+ };
- if (player != null) {
- packet.executeServer(
- player);
- packet.executeBoth(player);
- }
+ public static final BasicPacket UPDATE_WORLD_DATA = new BasicPacket(5) {
+ @Override
+ public void executeClient(EntityPlayer player) {
+ potionValues = (int[]) data[0];
+ potionDurations = (int[]) data[1];
+ currentDisadvantage = (String) data[2];
+ currentTask = (String) data[3];
+ currentTaskID = (Integer) data[4];
+ currentTaskAmount = (Integer) data[5];
+ progress = (Integer) data[6];
+ tasksCompleted = (Integer) data[7];
+ enderDragonKilled = (Boolean) data[8];
+ trapsDisabled = !((Boolean) data[9]);
+ rewardLevels = (Integer) data[10];
+ mushroomColors = (int[][]) data[11];
+ }
- break;
+ @Override
+ public Class[] getExpectedClasses() {
+ return new Class[] { int[].class, int[].class, String.class, String.class, Integer.class, Integer.class,
+ Integer.class, Integer.class, Boolean.class, Boolean.class, Integer.class, int[][].class };
+ }
+ };
- default:
- break;
+ public static final BasicPacket UPDATE_PLAYER_ITEMS = new BasicPacket(6) {
+ @Override
+ public void executeServer(EntityPlayer player) {
+ for (Object stack : player.inventory.mainInventory) {
+ if (stack == null || !(stack instanceof ItemStack)) {
+ continue;
+ }
+ ItemStatHelper.processItemStack((ItemStack) stack, ModjamMod.r);
}
}
- @SideOnly(Side.CLIENT)
- public EntityPlayer getClientPlayer() {
- return Minecraft.getMinecraft().thePlayer;
+ @Override
+ public Class[] getExpectedClasses() {
+ return null;
}
- }
+ };
- public static class BasicPacket implements IPacket {
- public static Class[] validClassArray = {
- Integer.class, Boolean.class, String.class,
- Character.class, Byte.class, Float.class,
- Double.class, int[].class, int[][].class
- };
- public static ArrayList<Class> validClasses = new ArrayList<Class>();
- static {
- for (Class c : validClassArray) {
- validClasses.add(c);
- }
- }
+ public final static BasicPacket DISARM_TRAP = new BasicPacket(7) {
+ @Override
+ public void executeServer(EntityPlayer player) {
+ int blockX = (Integer) data[0], blockY = (Integer) data[1], blockZ = (Integer) data[2];
+ boolean mechanic = (Boolean) data[3];
- public Object[] data = null;
- public byte type;
+ boolean isScout = BlessingUtils.hasBlessing(player, "MarkScouting");
- public BasicPacket() {
- }
+ TileEntity te = player.worldObj.getTileEntity(blockX, blockY, blockZ);
- public BasicPacket(int type) {
- if (type == 0 || packetTypes[type] != null) {
- throw new RuntimeException("Packet slot "
- + type
- + " already in use.");
- }
- packetTypes[type] = this;
- this.type = (byte) type;
- }
+ boolean isValidTrap = te == null || !(te instanceof TileEntityTrap);
+ boolean yours = isValidTrap ? false : player.getCommandSenderName().equals(((TileEntityTrap) te).placedBy);
- public BasicPacket(BasicPacket packet, Object... data) {
- if (packet.type > 0
- && packet.type < packetTypes.length
- && packet == packetTypes[packet.type]) {
- type = packet.type;
- } else {
- throw new RuntimeException(
- "Must supply valid packet type.");
- }
+ if (yours || (mechanic ? ModjamMod.r.nextInt(4) != 0 : ModjamMod.r.nextInt(4) == 0)) {
+ boolean salvage = yours || (mechanic ? ModjamMod.r.nextBoolean() : (ModjamMod.r.nextInt(4) == 0));
- Class[] classes = getExpectedClasses();
+ SEND_MESSAGE.sendToPlayer(player,
+ "\u00A7e\u00A7o" + (!salvage ? "You disarmed the trap." : "You disarm and salvage the trap."));
- if (classes != null) {
- for (Class c : classes) {
- if (!validClasses.contains(c)) {
- throw new RuntimeException(
- "Argument class not valid. ("
- + c
- + ")");
- }
- }
+ if (salvage) {
+ ItemStack spawned = new ItemStack(ModjamMod.itemTrap, 1,
+ player.worldObj.getBlockMetadata(blockX, blockY, blockZ) % BlockTrap.trapTypes);
- if (data == null || data.length != classes.length) {
- throw new RuntimeException(
- "Wrong number of arguments provided.");
- } else {
- for (int i = 0; i < data.length; i++) {
- if (data[i].getClass() != classes[i]) {
- throw new RuntimeException(
- "Wrong argument class provided. ("
- + data[i].getClass()
- + ", expected "
- + classes[i]
- + ")");
- }
- }
+ player.worldObj.spawnEntityInWorld(
+ new EntityItem(player.worldObj, blockX + 0.5F, blockY, blockZ + 0.5F, spawned));
}
- }
- this.data = data;
- }
+ player.worldObj.setBlockToAir(blockX, blockY, blockZ);
+ } else {
+ int trapType = player.worldObj.getBlockMetadata(blockX, blockY, blockZ);
- @Override
- public void readBytes(ByteBuf bytes) {
- type = bytes.readByte();
+ if (trapType % BlockTrap.trapTypes == 0) {
+ // Spike trap
- Class[] classes = getExpectedClasses();
+ player.attackEntityFrom(DamageSources.trap, 4.0F + (isScout ? 1 : 0));
- if (classes != null) {
- data = new Object[classes.length];
+ if (ModjamMod.r.nextInt(16 - (isScout ? 4 : 0)) == 0) {
+ // Spike traps have a chance to poison the player
+ PotionEffect poisonEff = new PotionEffect(Potion.poison.id, 100 + (isScout ? 25 : 0), 1);
- for (int i = 0; i < classes.length; i++) {
- if (classes[i] == Integer.class) {
- data[i] = bytes.readInt();
- }
- if (classes[i] == int[].class) {
- int[] array = new int[bytes
- .readInt()];
- for (int i2 = 0; i2 < array.length; i2++) {
- array[i2] = bytes
- .readInt();
- }
- data[i] = array;
+ ((EntityLivingBase) player).addPotionEffect(poisonEff);
}
- if (classes[i] == int[][].class) {
- int[][] array = new int[bytes
- .readInt()][];
-
- for (int i2 = 0; i2 < array.length; i2++) {
- array[i2] = new int[bytes
- .readInt()];
- for (int i3 = 0; i3 < array[i2].length; i3++) {
- array[i2][i3] = bytes
- .readInt();
- }
- }
+ } else if (trapType % BlockTrap.trapTypes == 1) {
+ // Flame trap
- data[i] = array;
- } else if (classes[i] == Boolean.class) {
- data[i] = bytes.readBoolean();
- } else if (classes[i] == String.class) {
- int length = bytes
- .readInt();
- try {
- byte[] stringBytes = new byte[length];
- bytes.readBytes(stringBytes);
- data[i] = new String(
- stringBytes,
- "UTF-8");
- } catch (Exception e) {
- e.printStackTrace();
- }
- } else if (classes[i] == Byte.class) {
- data[i] = bytes.readByte();
- } else if (classes[i] == Float.class) {
- data[i] = bytes.readDouble();
- } else if (classes[i] == Double.class) {
- data[i] = bytes.readFloat();
- } else if (classes[i] == Character.class) {
- data[i] = bytes.readChar();
+ if (!player.isBurning()) {
+ player.setFire(5 + (isScout ? 1 : 0));
}
+ } else if (trapType % BlockTrap.trapTypes == 2) {
+ // Smoke trap
+
+ PotionEffect blindEff = new PotionEffect(Potion.blindness.id, 100 + (isScout ? 25 : 0), 1);
+ PotionEffect slowEff = new PotionEffect(Potion.moveSlowdown.id, 100 + (isScout ? 25 : 0), 1);
+
+ player.addPotionEffect(blindEff);
+ player.addPotionEffect(slowEff);
}
- }
- }
- @Override
- public void writeBytes(ByteBuf bytes) {
- bytes.writeByte(type);
-
- if (data != null) {
- for (int i = 0; i < data.length; i++) {
- if (data[i] instanceof Integer) {
- bytes.writeInt((Integer) data[i]);
- } else if (data[i] instanceof int[]) {
- bytes.writeInt(((int[]) data[i]).length);
- for (int i2 = 0; i2 < ((int[]) data[i]).length; i2++) {
- bytes.writeInt(((int[]) data[i])[i2]);
- }
- } else if (data[i] instanceof int[][]) {
- int[][] values = (int[][]) data[i];
+ player.worldObj.setBlockToAir(blockX, blockY, blockZ);
- bytes.writeInt(values.length);
+ SEND_MESSAGE.sendToPlayer(player, "\u00A7c\u00A7oYou failed to disarm the trap.");
- for (int i2 = 0; i2 < values.length; i2++) {
- bytes.writeInt(values[i2].length);
- for (int i3 = 0; i3 < values[i2].length; i3++) {
- bytes.writeInt(values[i2][i3]);
- }
- }
- } else if (data[i] instanceof Boolean) {
- bytes.writeBoolean(
- (Boolean) data[i]);
- } else if (data[i] instanceof String) {
- byte[] stringBytes = ((String) data[i])
- .getBytes(Charset
- .forName("UTF-8"));
- bytes.writeInt(stringBytes.length);
- bytes.writeBytes(
- stringBytes);
- } else if (data[i] instanceof Byte) {
- bytes.writeByte((Byte) data[i]);
- } else if (data[i] instanceof Float) {
- bytes.writeDouble(
- (Double) data[i]);
- } else if (data[i] instanceof Double) {
- bytes.writeFloat(
- (Float) data[i]);
- } else if (data[i] instanceof Character) {
- bytes.writeChar((Character) data[i]);
- }
+ if (CommonTickHandler.worldData.getDisadvantage().equals("Explosive Traps")) {
+ player.worldObj.setBlockToAir(blockX, blockY, blockZ);
+ player.worldObj.createExplosion(null, blockX + 0.5F, blockY + 0.5F, blockZ + 0.5F, 1.33F, true);
}
+
+ player.triggerAchievement(ModjamMod.whoops);
}
}
@Override
- public void executeClient(EntityPlayer player) {
- if (packetTypes[type] != this) {
- packetTypes[type].executeClient(player);
- }
+ public Class[] getExpectedClasses() {
+ return new Class[] { Integer.class, Integer.class, Integer.class, Boolean.class };
}
+ };
+ public final static BasicPacket EXAMINE_MOB = new BasicPacket(8) {
@Override
public void executeServer(EntityPlayer player) {
- if (packetTypes[type] != this) {
- packetTypes[type].executeServer(player);
- }
- }
+ int dimension = (Integer) data[0];
+ int entityID = (Integer) data[1];
- @Override
- public void executeBoth(EntityPlayer player) {
- if (packetTypes[type] != this) {
- packetTypes[type].executeBoth(player);
- }
- }
+ WorldServer server = null;
- public Class[] getExpectedClasses() {
- if (packetTypes[type] != this) {
- return packetTypes[type]
- .getExpectedClasses();
- } else {
- return null;
+ for (WorldServer s : MinecraftServer.getServer().worldServers) {
+ if (s.provider.dimensionId == dimension) {
+ server = s;
+ break;
+ }
}
- }
-
- public void sendToPlayer(EntityPlayer player,
- Object... data) {
- sendPacketToPlayer(new BasicPacket(this, data),
- player);
- }
-
- public void sendToAllPlayers(Object... data) {
- sendPacketToAllPlayers(
- new BasicPacket(this, data));
- }
- public void sendToServer(Object... data) {
- sendPacketToServer(new BasicPacket(this, data));
- }
- }
+ if (server != null) {
+ Entity entity = server.getEntityByID(entityID);
- public static void sendPacketToPlayer(IPacket packet,
- EntityPlayer player) {
- ModjamMod.channels.get(Side.SERVER)
- .attr(FMLOutboundHandler.FML_MESSAGETARGET)
- .set(FMLOutboundHandler.OutboundTarget.PLAYER);
- ModjamMod.channels.get(Side.SERVER).attr(
- FMLOutboundHandler.FML_MESSAGETARGETARGS)
- .set(player);
- ModjamMod.channels.get(Side.SERVER).writeOutbound(packet);
- }
+ if (entity != null) {
+ boolean hasBlessing = entity.getEntityData().hasKey("Blessing");
- public static void sendPacketToAllPlayers(IPacket packet) {
- ModjamMod.channels.get(Side.SERVER)
- .attr(FMLOutboundHandler.FML_MESSAGETARGET)
- .set(FMLOutboundHandler.OutboundTarget.ALL);
- ModjamMod.channels.get(Side.SERVER).writeOutbound(packet);
- }
+ String blessing2 = hasBlessing ? entity.getEntityData().getString("Blessing") : null;
- public static void sendPacketToServer(IPacket packet) {
- ModjamMod.channels.get(Side.CLIENT)
- .attr(FMLOutboundHandler.FML_MESSAGETARGET)
- .set(FMLOutboundHandler.OutboundTarget.TOSERVER);
- ModjamMod.channels.get(Side.CLIENT).writeOutbound(packet);
- }
+ if (blessing2 != null) {
+ SEND_MESSAGE.sendToPlayer(player,
+ "\u00A7eYou notice " + entity.getCommandSenderName() + "\u00A7e is using "
+ + BlessingUtils.getBlessingInstance(blessing2).customName() + ".");
+ } else {
+ SEND_MESSAGE.sendToPlayer(player,
+ "\u00A7eThere doesn't seem to be anything special about "
+ + (entity instanceof EntityPlayer ? "" : "this ")
+ + entity.getCommandSenderName() + "\u00A7e.");
+ }
+ }
+ }
+ }
- public static final BasicPacket
+ @Override
+ public Class[] getExpectedClasses() {
+ return new Class[] { Integer.class, Integer.class };
+ }
+ };
- UPDATE_BLESSING = new BasicPacket(1) {
+ public final static BasicPacket LEVEL_UP = new BasicPacket(9) {
@Override
public void executeBoth(EntityPlayer player) {
- player.getEntityData().setString("Blessing",
- (String) data[0]);
+ player.addExperienceLevel((Integer) data[0]);
}
@Override
public Class[] getExpectedClasses() {
- return new Class[] {
- String.class
- };
+ return new Class[] { Integer.class };
}
- },
-
- PLAY_SOUND = new BasicPacket(2) {
- @Override
- public void executeServer(
- EntityPlayer player) {
- String sound = (String) data[0];
- int x = (Integer) data[1],
- y = (Integer) data[2],
- z = (Integer) data[3];
- player.worldObj.playSound(x, y, z,
- "fyresmodjam:" + sound,
- 1.0F, 1.0F, false);
- }
-
- @Override
- public Class[] getExpectedClasses() {
- return new Class[] {
- String.class,
- Integer.class,
- Integer.class,
- Integer.class
- };
- }
- },
-
- UPDATE_POTION_KNOWLEDGE = new BasicPacket(3) {
- @Override
- public void executeBoth(
- EntityPlayer player) {
- player.getEntityData().setIntArray(
- "PotionKnowledge",
- (int[]) data[0]);
- }
-
- @Override
- public Class[] getExpectedClasses() {
- return new Class[] {
- int[].class
- };
- }
- },
-
- SEND_MESSAGE = new BasicPacket(4) {
- @Override
- public void executeClient(
- EntityPlayer player) {
- String style = "";
-
- for (String s : ((String) data[0])
- .split("@")) {
- String[] words = s.split(
- " ");
- s = "";
-
- for (String word : words) {
- s += style + word
- + " ";
-
- while (word.contains(
- "\u00A7")) {
- int firstOccurance = word
- .indexOf("\u00A7");
- String string = word
- .substring(firstOccurance,
- firstOccurance + 2);
-
- if (style.contains(
- string)) {
- style = style.replace(
- string,
- "");
- }
- style += string;
- if (string.equals(
- "\u00A7r")) {
- style = "";
- }
-
- word = word.replaceFirst(
- string,
- "");
- }
- }
+ };
- player.addChatComponentMessage(
- new ChatComponentText(
- s));
- }
- }
+ public final static BasicPacket ACTIVATE_BLESSING = new BasicPacket(10) {
+ @Override
+ public void executeServer(EntityPlayer player) {
+ int x = (Integer) data[0], y = (Integer) data[1], z = (Integer) data[2];
- @Override
- public Class[] getExpectedClasses() {
- return new Class[] {
- String.class
- };
- }
- },
-
- UPDATE_WORLD_DATA = new BasicPacket(5) {
- @Override
- public void executeClient(
- EntityPlayer player) {
- potionValues = (int[]) data[0];
- potionDurations = (int[]) data[1];
- currentDisadvantage = (String) data[2];
- currentTask = (String) data[3];
- currentTaskID = (Integer) data[4];
- currentTaskAmount = (Integer) data[5];
- progress = (Integer) data[6];
- tasksCompleted = (Integer) data[7];
- enderDragonKilled = (Boolean) data[8];
- trapsDisabled = !((Boolean) data[9]);
- rewardLevels = (Integer) data[10];
- mushroomColors = (int[][]) data[11];
- }
+ boolean blessingActive = EntityStatHelper.hasStat(player, "BlessingActive")
+ ? Boolean.parseBoolean(EntityStatHelper.getStat(player, "BlessingActive"))
+ : false;
- @Override
- public Class[] getExpectedClasses() {
- return new Class[] {
- int[].class,
- int[].class,
- String.class,
- String.class,
- Integer.class,
- Integer.class,
- Integer.class,
- Integer.class,
- Boolean.class,
- Boolean.class,
- Integer.class,
- int[][].class
- };
- }
- },
-
- UPDATE_PLAYER_ITEMS = new BasicPacket(6) {
- @Override
- public void executeServer(
- EntityPlayer player) {
- for (Object stack : player.inventory.mainInventory) {
- if (stack == null
- || !(stack instanceof ItemStack)) {
- continue;
- }
- ItemStatHelper.processItemStack(
- (ItemStack) stack,
- ModjamMod.r);
- }
- }
-
- @Override
- public Class[] getExpectedClasses() {
- return null;
- }
- },
-
- DISARM_TRAP = new BasicPacket(7) {
- @Override
- public void executeServer(
- EntityPlayer player) {
- int blockX = (Integer) data[0],
- blockY = (Integer) data[1],
- blockZ = (Integer) data[2];
- boolean mechanic = (Boolean) data[3];
-
- boolean scout = BlessingUtils
- .hasBlessing(player,
- "MarkScouting");
-
- TileEntity te = player.worldObj
- .getTileEntity(blockX,
- blockY,
- blockZ);
-
- boolean yours = (te == null
- || !(te instanceof TileEntityTrap))
- ? false
- : player.getCommandSenderName()
- .equals(((TileEntityTrap) te).placedBy);
-
- if (yours || (mechanic
- ? ModjamMod.r.nextInt(
- 4) != 0
- : ModjamMod.r.nextInt(
- 4) == 0)) {
- boolean salvage = yours
- || (mechanic ? ModjamMod.r
- .nextBoolean()
- : (ModjamMod.r.nextInt(
- 4) == 0));
-
- SEND_MESSAGE.sendToPlayer(
- player,
- "\u00A7e\u00A7o" + (!salvage
- ? "You disarmed the trap."
- : "You disarm and salvage the trap."));
-
- if (salvage) {
- ItemStack spawned = new ItemStack(
- ModjamMod.itemTrap,
- 1,
- player.worldObj.getBlockMetadata(
- blockX,
- blockY,
- blockZ)
- % BlockTrap.trapTypes);
-
- player.worldObj.spawnEntityInWorld(
- new EntityItem(player.worldObj,
- blockX + 0.5F,
- blockY,
- blockZ + 0.5F,
- spawned));
- }
+ if (!EntityStatHelper.hasStat(player, "BlessingCooldown")) {
+ EntityStatHelper.giveStat(player, "BlessingCooldown", 0);
+ }
- player.worldObj.setBlockToAir(
- blockX,
- blockY,
- blockZ);
- } else {
- int trapType = player.worldObj
- .getBlockMetadata(
- blockX,
- blockY,
- blockZ);
-
- // TODO use a custom damage
- // type for the traps
- if (trapType % BlockTrap.trapTypes == 0) {
- player.attackEntityFrom(
- DamageSource.cactus,
- 4.0F + (scout ? 1
- : 0));
- if (ModjamMod.r.nextInt(
- 16 - (scout ? 4
- : 0)) == 0) {
- ((EntityLivingBase) player)
- .addPotionEffect(
- new PotionEffect(
- Potion.poison.id,
- 100 + (scout ? 25
- : 0),
- 1));
- }
- } else if (trapType
- % BlockTrap.trapTypes == 1) {
- if (!player.isBurning()) {
- player.setFire(5 + (scout
- ? 1
- : 0));
+ long time = (CommonTickHandler.worldData != null
+ && CommonTickHandler.worldData.getDisadvantage().equals("Neverending Rain"))
+ ? player.worldObj.getTotalWorldTime()
+ : player.worldObj.getWorldTime();
+
+ if (EntityStatHelper.getStat(player, "BlessingCooldown").equals("0")) {
+ if (!blessingActive) {
+ if (BlessingUtils.hasBlessing(player)) {
+ if (BlessingUtils.hasBlessing(player, "BlessingBerserker")) {
+ if (hasBlessingCounters(player)) {
+ blessingActive = true;
+ SEND_MESSAGE.sendToPlayer(player, "\u00A7cYou enter berserk mode.");
+ } else {
+ SEND_MESSAGE.sendToPlayer(player, "\u00A7cYou have no berserk counters.");
}
- } else if (trapType
- % BlockTrap.trapTypes == 2) {
- player.addPotionEffect(
- new PotionEffect(
- Potion.blindness.id,
- 100 + (scout ? 25
- : 0),
- 1));
- player.addPotionEffect(
- new PotionEffect(
- Potion.moveSlowdown.id,
- 100 + (scout ? 25
- : 0),
- 1));
- }
+ } else if (BlessingUtils.hasBlessing(player, "BlessingMechanic")) {
+ TileEntity te = player.worldObj.getTileEntity(x, y, z);
- player.worldObj.setBlockToAir(
- blockX,
- blockY,
- blockZ);
-
- SEND_MESSAGE.sendToPlayer(
- player,
- "\u00A7c\u00A7oYou failed to disarm the trap.");
-
- if (CommonTickHandler.worldData
- .getDisadvantage()
- .equals("Explosive Traps")) {
- player.worldObj.setBlockToAir(
- blockX,
- blockY,
- blockZ);
- player.worldObj.createExplosion(
- null,
- blockX + 0.5F,
- blockY + 0.5F,
- blockZ + 0.5F,
- 1.33F,
- true);
- }
- player.triggerAchievement(
- ModjamMod.whoops);
- }
- }
+ if (te != null && te instanceof TileEntityTrap) {
+ SEND_MESSAGE.sendToPlayer(player, "\u00A7e\u00A7oYou disarm and salvage the trap.");
- @Override
- public Class[] getExpectedClasses() {
- return new Class[] {
- Integer.class,
- Integer.class,
- Integer.class,
- Boolean.class
- };
- }
- },
-
- EXAMINE_MOB = new BasicPacket(8) {
- @Override
- public void executeServer(
- EntityPlayer player) {
- int dimension = (Integer) data[0];
- int entityID = (Integer) data[1];
-
- WorldServer server = null;
-
- for (WorldServer s : MinecraftServer
- .getServer().worldServers) {
- if (s.provider.dimensionId == dimension) {
- server = s;
- break;
- }
- }
+ player.worldObj.spawnEntityInWorld(new EntityItem(player.worldObj, x + 0.5F, y,
+ z + 0.5F, new ItemStack(ModjamMod.itemTrap, 1,
+ player.worldObj.getBlockMetadata(x, y, z) % BlockTrap.trapTypes)));
+ player.worldObj.setBlockToAir(x, y, z);
- if (server != null) {
- Entity entity = server
- .getEntityByID(entityID);
-
- if (entity != null) {
- String blessing2 = entity
- .getEntityData()
- .hasKey("Blessing")
- ? entity.getEntityData()
- .getString("Blessing")
- : null;
-
- if (blessing2 != null) {
- SEND_MESSAGE.sendToPlayer(
- player,
- "\u00A7eYou notice "
- + entity.getCommandSenderName()
- + "\u00A7e is using "
- + BlessingUtils.getBlessingInstance(
- blessing2)
- .customName()
- + ".");
+ EntityStatHelper.giveStat(player, "BlessingCooldown", 24000 - (time % 24000));
} else {
- SEND_MESSAGE.sendToPlayer(
- player,
- "\u00A7eThere doesn't seem to be anything special about "
- + (entity instanceof EntityPlayer
- ? ""
- : "this ")
- + entity.getCommandSenderName()
- + "\u00A7e.");
+ SEND_MESSAGE.sendToPlayer(player, "\u00A7e\u00A7oNo selected trap.");
}
}
}
- }
-
- @Override
- public Class[] getExpectedClasses() {
- return new Class[] {
- Integer.class,
- Integer.class
- };
- }
- },
-
- LEVEL_UP = new BasicPacket(9) {
- @Override
- public void executeBoth(
- EntityPlayer player) {
- player.addExperienceLevel(
- (Integer) data[0]);
- }
-
- @Override
- public Class[] getExpectedClasses() {
- return new Class[] {
- Integer.class
- };
- }
- },
-
- ACTIVATE_BLESSING = new BasicPacket(10) {
- @Override
- public void executeServer(
- EntityPlayer player) {
-
- int x = (Integer) data[0],
- y = (Integer) data[1],
- z = (Integer) data[2];
-
- boolean blessingActive = EntityStatHelper
- .hasStat(player, "BlessingActive")
- ? Boolean.parseBoolean(
- EntityStatHelper.getStat(
- player,
- "BlessingActive"))
- : false;
-
- if (!EntityStatHelper.hasStat(
- player,
- "BlessingCooldown")) {
- EntityStatHelper.giveStat(
- player,
- "BlessingCooldown",
- 0);
- }
+ } else {
+ blessingActive = false;
- long time = (CommonTickHandler.worldData != null
- && CommonTickHandler.worldData
- .getDisadvantage()
- .equals("Neverending Rain"))
- ? player.worldObj
- .getTotalWorldTime()
- : player.worldObj
- .getWorldTime();
-
- if (EntityStatHelper.getStat(
- player,
- "BlessingCooldown")
- .equals("0")) {
- if (!blessingActive) {
- if (BlessingUtils
- .hasBlessing(player)) {
- if (BlessingUtils
- .hasBlessing(player,
- "BlessingBerserker")) {
- if (hasBlessingCounters(
- player)) {
- blessingActive = true;
- SEND_MESSAGE.sendToPlayer(
- player,
- "\u00A7cYou enter berserk mode.");
- } else {
- SEND_MESSAGE.sendToPlayer(
- player,
- "\u00A7cYou have no berserk counters.");
- }
- } else if (BlessingUtils
- .hasBlessing(player,
- "BlessingMechanic")) {
- TileEntity te = player.worldObj
- .getTileEntity(x,
- y,
- z);
-
- if (te != null && te instanceof TileEntityTrap) {
- SEND_MESSAGE.sendToPlayer(
- player,
- "\u00A7e\u00A7oYou disarm and salvage the trap.");
-
- player.worldObj.spawnEntityInWorld(
- new EntityItem(player.worldObj,
- x + 0.5F,
- y,
- z + 0.5F,
- new ItemStack(ModjamMod.itemTrap,
- 1,
- player.worldObj.getBlockMetadata(
- x,
- y,
- z)
- % BlockTrap.trapTypes)));
- player.worldObj.setBlockToAir(
- x,
- y,
- z);
-
- EntityStatHelper.giveStat(
- player,
- "BlessingCooldown",
- 24000 - (time % 24000));
- } else {
- SEND_MESSAGE.sendToPlayer(
- player,
- "\u00A7e\u00A7oNo selected trap.");
- }
- }
- }
- } else {
- blessingActive = false;
-
- if (BlessingUtils
- .hasBlessing(player)) {
- if (BlessingUtils
- .hasBlessing(player,
- "BlessingBerserker")) {
- SEND_MESSAGE.sendToPlayer(
- player,
- "\u00A7cYou calm down.");
-
- EntityStatHelper.giveStat(
- player,
- "BlessingCooldown",
- 1200);
- }
- }
+ if (BlessingUtils.hasBlessing(player)) {
+ if (BlessingUtils.hasBlessing(player, "BlessingBerserker")) {
+ SEND_MESSAGE.sendToPlayer(player, "\u00A7cYou calm down.");
- EntityStatHelper.giveStat(
- player,
- "BlessingTimer",
- 0);
+ EntityStatHelper.giveStat(player, "BlessingCooldown", 1200);
}
- } else {
- SEND_MESSAGE.sendToPlayer(
- player,
- "\u00A7cBlessing is on cooldown. ("
- + (Integer.parseInt(
- EntityStatHelper.getStat(
- player,
- "BlessingCooldown")))
- / 20
- + "s)");
}
- EntityStatHelper.giveStat(player,
- "BlessingActive",
- blessingActive);
+ EntityStatHelper.giveStat(player, "BlessingTimer", 0);
}
+ } else {
+ SEND_MESSAGE.sendToPlayer(player, "\u00A7cBlessing is on cooldown. ("
+ + (Integer.parseInt(EntityStatHelper.getStat(player, "BlessingCooldown"))) / 20 + "s)");
+ }
- private boolean hasBlessingCounters(
- EntityPlayer player) {
- return EntityStatHelper.hasStat(
- player,
- "BlessingCounter")
- && Integer.parseInt(
- EntityStatHelper.getStat(
- player,
- "BlessingCounter")) > 0;
- }
+ EntityStatHelper.giveStat(player, "BlessingActive", blessingActive);
+ }
- @Override
- public Class[] getExpectedClasses() {
- return new Class[] {
- Integer.class,
- Integer.class,
- Integer.class
- };
- }
- },
-
- UPDATE_STAT = new BasicPacket(11) {
- @Override
- public void executeBoth(
- EntityPlayer player) {
- EntityStatHelper.giveStat(player,
- (String) data[0],
- data[1]);
- }
+ private boolean hasBlessingCounters(EntityPlayer player) {
+ return EntityStatHelper.hasStat(player, "BlessingCounter")
+ && Integer.parseInt(EntityStatHelper.getStat(player, "BlessingCounter")) > 0;
+ }
- @Override
- public Class[] getExpectedClasses() {
- return new Class[] {
- String.class,
- String.class
- };
- }
- };
-}
+ @Override
+ public Class[] getExpectedClasses() {
+ return new Class[] { Integer.class, Integer.class, Integer.class };
+ }
+ };
+
+ public final static BasicPacket UPDATE_STAT = new BasicPacket(11) {
+ @Override
+ public void executeBoth(EntityPlayer player) {
+ EntityStatHelper.giveStat(player, (String) data[0], data[1]);
+ }
+
+ @Override
+ public Class[] getExpectedClasses() {
+ return new Class[] { String.class, String.class };
+ }
+ };
+} \ No newline at end of file
diff --git a/YWD/src/main/java/fyresmodjam/handlers/UpdateBlessingPacket.java b/YWD/src/main/java/fyresmodjam/handlers/UpdateBlessingPacket.java
new file mode 100644
index 0000000..dc2aa32
--- /dev/null
+++ b/YWD/src/main/java/fyresmodjam/handlers/UpdateBlessingPacket.java
@@ -0,0 +1,5 @@
+package fyresmodjam.handlers;
+
+public class UpdateBlessingPacket extends BasicPacket {
+
+}