aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core/handler/PacketHandler.java
blob: 2b9d424b320be03391bebae5e6081f5f5cc178d1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package gtPlusPlus.core.handler;

import cpw.mods.fml.common.network.ByteBufUtils;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.network.simpleimpl.*;
import cpw.mods.fml.relauncher.Side;

import net.minecraft.entity.player.EntityPlayerMP;

import io.netty.buffer.ByteBuf;

public class PacketHandler {

	public static SimpleNetworkWrapper packetLightning;
	
	public PacketHandler(){
		packetLightning = NetworkRegistry.INSTANCE.newSimpleChannel("gtpp_Lightning");
		packetLightning.registerMessage(Packet_Lightning_Handler.class, Packet_Lightning.class, 0, Side.SERVER);
	}
	
	
	
	
	/**
	 * Internal Packet Handlers
	 * @author Alkalus
	 *
	 */
	
	private class Packet_Lightning implements IMessage{

		public void sendTo(IMessage msg, EntityPlayerMP player){
			packetLightning.sendTo(msg, player);
		}
		
		public void sendToServer(String string){
			packetLightning.sendToServer(new Packet_Lightning(string));
		}		
		
		 private String text;

		    public Packet_Lightning(String text) {
		        this.text = text;
		    }

		    @Override
		    public void fromBytes(ByteBuf buf) {
		        text = ByteBufUtils.readUTF8String(buf); // this class is very useful in general for writing more complex objects
		    }

		    @Override
		    public void toBytes(ByteBuf buf) {
		        ByteBufUtils.writeUTF8String(buf, text);
		    }
		
	}
	
	private class Packet_Lightning_Handler implements IMessageHandler<Packet_Lightning, IMessage>{

		@Override
        public IMessage onMessage(Packet_Lightning message, MessageContext ctx) {
            System.out.println(String.format("Received %s from %s", message.text, ctx.getServerHandler().playerEntity.getDisplayName()));
            return null; // no response in this case
        }
		
	}
	
	
}