From 16db04f397bd99d0713d316d821c695be812bd46 Mon Sep 17 00:00:00 2001 From: asofold Date: Sun, 23 Feb 2014 00:38:31 +0100 Subject: [PATCH] Officially drop compatibility for before CB 1.4.5-R1.0 ! --- NCPCompatCB2511/pom.xml | 32 ---- .../compat/cb2511/BlockCacheCB2511.java | 133 -------------- .../compat/cb2511/MCAccessCB2511.java | 167 ------------------ NCPPlugin/pom.xml | 5 - .../nocheatplus/compat/MCAccessFactory.java | 8 - NoCheatPlus/pom.xml | 1 - pom.xml | 1 - 7 files changed, 347 deletions(-) delete mode 100644 NCPCompatCB2511/pom.xml delete mode 100644 NCPCompatCB2511/src/main/java/fr/neatmonster/nocheatplus/compat/cb2511/BlockCacheCB2511.java delete mode 100644 NCPCompatCB2511/src/main/java/fr/neatmonster/nocheatplus/compat/cb2511/MCAccessCB2511.java diff --git a/NCPCompatCB2511/pom.xml b/NCPCompatCB2511/pom.xml deleted file mode 100644 index a0c3f46b..00000000 --- a/NCPCompatCB2511/pom.xml +++ /dev/null @@ -1,32 +0,0 @@ - - 4.0.0 - fr.neatmonster - ncpcompatcb2511 - jar - NCPCompatCB2511 - static - - - fr.neatmonster - nocheatplus-parent - static - - - - - fr.neatmonster - ncpcore - static - - - org.bukkit - craftbukkit - 1.4.5-R0.2 - - - - Compatibility up to CB2512 (i.e. 1.4.5-R0.2). - -Version updating is done for the NoCheatPlus sub-module. - \ No newline at end of file diff --git a/NCPCompatCB2511/src/main/java/fr/neatmonster/nocheatplus/compat/cb2511/BlockCacheCB2511.java b/NCPCompatCB2511/src/main/java/fr/neatmonster/nocheatplus/compat/cb2511/BlockCacheCB2511.java deleted file mode 100644 index c11f994a..00000000 --- a/NCPCompatCB2511/src/main/java/fr/neatmonster/nocheatplus/compat/cb2511/BlockCacheCB2511.java +++ /dev/null @@ -1,133 +0,0 @@ -package fr.neatmonster.nocheatplus.compat.cb2511; - -import java.util.Iterator; -import java.util.List; - -import net.minecraft.server.AxisAlignedBB; -import net.minecraft.server.IBlockAccess; -import net.minecraft.server.Material; -import net.minecraft.server.TileEntity; -import net.minecraft.server.Vec3DPool; - -import org.bukkit.World; -import org.bukkit.craftbukkit.CraftWorld; -import org.bukkit.craftbukkit.entity.CraftEntity; -import org.bukkit.entity.Entity; -import org.bukkit.entity.EntityType; - -import fr.neatmonster.nocheatplus.utilities.BlockCache; - -public class BlockCacheCB2511 extends BlockCache implements IBlockAccess{ - - /** Box for one time use, no nesting, no extra storing this(!). */ - protected static final AxisAlignedBB useBox = AxisAlignedBB.a(0, 0, 0, 0, 0, 0); - - protected net.minecraft.server.World world; - - public BlockCacheCB2511(World world) { - setAccess(world); - } - - @Override - public void setAccess(final World world) { - this.world = world == null ? null : ((CraftWorld) world).getHandle(); - } - - @Override - public int fetchTypeId(final int x, final int y, final int z) { - return world.getTypeId(x, y, z); - } - - @Override - public int fetchData(final int x, final int y, final int z) { - return world.getData(x, y, z); - } - - @Override - public double[] fetchBounds(final int x, final int y, final int z){ - - // TODO: change api for this / use nodes (!) - final int id = getTypeId(x, y, z); - final net.minecraft.server.Block block = net.minecraft.server.Block.byId[id]; - if (block == null) return null; - block.updateShape(this, x, y, z); // TODO: use THIS instead of world. - - // minX, minY, minZ, maxX, maxY, maxZ - return new double[]{block.v(), block.x(), block.z(), block.w(), block.y(), block.A()}; - } - - @Override - public boolean standsOnEntity(Entity entity, final double minX, final double minY, final double minZ, final double maxX, final double maxY, final double maxZ){ - try{ - // TODO: Probably check other ids too before doing this ? - - final net.minecraft.server.Entity mcEntity = ((CraftEntity) entity).getHandle(); - - final AxisAlignedBB box = useBox.b(minX, minY, minZ, maxX, maxY, maxZ); - @SuppressWarnings("rawtypes") - final List list = world.getEntities(mcEntity, box); - @SuppressWarnings("rawtypes") - Iterator iterator = list.iterator(); - while (iterator.hasNext()) { - final net.minecraft.server.Entity other = (net.minecraft.server.Entity) iterator.next(); - final EntityType type = other.getBukkitEntity().getType(); - if (type != EntityType.BOAT && type != EntityType.MINECART) continue; - final AxisAlignedBB otherBox = other.boundingBox; - if (box.a > otherBox.d || box.d < otherBox.a || box.b > otherBox.e || box.e < otherBox.b || box.c > otherBox.f || box.f < otherBox.c) continue; - else { - return true; - } - } - } - catch (Throwable t){ - // Ignore exceptions (Context: DisguiseCraft). - } - return false; - } - - /* (non-Javadoc) - * @see fr.neatmonster.nocheatplus.utilities.BlockCache#cleanup() - */ - @Override - public void cleanup() { - super.cleanup(); - world = null; - } - - @Override - public Material getMaterial(final int x, final int y, final int z) { - return world.getMaterial(x, y, z); - } - - @Override - public TileEntity getTileEntity(final int x, final int y, final int z) { - return world.getTileEntity(x, y, z); - } - - @Override - public Vec3DPool getVec3DPool() { - return world.getVec3DPool(); - } - - @Override - public boolean isBlockFacePowered(final int arg0, final int arg1, final int arg2, final int arg3) { - return world.isBlockFacePowered(arg0, arg1, arg2, arg3); - } - - @Override - public boolean t(final int x, final int y, final int z) { - return world.t(x, y, z); - } - - /** - * Compatibility with 1.4.2. - * @param x - * @param y - * @param z - * @return - */ - public boolean s(final int x, final int y, final int z) { - return world.t(x, y, z); - } - -} diff --git a/NCPCompatCB2511/src/main/java/fr/neatmonster/nocheatplus/compat/cb2511/MCAccessCB2511.java b/NCPCompatCB2511/src/main/java/fr/neatmonster/nocheatplus/compat/cb2511/MCAccessCB2511.java deleted file mode 100644 index 1bb55af7..00000000 --- a/NCPCompatCB2511/src/main/java/fr/neatmonster/nocheatplus/compat/cb2511/MCAccessCB2511.java +++ /dev/null @@ -1,167 +0,0 @@ -package fr.neatmonster.nocheatplus.compat.cb2511; - -import net.minecraft.server.AxisAlignedBB; -import net.minecraft.server.Block; -import net.minecraft.server.DamageSource; -import net.minecraft.server.EntityComplexPart; -import net.minecraft.server.EntityPlayer; -import net.minecraft.server.MobEffectList; - -import org.bukkit.Bukkit; -import org.bukkit.Material; -import org.bukkit.World; -import org.bukkit.command.CommandMap; -import org.bukkit.craftbukkit.CraftServer; -import org.bukkit.craftbukkit.entity.CraftEntity; -import org.bukkit.craftbukkit.entity.CraftPlayer; -import org.bukkit.entity.Entity; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; - -import fr.neatmonster.nocheatplus.compat.AlmostBoolean; -import fr.neatmonster.nocheatplus.compat.MCAccess; -import fr.neatmonster.nocheatplus.utilities.BlockCache; -import fr.neatmonster.nocheatplus.utilities.ReflectionUtil; - - -public class MCAccessCB2511 implements MCAccess { - - /** - * Constructor to let it fail in time. - */ - public MCAccessCB2511(){ - getCommandMap(); - ReflectionUtil.checkMembers("net.minecraft.server.", new String[]{"Entity" , "dead"}); - ReflectionUtil.checkMembers("net.minecraft.server.", new String[]{"EntityPlayer" , "netServerHandler"}); - ReflectionUtil.checkMethodReturnTypesNoArgs(net.minecraft.server.Block.class, - new String[]{"v", "w", "x", "y", "z", "A"}, double.class); - } - - @Override - public String getMCVersion() { - return "1.4.2|1.4.4|1.4.5"; - } - - @Override - public String getServerVersionTag() { - return "CB2511"; - } - - @Override - public BlockCache getBlockCache(World world) { - return new BlockCacheCB2511(world); - } - - @Override - public CommandMap getCommandMap() { - return ((CraftServer) Bukkit.getServer()).getCommandMap(); - } - - @Override - public double getHeight(final Entity entity) { - final net.minecraft.server.Entity mcEntity = ((CraftEntity) entity).getHandle(); - final double entityHeight = Math.max(mcEntity.length, Math.max(mcEntity.height, mcEntity.boundingBox.e - mcEntity.boundingBox.b)); - if (entity instanceof LivingEntity) { - return Math.max(((LivingEntity) entity).getEyeHeight(), entityHeight); - } else return entityHeight; - } - - @Override - public AlmostBoolean isBlockSolid(final int id) { - final Block block = Block.byId[id]; - if (block == null || block.material == null) return AlmostBoolean.MAYBE; - else return AlmostBoolean.match(block.material.isSolid()); - } - - @Override - public AlmostBoolean isBlockLiquid(final int id) { - final Block block = Block.byId[id]; - if (block == null || block.material == null) return AlmostBoolean.MAYBE; - else return AlmostBoolean.match(block.material.isLiquid()); - } - - @Override - public double getWidth(final Entity entity) { - return ((CraftEntity) entity).getHandle().width; - } - - @Override - public AlmostBoolean isIllegalBounds(final Player player) { - final EntityPlayer entityPlayer = ((CraftPlayer) player).getHandle(); - if (entityPlayer.dead) return AlmostBoolean.NO; - final AxisAlignedBB box = entityPlayer.boundingBox; - if (!entityPlayer.isSleeping()){ - // This can not really test stance but height of bounding box. - final double dY = Math.abs(box.e - box.b); - if (dY > 1.8) return AlmostBoolean.YES; // dY > 1.65D || - if (dY < 0.1D && entityPlayer.length >= 0.1) return AlmostBoolean.YES; - } - return AlmostBoolean.MAYBE; - } - - @Override - public double getJumpAmplifier(final Player player) { - final net.minecraft.server.EntityPlayer mcPlayer = ((CraftPlayer) player).getHandle(); - - if (mcPlayer.hasEffect(MobEffectList.JUMP)) return mcPlayer.getEffect(MobEffectList.JUMP).getAmplifier(); - else return Double.NEGATIVE_INFINITY; - } - - @Override - public double getFasterMovementAmplifier(final Player player) { - final net.minecraft.server.EntityPlayer mcPlayer = ((CraftPlayer) player).getHandle(); - if (mcPlayer.hasEffect(MobEffectList.FASTER_MOVEMENT)) return mcPlayer.getEffect(MobEffectList.FASTER_MOVEMENT).getAmplifier(); - else return Double.NEGATIVE_INFINITY; - } - - @Override - public int getInvulnerableTicks(final Player player) { - return ((CraftPlayer) player).getHandle().invulnerableTicks; - } - - @Override - public void setInvulnerableTicks(final Player player, final int ticks) { - ((CraftPlayer) player).getHandle().invulnerableTicks = ticks; - } - - @Override - public void dealFallDamage(final Player player, final double damage) { - ((CraftPlayer) player).getHandle().damageEntity(DamageSource.FALL, (int) Math.round(damage)); - } - - @Override - public boolean isComplexPart(final Entity entity) { - return ((CraftEntity) entity).getHandle() instanceof EntityComplexPart; - } - - @Override - public boolean shouldBeZombie(final Player player) { - final net.minecraft.server.EntityPlayer mcPlayer = ((CraftPlayer) player).getHandle(); - return !mcPlayer.dead && mcPlayer.getHealth() <= 0 ; - } - - @Override - public void setDead(final Player player, final int deathTicks) { - final net.minecraft.server.EntityPlayer mcPlayer = ((CraftPlayer) player).getHandle(); - mcPlayer.deathTicks = deathTicks; - mcPlayer.dead = true; - } - - @Override - public long getKeepAliveTime(final Player player) { - // TODO: Implement if possible. - return Long.MIN_VALUE; - } - - @Override - public boolean hasGravity(final Material mat) { - switch(mat){ - case SAND: - case GRAVEL: - return true; - default: - return false; - } - } - -} diff --git a/NCPPlugin/pom.xml b/NCPPlugin/pom.xml index a684dc6e..d60e726c 100644 --- a/NCPPlugin/pom.xml +++ b/NCPPlugin/pom.xml @@ -33,11 +33,6 @@ ncpcompatbukkit static - - fr.neatmonster - ncpcompatcb2511 - static - fr.neatmonster ncpcompatcb2512 diff --git a/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/compat/MCAccessFactory.java b/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/compat/MCAccessFactory.java index 939d11dd..0f3eb9fb 100644 --- a/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/compat/MCAccessFactory.java +++ b/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/compat/MCAccessFactory.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.List; import fr.neatmonster.nocheatplus.compat.bukkit.MCAccessBukkit; -import fr.neatmonster.nocheatplus.compat.cb2511.MCAccessCB2511; import fr.neatmonster.nocheatplus.compat.cb2512.MCAccessCB2512; import fr.neatmonster.nocheatplus.compat.cb2545.MCAccessCB2545; import fr.neatmonster.nocheatplus.compat.cb2602.MCAccessCB2602; @@ -135,13 +134,6 @@ public class MCAccessFactory { throwables.add(t); }; - // 1.4.2 ... 1.4.5 (up to CB2511). - try{ - return new MCAccessCB2511(); - } - catch(Throwable t){ - throwables.add(t); - }; } // Try to set up api-only access (since 1.4.6). diff --git a/NoCheatPlus/pom.xml b/NoCheatPlus/pom.xml index 1a5d8a8b..3a6ceb1e 100644 --- a/NoCheatPlus/pom.xml +++ b/NoCheatPlus/pom.xml @@ -69,7 +69,6 @@ fr.neatmonster:ncpcommons fr.neatmonster:ncpcore fr.neatmonster:ncpcompatbukkit - fr.neatmonster:ncpcompatcb2511 fr.neatmonster:ncpcompatcb2512 fr.neatmonster:ncpcompatcb2545 fr.neatmonster:ncpcompatcb2602 diff --git a/pom.xml b/pom.xml index 7a92a5a2..d9658b46 100644 --- a/pom.xml +++ b/pom.xml @@ -18,7 +18,6 @@ NCPCommons NCPCore NCPCompatBukkit - NCPCompatCB2511 NCPCompatCB2512 NCPCompatCB2545 NCPCompatCB2602