mirror of
https://github.com/TotalFreedomMC/BukkitTelnet.git
synced 2025-08-04 11:36:14 +00:00
Finished implementing data tag event.
This commit is contained in:
parent
fa353bf01b
commit
bc3ff0312f
1 changed files with 24 additions and 4 deletions
|
@ -1,6 +1,10 @@
|
||||||
package me.StevenLawson.BukkitTelnet;
|
package me.StevenLawson.BukkitTelnet;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.Map;
|
||||||
|
import me.StevenLawson.BukkitTelnet.api.TelnetRequestDataTagsEvent;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
|
@ -55,24 +59,40 @@ public class PlayerEventListener implements Listener
|
||||||
final SocketListener socketListener = TelnetServer.getInstance().getSocketListener();
|
final SocketListener socketListener = TelnetServer.getInstance().getSocketListener();
|
||||||
if (socketListener != null)
|
if (socketListener != null)
|
||||||
{
|
{
|
||||||
socketListener.triggerPlayerListUpdates(generatePlayerList());
|
final TelnetRequestDataTagsEvent event = new TelnetRequestDataTagsEvent();
|
||||||
|
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||||
|
socketListener.triggerPlayerListUpdates(generatePlayerList(event.getDataTags()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}.runTaskLater(BukkitTelnet.plugin, 20L * 2L);
|
}.runTaskLater(BukkitTelnet.plugin, 20L * 2L);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
private static String generatePlayerList()
|
private static String generatePlayerList(final Map<Player, Map<String, Object>> dataTags)
|
||||||
{
|
{
|
||||||
final JSONArray players = new JSONArray();
|
final JSONArray players = new JSONArray();
|
||||||
|
|
||||||
for (final Player player : Bukkit.getServer().getOnlinePlayers())
|
final Iterator<Map.Entry<Player, Map<String, Object>>> dataTagsIt = dataTags.entrySet().iterator();
|
||||||
|
while (dataTagsIt.hasNext())
|
||||||
{
|
{
|
||||||
final HashMap<String, String> info = new HashMap<String, String>();
|
final HashMap<String, String> info = new HashMap<String, String>();
|
||||||
|
|
||||||
|
final Map.Entry<Player, Map<String, Object>> dataTagsEntry = dataTagsIt.next();
|
||||||
|
final Player player = dataTagsEntry.getKey();
|
||||||
|
final Map<String, Object> playerTags = dataTagsEntry.getValue();
|
||||||
|
|
||||||
info.put("name", player.getName());
|
info.put("name", player.getName());
|
||||||
info.put("ip", player.getAddress().getAddress().getHostAddress());
|
info.put("ip", player.getAddress().getAddress().getHostAddress());
|
||||||
info.put("displayName", player.getDisplayName().trim());
|
info.put("displayName", StringUtils.trimToEmpty(player.getDisplayName()));
|
||||||
|
info.put("uuid", player.getUniqueId().toString());
|
||||||
|
|
||||||
|
final Iterator<Map.Entry<String, Object>> playerTagsIt = playerTags.entrySet().iterator();
|
||||||
|
while (playerTagsIt.hasNext())
|
||||||
|
{
|
||||||
|
final Map.Entry<String, Object> playerTagsEntry = playerTagsIt.next();
|
||||||
|
final Object value = playerTagsEntry.getValue();
|
||||||
|
info.put(playerTagsEntry.getKey(), value != null ? value.toString() : "null");
|
||||||
|
}
|
||||||
|
|
||||||
players.add(info);
|
players.add(info);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue