Updated repeating task for unmuting players

This commit is contained in:
Aust1n46 2020-08-24 18:15:31 -05:00
parent 20e440b137
commit f82af0761c
5 changed files with 95 additions and 105 deletions

View File

@ -76,6 +76,8 @@ SpyOff: '&6You are no longer spying.'
SpyOn: '&6You are now spying.' SpyOn: '&6You are now spying.'
UnblockCommandPlayer: '&cYou have been unblocked from entering command {command}.' UnblockCommandPlayer: '&cYou have been unblocked from entering command {command}.'
UnblockCommandSender: '&cUnblocked player &6{player} &cfrom entering command {command}.' UnblockCommandSender: '&cUnblocked player &6{player} &cfrom entering command {command}.'
UnitsPlural: 'minutes'
UnitsSingular: 'minute'
UnmutePlayerAllPlayer: '&cYou have just been unmuted in all channels.' UnmutePlayerAllPlayer: '&cYou have just been unmuted in all channels.'
UnmutePlayerAllSender: '&cUnmuted player &6{player} &cin all channels.' UnmutePlayerAllSender: '&cUnmuted player &6{player} &cin all channels.'
UnmutePlayerPlayer: '&cYou have just been unmuted in: {channel_color}{channel_name}' UnmutePlayerPlayer: '&cYou have just been unmuted in: {channel_color}{channel_name}'

View File

@ -17,6 +17,7 @@ import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@ -419,26 +420,36 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
scheduler.runTaskTimerAsynchronously(this, new Runnable() { scheduler.runTaskTimerAsynchronously(this, new Runnable() {
@Override @Override
public void run() { public void run() {
for(MineverseChatPlayer p : MineverseChat.players) { for (MineverseChatPlayer p : MineverseChat.onlinePlayers) {
int time = (int) (System.currentTimeMillis() / 60000); int time = (int) System.currentTimeMillis();
Iterator<String> iterator = p.getMutes().keySet().iterator();
for(String c : p.getMutes().keySet()) { while (iterator.hasNext()) {
ChatChannel channel = ChatChannel.getChannel(c); ChatChannel channel = ChatChannel.getChannel(iterator.next());
int timemark = p.getMutes().get(channel.getName()); int timemark = p.getMutes().get(channel.getName());
if(timemark == 0) return; if (timemark == 0) {
// System.out.println(time + " " + timemark); return;
if(time > timemark) { }
p.removeMute(channel.getName()); if (getConfig().getString("loglevel", "info").equals("debug")) {
if(p.isOnline()) p.getPlayer().sendMessage(ChatColor.RED + "You have just been unmuted in: " + channel.getColor() + channel.getName()); System.out.println(time + " " + timemark);
else p.setModified(true); }
if (time >= timemark) {
iterator.remove();
if (p.isOnline()) {
p.getPlayer().sendMessage(LocalizedMessage.UNMUTE_PLAYER_PLAYER.toString()
.replace("{player}", p.getName()).replace("{channel_color}", channel.getColor())
.replace("{channel_name}", channel.getName()));
} else {
p.setModified(true);
}
} }
} }
} }
if(getConfig().getString("loglevel", "info").equals("debug")) { if (getConfig().getString("loglevel", "info").equals("debug")) {
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Updating Player Mutes")); Bukkit.getConsoleSender()
.sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Updating Player Mutes"));
} }
} }
}, 0L, 1200L); //one minute interval }, 0L, 1200L); // one minute interval
this.firstRun = false; this.firstRun = false;
} }

View File

@ -10,6 +10,7 @@ import mineverse.Aust1n46.chat.command.MineverseCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
public class Mute extends MineverseCommand { public class Mute extends MineverseCommand {
private static final int MILLISECONDS_PER_MINUTE = 60000;
public Mute(String name) { public Mute(String name) {
super(name); super(name);
@ -17,115 +18,97 @@ public class Mute extends MineverseCommand {
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public void execute(CommandSender sender, String command, String[] args) {
if(sender.hasPermission("venturechat.mute")) { if (sender.hasPermission("venturechat.mute")) {
if(args.length < 2) { if (args.length < 2) {
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/mute")
.replace("{command}", "/mute")
.replace("{args}", "[player] [channel] {time}")); .replace("{args}", "[player] [channel] {time}"));
return; return;
} }
MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]); MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]);
if(player == null || (!player.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) { if (player == null || (!player.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) {
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0]));
.replace("{args}", args[0]));
return; return;
} }
if(args.length == 2) { if (args.length == 2) {
if(ChatChannel.isChannel(args[1])) { if (ChatChannel.isChannel(args[1])) {
ChatChannel channel = ChatChannel.getChannel(args[1]); ChatChannel channel = ChatChannel.getChannel(args[1]);
if(player.isMuted(channel.getName())) { if (player.isMuted(channel.getName())) {
sender.sendMessage(LocalizedMessage.PLAYER_ALREADY_MUTED.toString() sender.sendMessage(LocalizedMessage.PLAYER_ALREADY_MUTED.toString()
.replace("{player}", player.getName()) .replace("{player}", player.getName()).replace("{channel_color}", channel.getColor())
.replace("{channel_color}", channel.getColor() + "")
.replace("{channel_name}", channel.getName())); .replace("{channel_name}", channel.getName()));
return; return;
} }
if(channel.isMutable()) { if (channel.isMutable()) {
player.addMute(channel.getName(), 0); player.addMute(channel.getName(), 0);
sender.sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER.toString() sender.sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER.toString()
.replace("{player}", player.getName()) .replace("{player}", player.getName()).replace("{channel_color}", channel.getColor())
.replace("{channel_color}", channel.getColor() + "")
.replace("{channel_name}", channel.getName())); .replace("{channel_name}", channel.getName()));
if(player.isOnline()) if (player.isOnline())
player.getPlayer().sendMessage(LocalizedMessage.MUTE_PLAYER_PLAYER.toString() player.getPlayer()
.replace("{channel_color}", channel.getColor() + "") .sendMessage(LocalizedMessage.MUTE_PLAYER_PLAYER.toString()
.replace("{channel_name}", channel.getName())); .replace("{channel_color}", channel.getColor())
else .replace("{channel_name}", channel.getName()));
else
player.setModified(true); player.setModified(true);
if(channel.getBungee()) { if (channel.getBungee()) {
MineverseChat.getInstance().synchronize(player, true); MineverseChat.getInstance().synchronize(player, true);
} }
return; return;
} }
sender.sendMessage(LocalizedMessage.CHANNEL_CANNOT_MUTE.toString() sender.sendMessage(LocalizedMessage.CHANNEL_CANNOT_MUTE.toString()
.replace("{channel_color}", channel.getColor() + "") .replace("{channel_color}", channel.getColor())
.replace("{channel_name}", channel.getName())); .replace("{channel_name}", channel.getName()));
return; return;
} }
sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString() sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[1]));
.replace("{args}", args[1]));
return; return;
} }
if(ChatChannel.isChannel(args[1])) { if (ChatChannel.isChannel(args[1])) {
ChatChannel channel = ChatChannel.getChannel(args[1]); ChatChannel channel = ChatChannel.getChannel(args[1]);
if(player.isMuted(channel.getName())) { if (player.isMuted(channel.getName())) {
sender.sendMessage(LocalizedMessage.PLAYER_ALREADY_MUTED.toString() sender.sendMessage(LocalizedMessage.PLAYER_ALREADY_MUTED.toString()
.replace("{player}", player.getName()) .replace("{player}", player.getName()).replace("{channel_color}", channel.getColor())
.replace("{channel_color}", channel.getColor() + "")
.replace("{channel_name}", channel.getName())); .replace("{channel_name}", channel.getName()));
return; return;
} }
if(channel.isMutable()) { if (channel.isMutable()) {
try { try {
//Calendar currentDate = Calendar.getInstance(); int datetime = (int) System.currentTimeMillis();
//SimpleDateFormat formatter = new SimpleDateFormat("dd:HH:mm:ss");
//String date = formatter.format(currentDate.getTime());
//String[] datearray = date.split(":");
//int datetime = (Integer.parseInt(datearray[0]) * 1440) + (Integer.parseInt(datearray[1]) * 60) + (Integer.parseInt(datearray[2]));
int datetime = (int) (System.currentTimeMillis() / 60000);
int time = Integer.parseInt(args[2]); int time = Integer.parseInt(args[2]);
if(time > 0) { if (time > 0) {
player.addMute(channel.getName(), datetime + time); player.addMute(channel.getName(), datetime + (time * MILLISECONDS_PER_MINUTE));
String keyword = "minutes"; String units = LocalizedMessage.UNITS_PLURAL.toString();
if(time == 1) if (time == 1)
keyword = "minute"; units = LocalizedMessage.UNITS_SINGULAR.toString();
sender.sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER_TIME.toString() sender.sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER_TIME.toString()
.replace("{player}", player.getName()) .replace("{player}", player.getName())
.replace("{channel_color}", channel.getColor() + "") .replace("{channel_color}", channel.getColor())
.replace("{channel_name}", channel.getName()) .replace("{channel_name}", channel.getName()).replace("{time}", time + "")
.replace("{time}", time + "") .replace("{units}", units));
.replace("{units}", keyword)); if (player.isOnline())
if(player.isOnline()) player.getPlayer()
player.getPlayer().sendMessage(LocalizedMessage.MUTE_PLAYER_PLAYER_TIME.toString() .sendMessage(LocalizedMessage.MUTE_PLAYER_PLAYER_TIME.toString()
.replace("{channel_color}", channel.getColor() + "") .replace("{channel_color}", channel.getColor())
.replace("{channel_name}", channel.getName()) .replace("{channel_name}", channel.getName())
.replace("{time}", time + "") .replace("{time}", time + "").replace("{units}", units));
.replace("{units}", keyword));
else else
player.setModified(true); player.setModified(true);
if(channel.getBungee()) { if (channel.getBungee()) {
MineverseChat.getInstance().synchronize(player, true); MineverseChat.getInstance().synchronize(player, true);
} }
return; return;
} }
sender.sendMessage(LocalizedMessage.INVALID_TIME.toString() sender.sendMessage(LocalizedMessage.INVALID_TIME.toString().replace("{args}", args[2]));
.replace("{args}", args[2])); } catch (Exception e) {
} sender.sendMessage(LocalizedMessage.INVALID_TIME.toString().replace("{args}", args[2]));
catch(Exception e) {
sender.sendMessage(LocalizedMessage.INVALID_TIME.toString()
.replace("{args}", args[2]));
} }
return; return;
} }
sender.sendMessage(LocalizedMessage.CHANNEL_CANNOT_MUTE.toString() sender.sendMessage(LocalizedMessage.CHANNEL_CANNOT_MUTE.toString()
.replace("{channel_color}", channel.getColor() + "") .replace("{channel_color}", channel.getColor()).replace("{channel_name}", channel.getName()));
.replace("{channel_name}", channel.getName()));
return; return;
} }
sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString() sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[1]));
.replace("{args}", args[1]));
return; return;
} }
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());

View File

@ -17,53 +17,45 @@ public class Unmute extends MineverseCommand {
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public void execute(CommandSender sender, String command, String[] args) {
if(sender.hasPermission("venturechat.mute")) { if (sender.hasPermission("venturechat.mute")) {
if(args.length < 2) { if (args.length < 2) {
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/unmute")
.replace("{command}", "/unmute")
.replace("{args}", "[player] [channel]")); .replace("{args}", "[player] [channel]"));
return; return;
} }
MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]); MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]);
if(player == null || (!player.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) { if (player == null || (!player.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) {
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0]));
.replace("{args}", args[0]));
return; return;
} }
for(ChatChannel channel : ChatChannel.getChannels()) { for (ChatChannel channel : ChatChannel.getChannels()) {
if(channel.getName().equalsIgnoreCase(args[1]) || channel.getAlias().equalsIgnoreCase(args[1])) { if (channel.getName().equalsIgnoreCase(args[1]) || channel.getAlias().equalsIgnoreCase(args[1])) {
if(!player.isMuted(channel.getName())) { if (!player.isMuted(channel.getName())) {
sender.sendMessage(LocalizedMessage.PLAYER_NOT_MUTED.toString() sender.sendMessage(LocalizedMessage.PLAYER_NOT_MUTED.toString()
.replace("{player}", player.getName()) .replace("{player}", player.getName()).replace("{channel_color}", channel.getColor())
.replace("{channel_color}", channel.getColor() + "")
.replace("{channel_name}", channel.getName())); .replace("{channel_name}", channel.getName()));
return; return;
} }
player.removeMute(channel.getName()); player.removeMute(channel.getName());
sender.sendMessage(LocalizedMessage.UNMUTE_PLAYER_SENDER.toString() sender.sendMessage(LocalizedMessage.UNMUTE_PLAYER_SENDER.toString()
.replace("{player}", player.getName()) .replace("{player}", player.getName()).replace("{channel_color}", channel.getColor())
.replace("{channel_color}", channel.getColor() + "")
.replace("{channel_name}", channel.getName())); .replace("{channel_name}", channel.getName()));
if(player.isOnline()) { if (player.isOnline()) {
player.getPlayer().sendMessage(LocalizedMessage.UNMUTE_PLAYER_PLAYER.toString() player.getPlayer().sendMessage(LocalizedMessage.UNMUTE_PLAYER_PLAYER.toString()
.replace("{player}", player.getName()) .replace("{player}", player.getName()).replace("{channel_color}", channel.getColor())
.replace("{channel_color}", channel.getColor() + "")
.replace("{channel_name}", channel.getName())); .replace("{channel_name}", channel.getName()));
} } else {
else {
player.setModified(true); player.setModified(true);
} }
if(channel.getBungee()) { if (channel.getBungee()) {
MineverseChat.getInstance().synchronize(player, true); MineverseChat.getInstance().synchronize(player, true);
} }
return; return;
} }
} }
sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString() sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[1]));
.replace("{args}", args[1]));
return; return;
} } else {
else {
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
return; return;
} }

View File

@ -83,6 +83,8 @@ public enum LocalizedMessage {
SPY_ON("SpyOn"), SPY_ON("SpyOn"),
UNBLOCK_COMMAND_PLAYER("UnblockCommandPlayer"), UNBLOCK_COMMAND_PLAYER("UnblockCommandPlayer"),
UNBLOCK_COMMAND_SENDER("UnblockCommandSender"), UNBLOCK_COMMAND_SENDER("UnblockCommandSender"),
UNITS_PLURAL("UnitsPlural"),
UNITS_SINGULAR("UnitsSingular"),
UNMUTE_PLAYER_ALL_PLAYER("UnmutePlayerAllPlayer"), UNMUTE_PLAYER_ALL_PLAYER("UnmutePlayerAllPlayer"),
UNMUTE_PLAYER_ALL_SENDER("UnmutePlayerAllSender"), UNMUTE_PLAYER_ALL_SENDER("UnmutePlayerAllSender"),
UNMUTE_PLAYER_PLAYER("UnmutePlayerPlayer"), UNMUTE_PLAYER_PLAYER("UnmutePlayerPlayer"),