aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/detrav/net/DetravModeSwitchPacket02.java
blob: 30e9289b1603d4bc0d2414bb2843ae4263cef0d7 (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
70
71
72
73
74
75
76
77
78
79
80
81
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"));
            }
        }
    }
}