Update to Minecraft 1.10

By: md_5 <git@md-5.net>
This commit is contained in:
CraftBukkit/Spigot
2016-06-09 11:43:49 +10:00
parent 604d9373c0
commit a39b7e5f3a
161 changed files with 1176 additions and 1147 deletions

View File

@@ -865,7 +865,7 @@ public final class CraftServer implements Server {
WorldData worlddata = sdm.getWorldData();
WorldSettings worldSettings = null;
if (worlddata == null) {
worldSettings = new WorldSettings(creator.seed(), WorldSettings.EnumGamemode.getById(getDefaultGameMode().getValue()), generateStructures, hardcore, type);
worldSettings = new WorldSettings(creator.seed(), EnumGamemode.getById(getDefaultGameMode().getValue()), generateStructures, hardcore, type);
worldSettings.setGeneratorSettings(creator.generatorSettings());
worlddata = new WorldData(worldSettings, name);
}
@@ -1387,7 +1387,7 @@ public final class CraftServer implements Server {
Validate.notNull(mode, "Mode cannot be null");
for (World world : getWorlds()) {
((CraftWorld) world).getHandle().worldData.setGameType(WorldSettings.EnumGamemode.getById(mode.getValue()));
((CraftWorld) world).getHandle().worldData.setGameType(EnumGamemode.getById(mode.getValue()));
}
}

View File

@@ -33,6 +33,7 @@ public enum CraftSound {
BLOCK_DISPENSER_DISPENSE("block.dispenser.dispense"),
BLOCK_DISPENSER_FAIL("block.dispenser.fail"),
BLOCK_DISPENSER_LAUNCH("block.dispenser.launch"),
BLOCK_ENCHANTMENT_TABLE_USE("block.enchantment_table.use"),
BLOCK_ENDERCHEST_CLOSE("block.enderchest.close"),
BLOCK_ENDERCHEST_OPEN("block.enderchest.open"),
BLOCK_END_GATEWAY_SPAWN("block.end_gateway.spawn"),
@@ -257,6 +258,10 @@ public enum CraftSound {
ENTITY_HOSTILE_SMALL_FALL("entity.hostile.small_fall"),
ENTITY_HOSTILE_SPLASH("entity.hostile.splash"),
ENTITY_HOSTILE_SWIM("entity.hostile.swim"),
ENTITY_HUSK_AMBIENT("entity.husk.ambient"),
ENTITY_HUSK_DEATH("entity.husk.death"),
ENTITY_HUSK_HURT("entity.husk.hurt"),
ENTITY_HUSK_STEP("entity.husk.step"),
ENTITY_IRONGOLEM_ATTACK("entity.irongolem.attack"),
ENTITY_IRONGOLEM_DEATH("entity.irongolem.death"),
ENTITY_IRONGOLEM_HURT("entity.irongolem.hurt"),
@@ -305,6 +310,12 @@ public enum CraftSound {
ENTITY_PLAYER_SMALL_FALL("entity.player.small_fall"),
ENTITY_PLAYER_SPLASH("entity.player.splash"),
ENTITY_PLAYER_SWIM("entity.player.swim"),
ENTITY_POLAR_BEAR_AMBIENT("entity.polar_bear.ambient"),
ENTITY_POLAR_BEAR_BABY_AMBIENT("entity.polar_bear.baby_ambient"),
ENTITY_POLAR_BEAR_DEATH("entity.polar_bear.death"),
ENTITY_POLAR_BEAR_HURT("entity.polar_bear.hurt"),
ENTITY_POLAR_BEAR_STEP("entity.polar_bear.step"),
ENTITY_POLAR_BEAR_WARNING("entity.polar_bear.warning"),
ENTITY_RABBIT_AMBIENT("entity.rabbit.ambient"),
ENTITY_RABBIT_ATTACK("entity.rabbit.attack"),
ENTITY_RABBIT_DEATH("entity.rabbit.death"),
@@ -363,6 +374,10 @@ public enum CraftSound {
ENTITY_SQUID_AMBIENT("entity.squid.ambient"),
ENTITY_SQUID_DEATH("entity.squid.death"),
ENTITY_SQUID_HURT("entity.squid.hurt"),
ENTITY_STRAY_AMBIENT("entity.stray.ambient"),
ENTITY_STRAY_DEATH("entity.stray.death"),
ENTITY_STRAY_HURT("entity.stray.hurt"),
ENTITY_STRAY_STEP("entity.stray.step"),
ENTITY_TNT_PRIMED("entity.tnt.primed"),
ENTITY_VILLAGER_AMBIENT("entity.villager.ambient"),
ENTITY_VILLAGER_DEATH("entity.villager.death"),
@@ -380,6 +395,10 @@ public enum CraftSound {
ENTITY_WITHER_DEATH("entity.wither.death"),
ENTITY_WITHER_HURT("entity.wither.hurt"),
ENTITY_WITHER_SHOOT("entity.wither.shoot"),
ENTITY_WITHER_SKELETON_AMBIENT("entity.wither_skeleton.ambient"),
ENTITY_WITHER_SKELETON_DEATH("entity.wither_skeleton.death"),
ENTITY_WITHER_SKELETON_HURT("entity.wither_skeleton.hurt"),
ENTITY_WITHER_SKELETON_STEP("entity.wither_skeleton.step"),
ENTITY_WITHER_SPAWN("entity.wither.spawn"),
ENTITY_WOLF_AMBIENT("entity.wolf.ambient"),
ENTITY_WOLF_DEATH("entity.wolf.death"),

View File

@@ -1096,6 +1096,8 @@ public class CraftWorld implements World {
entity = new EntityGuardian(world);
} else if (ArmorStand.class.isAssignableFrom(clazz)) {
entity = new EntityArmorStand(world, x, y, z);
} else if (PolarBear.class.isAssignableFrom(clazz)) {
entity = new EntityPolarBear(world);
}
if (entity != null) {

View File

@@ -26,7 +26,7 @@ public class CraftFlowerPot extends CraftBlockState implements FlowerPot {
@Override
public MaterialData getContents() {
return (pot.d() == null) ? null : CraftMagicNumbers.getMaterial(pot.d()).getNewData((byte) pot.e()); // PAIL: rename
return (pot.d() == null) ? null : CraftMagicNumbers.getMaterial(pot.getItem()).getNewData((byte) pot.getData()); // PAIL: rename
}
@Override

View File

@@ -28,7 +28,7 @@ public class CraftSkull extends CraftBlockState implements Skull {
skull = (TileEntitySkull) world.getTileEntityAt(getX(), getY(), getZ());
profile = skull.getGameProfile();
skullType = getSkullType(skull.getSkullType());
rotation = (byte) skull.getRotation();
rotation = (byte) skull.rotation;
}
public CraftSkull(final Material material, final TileEntitySkull te) {
@@ -36,7 +36,7 @@ public class CraftSkull extends CraftBlockState implements Skull {
skull = te;
profile = skull.getGameProfile();
skullType = getSkullType(skull.getSkullType());
rotation = (byte) skull.getRotation();
rotation = (byte) skull.rotation;
}
static SkullType getSkullType(int id) {

View File

@@ -149,17 +149,6 @@ public class CraftArmorStand extends CraftLivingEntity implements ArmorStand {
getHandle().setBasePlate(!basePlate);
}
@Override
public boolean hasGravity() {
return !getHandle().hasGravity();
}
@Override
public void setGravity(boolean gravity) {
getHandle().setGravity(!gravity);
getHandle().noclip = !gravity;
}
@Override
public boolean isVisible() {
return !getHandle().isInvisible();

View File

@@ -67,6 +67,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
else if (entity instanceof EntitySheep) { return new CraftSheep(server, (EntitySheep) entity); }
else if (entity instanceof EntityHorse) { return new CraftHorse(server, (EntityHorse) entity); }
else if (entity instanceof EntityRabbit) { return new CraftRabbit(server, (EntityRabbit) entity); }
else if (entity instanceof EntityPolarBear) { return new CraftPolarBear(server, (EntityPolarBear) entity); }
else { return new CraftAnimals(server, (EntityAnimal) entity); }
}
// Monsters
@@ -564,14 +565,24 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
}
@Override
public boolean isSilent() {
return getHandle().ad(); // PAIL: Rename isSilent
}
public boolean isSilent() {
return getHandle().isSilent();
}
@Override
public void setSilent(boolean flag) {
getHandle().c(flag); // PAIL: Rename setSilent
}
@Override
public void setSilent(boolean flag) {
getHandle().setSilent(flag);
}
@Override
public boolean hasGravity() {
return !getHandle().isNoGravity();
}
@Override
public void setGravity(boolean gravity) {
getHandle().setNoGravity(!gravity);
}
private static PermissibleBase getPermissibleBase() {
if (perm == null) {

View File

@@ -363,7 +363,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
IChatBaseComponent[] components = CraftSign.sanitizeLines(lines);
TileEntitySign sign = new TileEntitySign();
sign.a(new BlockPosition(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ())); // PAIL: rename
sign.setPosition(new BlockPosition(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()));
System.arraycopy(components, 0, sign.lines, 0, sign.lines.length);
getHandle().playerConnection.sendPacket(sign.getUpdatePacket());
@@ -756,7 +756,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
getHandle().setSpectatorTarget(getHandle());
getHandle().playerInteractManager.setGameMode(WorldSettings.EnumGamemode.getById(mode.getValue()));
getHandle().playerInteractManager.setGameMode(EnumGamemode.getById(mode.getValue()));
getHandle().fallDistance = 0;
getHandle().playerConnection.sendPacket(new PacketPlayOutGameStateChange(3, mode.getValue()));
}

View File

@@ -0,0 +1,27 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.server.EntityPolarBear;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.PolarBear;
public class CraftPolarBear extends CraftAnimals implements PolarBear {
public CraftPolarBear(CraftServer server, EntityPolarBear entity) {
super(server, entity);
}
@Override
public EntityPolarBear getHandle() {
return (EntityPolarBear) entity;
}
@Override
public String toString() {
return "CraftPolarBear";
}
@Override
public EntityType getType() {
return EntityType.POLAR_BEAR;
}
}

View File

@@ -1,6 +1,7 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.server.EntitySkeleton;
import net.minecraft.server.EnumSkeletonType;
import org.apache.commons.lang.Validate;
import org.bukkit.craftbukkit.CraftServer;
@@ -28,11 +29,11 @@ public class CraftSkeleton extends CraftMonster implements Skeleton {
}
public SkeletonType getSkeletonType() {
return SkeletonType.getType(getHandle().getSkeletonType());
return SkeletonType.values()[getHandle().getSkeletonType().ordinal()];
}
public void setSkeletonType(SkeletonType type) {
Validate.notNull(type);
getHandle().setSkeletonType(type.getId());
getHandle().setSkeletonType(EnumSkeletonType.a(type.ordinal())); // PAIL: rename
}
}

View File

@@ -12,12 +12,12 @@ public class CraftSnowman extends CraftGolem implements Snowman {
@Override
public boolean isDerp() {
return getHandle().o(); // PAIL: Rename
return getHandle().isDerp();
}
@Override
public void setDerp(boolean derpMode) {
getHandle().a(derpMode); // PAIL: Rename
getHandle().setDerp(derpMode);
}
@Override

View File

@@ -43,7 +43,7 @@ public class CraftTippedArrow extends CraftArrow implements TippedArrow {
public boolean addCustomEffect(PotionEffect effect, boolean override) {
int effectId = effect.getType().getId();
MobEffect existing = null;
for (MobEffect mobEffect : getHandle().h) {
for (MobEffect mobEffect : getHandle().effects) {
if (MobEffectList.getId(mobEffect.getMobEffect()) == effectId) {
existing = mobEffect;
}
@@ -52,7 +52,7 @@ public class CraftTippedArrow extends CraftArrow implements TippedArrow {
if (!override) {
return false;
}
getHandle().h.remove(existing);
getHandle().effects.remove(existing);
}
getHandle().a(CraftPotionUtil.fromBukkit(effect));
getHandle().refreshEffects();
@@ -62,14 +62,14 @@ public class CraftTippedArrow extends CraftArrow implements TippedArrow {
@Override
public void clearCustomEffects() {
Validate.isTrue(getBasePotionData().getType() != PotionType.UNCRAFTABLE, "Tipped Arrows must have at least 1 effect");
getHandle().h.clear();
getHandle().effects.clear();
getHandle().refreshEffects();
}
@Override
public List<PotionEffect> getCustomEffects() {
ImmutableList.Builder<PotionEffect> builder = ImmutableList.builder();
for (MobEffect effect : getHandle().h) {
for (MobEffect effect : getHandle().effects) {
builder.add(CraftPotionUtil.toBukkit(effect));
}
return builder.build();
@@ -77,7 +77,7 @@ public class CraftTippedArrow extends CraftArrow implements TippedArrow {
@Override
public boolean hasCustomEffect(PotionEffectType type) {
for (MobEffect effect : getHandle().h) {
for (MobEffect effect : getHandle().effects) {
if (CraftPotionUtil.equals(effect.getMobEffect(), type)) {
return true;
}
@@ -87,14 +87,14 @@ public class CraftTippedArrow extends CraftArrow implements TippedArrow {
@Override
public boolean hasCustomEffects() {
return !getHandle().h.isEmpty();
return !getHandle().effects.isEmpty();
}
@Override
public boolean removeCustomEffect(PotionEffectType effect) {
int effectId = effect.getId();
MobEffect existing = null;
for (MobEffect mobEffect : getHandle().h) {
for (MobEffect mobEffect : getHandle().effects) {
if (MobEffectList.getId(mobEffect.getMobEffect()) == effectId) {
existing = mobEffect;
}
@@ -102,8 +102,8 @@ public class CraftTippedArrow extends CraftArrow implements TippedArrow {
if (existing == null) {
return false;
}
Validate.isTrue(getBasePotionData().getType() != PotionType.UNCRAFTABLE || getHandle().h.size() != 1, "Tipped Arrows must have at least 1 effect");
getHandle().h.remove(existing);
Validate.isTrue(getBasePotionData().getType() != PotionType.UNCRAFTABLE || !getHandle().effects.isEmpty(), "Tipped Arrows must have at least 1 effect");
getHandle().effects.remove(existing);
getHandle().refreshEffects();
return true;
}
@@ -111,7 +111,7 @@ public class CraftTippedArrow extends CraftArrow implements TippedArrow {
@Override
public void setBasePotionData(PotionData data) {
Validate.notNull(data, "PotionData cannot be null");
Validate.isTrue(data.getType() != PotionType.UNCRAFTABLE || !getHandle().h.isEmpty(), "Tipped Arrows must have at least 1 effect");
Validate.isTrue(data.getType() != PotionType.UNCRAFTABLE || !getHandle().effects.isEmpty(), "Tipped Arrows must have at least 1 effect");
getHandle().setType(CraftPotionUtil.fromBukkit(data));
}

View File

@@ -39,12 +39,12 @@ public class CraftVillager extends CraftAgeable implements Villager, InventoryHo
}
public Profession getProfession() {
return Profession.getProfession(getHandle().getProfession());
return Profession.values()[getHandle().getProfession()];
}
public void setProfession(Profession profession) {
Validate.notNull(profession);
getHandle().setProfession(profession.getId());
getHandle().setProfession(profession.ordinal());
}
@Override

View File

@@ -1,6 +1,7 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.server.EntityZombie;
import net.minecraft.server.EnumZombieType;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.EntityType;
@@ -40,25 +41,17 @@ public class CraftZombie extends CraftMonster implements Zombie {
}
public void setVillager(boolean flag) {
if (flag) {
getHandle().setVillagerType(0);
} else {
getHandle().clearVillagerType();
}
getHandle().setVillagerType(flag ? EnumZombieType.NORMAL : EnumZombieType.VILLAGER_FARMER);
}
@Override
public void setVillagerProfession(Villager.Profession profession) {
if (profession == null) {
getHandle().clearVillagerType();
} else {
getHandle().setVillagerType(profession.getId());
}
getHandle().setVillagerType(profession == null ? EnumZombieType.NORMAL : EnumZombieType.a(profession.ordinal()));
}
@Override
public Villager.Profession getVillagerProfession() {
if (!isVillager()) return null;
return Villager.Profession.getProfession(getHandle().getVillagerType());
if (!isVillager()) return Villager.Profession.NORMAL;
return Villager.Profession.values()[getHandle().getVillagerType().ordinal()];
}
}

View File

@@ -493,10 +493,10 @@ public class CraftEventFactory {
DamageCause cause = null;
Block damager = blockDamage;
blockDamage = null;
if (source == DamageSource.CACTUS) {
if (source == DamageSource.CACTUS || source == DamageSource.HOT_FLOOR) {
cause = DamageCause.CONTACT;
} else {
throw new AssertionError(String.format("Unhandled damage of %s by %s from %s", entity, damager, source.translationIndex));
throw new IllegalStateException(String.format("Unhandled damage of %s by %s from %s", entity, damager, source.translationIndex));
}
EntityDamageEvent event = callEvent(new EntityDamageByBlockEvent(damager, entity.getBukkitEntity(), cause, modifiers, modifierFunctions));
if (!event.isCancelled()) {
@@ -516,7 +516,7 @@ public class CraftEventFactory {
} else if (source == DamageSource.DRAGON_BREATH) {
cause = DamageCause.DRAGON_BREATH;
} else {
throw new AssertionError(String.format("Unhandled damage of %s by %s from %s", entity, damager.getHandle(), source.translationIndex));
throw new IllegalStateException(String.format("Unhandled damage of %s by %s from %s", entity, damager.getHandle(), source.translationIndex));
}
EntityDamageEvent event = callEvent(new EntityDamageByEntityEvent(damager, entity.getBukkitEntity(), cause, modifiers, modifierFunctions));
if (!event.isCancelled()) {
@@ -556,7 +556,7 @@ public class CraftEventFactory {
return callEntityDamageEvent(null, entity, cause, modifiers, modifierFunctions);
}
throw new AssertionError(String.format("Unhandled damage of %s from %s", entity, source.translationIndex));
throw new IllegalStateException(String.format("Unhandled damage of %s from %s", entity, source.translationIndex));
}
private static EntityDamageEvent callEntityDamageEvent(Entity damager, Entity damagee, DamageCause cause, Map<DamageModifier, Double> modifiers, Map<DamageModifier, Function<? super Double, Double>> modifierFunctions) {

View File

@@ -194,7 +194,7 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta
if (blockEntityTag != null && material == Material.SHIELD) {
blockEntityTag.setString("id", "Banner"); // Hack
}
TileEntity te = blockEntityTag == null ? null : TileEntity.c(blockEntityTag);
TileEntity te = (blockEntityTag == null) ? null : TileEntity.a(null, blockEntityTag);
switch (material) {
case SIGN:

View File

@@ -1,5 +1,6 @@
package org.bukkit.craftbukkit.potion;
import com.google.common.base.Preconditions;
import com.google.common.collect.BiMap;
import com.google.common.collect.ImmutableBiMap;
@@ -58,13 +59,17 @@ public class CraftPotionUtil {
.build();
public static String fromBukkit(PotionData data) {
String type;
if (data.isUpgraded()) {
return upgradeable.get(data.getType());
type = upgradeable.get(data.getType());
} else if (data.isExtended()) {
type = extendable.get(data.getType());
} else {
type = regular.get(data.getType());
}
if (data.isExtended()) {
return extendable.get(data.getType());
}
return regular.get(data.getType());
Preconditions.checkNotNull(type, "Unknown potion type from data " + data);
return "minecraft:" + type;
}
public static PotionData toBukkit(String type) {

View File

@@ -71,7 +71,7 @@ public class CraftBlockProjectileSource implements BlockProjectileSource {
SourceBlock isourceblock = new SourceBlock(dispenserBlock.getWorld(), dispenserBlock.getPosition());
// Copied from DispenseBehaviorProjectile
IPosition iposition = BlockDispenser.a(isourceblock);
EnumDirection enumdirection = BlockDispenser.e(isourceblock.f());
EnumDirection enumdirection = (EnumDirection) isourceblock.e().get(BlockDispenser.FACING);
net.minecraft.server.World world = dispenserBlock.getWorld();
net.minecraft.server.Entity launch = null;

View File

@@ -18,8 +18,8 @@ public class BiomeTest extends AbstractTestingBase {
@Test
public void testMinecraftToBukkit() {
for (BiomeBase biome : BiomeBase.REGISTRY_ID) {
Assert.assertNotNull("No Bukkit mapping for " + biome, CraftBlock.biomeBaseToBiome(biome));
for (Object biome : BiomeBase.REGISTRY_ID) {
Assert.assertNotNull("No Bukkit mapping for " + biome, CraftBlock.biomeBaseToBiome((BiomeBase) biome));
}
}
}

View File

@@ -17,8 +17,8 @@ public class PotionTest extends AbstractTestingBase {
@Test
public void testEffectCompleteness() throws Throwable {
Map<PotionType, String> effects = new EnumMap(PotionType.class);
for (PotionRegistry reg : PotionRegistry.a) {
List<MobEffect> eff = reg.a();
for (Object reg : PotionRegistry.a) {
List<MobEffect> eff = ((PotionRegistry)reg).a();
if (eff.size() != 1) continue;
int id = MobEffectList.getId(eff.get(0).getMobEffect());
PotionEffectType type = PotionEffectType.getById(id);

View File

@@ -68,7 +68,6 @@ public abstract class AbstractTestingBase {
Material.PURPUR_DOUBLE_SLAB,
Material.BEETROOT_BLOCK,
Material.END_GATEWAY,
Material.STRUCTURE_BLOCK,
Material.BURNING_FURNACE,
Material.FROSTED_ICE
).build();