aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/detrav/DetravScannerMod.java2
-rw-r--r--src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java9
-rw-r--r--src/main/java/com/detrav/utils/DetravNetwork.java64
-rw-r--r--src/main/java/com/detrav/utils/DetravPacket.java17
-rw-r--r--src/main/java/com/detrav/utils/DetravProPickPacket01.java31
5 files changed, 118 insertions, 5 deletions
diff --git a/src/main/java/com/detrav/DetravScannerMod.java b/src/main/java/com/detrav/DetravScannerMod.java
index a06dbe055d..c02308bb06 100644
--- a/src/main/java/com/detrav/DetravScannerMod.java
+++ b/src/main/java/com/detrav/DetravScannerMod.java
@@ -3,6 +3,7 @@ package com.detrav;
import com.detrav.proxies.CommonProxy;
import com.detrav.commands.DetravScannerCommand;
import com.detrav.utils.DetravCreativeTab;
+import com.detrav.utils.DetravNetwork;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.SidedProxy;
@@ -24,6 +25,7 @@ public class DetravScannerMod
public DetravScannerMod()
{
GregTech_API.sAfterGTPreload.add(new DetravLoader());
+ new DetravNetwork();
}
@SidedProxy(clientSide = "com.detrav.proxies.ClientProxy", serverSide = "com.detrav.proxies.ServerProxy")
diff --git a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java
index 1ba9a77968..66260adccf 100644
--- a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java
+++ b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java
@@ -1,7 +1,10 @@
package com.detrav.items.behaviours;
+import com.detrav.utils.DetravNetwork;
+import com.detrav.utils.DetravProPickPacket01;
import gregtech.api.items.GT_MetaBase_Item;
import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ChatComponentText;
import net.minecraft.world.World;
@@ -22,11 +25,7 @@ public class BehaviourDetravToolElectricProPick extends BehaviourDetravToolProPi
//aPlayer.openGui();
aPlayer.addChatMessage(new ChatComponentText("Scanning Begin"));
- try {
- Thread.sleep(5000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
+ DetravNetwork.INSTANCE.sendToPlayer(new DetravProPickPacket01(),(EntityPlayerMP)aPlayer);
}
return super.onItemRightClick(aItem,aStack,aWorld,aPlayer);
}
diff --git a/src/main/java/com/detrav/utils/DetravNetwork.java b/src/main/java/com/detrav/utils/DetravNetwork.java
new file mode 100644
index 0000000000..3b005ae8a0
--- /dev/null
+++ b/src/main/java/com/detrav/utils/DetravNetwork.java
@@ -0,0 +1,64 @@
+package com.detrav.utils;
+
+import com.google.common.io.ByteArrayDataInput;
+import com.google.common.io.ByteStreams;
+import cpw.mods.fml.common.network.FMLEmbeddedChannel;
+import cpw.mods.fml.common.network.FMLOutboundHandler;
+import cpw.mods.fml.common.network.NetworkRegistry;
+import cpw.mods.fml.common.network.internal.FMLProxyPacket;
+import cpw.mods.fml.relauncher.Side;
+import io.netty.buffer.Unpooled;
+import io.netty.channel.ChannelHandler;
+import io.netty.channel.ChannelHandlerContext;
+import io.netty.channel.SimpleChannelInboundHandler;
+import io.netty.handler.codec.MessageToMessageCodec;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.EntityPlayerMP;
+
+import java.util.EnumMap;
+import java.util.List;
+
+/**
+ * Created by wital_000 on 20.03.2016.
+ */
+@ChannelHandler.Sharable
+public class DetravNetwork extends MessageToMessageCodec<FMLProxyPacket, DetravPacket> {
+
+ static public DetravNetwork INSTANCE;
+ private final EnumMap<Side, FMLEmbeddedChannel> mChannel;
+ private DetravPacket[] mSubChannels;
+
+ public DetravNetwork()
+ {
+ INSTANCE = this;
+ this.mChannel = NetworkRegistry.INSTANCE.newChannel("DetravScanner", new ChannelHandler[]{this, new HandlerShared()});
+ this.mSubChannels = new DetravPacket[]{new DetravProPickPacket01()};
+ }
+
+ @Override
+ protected void encode(ChannelHandlerContext ctx, DetravPacket msg, List<Object> out) throws Exception {
+ out.add(new FMLProxyPacket(Unpooled.buffer().writeByte(msg.getPacketID()).writeBytes(msg.encode()).copy(),(String) ctx.channel().attr(NetworkRegistry.FML_CHANNEL).get()));
+ }
+
+ @Override
+ protected void decode(ChannelHandlerContext ctx, FMLProxyPacket msg, List<Object> out) throws Exception {
+ ByteArrayDataInput aData = ByteStreams.newDataInput(msg.payload().array());
+ out.add(this.mSubChannels[aData.readByte()].decode(aData));
+ }
+
+ public void sendToPlayer(DetravPacket aPacket, EntityPlayerMP aPlayer) {
+ ((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.PLAYER);
+ ((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).attr(FMLOutboundHandler.FML_MESSAGETARGETARGS).set(aPlayer);
+ ((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).writeAndFlush(aPacket);
+ }
+
+ @ChannelHandler.Sharable
+ static final class HandlerShared
+ extends SimpleChannelInboundHandler<DetravPacket> {
+ protected void channelRead0(ChannelHandlerContext ctx, DetravPacket aPacket)
+ throws Exception {
+ //EntityPlayer aPlayer = GT_Values.GT.getThePlayer();
+ aPacket.process();
+ }
+ }
+}
diff --git a/src/main/java/com/detrav/utils/DetravPacket.java b/src/main/java/com/detrav/utils/DetravPacket.java
new file mode 100644
index 0000000000..b1736ae928
--- /dev/null
+++ b/src/main/java/com/detrav/utils/DetravPacket.java
@@ -0,0 +1,17 @@
+package com.detrav.utils;
+
+import com.google.common.io.ByteArrayDataInput;
+
+/**
+ * Created by wital_000 on 20.03.2016.
+ */
+public abstract class DetravPacket {
+
+ public abstract int getPacketID() ;
+
+ public abstract byte[] encode() ;
+
+ public abstract Object decode(ByteArrayDataInput aData) ;
+
+ public abstract void process();
+}
diff --git a/src/main/java/com/detrav/utils/DetravProPickPacket01.java b/src/main/java/com/detrav/utils/DetravProPickPacket01.java
new file mode 100644
index 0000000000..cdd837f03f
--- /dev/null
+++ b/src/main/java/com/detrav/utils/DetravProPickPacket01.java
@@ -0,0 +1,31 @@
+package com.detrav.utils;
+
+import com.google.common.io.ByteArrayDataInput;
+import net.minecraft.client.Minecraft;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.util.ChatComponentText;
+
+/**
+ * Created by wital_000 on 20.03.2016.
+ */
+public class DetravProPickPacket01 extends DetravPacket {
+ @Override
+ public int getPacketID() {
+ return 0;
+ }
+
+ @Override
+ public byte[] encode() {
+ return new byte[0];
+ }
+
+ @Override
+ public Object decode(ByteArrayDataInput aData) {
+ return new DetravProPickPacket01();
+ }
+
+ @Override
+ public void process() {
+ Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("NetworkTested"));
+ }
+}