mirror of
https://github.com/TotalFreedomMC/TF-EssentialsX.git
synced 2025-02-11 20:00:46 +00:00
parent
16e05cc17b
commit
dd226dfdcf
2 changed files with 50 additions and 36 deletions
|
@ -12,6 +12,7 @@ import net.ess3.api.IEssentials;
|
||||||
import net.ess3.api.MaxMoneyException;
|
import net.ess3.api.MaxMoneyException;
|
||||||
import net.ess3.api.events.AfkStatusChangeEvent;
|
import net.ess3.api.events.AfkStatusChangeEvent;
|
||||||
import net.ess3.api.events.JailStatusChangeEvent;
|
import net.ess3.api.events.JailStatusChangeEvent;
|
||||||
|
import net.ess3.api.events.MuteStatusChangeEvent;
|
||||||
import net.ess3.api.events.UserBalanceUpdateEvent;
|
import net.ess3.api.events.UserBalanceUpdateEvent;
|
||||||
import net.ess3.nms.refl.ReflUtil;
|
import net.ess3.nms.refl.ReflUtil;
|
||||||
|
|
||||||
|
@ -505,10 +506,15 @@ public class User extends UserData implements Comparable<User>, IMessageRecipien
|
||||||
//Returns true if status expired during this check
|
//Returns true if status expired during this check
|
||||||
public boolean checkMuteTimeout(final long currentTime) {
|
public boolean checkMuteTimeout(final long currentTime) {
|
||||||
if (getMuteTimeout() > 0 && getMuteTimeout() < currentTime && isMuted()) {
|
if (getMuteTimeout() > 0 && getMuteTimeout() < currentTime && isMuted()) {
|
||||||
setMuteTimeout(0);
|
final MuteStatusChangeEvent event = new MuteStatusChangeEvent(this, null, false);
|
||||||
sendMessage(tl("canTalkAgain"));
|
ess.getServer().getPluginManager().callEvent(event);
|
||||||
setMuted(false);
|
|
||||||
return true;
|
if (!event.isCancelled()) {
|
||||||
|
setMuteTimeout(0);
|
||||||
|
sendMessage(tl("canTalkAgain"));
|
||||||
|
setMuted(false);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ import com.earth2me.essentials.CommandSource;
|
||||||
import com.earth2me.essentials.OfflinePlayer;
|
import com.earth2me.essentials.OfflinePlayer;
|
||||||
import com.earth2me.essentials.User;
|
import com.earth2me.essentials.User;
|
||||||
import com.earth2me.essentials.utils.DateUtil;
|
import com.earth2me.essentials.utils.DateUtil;
|
||||||
|
import net.ess3.api.events.MuteStatusChangeEvent;
|
||||||
import org.bukkit.Server;
|
import org.bukkit.Server;
|
||||||
|
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
@ -39,42 +40,49 @@ public class Commandmute extends EssentialsCommand {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
long muteTimestamp = 0;
|
final boolean willMute = (args.length > 1) ? true : !user.getMuted();
|
||||||
|
final User controller = sender.isPlayer() ? ess.getUser(sender.getPlayer()) : null;
|
||||||
|
final MuteStatusChangeEvent event = new MuteStatusChangeEvent(user, controller, willMute);
|
||||||
|
ess.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
if (args.length > 1) {
|
if (!event.isCancelled()) {
|
||||||
final String time = getFinalArg(args, 1);
|
long muteTimestamp = 0;
|
||||||
muteTimestamp = DateUtil.parseDateDiff(time, true);
|
|
||||||
user.setMuted(true);
|
|
||||||
} else {
|
|
||||||
user.setMuted(!user.getMuted());
|
|
||||||
}
|
|
||||||
user.setMuteTimeout(muteTimestamp);
|
|
||||||
final boolean muted = user.getMuted();
|
|
||||||
String muteTime = DateUtil.formatDateDiff(muteTimestamp);
|
|
||||||
|
|
||||||
if (nomatch) {
|
if (args.length > 1) {
|
||||||
sender.sendMessage(tl("userUnknown", user.getName()));
|
final String time = getFinalArg(args, 1);
|
||||||
}
|
muteTimestamp = DateUtil.parseDateDiff(time, true);
|
||||||
|
user.setMuted(true);
|
||||||
if (muted) {
|
|
||||||
if (muteTimestamp > 0) {
|
|
||||||
sender.sendMessage(tl("mutedPlayerFor", user.getDisplayName(), muteTime));
|
|
||||||
user.sendMessage(tl("playerMutedFor", muteTime));
|
|
||||||
} else {
|
} else {
|
||||||
sender.sendMessage(tl("mutedPlayer", user.getDisplayName()));
|
user.setMuted(!user.getMuted());
|
||||||
user.sendMessage(tl("playerMuted"));
|
|
||||||
}
|
}
|
||||||
final String message;
|
user.setMuteTimeout(muteTimestamp);
|
||||||
if (muteTimestamp > 0) {
|
final boolean muted = user.getMuted();
|
||||||
message = tl("muteNotifyFor", sender.getSender().getName(), user.getName(), muteTime);
|
String muteTime = DateUtil.formatDateDiff(muteTimestamp);
|
||||||
|
|
||||||
|
if (nomatch) {
|
||||||
|
sender.sendMessage(tl("userUnknown", user.getName()));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (muted) {
|
||||||
|
if (muteTimestamp > 0) {
|
||||||
|
sender.sendMessage(tl("mutedPlayerFor", user.getDisplayName(), muteTime));
|
||||||
|
user.sendMessage(tl("playerMutedFor", muteTime));
|
||||||
|
} else {
|
||||||
|
sender.sendMessage(tl("mutedPlayer", user.getDisplayName()));
|
||||||
|
user.sendMessage(tl("playerMuted"));
|
||||||
|
}
|
||||||
|
final String message;
|
||||||
|
if (muteTimestamp > 0) {
|
||||||
|
message = tl("muteNotifyFor", sender.getSender().getName(), user.getName(), muteTime);
|
||||||
|
} else {
|
||||||
|
message = tl("muteNotify", sender.getSender().getName(), user.getName());
|
||||||
|
}
|
||||||
|
server.getLogger().log(Level.INFO, message);
|
||||||
|
ess.broadcastMessage("essentials.mute.notify", message);
|
||||||
} else {
|
} else {
|
||||||
message = tl("muteNotify", sender.getSender().getName(), user.getName());
|
sender.sendMessage(tl("unmutedPlayer", user.getDisplayName()));
|
||||||
|
user.sendMessage(tl("playerUnmuted"));
|
||||||
}
|
}
|
||||||
server.getLogger().log(Level.INFO, message);
|
|
||||||
ess.broadcastMessage("essentials.mute.notify", message);
|
|
||||||
} else {
|
|
||||||
sender.sendMessage(tl("unmutedPlayer", user.getDisplayName()));
|
|
||||||
user.sendMessage(tl("playerUnmuted"));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue