Use the newer server ping version (5) in 1.7.8
Dieser Commit ist enthalten in:
Ursprung
0a4b1b3201
Commit
a65eac6471
@ -7,7 +7,6 @@ import java.io.ByteArrayOutputStream;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.imageio.ImageIO;
|
import javax.imageio.ImageIO;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
@ -21,6 +20,8 @@ import net.minecraft.util.io.netty.handler.codec.base64.Base64;
|
|||||||
import net.minecraft.util.io.netty.util.IllegalReferenceCountException;
|
import net.minecraft.util.io.netty.util.IllegalReferenceCountException;
|
||||||
|
|
||||||
import com.comphenix.protocol.PacketType;
|
import com.comphenix.protocol.PacketType;
|
||||||
|
import com.comphenix.protocol.ProtocolLibrary;
|
||||||
|
import com.comphenix.protocol.ProtocolManager;
|
||||||
import com.comphenix.protocol.injector.BukkitUnwrapper;
|
import com.comphenix.protocol.injector.BukkitUnwrapper;
|
||||||
import com.comphenix.protocol.reflect.EquivalentConverter;
|
import com.comphenix.protocol.reflect.EquivalentConverter;
|
||||||
import com.comphenix.protocol.reflect.accessors.Accessors;
|
import com.comphenix.protocol.reflect.accessors.Accessors;
|
||||||
@ -33,6 +34,7 @@ import com.google.common.base.Charsets;
|
|||||||
import com.google.common.base.Preconditions;
|
import com.google.common.base.Preconditions;
|
||||||
import com.google.common.base.Splitter;
|
import com.google.common.base.Splitter;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
import com.google.common.collect.ImmutableMap;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.google.common.io.ByteStreams;
|
import com.google.common.io.ByteStreams;
|
||||||
|
|
||||||
@ -41,6 +43,16 @@ import com.google.common.io.ByteStreams;
|
|||||||
* @author Kristian
|
* @author Kristian
|
||||||
*/
|
*/
|
||||||
public class WrappedServerPing extends AbstractWrapper {
|
public class WrappedServerPing extends AbstractWrapper {
|
||||||
|
/**
|
||||||
|
* Lookup of Minecraft versions and ping version numbers.
|
||||||
|
*/
|
||||||
|
private static ImmutableMap<MinecraftVersion, Integer> VERSION_NUMBERS =
|
||||||
|
ImmutableMap.<MinecraftVersion, Integer>builder().
|
||||||
|
put(MinecraftVersion.WORLD_UPDATE, 4).
|
||||||
|
put(MinecraftVersion.SKIN_UPDATE, 5).
|
||||||
|
build();
|
||||||
|
private static MinecraftVersion LAST_VERSION = MinecraftVersion.SKIN_UPDATE;
|
||||||
|
|
||||||
// Server ping fields
|
// Server ping fields
|
||||||
private static Class<?> SERVER_PING = MinecraftReflection.getServerPingClass();
|
private static Class<?> SERVER_PING = MinecraftReflection.getServerPingClass();
|
||||||
private static ConstructorAccessor SERVER_PING_CONSTRUCTOR = Accessors.getConstructorAccessor(SERVER_PING);
|
private static ConstructorAccessor SERVER_PING_CONSTRUCTOR = Accessors.getConstructorAccessor(SERVER_PING);
|
||||||
@ -114,7 +126,14 @@ public class WrappedServerPing extends AbstractWrapper {
|
|||||||
* Reset the version string to the default state.
|
* Reset the version string to the default state.
|
||||||
*/
|
*/
|
||||||
protected void resetVersion() {
|
protected void resetVersion() {
|
||||||
version = VERSION_CONSTRUCTOR.invoke(MinecraftVersion.WORLD_UPDATE.toString(), 4);
|
ProtocolManager manager = ProtocolLibrary.getProtocolManager();
|
||||||
|
MinecraftVersion minecraftVersion = LAST_VERSION;
|
||||||
|
|
||||||
|
// Fetch the latest known version
|
||||||
|
if (manager != null) {
|
||||||
|
minecraftVersion = manager.getMinecraftVersion();
|
||||||
|
}
|
||||||
|
version = VERSION_CONSTRUCTOR.invoke(minecraftVersion.toString(), VERSION_NUMBERS.get(minecraftVersion));
|
||||||
VERSION.set(handle, version);
|
VERSION.set(handle, version);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -356,6 +375,11 @@ public class WrappedServerPing extends AbstractWrapper {
|
|||||||
return (String) GSON_TO_JSON.invoke(PING_GSON.get(null), handle);
|
return (String) GSON_TO_JSON.invoke(PING_GSON.get(null), handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "WrappedServerPing< " + toJson() + ">";
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a compressed favicon.
|
* Represents a compressed favicon.
|
||||||
* @author Kristian
|
* @author Kristian
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren