Gestion dans une classe à part des messages automatiques

This commit is contained in:
2015-02-18 02:27:31 -05:00
parent dbae5bea01
commit 9abe06afe1
8 changed files with 179 additions and 111 deletions

View File

@@ -1,17 +1,14 @@
package net.mc_pandacraft.java.plugin.pandacraftutils.modules;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import net.mc_pandacraft.java.plugin.pandacraftutils.PandacraftUtils;
import net.mc_pandacraft.java.plugin.pandacraftutils.config.ConfigManager;
import net.mc_pandacraft.java.plugin.pandacraftutils.config.elements.AutoMessagesConfigEntry;
import net.mc_pandacraft.java.plugin.pandacraftutils.players.OnlinePlayer;
import net.mc_pandacraft.java.plugin.pandacraftutils.players.OnlinePlayerManager;
import org.bukkit.ChatColor;
import org.bukkit.scheduler.BukkitRunnable;
public class AutoMessagesManager extends BukkitRunnable {
@@ -30,7 +27,7 @@ public class AutoMessagesManager extends BukkitRunnable {
@Override
public void run() {
List<AutoMessage> messages = getMessagesFromConfig();
List<AutoMessagesConfigEntry> messages = ConfigManager.getInstance().autoMessagesConfig.getAutoMessages();
int interval_default = ConfigManager.getInstance().defaultConfig.autoMessages_defaultInterval,
interval_players = ConfigManager.getInstance().defaultConfig.autoMessages_playerInterval;
// message
@@ -68,61 +65,16 @@ public class AutoMessagesManager extends BukkitRunnable {
// affichage du message
if (atLeastOnePermitted) {
op.setAutomessage_last_message_id(id);
op.updateAutomessage_last_message_time();
op.sendMessageFromServer(messages.get(id).getMessage());
}
}
}
public List<AutoMessage> getMessagesFromConfig() {
ArrayList<AutoMessage> ret = new ArrayList<AutoMessage>();
for (Map<String, String> message : ConfigManager.getInstance().Automessages_messages)
ret.add(new AutoMessage(ChatColor.translateAlternateColorCodes('&', message.get("message").replace("%n", "\n")), message.get("permissions")));
return ret;
}
public class AutoMessage {
private String message;
private List<String> permissions;
public AutoMessage(String m, String perm) {
setMessage(m);
if (perm == null || perm.equals("*"))
permissions = null;
else
permissions = Arrays.asList(perm.split(";"));
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
if (message == null) throw new IllegalArgumentException("message ne doit pas être null");
this.message = message;
}
public boolean hasPlayerPermission(OnlinePlayer op) {
if (op == null) throw new IllegalArgumentException("le joueur ne doit pas être null");
if (permissions == null)
return true;
op.updateAutomessage_last_message_time();
for (String pe : permissions) {
if (op.hasPermission(pe)) return true;
}
return false;
}
}
}
}