PandacraftUtils/src/net/mc_pandacraft/java/plugin/pandacraftutils/commands/CommandTell.java

113 lines
3.2 KiB
Java
Raw Normal View History

2015-05-11 04:44:19 +02:00
package net.mc_pandacraft.java.plugin.pandacraftutils.commands;
import java.text.DateFormat;
import java.util.List;
import java.util.Locale;
import mkremins.fanciful.FancyMessage;
2015-05-11 04:44:19 +02:00
import net.mc_pandacraft.java.plugin.pandacraftutils.modules.PrivateMessagesManager.MessageSender;
import net.mc_pandacraft.java.plugin.pandacraftutils.modules.PrivateMessagesManager.MessageSendingException;
import net.mc_pandacraft.java.plugin.pandacraftutils.modules.PrivateMessagesManager.PrivateDiscussion;
2015-05-11 04:44:19 +02:00
import net.mc_pandacraft.java.plugin.pandacraftutils.players.OnlinePlayerManager;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class CommandTell extends AbstractCommandExecutor {
public CommandTell() {
super("tell");
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label,
String[] args) {
if (args.length == 0 && sender instanceof Player) {
Player player = (Player) sender;
onCommandDiscussionsList(player);
2015-05-11 04:44:19 +02:00
return true;
}
else if (args.length == 0) {
sender.sendMessage(ChatColor.RED+"Seul un joueur en ligne peut voir la liste de ses discussions.");
2015-05-11 04:44:19 +02:00
return false;
}
if (args.length >= 2) {
onCommandSend(sender, args[0], getLastParam(args, 1));
return true;
}
return false;
}
private void onCommandSend(CommandSender sender, String target, String message) {
if (sender instanceof Player && OnlinePlayerManager.get((Player) sender).getEssentialsUser().isMuted()) {
sender.sendMessage(ChatColor.RED+"Vous ne pouvez pas envoyer de message quand vous êtes muet");
return;
}
try {
plugin.privateMessagesManager.inputMessage(new MessageSender(sender), target, message);
} catch (MessageSendingException e) {
sender.sendMessage(ChatColor.RED+e.getMessage());
}
}
private void onCommandDiscussionsList(Player player) {
List<PrivateDiscussion> lastDiscussions = plugin.privateMessagesManager.getLastDiscussions(player, 5);
player.sendMessage(ChatColor.GOLD+"--- Messagerie privée - Liste des conversations ---");
for (PrivateDiscussion pvd : lastDiscussions) {
String name = (pvd.name == null) ?
new MessageSender(pvd.name).getDisplayName() :
(pvd.name.toLowerCase().startsWith("g:")) ?
ChatColor.GOLD+pvd.name.substring(2) :
new MessageSender(pvd.name).getDisplayName();
String line = name+ChatColor.RESET;
int nbM = pvd.nbUnread;
if (nbM > 0)
line += ChatColor.GRAY+" - "+ChatColor.RED+nbM+" message"+((nbM > 1)?"s":"")+" non lu"+((nbM > 1)?"s":"");
DateFormat date = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.FRANCE);
DateFormat hour = DateFormat.getTimeInstance(DateFormat.MEDIUM, Locale.FRANCE);
String affDate = date.format(pvd.timeLastMessage) + " à " + hour.format(pvd.timeLastMessage);
line += ChatColor.GRAY+" - "+affDate;
new FancyMessage("").then(line).color(ChatColor.GRAY).command("/m d:"+((pvd.name == null)?"null":pvd.name)).send(player);
}
player.sendMessage(ChatColor.GOLD+"Cliquez sur une conversation pour voir les messages");
player.sendMessage(ChatColor.GOLD+"----------------------------------------------");
}
2015-05-11 04:44:19 +02:00
}