mirror of
https://github.com/CivMC/Civ.git
synced 2026-07-18 00:20:44 +00:00
Remove pearl glitch fix
This is a remnant of pre-2017 civ, and has been fixed by Mojang in recent versions
This commit is contained in:
@@ -25,7 +25,6 @@ public class GameFixesConfig extends SimpleHackConfig {
|
||||
|
||||
private boolean preventTreeWrap;
|
||||
private boolean maintainFlatBedrock;
|
||||
private boolean fixPearlGlitch;
|
||||
private boolean preventLongSigns;
|
||||
private int signLengthLimit;
|
||||
private boolean preventLongSignsAbsolute;
|
||||
@@ -66,9 +65,6 @@ public class GameFixesConfig extends SimpleHackConfig {
|
||||
maintainFlatBedrock = config.getBoolean("maintainFlatBedrock", false);
|
||||
if (maintainFlatBedrock) plugin().log(" Maintaining bedrock flatness.");
|
||||
|
||||
fixPearlGlitch = config.getBoolean("fixPearlGlitch", false);
|
||||
if (fixPearlGlitch) plugin().log(" Pearl glitch fix enabled.");
|
||||
|
||||
preventLongSigns = config.getBoolean("preventLongSigns", true);
|
||||
signLengthLimit = config.getInt("signLengthLimit", 100);
|
||||
preventLongSignsAbsolute = config.getBoolean("preventLongSignsAbsolute", true);
|
||||
@@ -171,10 +167,6 @@ public class GameFixesConfig extends SimpleHackConfig {
|
||||
return maintainFlatBedrock;
|
||||
}
|
||||
|
||||
public boolean fixPearlGlitch() {
|
||||
return fixPearlGlitch;
|
||||
}
|
||||
|
||||
public boolean isPreventLongSigns() {
|
||||
return preventLongSigns;
|
||||
}
|
||||
|
||||
@@ -129,12 +129,6 @@ public class GameFixes extends SimpleHack<GameFixesConfig> implements Listener {
|
||||
} else {
|
||||
genStatus.append(ChatColor.RED).append("disabled\n").append(ChatColor.RESET);
|
||||
}
|
||||
genStatus.append(" Fix pearl glitches ");
|
||||
if (config.fixPearlGlitch()) {
|
||||
genStatus.append(ChatColor.GREEN).append("enabled\n").append(ChatColor.RESET);
|
||||
} else {
|
||||
genStatus.append(ChatColor.RED).append("disabled\n").append(ChatColor.RESET);
|
||||
}
|
||||
genStatus.append(" Prevent long signs ");
|
||||
if (config.isPreventLongSigns()) {
|
||||
genStatus.append(ChatColor.GREEN).append("enabled\n").append(ChatColor.RESET);
|
||||
@@ -352,166 +346,6 @@ public class GameFixes extends SimpleHack<GameFixesConfig> implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
|
||||
public void onPearlTeleport(PlayerTeleportEvent event) {
|
||||
if(config.isEnabled() && config.fixPearlGlitch() && event.getCause() == TeleportCause.ENDER_PEARL) {
|
||||
Location to = event.getTo();
|
||||
World world = to.getWorld();
|
||||
|
||||
Block toBlock = to.getBlock();
|
||||
Block above = toBlock.getRelative(BlockFace.UP);
|
||||
Block below = toBlock.getRelative(BlockFace.DOWN);
|
||||
boolean lowerBlockBypass = false;
|
||||
double height = 0.0;
|
||||
switch (toBlock.getType()) {
|
||||
case CHEST:
|
||||
case ENDER_CHEST:
|
||||
height = 0.875;
|
||||
break;
|
||||
case ACACIA_SLAB:
|
||||
case ANDESITE_SLAB:
|
||||
case BIRCH_SLAB:
|
||||
case BRICK_SLAB:
|
||||
case COBBLESTONE_SLAB:
|
||||
case CUT_RED_SANDSTONE_SLAB:
|
||||
case CUT_SANDSTONE_SLAB:
|
||||
case DARK_OAK_SLAB:
|
||||
case DARK_PRISMARINE_SLAB:
|
||||
case DIORITE_SLAB:
|
||||
case END_STONE_BRICK_SLAB:
|
||||
case GRANITE_SLAB:
|
||||
case JUNGLE_SLAB:
|
||||
case MOSSY_COBBLESTONE_SLAB:
|
||||
case STONE_SLAB:
|
||||
case STONE_BRICK_SLAB:
|
||||
case SPRUCE_SLAB:
|
||||
case SMOOTH_STONE_SLAB:
|
||||
case SMOOTH_SANDSTONE_SLAB:
|
||||
case SMOOTH_RED_SANDSTONE_SLAB:
|
||||
case SMOOTH_QUARTZ_SLAB:
|
||||
case SANDSTONE_SLAB:
|
||||
case RED_SANDSTONE_SLAB:
|
||||
case RED_NETHER_BRICK_SLAB:
|
||||
case QUARTZ_SLAB:
|
||||
case PURPUR_SLAB:
|
||||
case PRISMARINE_SLAB:
|
||||
case PRISMARINE_BRICK_SLAB:
|
||||
case POLISHED_GRANITE_SLAB:
|
||||
case POLISHED_DIORITE_SLAB:
|
||||
case POLISHED_ANDESITE_SLAB:
|
||||
case PETRIFIED_OAK_SLAB:
|
||||
case OAK_SLAB:
|
||||
case NETHER_BRICK_SLAB:
|
||||
case MOSSY_STONE_BRICK_SLAB:
|
||||
lowerBlockBypass = true;
|
||||
height = 0.5;
|
||||
break;
|
||||
case LILY_PAD:
|
||||
height = 0.016;
|
||||
break;
|
||||
case ENCHANTING_TABLE:
|
||||
lowerBlockBypass = true;
|
||||
height = 0.75;
|
||||
break;
|
||||
case BLACK_BED:
|
||||
case BLUE_BED:
|
||||
case BROWN_BED:
|
||||
case CYAN_BED:
|
||||
case GRAY_BED:
|
||||
case GREEN_BED:
|
||||
case LIME_BED:
|
||||
case MAGENTA_BED:
|
||||
case LIGHT_GRAY_BED:
|
||||
case PURPLE_BED:
|
||||
case PINK_BED:
|
||||
case YELLOW_BED:
|
||||
case WHITE_BED:
|
||||
case RED_BED:
|
||||
case ORANGE_BED:
|
||||
case LIGHT_BLUE_BED:
|
||||
break;
|
||||
case FLOWER_POT:
|
||||
height = 0.375;
|
||||
break;
|
||||
case SKELETON_SKULL:
|
||||
case WITHER_SKELETON_WALL_SKULL:
|
||||
case WITHER_SKELETON_SKULL:
|
||||
case SKELETON_WALL_SKULL:
|
||||
case PLAYER_HEAD:
|
||||
case PLAYER_WALL_HEAD:
|
||||
case CREEPER_HEAD:
|
||||
case CREEPER_WALL_HEAD:
|
||||
case DRAGON_HEAD:
|
||||
case DRAGON_WALL_HEAD:
|
||||
case ZOMBIE_HEAD:
|
||||
case ZOMBIE_WALL_HEAD:
|
||||
height = 0.5;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
switch (below.getType()) {
|
||||
case ACACIA_FENCE:
|
||||
case ACACIA_FENCE_GATE:
|
||||
case BIRCH_FENCE:
|
||||
case BIRCH_FENCE_GATE:
|
||||
case DARK_OAK_FENCE:
|
||||
case DARK_OAK_FENCE_GATE:
|
||||
case JUNGLE_FENCE:
|
||||
case JUNGLE_FENCE_GATE:
|
||||
case SPRUCE_FENCE_GATE:
|
||||
case SPRUCE_FENCE:
|
||||
case OAK_FENCE_GATE:
|
||||
case OAK_FENCE:
|
||||
case NETHER_BRICK_FENCE:
|
||||
case ANDESITE_WALL:
|
||||
case BRICK_WALL:
|
||||
case STONE_BRICK_WALL:
|
||||
case COBBLESTONE_WALL:
|
||||
case DIORITE_WALL:
|
||||
case END_STONE_BRICK_WALL:
|
||||
case GRANITE_WALL:
|
||||
case SANDSTONE_WALL:
|
||||
case RED_SANDSTONE_WALL:
|
||||
case MOSSY_COBBLESTONE_WALL:
|
||||
case MOSSY_STONE_BRICK_WALL:
|
||||
case PRISMARINE_WALL:
|
||||
case RED_NETHER_BRICK_WALL:
|
||||
case NETHER_BRICK_WALL:
|
||||
height = 0.5;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
boolean upperBlockBypass = false;
|
||||
if (height >= 0.5) {
|
||||
Block aboveHeadBlock = above.getRelative(BlockFace.UP);
|
||||
if (!aboveHeadBlock.getType().isSolid()) {
|
||||
height = 0.5;
|
||||
} else {
|
||||
upperBlockBypass = true;
|
||||
}
|
||||
}
|
||||
|
||||
to.setX(Math.floor(to.getX() + 0.5000));
|
||||
to.setY(Math.floor(to.getY() + height));
|
||||
to.setZ(Math.floor(to.getZ() + 0.5000));
|
||||
|
||||
if (above.getType().isSolid() || (toBlock.getType().isSolid() && !lowerBlockBypass)
|
||||
|| upperBlockBypass) {
|
||||
boolean bypass = false;
|
||||
if (world.getEnvironment() == Environment.NETHER &&
|
||||
to.getBlockY() > 124 && to.getBlockY() < 129) {
|
||||
bypass = true;
|
||||
}
|
||||
if (!bypass) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//fixes a small side effect of the above
|
||||
BlockFace[] faces = new BlockFace[] {BlockFace.NORTH,BlockFace.SOUTH,BlockFace.EAST,BlockFace.WEST};
|
||||
@EventHandler
|
||||
|
||||
Reference in New Issue
Block a user