@@ -1105,7 +1105,7 @@ public final class CraftServer implements Server {
|
||||
|
||||
@Override
|
||||
public void resetRecipes() {
|
||||
console.getCraftingManager().a(console.getResourceManager());
|
||||
// throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1772,7 +1772,7 @@ public final class CraftServer implements Server {
|
||||
|
||||
@Override
|
||||
public Iterator<org.bukkit.advancement.Advancement> advancementIterator() {
|
||||
return Iterators.unmodifiableIterator(Iterators.transform(console.getAdvancementData().b().iterator(), new Function<Advancement, org.bukkit.advancement.Advancement>() { // PAIL: rename
|
||||
return Iterators.unmodifiableIterator(Iterators.transform(console.getAdvancementData().a().iterator(), new Function<Advancement, org.bukkit.advancement.Advancement>() { // PAIL: rename
|
||||
@Override
|
||||
public org.bukkit.advancement.Advancement apply(Advancement advancement) {
|
||||
return advancement.bukkit;
|
||||
@@ -1839,12 +1839,12 @@ public final class CraftServer implements Server {
|
||||
Preconditions.checkArgument(clazz == org.bukkit.Material.class, "Block namespace must have material type");
|
||||
|
||||
TagsServer<Block> blockTags = console.getTagRegistry().a(); // PAIL: getBlockTags
|
||||
return blockTags.c().keySet().stream().map(key -> (org.bukkit.Tag<T>) new CraftBlockTag(blockTags, key)).collect(ImmutableList.toImmutableList());
|
||||
return blockTags.b().keySet().stream().map(key -> (org.bukkit.Tag<T>) new CraftBlockTag(blockTags, key)).collect(ImmutableList.toImmutableList());
|
||||
case org.bukkit.Tag.REGISTRY_ITEMS:
|
||||
Preconditions.checkArgument(clazz == org.bukkit.Material.class, "Item namespace must have material type");
|
||||
|
||||
TagsServer<Item> itemTags = console.getTagRegistry().b(); // PAIL: getItemTags
|
||||
return itemTags.c().keySet().stream().map(key -> (org.bukkit.Tag<T>) new CraftItemTag(itemTags, key)).collect(ImmutableList.toImmutableList());
|
||||
return itemTags.b().keySet().stream().map(key -> (org.bukkit.Tag<T>) new CraftItemTag(itemTags, key)).collect(ImmutableList.toImmutableList());
|
||||
default:
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
|
||||
@@ -7,9 +7,11 @@ import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Random;
|
||||
import java.util.Set;
|
||||
@@ -80,9 +82,6 @@ import net.minecraft.server.Vec3D;
|
||||
import net.minecraft.server.WorldGenFeatureEmptyConfiguration;
|
||||
import net.minecraft.server.WorldGenerator;
|
||||
import net.minecraft.server.WorldNBTStorage;
|
||||
import net.minecraft.server.WorldProviderHell;
|
||||
import net.minecraft.server.WorldProviderNormal;
|
||||
import net.minecraft.server.WorldProviderTheEnd;
|
||||
import net.minecraft.server.WorldServer;
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.BlockChangeDelegate;
|
||||
@@ -702,7 +701,7 @@ public class CraftWorld implements World {
|
||||
CraftPlayer cp = (CraftPlayer) p;
|
||||
if (cp.getHandle().playerConnection == null) continue;
|
||||
|
||||
cp.getHandle().playerConnection.sendPacket(new PacketPlayOutUpdateTime(cp.getHandle().world.getTime(), cp.getHandle().getPlayerTime(), cp.getHandle().world.getGameRules().getBoolean("doDaylightCycle")));
|
||||
cp.getHandle().playerConnection.sendPacket(new PacketPlayOutUpdateTime(cp.getHandle().world.getTime(), cp.getHandle().getPlayerTime(), cp.getHandle().world.getGameRules().getBoolean(GameRules.DO_DAYLIGHT_CYCLE)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1853,6 +1852,40 @@ public class CraftWorld implements World {
|
||||
world.getMinecraftServer().getPlayerList().sendPacketNearby(null, x, y, z, volume > 1.0F ? 16.0F * volume : 16.0D, this.world.getWorldProvider().getDimensionManager(), packet);
|
||||
}
|
||||
|
||||
private static Map<String, GameRules.GameRuleKey<?>> gamerules;
|
||||
public static synchronized Map<String, GameRules.GameRuleKey<?>> getGameRulesNMS() {
|
||||
if (gamerules != null) {
|
||||
return gamerules;
|
||||
}
|
||||
|
||||
Map<String, GameRules.GameRuleKey<?>> gamerules = new HashMap<>();
|
||||
GameRules.a(new GameRules.GameRuleVisitor() {
|
||||
@Override
|
||||
public <T extends GameRules.GameRuleValue<T>> void a(GameRules.GameRuleKey<T> gamerules_gamerulekey, GameRules.GameRuleDefinition<T> gamerules_gameruledefinition) {
|
||||
gamerules.put(gamerules_gamerulekey.a(), gamerules_gamerulekey);
|
||||
}
|
||||
});
|
||||
|
||||
return CraftWorld.gamerules = gamerules;
|
||||
}
|
||||
|
||||
private static Map<String, GameRules.GameRuleDefinition<?>> gameruleDefinitions;
|
||||
public static synchronized Map<String, GameRules.GameRuleDefinition<?>> getGameRuleDefinitions() {
|
||||
if (gameruleDefinitions != null) {
|
||||
return gameruleDefinitions;
|
||||
}
|
||||
|
||||
Map<String, GameRules.GameRuleDefinition<?>> gameruleDefinitions = new HashMap<>();
|
||||
GameRules.a(new GameRules.GameRuleVisitor() {
|
||||
@Override
|
||||
public <T extends GameRules.GameRuleValue<T>> void a(GameRules.GameRuleKey<T> gamerules_gamerulekey, GameRules.GameRuleDefinition<T> gamerules_gameruledefinition) {
|
||||
gameruleDefinitions.put(gamerules_gamerulekey.a(), gamerules_gameruledefinition);
|
||||
}
|
||||
});
|
||||
|
||||
return CraftWorld.gameruleDefinitions = gameruleDefinitions;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getGameRuleValue(String rule) {
|
||||
// In method contract for some reason
|
||||
@@ -1860,8 +1893,8 @@ public class CraftWorld implements World {
|
||||
return null;
|
||||
}
|
||||
|
||||
GameRules.GameRuleValue value = getHandle().getGameRules().get(rule);
|
||||
return value != null ? value.getValue() : "";
|
||||
GameRules.GameRuleValue<?> value = getHandle().getGameRules().get(getGameRulesNMS().get(rule));
|
||||
return value != null ? value.toString() : "";
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1871,31 +1904,31 @@ public class CraftWorld implements World {
|
||||
|
||||
if (!isGameRule(rule)) return false;
|
||||
|
||||
getHandle().getGameRules().set(rule, value, getHandle().getMinecraftServer());
|
||||
getHandle().getGameRules().get(getGameRulesNMS().get(rule)).b(null, value);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getGameRules() {
|
||||
return GameRules.getGameRules().keySet().toArray(new String[GameRules.getGameRules().size()]);
|
||||
return getGameRulesNMS().keySet().toArray(new String[getGameRulesNMS().size()]);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isGameRule(String rule) {
|
||||
Validate.isTrue(rule != null && !rule.isEmpty(), "Rule cannot be null nor empty");
|
||||
return GameRules.getGameRules().containsKey(rule);
|
||||
return getGameRulesNMS().containsKey(rule);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T getGameRuleValue(GameRule<T> rule) {
|
||||
Validate.notNull(rule, "GameRule cannot be null");
|
||||
return convert(rule, getHandle().getGameRules().get(rule.getName()));
|
||||
return convert(rule, getHandle().getGameRules().get(getGameRulesNMS().get(rule.getName())));
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T getGameRuleDefault(GameRule<T> rule) {
|
||||
Validate.notNull(rule, "GameRule cannot be null");
|
||||
return convert(rule, GameRules.getGameRules().get(rule.getName()).a());
|
||||
return convert(rule, getGameRuleDefinitions().get(rule.getName()).a());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1905,22 +1938,21 @@ public class CraftWorld implements World {
|
||||
|
||||
if (!isGameRule(rule.getName())) return false;
|
||||
|
||||
getHandle().getGameRules().set(rule.getName(), newValue.toString(), getHandle().getMinecraftServer());
|
||||
getHandle().getGameRules().get(getGameRulesNMS().get(rule.getName())).b(null, newValue.toString());
|
||||
return true;
|
||||
}
|
||||
|
||||
private <T> T convert(GameRule<T> rule, GameRules.GameRuleValue value) {
|
||||
private <T> T convert(GameRule<T> rule, GameRules.GameRuleValue<?> value) {
|
||||
if (value == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
switch (value.getType()) {
|
||||
case BOOLEAN_VALUE:
|
||||
return rule.getType().cast(value.getBooleanValue());
|
||||
case NUMERICAL_VALUE:
|
||||
return rule.getType().cast(value.getIntValue());
|
||||
default:
|
||||
throw new IllegalArgumentException("Invalid GameRule type (" + value.getType() + ") for GameRule " + rule.getName());
|
||||
if (value instanceof GameRules.GameRuleBoolean) {
|
||||
return rule.getType().cast(((GameRules.GameRuleBoolean) value).a());
|
||||
} else if (value instanceof GameRules.GameRuleInt) {
|
||||
return rule.getType().cast(value.getIntValue());
|
||||
} else {
|
||||
throw new IllegalArgumentException("Invalid GameRule type (" + value + ") for GameRule " + rule.getName());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -177,7 +177,7 @@ public class Main {
|
||||
useConsole = false;
|
||||
}
|
||||
|
||||
if (false && Main.class.getPackage().getImplementationVendor() != null && System.getProperty("IReallyKnowWhatIAmDoingISwear") == null) {
|
||||
if (Main.class.getPackage().getImplementationVendor() != null && System.getProperty("IReallyKnowWhatIAmDoingISwear") == null) {
|
||||
Date buildDate = new SimpleDateFormat("yyyyMMdd-HHmm").parse(Main.class.getPackage().getImplementationVendor());
|
||||
|
||||
Calendar deadline = Calendar.getInstance();
|
||||
|
||||
@@ -66,12 +66,12 @@ public class CraftCreeper extends CraftMonster implements Creeper {
|
||||
|
||||
@Override
|
||||
public void explode() {
|
||||
getHandle().eb();
|
||||
getHandle().explode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void ignite() {
|
||||
getHandle().dY(); // PAIL rename ignite
|
||||
getHandle().ignite();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -26,7 +26,7 @@ public class CraftHanging extends CraftEntity implements Hanging {
|
||||
@Override
|
||||
public boolean setFacingDirection(BlockFace face, boolean force) {
|
||||
EntityHanging hanging = getHandle();
|
||||
EnumDirection dir = hanging.direction;
|
||||
EnumDirection dir = hanging.getDirection();
|
||||
switch (face) {
|
||||
case SOUTH:
|
||||
default:
|
||||
@@ -52,7 +52,7 @@ public class CraftHanging extends CraftEntity implements Hanging {
|
||||
|
||||
@Override
|
||||
public BlockFace getFacing() {
|
||||
EnumDirection direction = this.getHandle().direction;
|
||||
EnumDirection direction = this.getHandle().getDirection();
|
||||
if (direction == null) return BlockFace.SELF;
|
||||
return CraftBlock.notchToBlockFace(direction);
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ public class CraftItemFrame extends CraftHanging implements ItemFrame {
|
||||
@Override
|
||||
public boolean setFacingDirection(BlockFace face, boolean force) {
|
||||
EntityHanging hanging = getHandle();
|
||||
EnumDirection oldDir = hanging.direction;
|
||||
EnumDirection oldDir = hanging.getDirection();
|
||||
EnumDirection newDir = CraftBlock.blockFaceToNotch(face);
|
||||
|
||||
getHandle().setDirection(newDir);
|
||||
|
||||
@@ -34,11 +34,11 @@ public class CraftPainting extends CraftHanging implements Painting {
|
||||
EntityPainting painting = this.getHandle();
|
||||
Paintings oldArt = painting.art;
|
||||
painting.art = CraftArt.BukkitToNotch(art);
|
||||
painting.setDirection(painting.direction);
|
||||
painting.setDirection(painting.getDirection());
|
||||
if (!force && !painting.survives()) {
|
||||
// Revert painting since it doesn't fit
|
||||
painting.art = oldArt;
|
||||
painting.setDirection(painting.direction);
|
||||
painting.setDirection(painting.getDirection());
|
||||
return false;
|
||||
}
|
||||
this.update();
|
||||
@@ -60,7 +60,7 @@ public class CraftPainting extends CraftHanging implements Painting {
|
||||
EntityPainting painting = EntityTypes.PAINTING.a(world);
|
||||
painting.blockPosition = getHandle().blockPosition;
|
||||
painting.art = getHandle().art;
|
||||
painting.setDirection(getHandle().direction);
|
||||
painting.setDirection(getHandle().getDirection());
|
||||
getHandle().die();
|
||||
getHandle().velocityChanged = true; // because this occurs when the painting is broken, so it might be important
|
||||
world.addEntity(painting);
|
||||
|
||||
@@ -26,6 +26,8 @@ public final class CraftMemoryMapper {
|
||||
return null;
|
||||
} else if (object instanceof Location) {
|
||||
return toNms((Location) object);
|
||||
} else if (object instanceof Long) {
|
||||
return object;
|
||||
}
|
||||
|
||||
throw new UnsupportedOperationException("Do not know how to map " + object);
|
||||
|
||||
@@ -90,16 +90,16 @@ public class CraftMerchantCustom extends CraftMerchant {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void r(int i) {
|
||||
public void s(int i) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean ea() {
|
||||
public boolean eb() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SoundEffect eb() {
|
||||
public SoundEffect ec() {
|
||||
return SoundEffects.ENTITY_VILLAGER_YES;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -186,7 +186,7 @@ public final class CraftMagicNumbers implements UnsafeValues {
|
||||
* @return string
|
||||
*/
|
||||
public String getMappingsVersion() {
|
||||
return "df689a0f36ee29c2b2f456da8803f74d";
|
||||
return "5b8c1c16444f2e8e58ec6c42af14ebaa";
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -217,7 +217,7 @@ public final class CraftMagicNumbers implements UnsafeValues {
|
||||
|
||||
net.minecraft.server.Advancement.SerializedAdvancement nms = (net.minecraft.server.Advancement.SerializedAdvancement) ChatDeserializer.a(AdvancementDataWorld.DESERIALIZER, advancement, net.minecraft.server.Advancement.SerializedAdvancement.class);
|
||||
if (nms != null) {
|
||||
AdvancementDataWorld.REGISTRY.a(Maps.newHashMap(Collections.singletonMap(CraftNamespacedKey.toMinecraft(key), nms)));
|
||||
MinecraftServer.getServer().getAdvancementData().REGISTRY.a(Maps.newHashMap(Collections.singletonMap(CraftNamespacedKey.toMinecraft(key), nms)));
|
||||
Advancement bukkit = Bukkit.getAdvancement(key);
|
||||
|
||||
if (bukkit != null) {
|
||||
|
||||
Reference in New Issue
Block a user