blob: 0296f6bdab5557ea96135bba833a5df81132800a (
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
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;
boolean back;
public DetravModeSwitchPacket02() {
player = null;
}
public DetravModeSwitchPacket02(EntityPlayer aPlayer, boolean aBack) {
player = aPlayer;
back = aBack;
}
@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);
tOut.writeBoolean(back);
return tOut.toByteArray();
}
@Override
public Object decode(ByteArrayDataInput aData) {
int id = aData.readInt();
if (id == Integer.MIN_VALUE)
return new DetravModeSwitchPacket02();
boolean aBack = aData.readBoolean();
//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, aBack);
temp = null;
}
}
return new DetravModeSwitchPacket02(temp, aBack);
}
@Override
public void process() {
if (player != null) {
NBTTagCompound aData = player.getEntityData();
//aData.hasNoTags()
long minningMode = aData.getLong("detrav.minning.mode");
if (back) {
if (--minningMode < 0)
minningMode = 4;
} else {
if (++minningMode > 4)
minningMode = 0;
}
switch ((int) minningMode) {
case 0:
player.addChatMessage(new ChatComponentText("Mining mode 1x1, just one block"));
break;
case 1:
player.addChatMessage(new ChatComponentText("Mining mode 3x3 by side, nine blocks"));
break;
case 2:
player.addChatMessage(new ChatComponentText("Mining mode 3x3 horizontal, nine blocks"));
break;
case 3:
player.addChatMessage(new ChatComponentText("Mining mode 3x3 vertical, nine blocks"));
break;
case 4:
player.addChatMessage(new ChatComponentText("Mining mode 3x3x3 vein, twenty seven blocks by type"));
break;
}
aData.setLong("detrav.minning.mode", minningMode);
if (player instanceof EntityPlayerMP)
DetravNetwork.INSTANCE.sendToPlayer(new DetravModePacket03(player), (EntityPlayerMP) player);
}
}
}
|