From 156aa13bd3aea644e3a6d21a30abc0e2b2fb365c Mon Sep 17 00:00:00 2001 From: Detrav Date: Thu, 14 Apr 2016 18:13:00 +0300 Subject: Add mode switch to hole --- .../com/detrav/events/BlockBreakEventHandler.java | 3 + .../java/com/detrav/events/DetravKeyHandler.java | 5 +- .../com/detrav/net/DetravModeSwitchPacket02.java | 82 ++++++++++++++++++++++ src/main/java/com/detrav/net/DetravNetwork.java | 6 +- 4 files changed, 94 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/detrav/net/DetravModeSwitchPacket02.java (limited to 'src/main/java') diff --git a/src/main/java/com/detrav/events/BlockBreakEventHandler.java b/src/main/java/com/detrav/events/BlockBreakEventHandler.java index eaca6c7d2f..f05259f2d1 100644 --- a/src/main/java/com/detrav/events/BlockBreakEventHandler.java +++ b/src/main/java/com/detrav/events/BlockBreakEventHandler.java @@ -9,6 +9,7 @@ import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemSword; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.Packet; import net.minecraft.network.play.server.S23PacketBlockChange; import net.minecraft.tileentity.TileEntity; @@ -37,6 +38,8 @@ public class BlockBreakEventHandler { return; if(player.capabilities.isCreativeMode) return; + NBTTagCompound entityData = player.getEntityData(); + if(entityData.getLong("detrav.minning.mode")==0) return; Vec3 vec3 = Vec3.createVectorHelper(player.posX, player.posY + 1.62f, player.posZ); Vec3 vec31 = ev.getPlayer().getLook(1.0F); Vec3 vec32 = vec3.addVector(vec31.xCoord * 4.5F, vec31.yCoord * 4.5F, vec31.zCoord * 4.5F); diff --git a/src/main/java/com/detrav/events/DetravKeyHandler.java b/src/main/java/com/detrav/events/DetravKeyHandler.java index abe13a7eab..367d0856d8 100644 --- a/src/main/java/com/detrav/events/DetravKeyHandler.java +++ b/src/main/java/com/detrav/events/DetravKeyHandler.java @@ -1,5 +1,7 @@ package com.detrav.events; +import com.detrav.net.DetravModeSwitchPacket02; +import com.detrav.net.DetravNetwork; import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.eventhandler.SubscribeEvent; @@ -20,7 +22,8 @@ public class DetravKeyHandler { public void onKeyInput(InputEvent.KeyInputEvent event) { if(modeSwitchKey.isPressed()) { - Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("modeSwitchKey")); + DetravNetwork.INSTANCE.sendToServer(new DetravModeSwitchPacket02(Minecraft.getMinecraft().thePlayer)); + //Minecraft.getMinecraft().thePlayer.getEntityData(). } } diff --git a/src/main/java/com/detrav/net/DetravModeSwitchPacket02.java b/src/main/java/com/detrav/net/DetravModeSwitchPacket02.java new file mode 100644 index 0000000000..30e9289b16 --- /dev/null +++ b/src/main/java/com/detrav/net/DetravModeSwitchPacket02.java @@ -0,0 +1,82 @@ +package com.detrav.net; + +import com.google.common.io.ByteArrayDataInput; +import com.google.common.io.ByteArrayDataOutput; +import com.google.common.io.ByteStreams; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.ChatComponentText; + +import java.util.ArrayList; +import java.util.ListIterator; + +/** + * Created by wital_000 on 14.04.2016. + */ +public class DetravModeSwitchPacket02 extends DetravPacket { + + EntityPlayer player; + + public DetravModeSwitchPacket02() + { + player = null; + } + + public DetravModeSwitchPacket02(EntityPlayer aPlayer) + { + player = aPlayer; + } + + @Override + public int getPacketID() { + return 2; + } + + @Override + public byte[] encode() { + ByteArrayDataOutput tOut = ByteStreams.newDataOutput(1); + if (player != null) + tOut.writeInt(player.getEntityId()); + else tOut.writeInt(Integer.MIN_VALUE); + return tOut.toByteArray(); + } + + @Override + public Object decode(ByteArrayDataInput aData) { + int id = aData.readInt(); + if (id == Integer.MIN_VALUE) + return new DetravModeSwitchPacket02(); + //ArrayList allp = new ArrayList(); + ListIterator itl; + EntityPlayerMP temp = null; + for(int i = 0; i