Correction de bug de la file d'attente /staff

This commit is contained in:
Marc Baloup 2014-12-23 15:48:07 +01:00
parent 2a64175718
commit 0e00b9f660
5 changed files with 29 additions and 25 deletions

4
.gitignore vendored
View File

@ -1,3 +1,3 @@
bin/* /bin/
jar_export/* /jar_export/
*Thumbs.db *Thumbs.db

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<jardesc> <jardesc>
<jar path="PandacraftUtils/jar_export/PandacraftUtils-2.4.jar"/> <jar path="PandacraftUtils/jar_export/PandacraftUtils-2.5.jar"/>
<options buildIfNeeded="true" compress="true" descriptionLocation="/PandacraftUtils/make_jar.jardesc" exportErrors="true" exportWarnings="true" includeDirectoryEntries="false" overwrite="false" saveDescription="true" storeRefactorings="false" useSourceFolders="false"/> <options buildIfNeeded="true" compress="true" descriptionLocation="/PandacraftUtils/make_jar.jardesc" exportErrors="true" exportWarnings="true" includeDirectoryEntries="false" overwrite="false" saveDescription="true" storeRefactorings="false" useSourceFolders="false"/>
<storedRefactorings deprecationInfo="true" structuralOnly="false"/> <storedRefactorings deprecationInfo="true" structuralOnly="false"/>
<selectedProjects/> <selectedProjects/>

View File

@ -1,6 +1,6 @@
name: PandacraftUtils name: PandacraftUtils
main: net.mc_pandacraft.java.plugin.pandacraftutils.PandacraftUtils main: net.mc_pandacraft.java.plugin.pandacraftutils.PandacraftUtils
version: 2.4 version: 2.5

View File

@ -12,6 +12,7 @@ import net.mc_pandacraft.java.plugin.pandacraftutils.simple_commands.me.CommandM
import net.mc_pandacraft.java.plugin.pandacraftutils.simple_commands.ping.CommandPing; import net.mc_pandacraft.java.plugin.pandacraftutils.simple_commands.ping.CommandPing;
import net.mc_pandacraft.java.plugin.pandacraftutils.simple_commands.setblock.CommandSetblock; import net.mc_pandacraft.java.plugin.pandacraftutils.simple_commands.setblock.CommandSetblock;
import net.mc_pandacraft.java.plugin.pandacraftutils.simple_commands.speed_message.CommandSpeedMessage; import net.mc_pandacraft.java.plugin.pandacraftutils.simple_commands.speed_message.CommandSpeedMessage;
import net.mc_pandacraft.java.plugin.pandacraftutils.simple_commands.staff_player_help.CommandStaff;
import net.mc_pandacraft.java.plugin.pandacraftutils.spawntime.SpawnTimeManager; import net.mc_pandacraft.java.plugin.pandacraftutils.spawntime.SpawnTimeManager;
import net.mc_pandacraft.java.plugin.pandacraftutils.survival_cuboid.CommandWandSelection; import net.mc_pandacraft.java.plugin.pandacraftutils.survival_cuboid.CommandWandSelection;
import net.mc_pandacraft.java.plugin.pandacraftutils.system_analyzer.CommandSystem; import net.mc_pandacraft.java.plugin.pandacraftutils.system_analyzer.CommandSystem;
@ -28,6 +29,7 @@ public class PandacraftUtils extends JavaPlugin {
public CommandMe commandMe; public CommandMe commandMe;
public CommandSpeedMessage commandSpeedMessage; public CommandSpeedMessage commandSpeedMessage;
public CommandWandSelection commandWandSelection; public CommandWandSelection commandWandSelection;
public CommandStaff commandStaff;
public SpawnTimeManager spawnTimeManager; public SpawnTimeManager spawnTimeManager;
@ -53,6 +55,7 @@ public class PandacraftUtils extends JavaPlugin {
commandMe = new CommandMe(this); commandMe = new CommandMe(this);
commandSpeedMessage = new CommandSpeedMessage(this); // messages rapides commandSpeedMessage = new CommandSpeedMessage(this); // messages rapides
commandWandSelection = new CommandWandSelection(this); commandWandSelection = new CommandWandSelection(this);
commandStaff = new CommandStaff(this);
spawnTimeManager = new SpawnTimeManager(this); spawnTimeManager = new SpawnTimeManager(this);
chatAnalysisManager = new ChatAnalysisManager(this); chatAnalysisManager = new ChatAnalysisManager(this);

View File

@ -7,6 +7,7 @@ import java.util.Queue;
import net.mc_pandacraft.java.plugin.pandacraftutils.PandacraftUtils; import net.mc_pandacraft.java.plugin.pandacraftutils.PandacraftUtils;
import net.mc_pandacraft.java.util.TimeUtil; import net.mc_pandacraft.java.util.TimeUtil;
import org.apache.commons.lang.StringUtils;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Location; import org.bukkit.Location;
@ -82,7 +83,7 @@ public class CommandStaff implements CommandExecutor, Listener {
return true; return true;
} }
playerQueue.add(new WaitingPlayer(((Player)sender).getName(), String.join(" ", args), ((Player)sender).getLocation())); playerQueue.add(new WaitingPlayer(((Player)sender).getName(), StringUtils.join(args, " "), ((Player)sender).getLocation()));
updateScoreBoardWaitingList(); updateScoreBoardWaitingList();
sender.sendMessage(ChatColor.GREEN+"Veuillez maintenant patienter quelques instant, le temps que le staff traite le début de la file d'attente ;)"); sender.sendMessage(ChatColor.GREEN+"Veuillez maintenant patienter quelques instant, le temps que le staff traite le début de la file d'attente ;)");
sender.sendMessage(ChatColor.GREEN+"Vous êtes à la position "+getPlayerPosition((Player)sender)+" de la file d'attente"); sender.sendMessage(ChatColor.GREEN+"Vous êtes à la position "+getPlayerPosition((Player)sender)+" de la file d'attente");
@ -156,9 +157,9 @@ public class CommandStaff implements CommandExecutor, Listener {
((Player)sender).teleport(p.getLocation()); ((Player)sender).teleport(p.getLocation());
sender.sendMessage(ChatColor.GREEN+"-----------------------------------------------"); sender.sendMessage(ChatColor.GREEN+"-----------------------------------------------");
sender.sendMessage(ChatColor.GREEN+"-----------------------------------------------"); p.sendMessage(ChatColor.GREEN+"-----------------------------------------------");
p.sendMessage(((Player)sender).getDisplayName()+ChatColor.RESET+ChatColor.GREEN+" s'occupe maintenant de vous :)"); p.sendMessage(((Player)sender).getDisplayName()+ChatColor.RESET+ChatColor.GREEN+" s'occupe maintenant de vous :)");
sender.sendMessage(ChatColor.GREEN+"-----------------------------------------------"); p.sendMessage(ChatColor.GREEN+"-----------------------------------------------");
} }
else { else {
@ -168,10 +169,6 @@ public class CommandStaff implements CommandExecutor, Listener {
sender.sendMessage(ChatColor.GREEN+"Vous avez été téléporté vers l'endroit concerné par la demande du joueur"); sender.sendMessage(ChatColor.GREEN+"Vous avez été téléporté vers l'endroit concerné par la demande du joueur");
((Player)sender).teleport(wp.getLocation()); ((Player)sender).teleport(wp.getLocation());
sender.sendMessage(ChatColor.GREEN+"-----------------------------------------------"); sender.sendMessage(ChatColor.GREEN+"-----------------------------------------------");
sender.sendMessage(ChatColor.GREEN+"-----------------------------------------------");
p.sendMessage(((Player)sender).getDisplayName()+ChatColor.RESET+ChatColor.GREEN+" s'occupe maintenant de vous :)");
sender.sendMessage(ChatColor.GREEN+"-----------------------------------------------");
return true; return true;
} }
@ -223,7 +220,7 @@ public class CommandStaff implements CommandExecutor, Listener {
// - on les replaces par l'info sur le membre du staff qui l'a ajouté à la liste // - on les replaces par l'info sur le membre du staff qui l'a ajouté à la liste
args[0] = ChatColor.ITALIC+"(Ajouté par"; args[0] = ChatColor.ITALIC+"(Ajouté par";
args[1] = sender.getName() +")"+ ChatColor.RESET; args[1] = sender.getName() +")"+ ChatColor.RESET;
String message = String.join(" ", args); String message = StringUtils.join(args, " ");
playerQueue.add(new WaitingPlayer(p.getName(),message, p.getLocation())); playerQueue.add(new WaitingPlayer(p.getName(),message, p.getLocation()));
@ -235,6 +232,7 @@ public class CommandStaff implements CommandExecutor, Listener {
p.sendMessage(ChatColor.GREEN+sender.getName()+" vous a ajouté dans la file d'attente pour traiter votre demande plus tard"); p.sendMessage(ChatColor.GREEN+sender.getName()+" vous a ajouté dans la file d'attente pour traiter votre demande plus tard");
return true; return true;
} }
sender.sendMessage(ChatColor.RED+"La commande a mal été tapé");
return false; return false;
} }
@ -274,9 +272,9 @@ public class CommandStaff implements CommandExecutor, Listener {
int i = 0; int i = 0;
for (WaitingPlayer wp : playerQueue) for (WaitingPlayer wp : playerQueue)
{ {
i++;
if (wp != null && wp.getPlayerName().equalsIgnoreCase(p.getName())) if (wp != null && wp.getPlayerName().equalsIgnoreCase(p.getName()))
return i; return i;
i++;
} }
return -1; return -1;
} }
@ -300,7 +298,7 @@ public class CommandStaff implements CommandExecutor, Listener {
private void showWaintingList(CommandSender sender) { private void showWaintingList(CommandSender sender) {
sender.sendMessage(ChatColor.BOLD+"----- File d'attente des joueurs pour le staff -----"); sender.sendMessage(ChatColor.BOLD+"-- File d'attente des joueurs pour le staff --");
int i=0; int i=0;
for (WaitingPlayer wp : playerQueue) { for (WaitingPlayer wp : playerQueue) {
@ -315,7 +313,7 @@ public class CommandStaff implements CommandExecutor, Listener {
sender.sendMessage(i+". "+name+ChatColor.RESET+" : "+wp.getMessage()+" - " sender.sendMessage(i+". "+name+ChatColor.RESET+" : "+wp.getMessage()+" - "
+ChatColor.ITALIC+"Il y a "+TimeUtil.durationToString((new Date()).getTime() - wp.getDate().getTime())); +ChatColor.ITALIC+"Il y a "+TimeUtil.durationToString((new Date()).getTime() - wp.getDate().getTime()));
} }
sender.sendMessage(ChatColor.BOLD+"-----------------------------------------------"); sender.sendMessage(ChatColor.BOLD+"-------------------------------------------");
} }
@ -331,9 +329,10 @@ public class CommandStaff implements CommandExecutor, Listener {
if (obj != null) if (obj != null)
obj.unregister(); obj.unregister();
obj = scoreboardPlayerQueue.registerNewObjective("file_attente", "dummy"); obj = scoreboardPlayerQueue.registerNewObjective("file_attente", "dummy");
obj.setDisplaySlot(DisplaySlot.SIDEBAR);
obj.setDisplayName(ChatColor.GOLD+"File d'attente staff"); obj.setDisplayName(ChatColor.GOLD+"File d'attente staff");
obj.setDisplaySlot(DisplaySlot.SIDEBAR);
int i=0; int i=0;
for (WaitingPlayer wp : playerQueue) { for (WaitingPlayer wp : playerQueue) {
@ -344,18 +343,16 @@ public class CommandStaff implements CommandExecutor, Listener {
if (p == null || !p.isOnline()) if (p == null || !p.isOnline())
name = wp.getPlayerName(); name = wp.getPlayerName();
else else
name = p.getDisplayName(); name = p.getPlayerListName();
String line = i+"."+name; String line = i+"."+name;
int boardPos = playerQueue.size()-i; int boardPos = playerQueue.size()-i+1;
Score score = obj.getScore(plugin.getServer().getOfflinePlayer(line)); Score score = obj.getScore(plugin.getServer().getOfflinePlayer(line.substring(0, (line.length()>16)?16:line.length())));
score.setScore(boardPos); score.setScore(boardPos);
} }
} }
@ -375,13 +372,17 @@ public class CommandStaff implements CommandExecutor, Listener {
Player p = event.getPlayer(); Player p = event.getPlayer();
if (p.hasPermission("pandacraft.grade.staff")) if (p.hasPermission("pandacraft.grade.staff"))
p.setScoreboard(scoreboardPlayerQueue); p.setScoreboard(scoreboardPlayerQueue);
updateScoreBoardWaitingList(); plugin.getServer().getScheduler().runTaskLater(plugin, new Runnable() {
@Override public void run() { updateScoreBoardWaitingList(); }
}, 2L);
} }
@EventHandler @EventHandler
public void onPlayerQuit(PlayerQuitEvent event) { public void onPlayerQuit(PlayerQuitEvent event) {
// lancer l'update un ou deux tick plus tard si ça ne marche pas comme ça plugin.getServer().getScheduler().runTaskLater(plugin, new Runnable() {
updateScoreBoardWaitingList(); @Override public void run() { updateScoreBoardWaitingList(); }
}, 2L);
} }