From 9cf6938a7e8cf95c2abb1c63214039e917898d6f Mon Sep 17 00:00:00 2001 From: mcmonkey4eva Date: Sun, 29 Jan 2017 13:51:33 -0800 Subject: [PATCH] ping server event cleaning --- .../events/server/ClientPingsServerScriptEvent.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/denizenscript/denizen2sponge/events/server/ClientPingsServerScriptEvent.java b/src/main/java/com/denizenscript/denizen2sponge/events/server/ClientPingsServerScriptEvent.java index a654416..f5a2972 100644 --- a/src/main/java/com/denizenscript/denizen2sponge/events/server/ClientPingsServerScriptEvent.java +++ b/src/main/java/com/denizenscript/denizen2sponge/events/server/ClientPingsServerScriptEvent.java @@ -6,6 +6,7 @@ import com.denizenscript.denizen2core.tags.objects.IntegerTag; import com.denizenscript.denizen2core.tags.objects.TextTag; import com.denizenscript.denizen2core.utilities.debugging.Debug; +import com.denizenscript.denizen2sponge.tags.objects.FormattedTextTag; import org.spongepowered.api.Sponge; import org.spongepowered.api.event.Listener; import org.spongepowered.api.event.server.ClientPingServerEvent; @@ -61,8 +62,7 @@ public boolean matches(ScriptEventData data) { public TextTag version; - // TODO: FormattedTextTag! - public TextTag motd; + public FormattedTextTag motd; public IntegerTag num_players; @@ -70,6 +70,8 @@ public boolean matches(ScriptEventData data) { public ClientPingServerEvent internal; + // TODO: Thread safety! + @Override public HashMap getDefinitions(ScriptEventData data) { HashMap defs = super.getDefinitions(data); @@ -99,7 +101,7 @@ public void onClientPingServer(ClientPingServerEvent evt) { ClientPingServerEvent.Response response = evt.getResponse(); event.address = new TextTag(client.getAddress().toString()); event.version = new TextTag(client.getVersion().getName()); - event.motd = new TextTag(response.getDescription().toPlain()); + event.motd = new FormattedTextTag(response.getDescription()); Optional optPlayers = response.getPlayers(); int numPlayers = 0; int maxPlayers = 0; @@ -117,8 +119,8 @@ public void onClientPingServer(ClientPingServerEvent evt) { @Override public void applyDetermination(boolean errors, String determination, AbstractTagObject value) { if (determination.equals("motd")) { - motd = new TextTag(value.toString()); - internal.getResponse().setDescription(Text.of(motd.toString())); + motd = FormattedTextTag.getFor(this::error, value); + internal.getResponse().setDescription(motd.getInternal()); } else if (determination.equals("max_players")) { max_players = IntegerTag.getFor(this::error, value);