mirror of
https://github.com/ViaVersion/ViaLegacy.git
synced 2025-02-07 00:11:45 +01:00
Use enhanced switch
This commit is contained in:
parent
e4c52ec587
commit
b61e84a235
@ -90,28 +90,17 @@ public class PreNettyTypes {
|
||||
for (byte b = buffer.readByte(); b != 127; b = buffer.readByte()) {
|
||||
int i = (b & 224) >> 5;
|
||||
switch (i) {
|
||||
case 0:
|
||||
buffer.readByte();
|
||||
break;
|
||||
case 1:
|
||||
buffer.readShort();
|
||||
break;
|
||||
case 2:
|
||||
buffer.readInt();
|
||||
break;
|
||||
case 3:
|
||||
buffer.readFloat();
|
||||
break;
|
||||
case 4:
|
||||
readString(buffer);
|
||||
break;
|
||||
case 5:
|
||||
readItemStack1_3_1(buffer);
|
||||
break;
|
||||
case 6:
|
||||
case 0 -> buffer.readByte();
|
||||
case 1 -> buffer.readShort();
|
||||
case 2 -> buffer.readInt();
|
||||
case 3 -> buffer.readFloat();
|
||||
case 4 -> readString(buffer);
|
||||
case 5 -> readItemStack1_3_1(buffer);
|
||||
case 6 -> {
|
||||
buffer.readInt();
|
||||
buffer.readInt();
|
||||
buffer.readInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -120,32 +109,23 @@ public class PreNettyTypes {
|
||||
for (byte b = buffer.readByte(); b != 127; b = buffer.readByte()) {
|
||||
int i = (b & 224) >> 5;
|
||||
switch (i) {
|
||||
case 0:
|
||||
buffer.readByte();
|
||||
break;
|
||||
case 1:
|
||||
buffer.readShort();
|
||||
break;
|
||||
case 2:
|
||||
buffer.readInt();
|
||||
break;
|
||||
case 3:
|
||||
buffer.readFloat();
|
||||
break;
|
||||
case 4:
|
||||
readString(buffer);
|
||||
break;
|
||||
case 5:
|
||||
case 0 -> buffer.readByte();
|
||||
case 1 -> buffer.readShort();
|
||||
case 2 -> buffer.readInt();
|
||||
case 3 -> buffer.readFloat();
|
||||
case 4 -> readString(buffer);
|
||||
case 5 -> {
|
||||
short x = buffer.readShort();
|
||||
if (x > -1) {
|
||||
buffer.readByte();
|
||||
buffer.readShort();
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
}
|
||||
case 6 -> {
|
||||
buffer.readInt();
|
||||
buffer.readInt();
|
||||
buffer.readInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -154,30 +134,21 @@ public class PreNettyTypes {
|
||||
for (byte b = buffer.readByte(); b != 127; b = buffer.readByte()) {
|
||||
int i = (b & 224) >> 5;
|
||||
switch (i) {
|
||||
case 0:
|
||||
buffer.readByte();
|
||||
break;
|
||||
case 1:
|
||||
buffer.readShort();
|
||||
break;
|
||||
case 2:
|
||||
buffer.readInt();
|
||||
break;
|
||||
case 3:
|
||||
buffer.readFloat();
|
||||
break;
|
||||
case 4:
|
||||
readString(buffer);
|
||||
break;
|
||||
case 5:
|
||||
case 0 -> buffer.readByte();
|
||||
case 1 -> buffer.readShort();
|
||||
case 2 -> buffer.readInt();
|
||||
case 3 -> buffer.readFloat();
|
||||
case 4 -> readString(buffer);
|
||||
case 5 -> {
|
||||
buffer.readShort();
|
||||
buffer.readByte();
|
||||
buffer.readShort();
|
||||
break;
|
||||
case 6:
|
||||
}
|
||||
case 6 -> {
|
||||
buffer.readInt();
|
||||
buffer.readInt();
|
||||
buffer.readInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -186,30 +157,21 @@ public class PreNettyTypes {
|
||||
for (byte b = buffer.readByte(); b != 127; b = buffer.readByte()) {
|
||||
int i = (b & 224) >> 5;
|
||||
switch (i) {
|
||||
case 0:
|
||||
buffer.readByte();
|
||||
break;
|
||||
case 1:
|
||||
buffer.readShort();
|
||||
break;
|
||||
case 2:
|
||||
buffer.readInt();
|
||||
break;
|
||||
case 3:
|
||||
buffer.readFloat();
|
||||
break;
|
||||
case 4:
|
||||
readUTF(buffer);
|
||||
break;
|
||||
case 5:
|
||||
case 0 -> buffer.readByte();
|
||||
case 1 -> buffer.readShort();
|
||||
case 2 -> buffer.readInt();
|
||||
case 3 -> buffer.readFloat();
|
||||
case 4 -> readUTF(buffer);
|
||||
case 5 -> {
|
||||
buffer.readShort();
|
||||
buffer.readByte();
|
||||
buffer.readShort();
|
||||
break;
|
||||
case 6:
|
||||
}
|
||||
case 6 -> {
|
||||
buffer.readInt();
|
||||
buffer.readInt();
|
||||
buffer.readInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -218,25 +180,16 @@ public class PreNettyTypes {
|
||||
for (byte b = buffer.readByte(); b != 127; b = buffer.readByte()) {
|
||||
int i = (b & 224) >> 5;
|
||||
switch (i) {
|
||||
case 0:
|
||||
buffer.readByte();
|
||||
break;
|
||||
case 1:
|
||||
buffer.readShort();
|
||||
break;
|
||||
case 2:
|
||||
buffer.readInt();
|
||||
break;
|
||||
case 3:
|
||||
buffer.readFloat();
|
||||
break;
|
||||
case 4:
|
||||
readUTF(buffer);
|
||||
break;
|
||||
case 5:
|
||||
case 0 -> buffer.readByte();
|
||||
case 1 -> buffer.readShort();
|
||||
case 2 -> buffer.readInt();
|
||||
case 3 -> buffer.readFloat();
|
||||
case 4 -> readUTF(buffer);
|
||||
case 5 -> {
|
||||
buffer.readShort();
|
||||
buffer.readByte();
|
||||
buffer.readShort();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -73,18 +73,10 @@ public class ChunkCoordSpiral implements Iterable<ChunkCoord> {
|
||||
floorN = (int) Math.floor(n);
|
||||
if (j < floorN) {
|
||||
switch (i % 4) {
|
||||
case 0:
|
||||
z += step;
|
||||
break;
|
||||
case 1:
|
||||
x += step;
|
||||
break;
|
||||
case 2:
|
||||
z -= step;
|
||||
break;
|
||||
case 3:
|
||||
x -= step;
|
||||
break;
|
||||
case 0 -> z += step;
|
||||
case 1 -> x += step;
|
||||
case 2 -> z -= step;
|
||||
case 3 -> x -= step;
|
||||
}
|
||||
j++;
|
||||
return new ChunkCoord(x, z);
|
||||
|
@ -80,21 +80,22 @@ public class Protocola1_2_3_5_1_2_6Tob1_0_1_1_1 extends StatelessProtocol<Client
|
||||
System.arraycopy(inventoryStorage.armorInventory, 0, windowItems, 5, 4);
|
||||
|
||||
switch (type) {
|
||||
case -1: // main
|
||||
case -1 /* maim */ -> {
|
||||
inventoryStorage.mainInventory = items;
|
||||
if (inventoryTracker != null) inventoryTracker.setMainInventory(copyItems(items));
|
||||
System.arraycopy(items, 0, windowItems, 36, 9);
|
||||
System.arraycopy(items, 9, windowItems, 9, 36 - 9);
|
||||
break;
|
||||
case -2: // crafting
|
||||
System.arraycopy(items, 9, windowItems, 9, 36 - 9); // main
|
||||
}
|
||||
case -2 /* crafting */ -> {
|
||||
inventoryStorage.craftingInventory = items;
|
||||
if (inventoryTracker != null) inventoryTracker.setCraftingInventory(copyItems(items));
|
||||
System.arraycopy(items, 0, windowItems, 1, 4);
|
||||
break;
|
||||
case -3: // armor
|
||||
System.arraycopy(items, 0, windowItems, 1, 4); // crafting
|
||||
}
|
||||
case -3 /* armor */ -> {
|
||||
inventoryStorage.armorInventory = items;
|
||||
if (inventoryTracker != null) inventoryTracker.setArmorInventory(copyItems(items));
|
||||
System.arraycopy(reverseArray(items), 0, windowItems, 5, 4);
|
||||
System.arraycopy(reverseArray(items), 0, windowItems, 5, 4); // armor
|
||||
}
|
||||
}
|
||||
|
||||
wrapper.write(Types.BYTE, (byte) 0); // window id
|
||||
|
@ -110,7 +110,7 @@ public class AlphaInventoryTracker extends StoredObject {
|
||||
int slotStackLimit = 64;
|
||||
boolean isCraftingResultSlot = false;
|
||||
switch (windowId) {
|
||||
case 0:
|
||||
case 0 -> {
|
||||
slots = new Item[45];
|
||||
System.arraycopy(this.mainInventory, 0, slots, 36, 9);
|
||||
System.arraycopy(this.mainInventory, 9, slots, 9, 36 - 9);
|
||||
@ -122,8 +122,8 @@ public class AlphaInventoryTracker extends StoredObject {
|
||||
if (isCraftingResultSlot) {
|
||||
slots[0] = CraftingManager.getResult(this.craftingInventory);
|
||||
}
|
||||
break;
|
||||
case InventoryStorage.WORKBENCH_WID:
|
||||
}
|
||||
case InventoryStorage.WORKBENCH_WID -> {
|
||||
slots = new Item[46];
|
||||
System.arraycopy(this.openContainerItems, 0, slots, 0, 10);
|
||||
System.arraycopy(this.mainInventory, 0, slots, 37, 9);
|
||||
@ -134,19 +134,19 @@ public class AlphaInventoryTracker extends StoredObject {
|
||||
final Item[] craftingGrid = Arrays.copyOfRange(this.openContainerItems, 1, 10);
|
||||
slots[0] = CraftingManager.getResult(craftingGrid);
|
||||
}
|
||||
break;
|
||||
case InventoryStorage.FURNACE_WID:
|
||||
}
|
||||
case InventoryStorage.FURNACE_WID -> {
|
||||
slots = new Item[39];
|
||||
System.arraycopy(this.openContainerItems, 0, slots, 0, 3);
|
||||
System.arraycopy(this.mainInventory, 0, slots, 30, 9);
|
||||
System.arraycopy(this.mainInventory, 9, slots, 3, 36 - 9);
|
||||
break;
|
||||
case InventoryStorage.CHEST_WID:
|
||||
}
|
||||
case InventoryStorage.CHEST_WID -> {
|
||||
slots = new Item[63];
|
||||
System.arraycopy(this.openContainerItems, 0, slots, 0, 3 * 9);
|
||||
System.arraycopy(this.mainInventory, 0, slots, 54, 9);
|
||||
System.arraycopy(this.mainInventory, 9, slots, 27, 36 - 9);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (slots != null) {
|
||||
@ -192,46 +192,46 @@ public class AlphaInventoryTracker extends StoredObject {
|
||||
}
|
||||
|
||||
switch (windowId) {
|
||||
case 0:
|
||||
case 0 -> {
|
||||
System.arraycopy(slots, 36, this.mainInventory, 0, 9);
|
||||
System.arraycopy(slots, 9, this.mainInventory, 9, 36 - 9);
|
||||
System.arraycopy(slots, 1, this.craftingInventory, 0, 4);
|
||||
System.arraycopy(slots, 5, this.armorInventory, 0, 4);
|
||||
this.armorInventory = reverseArray(this.armorInventory);
|
||||
break;
|
||||
case InventoryStorage.WORKBENCH_WID:
|
||||
}
|
||||
case InventoryStorage.WORKBENCH_WID -> {
|
||||
System.arraycopy(slots, 0, this.openContainerItems, 0, 10);
|
||||
System.arraycopy(slots, 37, this.mainInventory, 0, 9);
|
||||
System.arraycopy(slots, 10, this.mainInventory, 9, 36 - 9);
|
||||
break;
|
||||
case InventoryStorage.FURNACE_WID:
|
||||
}
|
||||
case InventoryStorage.FURNACE_WID -> {
|
||||
System.arraycopy(slots, 0, this.openContainerItems, 0, 3);
|
||||
System.arraycopy(slots, 30, this.mainInventory, 0, 9);
|
||||
System.arraycopy(slots, 3, this.mainInventory, 9, 36 - 9);
|
||||
break;
|
||||
case InventoryStorage.CHEST_WID:
|
||||
}
|
||||
case InventoryStorage.CHEST_WID -> {
|
||||
System.arraycopy(slots, 0, this.openContainerItems, 0, 3 * 9);
|
||||
System.arraycopy(slots, 54, this.mainInventory, 0, 9);
|
||||
System.arraycopy(slots, 27, this.mainInventory, 9, 36 - 9);
|
||||
break;
|
||||
}
|
||||
}
|
||||
this.updateInventory(windowId, slots);
|
||||
|
||||
boolean updateCraftResultSlot = false;
|
||||
switch (windowId) {
|
||||
case 0:
|
||||
case 0 -> {
|
||||
updateCraftResultSlot = !this.isEmpty(this.craftingInventory);
|
||||
if (updateCraftResultSlot) {
|
||||
slots[0] = CraftingManager.getResult(this.craftingInventory);
|
||||
}
|
||||
break;
|
||||
case InventoryStorage.WORKBENCH_WID:
|
||||
}
|
||||
case InventoryStorage.WORKBENCH_WID -> {
|
||||
final Item[] craftingGrid = Arrays.copyOfRange(this.openContainerItems, 1, 10);
|
||||
updateCraftResultSlot = !this.isEmpty(craftingGrid);
|
||||
if (updateCraftResultSlot) {
|
||||
slots[0] = CraftingManager.getResult(craftingGrid);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (updateCraftResultSlot) this.updateInventorySlot(windowId, (short) 0, slots[0]);
|
||||
|
@ -74,24 +74,12 @@ public class Protocolb1_1_2Tob1_2_0_2 extends StatelessProtocol<ClientboundPacke
|
||||
final EntityFlagStorage entityFlagStorage = wrapper.user().get(EntityFlagStorage.class);
|
||||
final int oldMask = entityFlagStorage.getFlagMask(entityId);
|
||||
switch (animationId) {
|
||||
case 100: // start riding
|
||||
entityFlagStorage.setFlag(entityId, 2, true);
|
||||
break;
|
||||
case 101: // stop riding
|
||||
entityFlagStorage.setFlag(entityId, 2, false);
|
||||
break;
|
||||
case 102: // start burning
|
||||
entityFlagStorage.setFlag(entityId, 0, true);
|
||||
break;
|
||||
case 103: // stop burning
|
||||
entityFlagStorage.setFlag(entityId, 0, false);
|
||||
break;
|
||||
case 104: // start sneaking
|
||||
entityFlagStorage.setFlag(entityId, 1, true);
|
||||
break;
|
||||
case 105: // stop sneaking
|
||||
entityFlagStorage.setFlag(entityId, 1, false);
|
||||
break;
|
||||
case 100 /* start riding */ -> entityFlagStorage.setFlag(entityId, 2, true);
|
||||
case 101 /* stop riding */ -> entityFlagStorage.setFlag(entityId, 2, false);
|
||||
case 102 /* start burning */ -> entityFlagStorage.setFlag(entityId, 0, true);
|
||||
case 103 /* stop burning */ -> entityFlagStorage.setFlag(entityId, 0, false);
|
||||
case 104 /* start sneaking */ -> entityFlagStorage.setFlag(entityId, 1, true);
|
||||
case 105 /* stop sneaking */ -> entityFlagStorage.setFlag(entityId, 1, false);
|
||||
}
|
||||
|
||||
if (oldMask != entityFlagStorage.getFlagMask(entityId)) {
|
||||
|
@ -85,7 +85,7 @@ public class Protocolb1_2_0_2Tob1_3_0_1 extends StatelessProtocol<ClientboundPac
|
||||
}
|
||||
|
||||
switch (status) {
|
||||
case 0:
|
||||
case 0 -> {
|
||||
final IdAndData blockBeingBroken = wrapper.user().get(ChunkTracker.class).getBlockNotNull(pos);
|
||||
if (BlockHardnessList.canBeBrokenInstantly(blockBeingBroken)) {
|
||||
sendBlockDigPacket(wrapper.user(), (byte) 0, pos, facing);
|
||||
@ -97,18 +97,14 @@ public class Protocolb1_2_0_2Tob1_3_0_1 extends StatelessProtocol<ClientboundPac
|
||||
wrapper.user().put(new BlockDigStorage(wrapper.user(), pos, facing));
|
||||
sendBlockDigPacket(wrapper.user(), (byte) 0, pos, facing);
|
||||
sendBlockDigPacket(wrapper.user(), (byte) 1, pos, facing);
|
||||
break;
|
||||
case 1:
|
||||
sendBlockDigPacket(wrapper.user(), (byte) 2, pos, facing);
|
||||
break;
|
||||
case 2:
|
||||
}
|
||||
case 1 -> sendBlockDigPacket(wrapper.user(), (byte) 2, pos, facing);
|
||||
case 2 -> {
|
||||
sendBlockDigPacket(wrapper.user(), (byte) 1, pos, facing);
|
||||
sendBlockDigPacket(wrapper.user(), (byte) 3, pos, facing);
|
||||
sendBlockDigPacket(wrapper.user(), (byte) 2, pos, facing);
|
||||
break;
|
||||
case 4:
|
||||
sendBlockDigPacket(wrapper.user(), (byte) 4, pos, facing);
|
||||
break;
|
||||
}
|
||||
case 4 -> sendBlockDigPacket(wrapper.user(), (byte) 4, pos, facing);
|
||||
}
|
||||
});
|
||||
this.registerServerbound(ServerboundPacketsb1_4.PLAYER_COMMAND, new PacketHandlers() {
|
||||
|
@ -276,23 +276,15 @@ public class Protocolr1_2_4_5Tor1_3_1_2 extends StatelessProtocol<ClientboundPac
|
||||
|
||||
float pitch;
|
||||
switch (objectType) {
|
||||
case TNT_PRIMED:
|
||||
entityTracker.playSoundAt(location, Sound.RANDOM_FUSE, 1.0F, 1.0F);
|
||||
break;
|
||||
case TIPPED_ARROW:
|
||||
case TNT_PRIMED -> entityTracker.playSoundAt(location, Sound.RANDOM_FUSE, 1.0F, 1.0F);
|
||||
case TIPPED_ARROW -> {
|
||||
pitch = 1.0F / (entityTracker.RND.nextFloat() * 0.4F + 1.2F) + 0.5F;
|
||||
entityTracker.playSoundAt(location, Sound.RANDOM_BOW, 1.0F, pitch);
|
||||
break;
|
||||
case SNOWBALL:
|
||||
case EGG:
|
||||
case ENDER_PEARL:
|
||||
case EYE_OF_ENDER:
|
||||
case POTION:
|
||||
case EXPERIENCE_BOTTLE:
|
||||
case FISHIHNG_HOOK:
|
||||
}
|
||||
case SNOWBALL, EGG, ENDER_PEARL, EYE_OF_ENDER, POTION, EXPERIENCE_BOTTLE, FISHIHNG_HOOK -> {
|
||||
pitch = 0.4F / (entityTracker.RND.nextFloat() * 0.4F + 0.8F);
|
||||
entityTracker.playSoundAt(location, Sound.RANDOM_BOW, 0.5F, pitch);
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -113,14 +113,12 @@ public class Protocolr1_4_6_7Tor1_5_0_1 extends StatelessProtocol<ClientboundPac
|
||||
boolean addSlot = false;
|
||||
|
||||
switch (mode) {
|
||||
case 4:
|
||||
droppingUsingQ = button + (slot != -999 ? 2 : 0) == 2;
|
||||
break;
|
||||
case 5:
|
||||
case 4 -> droppingUsingQ = button + (slot != -999 ? 2 : 0) == 2;
|
||||
case 5 -> {
|
||||
startDragging = button == 0;
|
||||
endDragging = button == 2;
|
||||
addSlot = button == 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
final boolean leftClick = startDragging || addSlot || endDragging;
|
||||
|
@ -41,28 +41,18 @@ public class EntityDataRewriter {
|
||||
entry.setId(entityDataIndex.getNewIndex());
|
||||
|
||||
switch (entityDataIndex.getNewType()) {
|
||||
case BYTE:
|
||||
entry.setValue(((Number) value).byteValue());
|
||||
break;
|
||||
case SHORT:
|
||||
entry.setValue(((Number) value).shortValue());
|
||||
break;
|
||||
case INT:
|
||||
entry.setValue(((Number) value).intValue());
|
||||
break;
|
||||
case FLOAT:
|
||||
entry.setValue(((Number) value).floatValue());
|
||||
break;
|
||||
case ITEM:
|
||||
case STRING:
|
||||
case BLOCK_POSITION:
|
||||
break;
|
||||
default:
|
||||
case BYTE -> entry.setValue(((Number) value).byteValue());
|
||||
case SHORT -> entry.setValue(((Number) value).shortValue());
|
||||
case INT -> entry.setValue(((Number) value).intValue());
|
||||
case FLOAT -> entry.setValue(((Number) value).floatValue());
|
||||
case ITEM, STRING, BLOCK_POSITION -> {
|
||||
}
|
||||
default -> {
|
||||
if (!Via.getConfig().isSuppressConversionWarnings() || Via.getManager().isDebug()) {
|
||||
ViaLegacy.getPlatform().getLogger().warning("1.5.2 EntityDataRewriter: Unhandled Type: " + entityDataIndex.getNewType() + " " + entry);
|
||||
}
|
||||
list.remove(entry);
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (Throwable e) {
|
||||
if (!Via.getConfig().isSuppressConversionWarnings() || Via.getManager().isDebug()) {
|
||||
|
@ -1070,12 +1070,11 @@ public class Protocolr1_6_4Tor1_7_2_5 extends StatelessTransitionProtocol<Client
|
||||
short length = wrapper.read(Types.SHORT); // length
|
||||
|
||||
switch (channel) {
|
||||
case "MC|BEdit":
|
||||
case "MC|BSign":
|
||||
case "MC|BEdit", "MC|BSign" -> {
|
||||
itemRewriter.handleItemToServer(wrapper.user(), wrapper.passthrough(Types1_7_6.ITEM));
|
||||
length = (short) PacketUtil.calculateLength(wrapper);
|
||||
break;
|
||||
case "MC|AdvCdm":
|
||||
}
|
||||
case "MC|AdvCdm" -> {
|
||||
final byte type = wrapper.read(Types.BYTE); // command block type
|
||||
if (type == 0) {
|
||||
wrapper.passthrough(Types.INT); // x
|
||||
@ -1087,7 +1086,7 @@ public class Protocolr1_6_4Tor1_7_2_5 extends StatelessTransitionProtocol<Client
|
||||
return;
|
||||
}
|
||||
length = (short) PacketUtil.calculateLength(wrapper);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
wrapper.resetReader();
|
||||
|
@ -368,18 +368,10 @@ public class Protocolr1_7_6_10Tor1_8 extends AbstractProtocol<ClientboundPackets
|
||||
int modX = 0;
|
||||
int modZ = 0;
|
||||
switch (rotation) {
|
||||
case 0:
|
||||
modZ = 1;
|
||||
break;
|
||||
case 1:
|
||||
modX = -1;
|
||||
break;
|
||||
case 2:
|
||||
modZ = -1;
|
||||
break;
|
||||
case 3:
|
||||
modX = 1;
|
||||
break;
|
||||
case 0 -> modZ = 1;
|
||||
case 1 -> modX = -1;
|
||||
case 2 -> modZ = -1;
|
||||
case 3 -> modX = 1;
|
||||
}
|
||||
wrapper.set(Types.BLOCK_POSITION1_8, 0, new BlockPosition(pos.x() + modX, pos.y(), pos.z() + modZ));
|
||||
|
||||
@ -821,48 +813,25 @@ public class Protocolr1_7_6_10Tor1_8 extends AbstractProtocol<ClientboundPackets
|
||||
|
||||
final String inventoryName;
|
||||
switch (windowType) {
|
||||
case 0:
|
||||
inventoryName = "minecraft:chest";
|
||||
break;
|
||||
case 1:
|
||||
inventoryName = "minecraft:crafting_table";
|
||||
break;
|
||||
case 2:
|
||||
inventoryName = "minecraft:furnace";
|
||||
break;
|
||||
case 3:
|
||||
inventoryName = "minecraft:dispenser";
|
||||
break;
|
||||
case 4:
|
||||
inventoryName = "minecraft:enchanting_table";
|
||||
break;
|
||||
case 5:
|
||||
inventoryName = "minecraft:brewing_stand";
|
||||
break;
|
||||
case 6:
|
||||
case 0 -> inventoryName = "minecraft:chest";
|
||||
case 1 -> inventoryName = "minecraft:crafting_table";
|
||||
case 2 -> inventoryName = "minecraft:furnace";
|
||||
case 3 -> inventoryName = "minecraft:dispenser";
|
||||
case 4 -> inventoryName = "minecraft:enchanting_table";
|
||||
case 5 -> inventoryName = "minecraft:brewing_stand";
|
||||
case 6 -> {
|
||||
inventoryName = "minecraft:villager";
|
||||
if (!useProvidedWindowTitle || title.isEmpty()) {
|
||||
title = "entity.Villager.name";
|
||||
useProvidedWindowTitle = false;
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
inventoryName = "minecraft:beacon";
|
||||
break;
|
||||
case 8:
|
||||
inventoryName = "minecraft:anvil";
|
||||
break;
|
||||
case 9:
|
||||
inventoryName = "minecraft:hopper";
|
||||
break;
|
||||
case 10:
|
||||
inventoryName = "minecraft:dropper";
|
||||
break;
|
||||
case 11:
|
||||
inventoryName = "EntityHorse";
|
||||
break;
|
||||
default:
|
||||
throw new IllegalArgumentException("Unknown window type: " + windowType);
|
||||
}
|
||||
case 7 -> inventoryName = "minecraft:beacon";
|
||||
case 8 -> inventoryName = "minecraft:anvil";
|
||||
case 9 -> inventoryName = "minecraft:hopper";
|
||||
case 10 -> inventoryName = "minecraft:dropper";
|
||||
case 11 -> inventoryName = "EntityHorse";
|
||||
default -> throw new IllegalArgumentException("Unknown window type: " + windowType);
|
||||
}
|
||||
|
||||
if (windowType == 1/*crafting_table*/ || windowType == 4/*enchanting_table*/ || windowType == 8/*anvil*/) {
|
||||
@ -928,23 +897,16 @@ public class Protocolr1_7_6_10Tor1_8 extends AbstractProtocol<ClientboundPackets
|
||||
final short windowType = wrapper.user().get(WindowTracker.class).get(windowId);
|
||||
if (windowType == 2) { // furnace
|
||||
switch (progressBar) {
|
||||
case 0: { // cookTime
|
||||
case 0 /* cookTime */ -> {
|
||||
progressBar = 2;
|
||||
final PacketWrapper windowProperty = PacketWrapper.create(ClientboundPackets1_8.CONTAINER_SET_DATA, wrapper.user());
|
||||
windowProperty.write(Types.UNSIGNED_BYTE, windowId);
|
||||
windowProperty.write(Types.SHORT, (short) 3);
|
||||
windowProperty.write(Types.SHORT, (short) 200);
|
||||
windowProperty.send(Protocolr1_7_6_10Tor1_8.class);
|
||||
break;
|
||||
}
|
||||
case 1: { // furnaceBurnTime
|
||||
progressBar = 0;
|
||||
break;
|
||||
}
|
||||
case 2: { // currentItemBurnTime
|
||||
progressBar = 1;
|
||||
break;
|
||||
}
|
||||
case 1 /* furnaceBurnTime */ -> progressBar = 0;
|
||||
case 2 /* currentItemBurnTime */ -> progressBar = 1;
|
||||
}
|
||||
wrapper.set(Types.SHORT, 0, progressBar);
|
||||
}
|
||||
@ -1115,11 +1077,8 @@ public class Protocolr1_7_6_10Tor1_8 extends AbstractProtocol<ClientboundPackets
|
||||
handlerSoftFail(wrapper -> {
|
||||
final String channel = wrapper.get(Types.STRING, 0);
|
||||
switch (channel) {
|
||||
case "MC|Brand": {
|
||||
wrapper.write(Types.STRING, new String(wrapper.read(Types.REMAINING_BYTES), StandardCharsets.UTF_8)); // brand
|
||||
break;
|
||||
}
|
||||
case "MC|TrList":
|
||||
case "MC|Brand" -> wrapper.write(Types.STRING, new String(wrapper.read(Types.REMAINING_BYTES), StandardCharsets.UTF_8)); // brand
|
||||
case "MC|TrList" -> {
|
||||
wrapper.passthrough(Types.INT); // window id
|
||||
final int count = wrapper.passthrough(Types.UNSIGNED_BYTE); // count
|
||||
for (int i = 0; i < count; i++) {
|
||||
@ -1142,14 +1101,13 @@ public class Protocolr1_7_6_10Tor1_8 extends AbstractProtocol<ClientboundPackets
|
||||
wrapper.write(Types.INT, 0); // uses
|
||||
wrapper.write(Types.INT, Integer.MAX_VALUE); // max uses
|
||||
}
|
||||
break;
|
||||
case "MC|RPack": {
|
||||
}
|
||||
case "MC|RPack" -> {
|
||||
final String url = new String(wrapper.read(Types.REMAINING_BYTES), StandardCharsets.UTF_8); // url
|
||||
wrapper.clearPacket();
|
||||
wrapper.setPacketType(ClientboundPackets1_8.RESOURCE_PACK);
|
||||
wrapper.write(Types.STRING, url); // url
|
||||
wrapper.write(Types.STRING, "legacy"); // hash
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -1378,18 +1336,16 @@ public class Protocolr1_7_6_10Tor1_8 extends AbstractProtocol<ClientboundPackets
|
||||
}
|
||||
|
||||
switch (channel) {
|
||||
case "MC|BEdit":
|
||||
case "MC|BSign":
|
||||
case "MC|BEdit", "MC|BSign" -> {
|
||||
final Item item = wrapper.read(Types.ITEM1_8); // book
|
||||
itemRewriter.handleItemToServer(wrapper.user(), item);
|
||||
wrapper.write(Types1_7_6.ITEM, item); // book
|
||||
break;
|
||||
case "MC|Brand":
|
||||
case "MC|ItemName":
|
||||
}
|
||||
case "MC|Brand", "MC|ItemName" -> {
|
||||
final String content = wrapper.read(Types.STRING); // client brand or item name
|
||||
wrapper.write(Types.REMAINING_BYTES, content.getBytes(StandardCharsets.UTF_8)); // client brand or item name
|
||||
break;
|
||||
case "MC|AdvCdm":
|
||||
}
|
||||
case "MC|AdvCdm" -> {
|
||||
final byte type = wrapper.passthrough(Types.BYTE); // command block type (0 = Block, 1 = Minecart)
|
||||
if (type == 0) {
|
||||
wrapper.passthrough(Types.INT); // x
|
||||
@ -1406,9 +1362,8 @@ public class Protocolr1_7_6_10Tor1_8 extends AbstractProtocol<ClientboundPackets
|
||||
}
|
||||
wrapper.passthrough(Types.STRING); // command
|
||||
wrapper.read(Types.BOOLEAN); // track output
|
||||
break;
|
||||
case "REGISTER":
|
||||
case "UNREGISTER":
|
||||
}
|
||||
case "REGISTER", "UNREGISTER" -> {
|
||||
byte[] channels = wrapper.read(Types.REMAINING_BYTES);
|
||||
|
||||
if (ViaLegacy.getConfig().isIgnoreLong1_8ChannelNames()) {
|
||||
@ -1431,7 +1386,7 @@ public class Protocolr1_7_6_10Tor1_8 extends AbstractProtocol<ClientboundPackets
|
||||
}
|
||||
|
||||
wrapper.write(Types.REMAINING_BYTES, channels); // data
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
final short length = (short) PacketUtil.calculateLength(wrapper);
|
||||
|
@ -87,31 +87,19 @@ public class EntityDataRewriter {
|
||||
}
|
||||
|
||||
switch (entityDataIndex.getNewType()) {
|
||||
case BYTE:
|
||||
entry.setValue(((Number) value).byteValue());
|
||||
break;
|
||||
case SHORT:
|
||||
entry.setValue(((Number) value).shortValue());
|
||||
break;
|
||||
case INT:
|
||||
entry.setValue(((Number) value).intValue());
|
||||
break;
|
||||
case FLOAT:
|
||||
entry.setValue(((Number) value).floatValue());
|
||||
break;
|
||||
case ITEM:
|
||||
this.protocol.getItemRewriter().handleItemToClient(user, (Item) value);
|
||||
break;
|
||||
case STRING:
|
||||
case BLOCK_POSITION:
|
||||
case ROTATIONS:
|
||||
break;
|
||||
default:
|
||||
case BYTE -> entry.setValue(((Number) value).byteValue());
|
||||
case SHORT -> entry.setValue(((Number) value).shortValue());
|
||||
case INT -> entry.setValue(((Number) value).intValue());
|
||||
case FLOAT -> entry.setValue(((Number) value).floatValue());
|
||||
case ITEM -> this.protocol.getItemRewriter().handleItemToClient(user, (Item) value);
|
||||
case STRING, BLOCK_POSITION, ROTATIONS -> {
|
||||
}
|
||||
default -> {
|
||||
if (!Via.getConfig().isSuppressConversionWarnings() || Via.getManager().isDebug()) {
|
||||
ViaLegacy.getPlatform().getLogger().warning("1.7.10 EntityDataRewriter: Unhandled Type: " + entityDataIndex.getNewType() + " " + entry);
|
||||
}
|
||||
list.remove(entry);
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (Throwable e) {
|
||||
if (!Via.getConfig().isSuppressConversionWarnings() || Via.getManager().isDebug()) {
|
||||
|
Loading…
Reference in New Issue
Block a user