From 99bdc8af4745922feaee014bbf572851c935341b Mon Sep 17 00:00:00 2001 From: Marc Baloup Date: Mon, 9 Feb 2015 21:04:58 -0500 Subject: [PATCH] Correction de bug dans les calculs de grades et dans le networkAPI --- NetworkAPI protocole.md | 12 +++++++----- .../request_executors/RequestExecutorPlayerList.java | 11 +++++------ .../plugin/pandacraftutils/players/OnlinePlayer.java | 2 +- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/NetworkAPI protocole.md b/NetworkAPI protocole.md index f32a337..b2e59f3 100644 --- a/NetworkAPI protocole.md +++ b/NetworkAPI protocole.md @@ -49,19 +49,21 @@ Renvoi la liste des joueurs connectés, avec quelques infos utiles. Si la partie **donnée** de la requête contient `op` et seulement ça (c'est à dire que `data.trim().equalsIgnoreCase("op")` doit être vrai), la liste des joueurs contiendra aussi les joueurs vanish. Sinon, les joueurs vanish ne seront pas inclus dans la liste retournée -La première ligne de la réponse sera de la forme `5/30` avec le premier nombre représentant le nombre de joueur retourné, et le deuxième nombre étant le nombre de slots disponible sur le serveur. Le tout est suivi d'un `\n`. +La première ligne de la réponse sera de la forme `5/30` avec le premier nombre représentant le nombre de joueur retourné, et le deuxième nombre étant le nombre de slots disponible sur le serveur. -Ensuite, une ligne pour un joueur. Chaque ligne, séparé par un `\n`, aura cette forme : +Ensuite, une ligne pour un joueur. Chaque ligne, commençant par un `\n`, aura cette forme : - Pseudojoueur\0§f[§4Admin§f]§4Pseudojoueur§r\01\0creative;20;20\01 + Pseudojoueur\0§f[§4Admin§f]§4Pseudojoueur§r\01\0creative\020\020\01 Chaque information sur une ligne sera séparé par un `\0` représentant le caractère NULL. Les informations données sont les suivantes : 1. Pseudo réel du joueur (répondant à la regex `[A-Za-z0-9_]{2,16}`) 2. Pseudo du joueur tel qu'il est affiché IG (avec le préfixe et le suffixe, + éventuellement un nickname, et les codes couleurs de la forme `§x`) 3. `1` si le joueur est actif, `0` si il est AFK. -4. 3 informations séparés par des `;`
- Gamemode du joueur
- Point de vie arrondi à l'unité
- Point de faim arrondi à l'unité -5. `1` si le joueur est visible, `0` si il est vanish. +4. Gamemode du joueur +5. Point de vie arrondi à l'unité +6. Point de faim arrondi à l'unité +7. `1` si le joueur est visible, `0` si il est vanish. ## Structure d'une réponse diff --git a/src/net/mc_pandacraft/java/plugin/pandacraftutils/network_api/request_executors/RequestExecutorPlayerList.java b/src/net/mc_pandacraft/java/plugin/pandacraftutils/network_api/request_executors/RequestExecutorPlayerList.java index 4461e8a..0fd9dd8 100644 --- a/src/net/mc_pandacraft/java/plugin/pandacraftutils/network_api/request_executors/RequestExecutorPlayerList.java +++ b/src/net/mc_pandacraft/java/plugin/pandacraftutils/network_api/request_executors/RequestExecutorPlayerList.java @@ -21,16 +21,16 @@ public class RequestExecutorPlayerList extends AbstractRequestExecutor { OnlinePlayerManager.getAll() : OnlinePlayerManager.getAllNotVanished(); - char nul = '\u0000', nl = '\n'; + String nul = "\u0000", nl = "\n"; StringBuilder returnData = new StringBuilder(); // d'abord, le nombre de connecté / le nombre de slot - returnData.append(players.size()+"/"+plugin.getServer().getMaxPlayers()+nl); + returnData.append(players.size()+"/"+plugin.getServer().getMaxPlayers()); for (OnlinePlayer op : players) { - returnData.append(op.getPlayer().getName()); + returnData.append(nl+op.getPlayer().getName()); returnData.append(nul+op.getPlayer().getDisplayName()); @@ -38,13 +38,12 @@ public class RequestExecutorPlayerList extends AbstractRequestExecutor { returnData.append(nul+op.getPlayer().getGameMode().toString()); - returnData.append(';'+op.getPlayer().getHealth()); - returnData.append(';'+op.getPlayer().getFoodLevel()); + returnData.append(nul+(int)op.getPlayer().getHealth()); + returnData.append(nul+(int)op.getPlayer().getFoodLevel()); returnData.append(nul+(op.isVanished()?"0":"1")); - returnData.append(nl); } diff --git a/src/net/mc_pandacraft/java/plugin/pandacraftutils/players/OnlinePlayer.java b/src/net/mc_pandacraft/java/plugin/pandacraftutils/players/OnlinePlayer.java index fd07947..8b932da 100644 --- a/src/net/mc_pandacraft/java/plugin/pandacraftutils/players/OnlinePlayer.java +++ b/src/net/mc_pandacraft/java/plugin/pandacraftutils/players/OnlinePlayer.java @@ -273,7 +273,7 @@ public class OnlinePlayer { */ public boolean isInGroup(String group) { if (group == null) return false; - return PermissionsEx.getUser(player).inGroup(group); + return PermissionsEx.getUser(player).inGroup(group, false); } /**