Update to Minecraft 1.8

For more information please see http://www.spigotmc.org/

By: Thinkofdeath <thinkofdeath@spigotmc.org>
This commit is contained in:
CraftBukkit/Spigot
2014-11-26 08:32:16 +11:00
parent 2f44d66966
commit a419776f3c
347 changed files with 22151 additions and 1209 deletions

View File

@@ -4,6 +4,8 @@ import java.util.ArrayList;
import java.util.List;
import net.minecraft.server.Block;
import net.minecraft.server.BlockPosition;
import net.minecraft.server.IBlockData;
import org.bukkit.World;
import org.bukkit.block.BlockState;
@@ -35,6 +37,11 @@ public class BlockStateListPopulator {
public void setTypeUpdate(int x, int y, int z, Block block) {
this.setType(x, y, z, block);
}
public void setTypeUpdate(BlockPosition position, IBlockData data) {
setTypeAndData(position.getX(), position.getY(), position.getZ(), data.getBlock(), data.getBlock().toLegacyData(data), 0);
}
public void setType(int x, int y, int z, Block block) {

View File

@@ -24,7 +24,7 @@ public final class CraftChatMessage {
static {
Builder<Character, EnumChatFormat> builder = ImmutableMap.builder();
for (EnumChatFormat format : EnumChatFormat.values()) {
builder.put(Character.toLowerCase(format.getChar()), format);
builder.put(Character.toLowerCase(format.toString().charAt(1)), format);
}
formatMap = builder.build();
}
@@ -36,7 +36,7 @@ public final class CraftChatMessage {
private int currentIndex;
private final String message;
private StringMessage(String message) {
private StringMessage(String message, boolean keepNewlines) {
this.message = message;
if (message == null) {
output = new IChatBaseComponent[] { currentChatComponent };
@@ -71,7 +71,7 @@ public final class CraftChatMessage {
case UNDERLINE:
modifier.setUnderline(Boolean.TRUE);
break;
case RANDOM:
case OBFUSCATED:
modifier.setRandom(Boolean.TRUE);
break;
default:
@@ -82,7 +82,11 @@ public final class CraftChatMessage {
}
break;
case 2:
currentChatComponent = null;
if (keepNewlines) {
currentChatComponent.addSibling(new ChatComponentText("\n"));
} else {
currentChatComponent = null;
}
break;
case 3:
modifier.setChatClickable(new ChatClickable(EnumClickAction.OPEN_URL, match));
@@ -119,7 +123,38 @@ public final class CraftChatMessage {
}
public static IChatBaseComponent[] fromString(String message) {
return new StringMessage(message).getOutput();
return fromString(message, false);
}
public static IChatBaseComponent[] fromString(String message, boolean keepNewlines) {
return new StringMessage(message, keepNewlines).getOutput();
}
public static String fromComponent(IChatBaseComponent component) {
if (component == null) return "";
StringBuilder out = new StringBuilder();
for (IChatBaseComponent c : (Iterable<IChatBaseComponent>) component) {
ChatModifier modi = c.getChatModifier();
out.append(modi.getColor() == null ? EnumChatFormat.BLACK : modi.getColor());
if (modi.isBold()) {
out.append(EnumChatFormat.BOLD);
}
if (modi.isItalic()) {
out.append(EnumChatFormat.ITALIC);
}
if (modi.isUnderlined()) {
out.append(EnumChatFormat.UNDERLINE);
}
if (modi.isStrikethrough()) {
out.append(EnumChatFormat.STRIKETHROUGH);
}
if (modi.isRandom()) {
out.append(EnumChatFormat.OBFUSCATED);
}
out.append(c.getText());
}
return out.toString();
}
private CraftChatMessage() {

View File

@@ -1,12 +1,15 @@
package org.bukkit.craftbukkit.util;
import com.google.common.collect.Lists;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import net.minecraft.server.Block;
import net.minecraft.server.Blocks;
import net.minecraft.server.Item;
import net.minecraft.server.MinecraftKey;
import net.minecraft.server.MojangsonParser;
import net.minecraft.server.NBTTagCompound;
import net.minecraft.server.StatisticList;
@@ -88,12 +91,16 @@ public final class CraftMagicNumbers implements UnsafeValues {
@Override
public Material getMaterialFromInternalName(String name) {
return getMaterial((Item) Item.REGISTRY.get(name));
return getMaterial((Item) Item.REGISTRY.get(new MinecraftKey(name)));
}
@Override
public List<String> tabCompleteInternalMaterialName(String token, List<String> completions) {
return StringUtil.copyPartialMatches(token, Item.REGISTRY.keySet(), completions);
ArrayList<String> results = Lists.newArrayList();
for (MinecraftKey key : (Set<MinecraftKey>)Item.REGISTRY.keySet()) {
results.add(key.toString());
}
return StringUtil.copyPartialMatches(token, results, completions);
}
@Override

View File

@@ -1,25 +1,25 @@
package org.bukkit.craftbukkit.util;
import java.util.HashSet;
import java.util.List;
import net.minecraft.server.EntityPlayer;
import net.minecraft.server.MinecraftServer;
import org.bukkit.entity.Player;
public class LazyPlayerSet extends LazyHashSet<Player> {
@Override
HashSet<Player> makeReference() {
if (reference != null) {
throw new IllegalStateException("Reference already created!");
}
List<EntityPlayer> players = MinecraftServer.getServer().getPlayerList().players;
HashSet<Player> reference = new HashSet<Player>(players.size());
for (EntityPlayer player : players) {
reference.add(player.getBukkitEntity());
}
return reference;
}
}
package org.bukkit.craftbukkit.util;
import java.util.HashSet;
import java.util.List;
import net.minecraft.server.EntityPlayer;
import net.minecraft.server.MinecraftServer;
import org.bukkit.entity.Player;
public class LazyPlayerSet extends LazyHashSet<Player> {
@Override
HashSet<Player> makeReference() {
if (reference != null) {
throw new IllegalStateException("Reference already created!");
}
List<EntityPlayer> players = MinecraftServer.getServer().getPlayerList().players;
HashSet<Player> reference = new HashSet<Player>(players.size());
for (EntityPlayer player : players) {
reference.add(player.getBukkitEntity());
}
return reference;
}
}

View File

@@ -1,8 +1,7 @@
package org.bukkit.craftbukkit.util;
import net.minecraft.util.com.google.gson.Gson;
import net.minecraft.util.com.google.common.base.Charsets;
import net.minecraft.util.org.apache.commons.io.IOUtils;
import com.google.common.base.Charsets;
import com.google.gson.Gson;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -12,6 +11,7 @@ import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.UUID;
import org.apache.commons.io.IOUtils;
public class MojangNameLookup {
private static final Logger logger = LogManager.getFormatterLogger(MojangNameLookup.class);

View File

@@ -5,7 +5,7 @@ import java.io.OutputStream;
import java.util.logging.Level;
import java.util.logging.Logger;
import jline.console.ConsoleReader;
import net.minecraft.util.com.mojang.util.QueueLogAppender;
import com.mojang.util.QueueLogAppender;
import org.bukkit.craftbukkit.Main;
public class TerminalConsoleWriterThread implements Runnable {