diff --git a/NCPCompatCBDev/pom.xml b/NCPCompatCBDev/pom.xml index 913381e6..8f7482d6 100644 --- a/NCPCompatCBDev/pom.xml +++ b/NCPCompatCBDev/pom.xml @@ -23,7 +23,7 @@ org.bukkit craftbukkit - 1.9-R0.1-SNAPSHOT + 1.9.4-R0.1-SNAPSHOT provided diff --git a/NCPCompatCBDev/src/main/java/fr/neatmonster/nocheatplus/compat/cbdev/BlockCacheCBDev.java b/NCPCompatCBDev/src/main/java/fr/neatmonster/nocheatplus/compat/cbdev/BlockCacheCBDev.java index a68a1f8e..3add898a 100644 --- a/NCPCompatCBDev/src/main/java/fr/neatmonster/nocheatplus/compat/cbdev/BlockCacheCBDev.java +++ b/NCPCompatCBDev/src/main/java/fr/neatmonster/nocheatplus/compat/cbdev/BlockCacheCBDev.java @@ -3,25 +3,25 @@ package fr.neatmonster.nocheatplus.compat.cbdev; import java.util.Iterator; import java.util.List; -import net.minecraft.server.v1_9_R1.AxisAlignedBB; -import net.minecraft.server.v1_9_R1.BlockPosition; -import net.minecraft.server.v1_9_R1.EntityBoat; -import net.minecraft.server.v1_9_R1.EntityShulker; -import net.minecraft.server.v1_9_R1.EnumDirection; -import net.minecraft.server.v1_9_R1.IBlockAccess; -import net.minecraft.server.v1_9_R1.IBlockData; -import net.minecraft.server.v1_9_R1.TileEntity; +import net.minecraft.server.v1_9_R2.AxisAlignedBB; +import net.minecraft.server.v1_9_R2.BlockPosition; +import net.minecraft.server.v1_9_R2.EntityBoat; +import net.minecraft.server.v1_9_R2.EntityShulker; +import net.minecraft.server.v1_9_R2.EnumDirection; +import net.minecraft.server.v1_9_R2.IBlockAccess; +import net.minecraft.server.v1_9_R2.IBlockData; +import net.minecraft.server.v1_9_R2.TileEntity; import org.bukkit.World; -import org.bukkit.craftbukkit.v1_9_R1.CraftWorld; -import org.bukkit.craftbukkit.v1_9_R1.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_9_R2.CraftWorld; +import org.bukkit.craftbukkit.v1_9_R2.entity.CraftEntity; import org.bukkit.entity.Entity; import fr.neatmonster.nocheatplus.utilities.BlockCache; -public class BlockCacheCBDev extends BlockCache implements IBlockAccess{ +public class BlockCacheCBDev extends BlockCache implements IBlockAccess { - protected net.minecraft.server.v1_9_R1.WorldServer world; + protected net.minecraft.server.v1_9_R2.WorldServer world; protected World bukkitWorld; public BlockCacheCBDev(World world) { @@ -55,12 +55,13 @@ public class BlockCacheCBDev extends BlockCache implements IBlockAccess{ @Override public double[] fetchBounds(final int x, final int y, final int z){ final int id = getTypeId(x, y, z); - final net.minecraft.server.v1_9_R1.Block block = net.minecraft.server.v1_9_R1.Block.getById(id); + final net.minecraft.server.v1_9_R2.Block block = net.minecraft.server.v1_9_R2.Block.getById(id); if (block == null) { // TODO: Convention for null blocks -> full ? return null; } final BlockPosition pos = new BlockPosition(x, y, z); + // TODO: Deprecation warning below (reason / substitute?). final AxisAlignedBB bb = block.a(getType(pos), this, pos); if (bb == null) { return new double[] {0.0, 0.0, 0.0, 1.0, 1.0, 1.0}; // Special case. @@ -75,7 +76,7 @@ public class BlockCacheCBDev extends BlockCache implements IBlockAccess{ try{ // TODO: Find some simplification! - final net.minecraft.server.v1_9_R1.Entity mcEntity = ((CraftEntity) entity).getHandle(); + final net.minecraft.server.v1_9_R2.Entity mcEntity = ((CraftEntity) entity).getHandle(); final AxisAlignedBB box = new AxisAlignedBB(minX, minY, minZ, maxX, maxY, maxZ); @SuppressWarnings("rawtypes") @@ -83,7 +84,7 @@ public class BlockCacheCBDev extends BlockCache implements IBlockAccess{ @SuppressWarnings("rawtypes") final Iterator iterator = list.iterator(); while (iterator.hasNext()) { - final net.minecraft.server.v1_9_R1.Entity other = (net.minecraft.server.v1_9_R1.Entity) iterator.next(); + final net.minecraft.server.v1_9_R2.Entity other = (net.minecraft.server.v1_9_R2.Entity) iterator.next(); if (mcEntity == other || !(other instanceof EntityBoat) && !(other instanceof EntityShulker)) { // && !(other instanceof EntityMinecart)) continue; continue; } diff --git a/NCPCompatCBDev/src/main/java/fr/neatmonster/nocheatplus/compat/cbdev/MCAccessCBDev.java b/NCPCompatCBDev/src/main/java/fr/neatmonster/nocheatplus/compat/cbdev/MCAccessCBDev.java index a2ee4aa6..6f5cd7a6 100644 --- a/NCPCompatCBDev/src/main/java/fr/neatmonster/nocheatplus/compat/cbdev/MCAccessCBDev.java +++ b/NCPCompatCBDev/src/main/java/fr/neatmonster/nocheatplus/compat/cbdev/MCAccessCBDev.java @@ -1,26 +1,26 @@ package fr.neatmonster.nocheatplus.compat.cbdev; -import net.minecraft.server.v1_9_R1.AttributeInstance; -import net.minecraft.server.v1_9_R1.AttributeModifier; -import net.minecraft.server.v1_9_R1.AxisAlignedBB; -import net.minecraft.server.v1_9_R1.Block; -import net.minecraft.server.v1_9_R1.BlockPosition; -import net.minecraft.server.v1_9_R1.DamageSource; -import net.minecraft.server.v1_9_R1.EntityComplexPart; -import net.minecraft.server.v1_9_R1.EntityPlayer; -import net.minecraft.server.v1_9_R1.GenericAttributes; -import net.minecraft.server.v1_9_R1.IBlockAccess; -import net.minecraft.server.v1_9_R1.IBlockData; -import net.minecraft.server.v1_9_R1.MobEffectList; +import net.minecraft.server.v1_9_R2.AttributeInstance; +import net.minecraft.server.v1_9_R2.AttributeModifier; +import net.minecraft.server.v1_9_R2.AxisAlignedBB; +import net.minecraft.server.v1_9_R2.Block; +import net.minecraft.server.v1_9_R2.BlockPosition; +import net.minecraft.server.v1_9_R2.DamageSource; +import net.minecraft.server.v1_9_R2.EntityComplexPart; +import net.minecraft.server.v1_9_R2.EntityPlayer; +import net.minecraft.server.v1_9_R2.GenericAttributes; +import net.minecraft.server.v1_9_R2.IBlockAccess; +import net.minecraft.server.v1_9_R2.IBlockData; +import net.minecraft.server.v1_9_R2.MobEffectList; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.command.CommandMap; -import org.bukkit.craftbukkit.v1_9_R1.CraftServer; -import org.bukkit.craftbukkit.v1_9_R1.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_9_R1.entity.CraftLivingEntity; -import org.bukkit.craftbukkit.v1_9_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_9_R2.CraftServer; +import org.bukkit.craftbukkit.v1_9_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_9_R2.entity.CraftLivingEntity; +import org.bukkit.craftbukkit.v1_9_R2.entity.CraftPlayer; import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; @@ -48,24 +48,24 @@ public class MCAccessCBDev implements MCAccess { if (ReflectionUtil.getConstructor(BlockPosition.class, int.class, int.class, int.class) == null) { throw new RuntimeException(); } - ReflectionUtil.checkMethodReturnTypesNoArgs(net.minecraft.server.v1_9_R1.EntityLiving.class, + ReflectionUtil.checkMethodReturnTypesNoArgs(net.minecraft.server.v1_9_R2.EntityLiving.class, new String[]{"getHeadHeight"}, float.class); - ReflectionUtil.checkMethodReturnTypesNoArgs(net.minecraft.server.v1_9_R1.EntityPlayer.class, + ReflectionUtil.checkMethodReturnTypesNoArgs(net.minecraft.server.v1_9_R2.EntityPlayer.class, new String[]{"getHealth"}, float.class); - ReflectionUtil.checkMembers(net.minecraft.server.v1_9_R1.AxisAlignedBB.class, double.class, + ReflectionUtil.checkMembers(net.minecraft.server.v1_9_R2.AxisAlignedBB.class, double.class, "a", "b", "c", "d", "e", "f"); - ReflectionUtil.checkMethodReturnTypesNoArgs(net.minecraft.server.v1_9_R1.AttributeInstance.class, + ReflectionUtil.checkMethodReturnTypesNoArgs(net.minecraft.server.v1_9_R2.AttributeInstance.class, new String[]{"b"}, double.class); - ReflectionUtil.checkMethodReturnTypesNoArgs(net.minecraft.server.v1_9_R1.AttributeModifier.class, + ReflectionUtil.checkMethodReturnTypesNoArgs(net.minecraft.server.v1_9_R2.AttributeModifier.class, new String[]{"c"}, int.class); - ReflectionUtil.checkMethodReturnTypesNoArgs(net.minecraft.server.v1_9_R1.AttributeModifier.class, + ReflectionUtil.checkMethodReturnTypesNoArgs(net.minecraft.server.v1_9_R2.AttributeModifier.class, new String[]{"d"}, double.class); - ReflectionUtil.checkMethodReturnTypesNoArgs(net.minecraft.server.v1_9_R1.Material.class, + ReflectionUtil.checkMethodReturnTypesNoArgs(net.minecraft.server.v1_9_R2.Material.class, new String[]{"isSolid", "isLiquid"}, boolean.class); // TODO: Confine the following by types as well. - ReflectionUtil.checkMembers("net.minecraft.server.v1_9_R1.", + ReflectionUtil.checkMembers("net.minecraft.server.v1_9_R2.", new String[] {"Entity" , "length", "width", "locY"}); - ReflectionUtil.checkMembers("net.minecraft.server.v1_9_R1.", + ReflectionUtil.checkMembers("net.minecraft.server.v1_9_R2.", new String[] {"EntityPlayer" , "dead", "deathTicks", "invulnerableTicks"}); // obc: getHandle() for CraftWorld, CraftPlayer, CraftEntity. @@ -89,13 +89,13 @@ public class MCAccessCBDev implements MCAccess { @Override public String getMCVersion() { - // 1.9 (1_9_R1) - return "1.9"; + // 1.9.4 (1_9_R2) + return "1.9.4"; } @Override public String getServerVersionTag() { - return "Spigot-CB-1.9_R1"; + return "Spigot-CB-1.9_R2"; } @Override @@ -110,26 +110,28 @@ public class MCAccessCBDev implements MCAccess { @Override public double getHeight(final Entity entity) { - final net.minecraft.server.v1_9_R1.Entity mcEntity = ((CraftEntity) entity).getHandle(); + final net.minecraft.server.v1_9_R2.Entity mcEntity = ((CraftEntity) entity).getHandle(); AxisAlignedBB boundingBox = mcEntity.getBoundingBox(); final double entityHeight = Math.max(mcEntity.length, Math.max(mcEntity.getHeadHeight(), boundingBox.e - boundingBox.b)); if (entity instanceof LivingEntity) { return Math.max(((LivingEntity) entity).getEyeHeight(), entityHeight); - } else return entityHeight; + } else { + return entityHeight; + } } - private net.minecraft.server.v1_9_R1.Material getMaterial(int blockId) { + private net.minecraft.server.v1_9_R2.Material getMaterial(int blockId) { final Block block = Block.getById(blockId); if (block == null) { return null; } // (Currently no update state, since we don't have any position.) - return block.q(block.getBlockData()); + return block.getBlockData().getMaterial(); } @Override public AlmostBoolean isBlockSolid(final int id) { - final net.minecraft.server.v1_9_R1.Material material = getMaterial(id); + final net.minecraft.server.v1_9_R2.Material material = getMaterial(id); if (material == null) { return AlmostBoolean.MAYBE; } @@ -140,7 +142,7 @@ public class MCAccessCBDev implements MCAccess { @Override public AlmostBoolean isBlockLiquid(final int id) { - final net.minecraft.server.v1_9_R1.Material material = getMaterial(id); + final net.minecraft.server.v1_9_R2.Material material = getMaterial(id); if (material == null) { return AlmostBoolean.MAYBE; } diff --git a/NCPPlugin/pom.xml b/NCPPlugin/pom.xml index 7c5e202c..bc95df95 100644 --- a/NCPPlugin/pom.xml +++ b/NCPPlugin/pom.xml @@ -246,6 +246,56 @@ + + spigot1_9_r2 + + + spigot1_9_r2 + true + + + + + junit + junit + 4.8.2 + provided + + + org.bukkit + bukkit + 1.8.8-R0.1-SNAPSHOT + provided + + + fr.neatmonster + ncpcore + 1.1-SNAPSHOT + + + fr.neatmonster + ncpcompatbukkit + 1.1-SNAPSHOT + + + + fr.neatmonster + ncpcompatcbdev + 1.1-SNAPSHOT + + + + fr.neatmonster + ncpcompatprotocollib + 1.1-SNAPSHOT + + + fr.neatmonster + ncpcompatglowstone + 1.1-SNAPSHOT + + + cbdev @@ -280,7 +330,7 @@ fr.neatmonster - ncpcompatspigotcb1_9_r1 + ncpcompatcbdev 1.1-SNAPSHOT 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 901453f3..a558bc72 100644 --- a/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/compat/MCAccessFactory.java +++ b/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/compat/MCAccessFactory.java @@ -105,7 +105,7 @@ public class MCAccessFactory { final String[] classNames = new String[] { // Current DEV / LATEST: CB (Spigot) - //"fr.neatmonster.nocheatplus.compat.cbdev.MCAccessCBDev", // future / tests. + "fr.neatmonster.nocheatplus.compat.cbdev.MCAccessCBDev", // future / tests. //"fr.neatmonster.nocheatplus.compat.cbreflect.MCAccessCBReflect", // TEST // Dedicated: CB (Spigot) "fr.neatmonster.nocheatplus.compat.spigotcb1_9_R1.MCAccessSpigotCB1_9_R1", // 1.9.1.9.3 (1_9_R1) diff --git a/README.md b/README.md index f5aefe4a..2240feb3 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,10 @@ All profiles for reference: | `-P all` | `cbdedicated` | All compat modules. | | `-P spigot1_8_r3` | `spigot1_8_r3` | Just Spigot 1.8_R3. | | `-P spigot1_9_r1` | `spigot1_9_r1` | Just Spigot 1.9_R1. | -| `-P cbdev` | `cbdev` | Only the dev-module, usually the latest. Might get removed on very stable versions, in favor of a dedicated module (!). | +| `-P spigot1_9_r2` | `spigot1_9_r2` | Just Spigot 1.9_R2. | +| `-P cbdev` | `cbdev` | The latest version in development. | + +(On the long run, only the latest module for a major Minecraft release will be kept, such as 1_8_r3.) Links --------- diff --git a/pom.xml b/pom.xml index 3666bb04..ea90cd01 100644 --- a/pom.xml +++ b/pom.xml @@ -101,6 +101,28 @@ NoCheatPlus + + spigot1_9_r2 + + + spigot1_9_r2 + true + + + + NCPBuildBase + NCPCommons + NCPCore + NCPCompatBukkit + + NCPCompatCBDev + + NCPCompatProtocolLib + NCPCompatGlowstone + NCPPlugin + NoCheatPlus + + cbdev @@ -115,7 +137,7 @@ NCPCore NCPCompatBukkit - NCPCompatSpigotCB1_9_R1 + NCPCompatCBDev NCPCompatProtocolLib NCPCompatGlowstone