3
0
Mirror von https://github.com/ViaVersion/ViaVersion.git synchronisiert 2024-12-26 00:00:28 +01:00

Stop using new Gson() everywhere (#505)

Dieser Commit ist enthalten in:
Matsv 2016-09-27 19:15:39 +02:00
Ursprung 866e494d3c
Commit 8ea3623a79
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: 97CEC2A2EA31350F
8 geänderte Dateien mit 64 neuen und 42 gelöschten Zeilen

Datei anzeigen

@ -1,6 +1,5 @@
package us.myles.ViaVersion; package us.myles.ViaVersion;
import com.google.gson.Gson;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import lombok.Getter; import lombok.Getter;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@ -20,8 +19,9 @@ import us.myles.ViaVersion.bukkit.commands.BukkitCommandSender;
import us.myles.ViaVersion.bukkit.platform.BukkitViaAPI; import us.myles.ViaVersion.bukkit.platform.BukkitViaAPI;
import us.myles.ViaVersion.bukkit.platform.BukkitViaInjector; import us.myles.ViaVersion.bukkit.platform.BukkitViaInjector;
import us.myles.ViaVersion.bukkit.platform.BukkitViaLoader; import us.myles.ViaVersion.bukkit.platform.BukkitViaLoader;
import us.myles.ViaVersion.dump.PluginInfo;
import us.myles.ViaVersion.bukkit.util.NMSUtil; import us.myles.ViaVersion.bukkit.util.NMSUtil;
import us.myles.ViaVersion.dump.PluginInfo;
import us.myles.ViaVersion.util.GsonUtil;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -240,7 +240,7 @@ public class ViaVersionPlugin extends JavaPlugin implements ViaPlatform {
for (Plugin p : Bukkit.getPluginManager().getPlugins()) for (Plugin p : Bukkit.getPluginManager().getPlugins())
plugins.add(new PluginInfo(p.isEnabled(), p.getDescription().getName(), p.getDescription().getVersion(), p.getDescription().getMain(), p.getDescription().getAuthors())); plugins.add(new PluginInfo(p.isEnabled(), p.getDescription().getName(), p.getDescription().getVersion(), p.getDescription().getMain(), p.getDescription().getAuthors()));
platformSpecific.add("plugins", new Gson().toJsonTree(plugins)); platformSpecific.add("plugins", GsonUtil.getGson().toJsonTree(plugins));
// TODO more? ProtocolLib things etc? // TODO more? ProtocolLib things etc?
return platformSpecific; return platformSpecific;

Datei anzeigen

@ -1,7 +1,5 @@
package us.myles.ViaVersion.commands.defaultsubs; package us.myles.ViaVersion.commands.defaultsubs;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.api.ChatColor;
import us.myles.ViaVersion.api.Via; import us.myles.ViaVersion.api.Via;
@ -10,6 +8,7 @@ import us.myles.ViaVersion.api.command.ViaSubCommand;
import us.myles.ViaVersion.api.protocol.ProtocolRegistry; import us.myles.ViaVersion.api.protocol.ProtocolRegistry;
import us.myles.ViaVersion.dump.DumpTemplate; import us.myles.ViaVersion.dump.DumpTemplate;
import us.myles.ViaVersion.dump.VersionInfo; import us.myles.ViaVersion.dump.VersionInfo;
import us.myles.ViaVersion.util.GsonUtil;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.io.InvalidObjectException; import java.io.InvalidObjectException;
@ -21,7 +20,6 @@ import java.util.Map;
import java.util.logging.Level; import java.util.logging.Level;
public class DumpSubCmd extends ViaSubCommand { public class DumpSubCmd extends ViaSubCommand {
private final Gson gson = new GsonBuilder().setPrettyPrinting().create();
@Override @Override
public String name() { public String name() {
@ -59,10 +57,10 @@ public class DumpSubCmd extends ViaSubCommand {
con.setDoOutput(true); con.setDoOutput(true);
OutputStream out = con.getOutputStream(); OutputStream out = con.getOutputStream();
out.write(gson.toJson(template).getBytes(Charset.forName("UTF-8"))); out.write(GsonUtil.getGson().toJson(template).getBytes(Charset.forName("UTF-8")));
out.close(); out.close();
JsonObject output = gson.fromJson(new InputStreamReader(con.getInputStream()), JsonObject.class); JsonObject output = GsonUtil.getGson().fromJson(new InputStreamReader(con.getInputStream()), JsonObject.class);
con.getInputStream().close(); con.getInputStream().close();
if (!output.has("key")) if (!output.has("key"))

Datei anzeigen

@ -1,9 +1,6 @@
package us.myles.ViaVersion.protocols.base; package us.myles.ViaVersion.protocols.base;
import com.google.common.base.Joiner; import com.google.common.base.Joiner;
import com.google.common.base.Strings;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.google.gson.JsonParseException; import com.google.gson.JsonParseException;
import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelFuture;
@ -23,13 +20,13 @@ import us.myles.ViaVersion.api.type.Type;
import us.myles.ViaVersion.packets.Direction; import us.myles.ViaVersion.packets.Direction;
import us.myles.ViaVersion.packets.State; import us.myles.ViaVersion.packets.State;
import us.myles.ViaVersion.protocols.protocol1_9to1_8.Protocol1_9TO1_8; import us.myles.ViaVersion.protocols.protocol1_9to1_8.Protocol1_9TO1_8;
import us.myles.ViaVersion.util.GsonUtil;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
import java.util.logging.Level; import java.util.logging.Level;
public class BaseProtocol extends Protocol { public class BaseProtocol extends Protocol {
private final static Gson gson = new GsonBuilder().create(); // TODO: Possibly global gson provider?
@Override @Override
protected void registerPackets() { protected void registerPackets() {
@ -46,12 +43,12 @@ public class BaseProtocol extends Protocol {
ProtocolInfo info = wrapper.user().get(ProtocolInfo.class); ProtocolInfo info = wrapper.user().get(ProtocolInfo.class);
String originalStatus = wrapper.get(Type.STRING, 0); String originalStatus = wrapper.get(Type.STRING, 0);
try { try {
JsonObject json = gson.fromJson(originalStatus, JsonObject.class); JsonObject json = GsonUtil.getGson().fromJson(originalStatus, JsonObject.class);
JsonObject version = json.get("version").getAsJsonObject(); JsonObject version = json.get("version").getAsJsonObject();
int protocolVersion = ((Long) version.get("protocol").getAsLong()).intValue(); int protocolVersion = ((Long) version.get("protocol").getAsLong()).intValue();
if (Via.getConfig().isSendSupportedVersions()) //Send supported versions if (Via.getConfig().isSendSupportedVersions()) //Send supported versions
version.add("supportedVersions", gson.toJsonTree(Via.getAPI().getSupportedVersions())); version.add("supportedVersions", GsonUtil.getGson().toJsonTree(Via.getAPI().getSupportedVersions()));
if (ProtocolRegistry.SERVER_PROTOCOL == -1) // Set the Server protocol if the detection on startup failed if (ProtocolRegistry.SERVER_PROTOCOL == -1) // Set the Server protocol if the detection on startup failed
ProtocolRegistry.SERVER_PROTOCOL = protocolVersion; ProtocolRegistry.SERVER_PROTOCOL = protocolVersion;
@ -70,7 +67,7 @@ public class BaseProtocol extends Protocol {
if (Via.getConfig().getBlockedProtocols().contains(info.getProtocolVersion())) if (Via.getConfig().getBlockedProtocols().contains(info.getProtocolVersion()))
version.addProperty("protocol", -1); // Show blocked versions as outdated version.addProperty("protocol", -1); // Show blocked versions as outdated
wrapper.set(Type.STRING, 0, gson.toJson(json)); // Update value wrapper.set(Type.STRING, 0, GsonUtil.getGson().toJson(json)); // Update value
} catch (JsonParseException e) { } catch (JsonParseException e) {
e.printStackTrace(); e.printStackTrace();
} }

Datei anzeigen

@ -1,7 +1,5 @@
package us.myles.ViaVersion.protocols.protocol1_9to1_8; package us.myles.ViaVersion.protocols.protocol1_9to1_8;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import us.myles.ViaVersion.api.PacketWrapper; import us.myles.ViaVersion.api.PacketWrapper;
import us.myles.ViaVersion.api.Via; import us.myles.ViaVersion.api.Via;
@ -19,22 +17,21 @@ import us.myles.ViaVersion.protocols.protocol1_9to1_8.providers.BulkChunkTransla
import us.myles.ViaVersion.protocols.protocol1_9to1_8.providers.HandItemProvider; import us.myles.ViaVersion.protocols.protocol1_9to1_8.providers.HandItemProvider;
import us.myles.ViaVersion.protocols.protocol1_9to1_8.providers.MovementTransmitterProvider; import us.myles.ViaVersion.protocols.protocol1_9to1_8.providers.MovementTransmitterProvider;
import us.myles.ViaVersion.protocols.protocol1_9to1_8.storage.*; import us.myles.ViaVersion.protocols.protocol1_9to1_8.storage.*;
import us.myles.ViaVersion.util.GsonUtil;
import java.util.List; import java.util.List;
public class Protocol1_9TO1_8 extends Protocol { public class Protocol1_9TO1_8 extends Protocol {
@Deprecated
public static Type<List<Metadata>> METADATA_LIST = new MetadataList1_8Type();
@Deprecated
public static Type<Metadata> METADATA = new Metadata1_8Type();
private static final Gson gson = new GsonBuilder().create();
public static final ValueTransformer<String, String> FIX_JSON = new ValueTransformer<String, String>(Type.STRING) { public static final ValueTransformer<String, String> FIX_JSON = new ValueTransformer<String, String>(Type.STRING) {
@Override @Override
public String transform(PacketWrapper wrapper, String line) { public String transform(PacketWrapper wrapper, String line) {
return fixJson(line); return fixJson(line);
} }
}; };
@Deprecated
public static Type<List<Metadata>> METADATA_LIST = new MetadataList1_8Type();
@Deprecated
public static Type<Metadata> METADATA = new Metadata1_8Type();
public static String fixJson(String line) { public static String fixJson(String line) {
if (line == null || line.equalsIgnoreCase("null")) { if (line == null || line.equalsIgnoreCase("null")) {
@ -48,7 +45,7 @@ public class Protocol1_9TO1_8 extends Protocol {
} }
} }
try { try {
gson.fromJson(line, JsonObject.class); GsonUtil.getGson().fromJson(line, JsonObject.class);
} catch (Exception e) { } catch (Exception e) {
if (Via.getConfig().isForceJsonTransform()) { if (Via.getConfig().isForceJsonTransform()) {
return constructJson(line); return constructJson(line);
@ -63,13 +60,23 @@ public class Protocol1_9TO1_8 extends Protocol {
private static String constructJson(String text) { private static String constructJson(String text) {
JsonObject jsonObject = new JsonObject(); JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("text", text); jsonObject.addProperty("text", text);
return gson.toJson(jsonObject); return GsonUtil.getGson().toJson(jsonObject);
} }
public static Item getHandItem(final UserConnection info) { public static Item getHandItem(final UserConnection info) {
return Via.getManager().getProviders().get(HandItemProvider.class).getHandItem(info); return Via.getManager().getProviders().get(HandItemProvider.class).getHandItem(info);
} }
public static boolean isSword(int id) {
if (id == 267) return true; // Iron
if (id == 268) return true; // Wood
if (id == 272) return true; // Stone
if (id == 276) return true; // Diamond
if (id == 283) return true; // Gold
return false;
}
@Override @Override
protected void registerPackets() { protected void registerPackets() {
SpawnPackets.register(this); SpawnPackets.register(this);
@ -113,14 +120,4 @@ public class Protocol1_9TO1_8 extends Protocol {
// Place block tracker // Place block tracker
userConnection.put(new PlaceBlockTracker(userConnection)); userConnection.put(new PlaceBlockTracker(userConnection));
} }
public static boolean isSword(int id) {
if (id == 267) return true; // Iron
if (id == 268) return true; // Wood
if (id == 272) return true; // Stone
if (id == 276) return true; // Diamond
if (id == 283) return true; // Gold
return false;
}
} }

Datei anzeigen

@ -1,11 +1,10 @@
package us.myles.ViaVersion.update; package us.myles.ViaVersion.update;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.google.gson.JsonParseException; import com.google.gson.JsonParseException;
import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.api.ChatColor;
import us.myles.ViaVersion.api.Via; import us.myles.ViaVersion.api.Via;
import us.myles.ViaVersion.util.GsonUtil;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.IOException; import java.io.IOException;
@ -21,7 +20,6 @@ public class UpdateUtil {
private final static String URL = "http://api.spiget.org/v2/resources/"; private final static String URL = "http://api.spiget.org/v2/resources/";
private final static int PLUGIN = 19254; private final static int PLUGIN = 19254;
private final static String LATEST_VERSION = "/versions/latest"; private final static String LATEST_VERSION = "/versions/latest";
private final static Gson gson = new GsonBuilder().create();
public static void sendUpdateMessage(final UUID uuid) { public static void sendUpdateMessage(final UUID uuid) {
Via.getPlatform().runAsync(new Runnable() { Via.getPlatform().runAsync(new Runnable() {
@ -108,7 +106,7 @@ public class UpdateUtil {
br.close(); br.close();
JsonObject statistics; JsonObject statistics;
try { try {
statistics = gson.fromJson(content, JsonObject.class); statistics = GsonUtil.getGson().fromJson(content, JsonObject.class);
} catch (JsonParseException e) { } catch (JsonParseException e) {
e.printStackTrace(); e.printStackTrace();
return null; return null;

Datei anzeigen

@ -5,6 +5,7 @@ import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import us.myles.ViaVersion.api.Via; import us.myles.ViaVersion.api.Via;
// 1.10 Entity / Object ids
public class EntityUtil { public class EntityUtil {
public static EntityType getTypeFromID(int typeID, boolean isObject) { public static EntityType getTypeFromID(int typeID, boolean isObject) {

Datei anzeigen

@ -0,0 +1,31 @@
package us.myles.ViaVersion.util;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import lombok.Getter;
import lombok.experimental.UtilityClass;
@UtilityClass
@Getter
public class GsonUtil {
private final Gson gson = getGsonBuilder().create();
/**
* Get google's Gson magic
*
* @return Gson instance
*/
public Gson getGson() {
return gson;
}
/**
* Get the GsonBuilder in case you want to add other stuff
*
* @return GsonBuilder instance
*/
public GsonBuilder getGsonBuilder() {
return new GsonBuilder();
}
}

Datei anzeigen

@ -1,6 +1,5 @@
package us.myles.ViaVersion; package us.myles.ViaVersion;
import com.google.gson.Gson;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.google.inject.Inject; import com.google.inject.Inject;
import org.spongepowered.api.Game; import org.spongepowered.api.Game;
@ -19,7 +18,7 @@ import us.myles.ViaVersion.api.command.ViaCommandSender;
import us.myles.ViaVersion.api.configuration.ConfigurationProvider; import us.myles.ViaVersion.api.configuration.ConfigurationProvider;
import us.myles.ViaVersion.api.platform.ViaPlatform; import us.myles.ViaVersion.api.platform.ViaPlatform;
import us.myles.ViaVersion.dump.PluginInfo; import us.myles.ViaVersion.dump.PluginInfo;
import us.myles.ViaVersion.sponge.*; import us.myles.ViaVersion.sponge.VersionInfo;
import us.myles.ViaVersion.sponge.commands.SpongeCommandHandler; import us.myles.ViaVersion.sponge.commands.SpongeCommandHandler;
import us.myles.ViaVersion.sponge.commands.SpongeCommandSender; import us.myles.ViaVersion.sponge.commands.SpongeCommandSender;
import us.myles.ViaVersion.sponge.platform.SpongeConfigAPI; import us.myles.ViaVersion.sponge.platform.SpongeConfigAPI;
@ -27,6 +26,7 @@ import us.myles.ViaVersion.sponge.platform.SpongeViaAPI;
import us.myles.ViaVersion.sponge.platform.SpongeViaInjector; import us.myles.ViaVersion.sponge.platform.SpongeViaInjector;
import us.myles.ViaVersion.sponge.platform.SpongeViaLoader; import us.myles.ViaVersion.sponge.platform.SpongeViaLoader;
import us.myles.ViaVersion.sponge.util.LoggerWrapper; import us.myles.ViaVersion.sponge.util.LoggerWrapper;
import us.myles.ViaVersion.util.GsonUtil;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
@ -190,7 +190,7 @@ public class SpongePlugin implements ViaPlatform {
p.getAuthors() p.getAuthors()
)); ));
} }
platformSpecific.add("plugins", new Gson().toJsonTree(plugins)); platformSpecific.add("plugins", GsonUtil.getGson().toJsonTree(plugins));
return platformSpecific; return platformSpecific;
} }