L'historique des calculs d'un joueur est maintenant stocké dans la classe OnlinePlayer

This commit is contained in:
Marc Baloup 2015-01-25 01:21:13 -05:00
parent a4a138b9dc
commit fc64edebe6
5 changed files with 29 additions and 40 deletions

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-3.1.jar"/> <jar path="PandacraftUtils/jar_export/PandacraftUtils-3.2.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: 3.1 version: 3.2

View File

@ -24,7 +24,7 @@ public class CommandAdmin extends AbstractCommandExecutor {
return true; return true;
} }
if (args[0].equalsIgnoreCase("version")) { if (args[0].equalsIgnoreCase("version")) {
sender.sendMessage(ChatColor.GREEN+plugin.getName()+" v"+plugin.getDescription().getVersion()); sender.sendMessage(ChatColor.GREEN+plugin.getDescription().getFullName());
return true; return true;
} }

View File

@ -1,37 +1,27 @@
package net.mc_pandacraft.java.plugin.pandacraftutils.modules; package net.mc_pandacraft.java.plugin.pandacraftutils.modules;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import net.mc_pandacraft.java.plugin.pandacraftutils.PandacraftUtils; import net.mc_pandacraft.java.plugin.pandacraftutils.PandacraftUtils;
import net.mc_pandacraft.java.plugin.pandacraftutils.players.OnlinePlayer;
import net.mc_pandacraft.java.plugin.pandacraftutils.players.OnlinePlayerManager;
import net.mc_pandacraft.java.util.JArithmeticInterpreter; import net.mc_pandacraft.java.util.JArithmeticInterpreter;
import net.mc_pandacraft.java.util.StringUtil; import net.mc_pandacraft.java.util.StringUtil;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent; import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
public class CalculatorManager implements Listener { public class CalculatorManager implements Listener {
private PandacraftUtils plugin = PandacraftUtils.getInstance(); private PandacraftUtils plugin = PandacraftUtils.getInstance();
private Map<Player, List<HistoryElement>> history = new HashMap<Player, List<HistoryElement>>();
public CalculatorManager() { public CalculatorManager() {
plugin.getServer().getPluginManager().registerEvents(this, plugin); plugin.getServer().getPluginManager().registerEvents(this, plugin);
// analyse des joueurs déjà en ligne (/reload)
for (Player p : plugin.getServer().getOnlinePlayers())
onPlayerJoin(new PlayerJoinEvent(p, "")); // simule l'évènement d'arrivé d'un joueur, pour le rajouter
} }
@ -44,16 +34,19 @@ public class CalculatorManager implements Listener {
if (!message.startsWith("=")) if (!message.startsWith("="))
return; return;
OnlinePlayer op = OnlinePlayerManager.getInstance().get(event.getPlayer());
List<HistoryElement> history = op.getCalculator_history();
if (message.length() == 1) if (message.length() == 1)
{ // affichage de l'historique { // affichage de l'historique
event.getPlayer().sendMessage(ChatColor.GRAY+"Historique d'utilisation de la calculatrice"); event.getPlayer().sendMessage(ChatColor.GRAY+"Historique d'utilisation de la calculatrice");
int i = history.get(event.getPlayer()).size(); int i = history.size();
for(HistoryElement el : history.get(event.getPlayer())) for(HistoryElement el : history)
{ {
event.getPlayer().sendMessage(ChatColor.GRAY+"res"+i+ChatColor.RESET+" : "+ChatColor.GRAY+el.expression+ChatColor.RESET+"="+ChatColor.GRAY+el.value); event.getPlayer().sendMessage(ChatColor.GRAY+"res"+i+ChatColor.RESET+" : "+ChatColor.GRAY+el.expression+ChatColor.RESET+"="+ChatColor.GRAY+el.value);
i--; i--;
} }
if (history.get(event.getPlayer()).size() == 0) if (history.size() == 0)
{ {
event.getPlayer().sendMessage(ChatColor.RED+"Utilisez le symbole "+ChatColor.GRAY+"="+ChatColor.RED+" dans le chat pour faire un calcul mathématique"); event.getPlayer().sendMessage(ChatColor.RED+"Utilisez le symbole "+ChatColor.GRAY+"="+ChatColor.RED+" dans le chat pour faire un calcul mathématique");
} }
@ -73,9 +66,7 @@ public class CalculatorManager implements Listener {
calcul.value = StringUtil.formatDouble(JArithmeticInterpreter.getResultFromExpression(message, expression)); calcul.value = StringUtil.formatDouble(JArithmeticInterpreter.getResultFromExpression(message, expression));
calcul.expression = expression.toString(); calcul.expression = expression.toString();
history.get(event.getPlayer()).add(calcul); op.addToCalculatorHistory(calcul);
if (history.get(event.getPlayer()).size() > 5)
history.get(event.getPlayer()).remove(0);
event.getPlayer().sendMessage(ChatColor.GRAY+calcul.expression+ChatColor.RESET+"="+ChatColor.GRAY+calcul.value); event.getPlayer().sendMessage(ChatColor.GRAY+calcul.expression+ChatColor.RESET+"="+ChatColor.GRAY+calcul.value);
@ -95,25 +86,7 @@ public class CalculatorManager implements Listener {
public class HistoryElement
@EventHandler
public void onPlayerJoin(PlayerJoinEvent event)
{
history.put(event.getPlayer(), new ArrayList<HistoryElement>());
}
@EventHandler
public void onPlayerQuit(PlayerQuitEvent event)
{
history.remove(event.getPlayer());
}
private class HistoryElement
{ {
public String expression; public String expression;
public String value; public String value;

View File

@ -1,12 +1,15 @@
package net.mc_pandacraft.java.plugin.pandacraftutils.players; package net.mc_pandacraft.java.plugin.pandacraftutils.players;
import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.HashSet; import java.util.HashSet;
import java.util.List;
import java.util.Random; import java.util.Random;
import java.util.Set; import java.util.Set;
import net.mc_pandacraft.java.plugin.pandacraftutils.ConfigManager; import net.mc_pandacraft.java.plugin.pandacraftutils.ConfigManager;
import net.mc_pandacraft.java.plugin.pandacraftutils.PandacraftUtils; import net.mc_pandacraft.java.plugin.pandacraftutils.PandacraftUtils;
import net.mc_pandacraft.java.plugin.pandacraftutils.modules.CalculatorManager;
import net.mc_pandacraft.java.plugin.pandacraftutils.plugin_interface.EssentialsInterface; import net.mc_pandacraft.java.plugin.pandacraftutils.plugin_interface.EssentialsInterface;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@ -199,7 +202,20 @@ public class OnlinePlayer {
/*
* Historique de calcul
*/
private ArrayList<CalculatorManager.HistoryElement> Calculator_history = new ArrayList<CalculatorManager.HistoryElement>();
public void addToCalculatorHistory(CalculatorManager.HistoryElement el) {
Calculator_history.add(el);
if (Calculator_history.size() > 5)
Calculator_history.remove(0);
}
public List<CalculatorManager.HistoryElement> getCalculator_history() {
return Collections.unmodifiableList(Calculator_history);
}