aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorDetrav <witalyezep@gmail.com>2016-04-14 18:13:00 +0300
committerDetrav <witalyezep@gmail.com>2016-04-14 18:13:00 +0300
commit156aa13bd3aea644e3a6d21a30abc0e2b2fb365c (patch)
treedb3de50f1ed23b95476f81636d83453c520e4a4a /src/main
parent4de797cbb1b251a8e98f850fabbaa046b021e27a (diff)
downloadGT5-Unofficial-156aa13bd3aea644e3a6d21a30abc0e2b2fb365c.tar.gz
GT5-Unofficial-156aa13bd3aea644e3a6d21a30abc0e2b2fb365c.tar.bz2
GT5-Unofficial-156aa13bd3aea644e3a6d21a30abc0e2b2fb365c.zip
Add mode switch to hole
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/detrav/events/BlockBreakEventHandler.java3
-rw-r--r--src/main/java/com/detrav/events/DetravKeyHandler.java5
-rw-r--r--src/main/java/com/detrav/net/DetravModeSwitchPacket02.java82
-rw-r--r--src/main/java/com/detrav/net/DetravNetwork.java6
4 files changed, 94 insertions, 2 deletions
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<EntityPlayerMP> allp = new ArrayList<EntityPlayerMP>();
+ ListIterator itl;
+ EntityPlayerMP temp = null;
+ for(int i = 0; i<MinecraftServer.getServer().worldServers.length; i++) {
+ itl = MinecraftServer.getServer().worldServers[i].playerEntities.listIterator();
+ while(itl.hasNext()) {
+ temp = (EntityPlayerMP) itl.next();
+ if(temp.getEntityId() == id)
+ return new DetravModeSwitchPacket02(temp);
+ temp = null;
+ }
+ }
+ return new DetravModeSwitchPacket02(temp);
+ }
+
+ @Override
+ public void process() {
+ if(player!=null) {
+ NBTTagCompound aData = player.getEntityData();
+ //aData.hasNoTags()
+ long minningMode = aData.getLong("detrav.minning.mode");
+ if(minningMode == 0) {
+ aData.setLong("detrav.minning.mode", 1);
+ player.addChatMessage(new ChatComponentText("Mining mode 3x3 block"));
+ }
+ else {
+ aData.setLong("detrav.minning.mode", 0);
+ player.addChatMessage(new ChatComponentText("Mining mode 1x1 block"));
+ }
+ }
+ }
+}
diff --git a/src/main/java/com/detrav/net/DetravNetwork.java b/src/main/java/com/detrav/net/DetravNetwork.java
index 86780ab81c..6d8a8fd0f3 100644
--- a/src/main/java/com/detrav/net/DetravNetwork.java
+++ b/src/main/java/com/detrav/net/DetravNetwork.java
@@ -31,7 +31,7 @@ public class DetravNetwork extends MessageToMessageCodec<FMLProxyPacket, DetravP
{
INSTANCE = this;
this.mChannel = NetworkRegistry.INSTANCE.newChannel("DetravScanner", new ChannelHandler[]{this, new HandlerShared()});
- this.mSubChannels = new DetravPacket[]{new DetravProPickPacket00(),new DetravPortableChargerPacket01()};
+ this.mSubChannels = new DetravPacket[]{new DetravProPickPacket00(),new DetravPortableChargerPacket01(), new DetravModeSwitchPacket02()};
}
@Override
@@ -50,6 +50,10 @@ public class DetravNetwork extends MessageToMessageCodec<FMLProxyPacket, DetravP
((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).attr(FMLOutboundHandler.FML_MESSAGETARGETARGS).set(aPlayer);
((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).writeAndFlush(aPacket);
}
+ public void sendToServer(DetravPacket aPacket) {
+ ((FMLEmbeddedChannel) this.mChannel.get(Side.CLIENT)).attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.TOSERVER);
+ ((FMLEmbeddedChannel) this.mChannel.get(Side.CLIENT)).writeAndFlush(aPacket);
+ }
@ChannelHandler.Sharable
static final class HandlerShared