Gestion dans une classe à part des messages automatiques
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user