diff --git a/src/main/java/li/inc/PlaytimeReloaded/DataStore/Config.java b/src/main/java/li/inc/PlaytimeReloaded/DataStore/Config.java index e2258b5..6f73556 100644 --- a/src/main/java/li/inc/PlaytimeReloaded/DataStore/Config.java +++ b/src/main/java/li/inc/PlaytimeReloaded/DataStore/Config.java @@ -91,7 +91,7 @@ public class Config return m_textPlayerNotFound; } - private String m_textTopPlayerListHead = "This is the Top 5 player list."; + private String m_textTopPlayerListHead = "This is the Top %r player list."; public String getTextTopPlayerListHead() { return m_textTopPlayerListHead; diff --git a/src/main/java/li/inc/PlaytimeReloaded/DataStore/DB/DB.java b/src/main/java/li/inc/PlaytimeReloaded/DataStore/DB/DB.java index e6a203e..dae8279 100644 --- a/src/main/java/li/inc/PlaytimeReloaded/DataStore/DB/DB.java +++ b/src/main/java/li/inc/PlaytimeReloaded/DataStore/DB/DB.java @@ -29,10 +29,7 @@ public class DB m_DBClass.update(_playerUUID, _newTime); } - public List getTopPlayers() - { - return m_DBClass.getTopPlayers(); - } + public List getTopPlayers(int _count){ return m_DBClass.getTopPlayers(_count); } public int getPlayerTime(UUID _playerUUID) { diff --git a/src/main/java/li/inc/PlaytimeReloaded/DataStore/DB/IDB.java b/src/main/java/li/inc/PlaytimeReloaded/DataStore/DB/IDB.java index dbfd005..28f4a29 100644 --- a/src/main/java/li/inc/PlaytimeReloaded/DataStore/DB/IDB.java +++ b/src/main/java/li/inc/PlaytimeReloaded/DataStore/DB/IDB.java @@ -30,6 +30,6 @@ public interface IDB { public void init(Plugin _plugin, Config _config); public void update(UUID _playerUUID, int _newTime); - public List getTopPlayers(); + public List getTopPlayers(int _count); public int getPlayerTime(UUID _playerUUID); } diff --git a/src/main/java/li/inc/PlaytimeReloaded/DataStore/DB/MySQL.java b/src/main/java/li/inc/PlaytimeReloaded/DataStore/DB/MySQL.java index 4854793..7674f5b 100644 --- a/src/main/java/li/inc/PlaytimeReloaded/DataStore/DB/MySQL.java +++ b/src/main/java/li/inc/PlaytimeReloaded/DataStore/DB/MySQL.java @@ -57,9 +57,9 @@ public class MySQL implements IDB m_MySqlTools.saveMySQLUpdate("REPLACE INTO playtime (`playeruuid`, `playtime`) VALUES ('" + _playerUUID.toString() + "', '" + _newTime + "')", new String[]{}); } - public List getTopPlayers() + public List getTopPlayers(int _count) { - ResultSet _rs = m_MySqlTools.saveMySQLQuarry("SELECT * FROM playtime ORDER BY playtime DESC LIMIT 5", new String[]{}); + ResultSet _rs = m_MySqlTools.saveMySQLQuarry("SELECT * FROM playtime ORDER BY playtime DESC LIMIT " + _count, new String[]{}); List _returnList = new ArrayList(); if(_rs != null) diff --git a/src/main/java/li/inc/PlaytimeReloaded/Playtime.java b/src/main/java/li/inc/PlaytimeReloaded/Playtime.java index 80aa251..f38a24c 100644 --- a/src/main/java/li/inc/PlaytimeReloaded/Playtime.java +++ b/src/main/java/li/inc/PlaytimeReloaded/Playtime.java @@ -68,19 +68,41 @@ public class Playtime extends JavaPlugin implements Listener }}, 0, 1200); } + public static boolean isInteger(String s) { + try { + Integer.parseInt(s); + } catch(NumberFormatException e) { + return false; + } catch(NullPointerException e) { + return false; + } + // only got here if we didn't return false + return true; + } + public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) { if (cmd.getName().equalsIgnoreCase("toptime")) { + int _count = 5; + + if(args.length == 1) + { + if(isInteger(args[0])) + { + _count = Integer.parseInt(args[0]); + } + } + if (sender instanceof Player) { Player _player = (Player)sender; if(_player.hasPermission("playtime.top")) { - _player.sendMessage(getChatMessage(m_config.getTextTopPlayerListHead(), _player.getName(), 0, 0, true)); + _player.sendMessage(getChatMessage(m_config.getTextTopPlayerListHead(), _player.getName(), 0, _count, true)); - List _topPlayers = m_db.getTopPlayers(); + List _topPlayers = m_db.getTopPlayers(_count); int _rang = 1; for (String[] _playerData: _topPlayers) { @@ -93,7 +115,17 @@ public class Playtime extends JavaPlugin implements Listener _player.sendMessage(getChatMessage(m_config.getTextNoPermission(), _player.getName(), 0, 0, true)); } }else{ - this.getLogger().info("Ey you bread! You cant display the playtime from the console!"); + this.getLogger().info(getChatMessage(m_config.getTextTopPlayerListHead(), "", 0, _count, false)); + + List _topPlayers = m_db.getTopPlayers(_count); + int _rang = 1; + for (String[] _playerData: _topPlayers) + { + if(_playerData.length >= 2) + { + this.getLogger().info(getChatMessage(m_config.getTextPlayerEntry(), _playerData[0], Integer.parseInt(_playerData[1]), _rang++, false)); + } + } } }