Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,21 @@ protected Door toPre13DoorState(Door from, Door to) {
return to;
}

protected Switch toPre13LeverState(Switch from, Switch to) {
to.setFace(from.getFace());
to.setFacing(from.getFacing());
if ((from.getFace() == Face.CEILING) || (from.getFace() == Face.FLOOR)) {
// PE levers can only be oriented towards south or east (when off)
if (from.getFacing() == BlockFace.NORTH) {
to.setFacing(BlockFace.SOUTH);
} else if (from.getFacing() == BlockFace.WEST) {
to.setFacing(BlockFace.EAST);
}
}
to.setPowered(from.isPowered());
return to;
}

protected Slab toPre13SlabState(Slab from, Slab to) {
to.setWaterlogged(false);
to.setType(from.getType());
Expand Down Expand Up @@ -192,6 +207,155 @@ protected MultipleFacing clearMutipleFacing(MultipleFacing mfacing) {
public void applyDefaultRemaps() {
clear();

/* PE START */
this.registerRemapEntryForAllStates(
Arrays.asList(Material.TNT),
o -> o.getMaterial().createBlockData(),
ProtocolVersionsHelper.ALL_PE
);

this.registerRemapEntryForAllStates(
Arrays.asList(
Material.WHITE_SHULKER_BOX, Material.ORANGE_SHULKER_BOX, Material.MAGENTA_SHULKER_BOX,
Material.LIGHT_BLUE_SHULKER_BOX, Material.YELLOW_SHULKER_BOX, Material.LIME_SHULKER_BOX,
Material.PINK_SHULKER_BOX, Material.GRAY_SHULKER_BOX, Material.LIGHT_GRAY_SHULKER_BOX,
Material.CYAN_SHULKER_BOX, Material.CYAN_SHULKER_BOX, Material.PURPLE_SHULKER_BOX,
Material.BLUE_SHULKER_BOX, Material.BROWN_SHULKER_BOX, Material.GREEN_SHULKER_BOX,
Material.RED_SHULKER_BOX, Material.BLACK_SHULKER_BOX, Material.SHULKER_BOX
),
o -> o.getMaterial().createBlockData(),
ProtocolVersionsHelper.ALL_PE
);
this.registerRemapEntryForAllStates(Material.KELP_PLANT, Material.KELP.createBlockData((blockdata)-> {
((Ageable) blockdata).setAge(25); //Max age.
}), ProtocolVersionsHelper.ALL_PE);
//Remap to closest match. The normal dead variants get broken instantly in PE.
this.registerRemapEntryForAllStates(Material.DEAD_TUBE_CORAL, Material.DEAD_TUBE_CORAL_FAN.createBlockData(), ProtocolVersionsHelper.ALL_PE);
this.registerRemapEntryForAllStates(Material.DEAD_BRAIN_CORAL, Material.DEAD_BRAIN_CORAL_FAN.createBlockData(), ProtocolVersionsHelper.ALL_PE);
this.registerRemapEntryForAllStates(Material.DEAD_BUBBLE_CORAL, Material.DEAD_BUBBLE_CORAL_FAN.createBlockData(), ProtocolVersionsHelper.ALL_PE);
this.registerRemapEntryForAllStates(Material.DEAD_FIRE_CORAL, Material.DEAD_FIRE_CORAL_FAN.createBlockData(), ProtocolVersionsHelper.ALL_PE);
this.registerRemapEntryForAllStates(Material.DEAD_HORN_CORAL, Material.DEAD_HORN_CORAL_FAN.createBlockData(), ProtocolVersionsHelper.ALL_PE);
this.registerRemapEntryForAllStates(
//Clear all waterlog, but not rotation of all the corals.
Arrays.asList(
Material.DEAD_TUBE_CORAL_WALL_FAN, Material.DEAD_BRAIN_CORAL_WALL_FAN, Material.DEAD_BUBBLE_CORAL_WALL_FAN, Material.DEAD_FIRE_CORAL_WALL_FAN, Material.DEAD_HORN_CORAL_WALL_FAN,
Material.TUBE_CORAL_WALL_FAN, Material.BRAIN_CORAL_WALL_FAN, Material.BUBBLE_CORAL_WALL_FAN, Material.FIRE_CORAL_WALL_FAN, Material.HORN_CORAL_WALL_FAN
),
o -> {
return cloneDirectional((Directional) o, (Directional) o.getMaterial().createBlockData());
},
ProtocolVersionsHelper.ALL_PE
);
// Remove everything except direction from piston stuff. The rest is handled in tilenbt.
this.registerRemapEntryForAllStates(
Arrays.asList(Material.PISTON, Material.STICKY_PISTON, Material.PISTON_HEAD),
o -> cloneDirectional((Directional) o, (Directional) o.getMaterial().createBlockData()),
ProtocolVersionsHelper.ALL_PE);

this.registerRemapEntryForAllStates(
//Clear waterlog from remaining non rotatable corals.
Arrays.asList(
Material.DEAD_TUBE_CORAL_FAN, Material.DEAD_BRAIN_CORAL_FAN, Material.DEAD_BUBBLE_CORAL_FAN, Material.DEAD_FIRE_CORAL_FAN, Material.DEAD_HORN_CORAL_FAN
),
o -> o.getMaterial().createBlockData(),
ProtocolVersionsHelper.ALL_PE
);
this.registerRemapEntryForAllStates(
Arrays.asList(
Material.SKELETON_SKULL,
Material.WITHER_SKELETON_SKULL,
Material.CREEPER_HEAD,
Material.DRAGON_HEAD,
Material.PLAYER_HEAD,
Material.ZOMBIE_HEAD
),
o -> o.getMaterial().createBlockData(),
ProtocolVersionsHelper.ALL_PE
);

this.<Directional>registerRemapEntryForAllStates(
Arrays.asList(
Material.SKELETON_WALL_SKULL,
Material.WITHER_SKELETON_WALL_SKULL,
Material.CREEPER_WALL_HEAD,
Material.DRAGON_WALL_HEAD,
Material.PLAYER_WALL_HEAD,
Material.ZOMBIE_WALL_HEAD
),
o -> cloneDirectional(o, (Directional) o.getMaterial().createBlockData()),
ProtocolVersionsHelper.ALL_PE
);
this.<Switch>registerRemapEntryForAllStates(
Arrays.asList(Material.LEVER),
o -> toPre13LeverState(o, (Switch) o.getMaterial().createBlockData()),
ProtocolVersionsHelper.ALL_PE
);
this.<Slab>registerRemapEntryForAllStates(
Arrays.asList(
Material.PRISMARINE_BRICK_SLAB,
Material.PRISMARINE_SLAB,
Material.DARK_PRISMARINE_SLAB
),
o -> toPre13SlabState(o, (Slab) o.getMaterial().createBlockData()),
ProtocolVersionsHelper.ALL_PE
);
this.<Stairs>registerRemapEntryForAllStates(
Arrays.asList(
Material.PRISMARINE_BRICK_STAIRS,
Material.PRISMARINE_STAIRS,
Material.DARK_PRISMARINE_STAIRS
),
o -> toPre13StairsState(o, (Stairs) o.getMaterial().createBlockData()),
ProtocolVersionsHelper.ALL_PE
);

this.<TrapDoor>registerRemapEntryForAllStates(
Arrays.asList(
Material.ACACIA_TRAPDOOR, Material.DARK_OAK_TRAPDOOR, Material.BIRCH_TRAPDOOR,
Material.JUNGLE_TRAPDOOR, Material.SPRUCE_TRAPDOOR
),
o -> toPre13TrapDoor(o, (TrapDoor) o.getMaterial().createBlockData()),
ProtocolVersionsHelper.ALL_PE
);

this.<Rotatable>registerRemapEntryForAllStates(
Arrays.asList(
Material.BLACK_BANNER, Material.BLUE_BANNER, Material.BROWN_BANNER, Material.CYAN_BANNER,
Material.GRAY_BANNER, Material.GREEN_BANNER, Material.LIGHT_BLUE_BANNER, Material.LIGHT_GRAY_BANNER,
Material.LIME_BANNER, Material.MAGENTA_BANNER, Material.ORANGE_BANNER, Material.PINK_BANNER,
Material.PURPLE_BANNER, Material.RED_BANNER, Material.WHITE_BANNER, Material.YELLOW_BANNER
),
o -> cloneRotatable(o, (Rotatable) Material.WHITE_BANNER.createBlockData()),
ProtocolVersionsHelper.ALL_PE
);
this.<Directional>registerRemapEntryForAllStates(
Arrays.asList(
Material.BLACK_WALL_BANNER, Material.BLUE_WALL_BANNER, Material.BROWN_WALL_BANNER, Material.CYAN_WALL_BANNER,
Material.GRAY_WALL_BANNER, Material.GREEN_WALL_BANNER, Material.LIGHT_BLUE_WALL_BANNER, Material.LIGHT_GRAY_WALL_BANNER,
Material.LIME_WALL_BANNER, Material.MAGENTA_WALL_BANNER, Material.ORANGE_WALL_BANNER, Material.PINK_WALL_BANNER,
Material.PURPLE_WALL_BANNER, Material.RED_WALL_BANNER, Material.WHITE_WALL_BANNER, Material.YELLOW_WALL_BANNER
),
o -> cloneDirectional(o, (Directional) Material.WHITE_WALL_BANNER.createBlockData()),
ProtocolVersionsHelper.ALL_PE
);


this.<Chest>registerRemapEntryForAllStates(
Arrays.asList(Material.CHEST, Material.TRAPPED_CHEST),
o -> cloneDirectional(o, (Directional) o.getMaterial().createBlockData()),
ProtocolVersionsHelper.ALL_PE
);

this.<TrapDoor>registerRemapEntryForAllStates(
Arrays.asList(
Material.IRON_TRAPDOOR,
Material.OAK_TRAPDOOR
),
o -> toPre13TrapDoor(o, (TrapDoor) o.getMaterial().createBlockData()),
ProtocolVersionsHelper.ALL_PE
);
/* PE END */

this.<Directional>registerRemapEntryForAllStates(
Material.BARREL,
o -> cloneDirectional(o, (Directional) Material.FURNACE.createBlockData()),
Expand Down Expand Up @@ -365,7 +529,7 @@ public void applyDefaultRemaps() {
Material.GRASS_BLOCK, Material.MYCELIUM, Material.PODZOL
),
o -> o.getMaterial().createBlockData(),
ProtocolVersionsHelper.BEFORE_1_13
ProtocolVersionsHelper.BEFORE_1_13_AND_PE
);
this.withIgnoringDuplicateRemaps(() -> {
this.registerRemapEntryForAllStates(
Expand All @@ -389,7 +553,7 @@ public void applyDefaultRemaps() {
this.<MultipleFacing>registerRemapEntryForAllStates(
Arrays.asList(Material.COBBLESTONE_WALL, Material.MOSSY_COBBLESTONE_WALL),
o -> clearMutipleFacing((MultipleFacing) o.getMaterial().createBlockData()),
ProtocolVersionsHelper.BEFORE_1_13
ProtocolVersionsHelper.BEFORE_1_13_AND_PE
);
this.<MultipleFacing>registerRemapEntryForAllStates(
Material.VINE,
Expand All @@ -398,15 +562,15 @@ public void applyDefaultRemaps() {
mfacing.setFace(BlockFace.UP, true);
return mfacing;
},
ProtocolVersionsHelper.BEFORE_1_13
ProtocolVersionsHelper.BEFORE_1_13_AND_PE
);
this.<Gate>registerRemapEntryForAllStates(
Arrays.asList(
Material.ACACIA_FENCE_GATE, Material.DARK_OAK_FENCE_GATE, Material.BIRCH_FENCE_GATE,
Material.JUNGLE_FENCE_GATE, Material.OAK_FENCE_GATE, Material.SPRUCE_FENCE_GATE
),
o -> toPre13GateState(o, (Gate) o.getMaterial().createBlockData()),
ProtocolVersionsHelper.BEFORE_1_13
ProtocolVersionsHelper.BEFORE_1_13_AND_PE
);
this.<Switch>registerRemapEntryForAllStates(
Material.LEVER,
Expand All @@ -416,15 +580,15 @@ public void applyDefaultRemaps() {
this.<Switch>registerRemapEntryForAllStates(
Material.STONE_BUTTON,
o -> toPre13ButtonState(o, (Switch) o.getMaterial().createBlockData(), false),
ProtocolVersionsHelper.BEFORE_1_13
ProtocolVersionsHelper.BEFORE_1_13_AND_PE
);
this.<Switch>registerRemapEntryForAllStates(
Arrays.asList(
Material.ACACIA_BUTTON, Material.DARK_OAK_BUTTON, Material.BIRCH_BUTTON,
Material.JUNGLE_BUTTON, Material.OAK_BUTTON, Material.SPRUCE_BUTTON
),
o -> toPre13ButtonState(o, (Switch) Material.OAK_BUTTON.createBlockData(), false),
ProtocolVersionsHelper.BEFORE_1_13
ProtocolVersionsHelper.BEFORE_1_13_AND_PE
);
this.<Door>registerRemapEntryForAllStates(
Arrays.asList(
Expand All @@ -433,7 +597,7 @@ public void applyDefaultRemaps() {
Material.IRON_DOOR
),
o -> toPre13DoorState(o, (Door) o.getMaterial().createBlockData()),
ProtocolVersionsHelper.BEFORE_1_13
ProtocolVersionsHelper.BEFORE_1_13_AND_PE
);
this.<Slab>registerRemapEntryForAllStates(
Arrays.asList(
Expand All @@ -445,7 +609,7 @@ public void applyDefaultRemaps() {
Material.PETRIFIED_OAK_SLAB
),
o -> toPre13SlabState(o, (Slab) o.getMaterial().createBlockData()),
ProtocolVersionsHelper.BEFORE_1_13
ProtocolVersionsHelper.BEFORE_1_13_AND_PE
);
this.<Slab>registerRemapEntryForAllStates(
Arrays.asList(Material.PRISMARINE_BRICK_SLAB, Material.PRISMARINE_SLAB, Material.DARK_PRISMARINE_SLAB),
Expand All @@ -470,7 +634,7 @@ public void applyDefaultRemaps() {
Material.BRICK_STAIRS
),
o -> toPre13StairsState(o, (Stairs) o.getMaterial().createBlockData()),
ProtocolVersionsHelper.BEFORE_1_13
ProtocolVersionsHelper.BEFORE_1_13_AND_PE
);
this.<Stairs>registerRemapEntryForAllStates(
Arrays.asList(
Expand Down Expand Up @@ -505,12 +669,12 @@ public void applyDefaultRemaps() {
bed.setPart(o.getPart());
return bed;
},
ProtocolVersionsHelper.BEFORE_1_13
ProtocolVersionsHelper.BEFORE_1_13_AND_PE
);
this.<Directional>registerRemapEntryForAllStates(
Arrays.asList(Material.LADDER, Material.ENDER_CHEST, Material.OAK_WALL_SIGN),
o -> cloneDirectional(o, (Directional) o.getMaterial().createBlockData()),
ProtocolVersionsHelper.BEFORE_1_13
ProtocolVersionsHelper.BEFORE_1_13_AND_PE
);
this.<Rotatable>registerRemapEntryForAllStates(
Material.OAK_SIGN,
Expand All @@ -535,12 +699,12 @@ public void applyDefaultRemaps() {
pistonHead.setType(o.getType());
return pistonHead;
},
ProtocolVersionsHelper.BEFORE_1_13
ProtocolVersionsHelper.BEFORE_1_13_AND_PE
);
this.<Fire>registerRemapEntryForAllStates(
Material.FIRE,
o -> cloneAgeable(o, (Fire) o.getMaterial().createBlockData()),
ProtocolVersionsHelper.BEFORE_1_13
ProtocolVersionsHelper.BEFORE_1_13_AND_PE
);
this.<Tripwire>registerRemapEntryForAllStates(
Material.TRIPWIRE,
Expand All @@ -551,7 +715,7 @@ public void applyDefaultRemaps() {
tripwire.setDisarmed(o.isDisarmed());
return tripwire;
},
ProtocolVersionsHelper.BEFORE_1_13
ProtocolVersionsHelper.BEFORE_1_13_AND_PE
);
this.<RedstoneWire>registerRemapEntryForAllStates(
Material.REDSTONE_WIRE,
Expand All @@ -560,7 +724,7 @@ public void applyDefaultRemaps() {
wire.setPower(o.getPower());
return wire;
},
ProtocolVersionsHelper.BEFORE_1_13
ProtocolVersionsHelper.BEFORE_1_13_AND_PE
);
this.<Repeater>registerRemapEntryForAllStates(
Material.REPEATER,
Expand All @@ -571,12 +735,12 @@ public void applyDefaultRemaps() {
repeater.setFacing(o.getFacing());
return repeater;
},
ProtocolVersionsHelper.BEFORE_1_13
ProtocolVersionsHelper.BEFORE_1_13_AND_PE
);
this.registerRemapEntryForAllStates(
Arrays.asList(Material.CAVE_AIR, Material.VOID_AIR),
Material.AIR.createBlockData(),
ProtocolVersionsHelper.BEFORE_1_13
ProtocolVersionsHelper.BEFORE_1_13_AND_PE
);
this.registerRemapEntryForAllStates(Material.ATTACHED_MELON_STEM, o -> {
return Material.MELON_STEM.createBlockData(data -> {
Expand Down Expand Up @@ -704,7 +868,7 @@ public void applyDefaultRemaps() {
Material.POTTED_WHITE_TULIP
),
Material.FLOWER_POT.createBlockData(),
ProtocolVersionsHelper.BEFORE_1_13
ProtocolVersionsHelper.BEFORE_1_13_AND_PE
);
this.registerRemapEntryForAllStates(Material.SMOOTH_RED_SANDSTONE, Material.CUT_RED_SANDSTONE.createBlockData(), ProtocolVersionsHelper.BEFORE_1_13);
this.registerRemapEntryForAllStates(Material.SMOOTH_SANDSTONE, Material.CUT_SANDSTONE.createBlockData(), ProtocolVersionsHelper.BEFORE_1_13);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
package protocolsupportresourcesgenerator.version;

public enum ProtocolType {
PC, UNKNOWN;
PC, PE, UNKNOWN;
}
12 changes: 12 additions & 0 deletions src/protocolsupportresourcesgenerator/version/ProtocolVersion.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,12 @@ public enum ProtocolVersion {
MINECRAFT_1_5_1(60, new OrderId(ProtocolType.PC, 2), "1.5.1"),
MINECRAFT_1_4_7(51, new OrderId(ProtocolType.PC, 1), "1.4.7"),
MINECRAFT_LEGACY(-1, new OrderId(ProtocolType.PC, 0)),
MINECRAFT_PE_FUTURE(-1, new OrderId(ProtocolType.PE, 5)),
MINECRAFT_PE_1_11(354, new OrderId(ProtocolType.PE, 4), "PE-1.11.0"),
MINECRAFT_PE_1_10(340, new OrderId(ProtocolType.PE, 3), "PE-1.10.0"),
MINECRAFT_PE_1_9(332, new OrderId(ProtocolType.PE, 2), "PE-1.9.0"),
MINECRAFT_PE_1_8(313, new OrderId(ProtocolType.PE, 1), "PE-1.8.0"),
MINECRAFT_PE_LEGACY(-1, new OrderId(ProtocolType.PE, 0)),
UNKNOWN(-1, new OrderId(ProtocolType.UNKNOWN, 0));

private final int id;
Expand Down Expand Up @@ -260,6 +266,9 @@ public static ProtocolVersion getLatest(ProtocolType type) {
case PC: {
return MINECRAFT_1_14;
}
case PE: {
return MINECRAFT_PE_1_11;
}
default: {
throw new IllegalArgumentException(MessageFormat.format("No supported versions for protocol type {0}", type));
}
Expand All @@ -277,6 +286,9 @@ public static ProtocolVersion getOldest(ProtocolType type) {
case PC: {
return MINECRAFT_1_4_7;
}
case PE: {
return MINECRAFT_PE_1_8;
}
default: {
throw new IllegalArgumentException(MessageFormat.format("No supported versions for protocol type {0}", type));
}
Expand Down
Loading