@@ -21,6 +21,7 @@ public Commandmute() {
2121
2222 @ Override
2323 public void run (final Server server , final CommandSource sender , final String commandLabel , final String [] args ) throws Exception {
24+ final boolean isUnmute = commandLabel .toLowerCase (java .util .Locale .ENGLISH ).contains ("unmute" );
2425 boolean nomatch = false ;
2526 if (args .length < 1 ) {
2627 throw new NotEnoughArgumentsException ();
@@ -32,19 +33,25 @@ public void run(final Server server, final CommandSource sender, final String co
3233 nomatch = true ;
3334 user = ess .getUser (new OfflinePlayerStub (args [0 ], ess .getServer ()));
3435 }
36+
37+ if (isUnmute && !user .getMuted ()) {
38+ sender .sendTl ("playerNotMuted" , user .getDisplayName ());
39+ return ;
40+ }
41+
3542 if (!user .getBase ().isOnline () && sender .isPlayer ()) {
3643 if (!sender .isAuthorized ("essentials.mute.offline" )) {
3744 throw new TranslatableException ("muteExemptOffline" );
3845 }
39- } else if (user .isAuthorized ("essentials.mute.exempt" )) {
46+ } else if (! isUnmute && user .isAuthorized ("essentials.mute.exempt" )) {
4047 throw new TranslatableException ("muteExempt" );
4148 }
4249
4350 long muteTimestamp = 0 ;
4451 final String time ;
4552 String muteReason = null ;
4653
47- if (args .length > 1 ) {
54+ if (! isUnmute && args .length > 1 ) {
4855 time = args [1 ];
4956 try {
5057 muteTimestamp = DateUtil .parseDateDiff (time , true );
@@ -59,7 +66,7 @@ public void run(final Server server, final CommandSource sender, final String co
5966 }
6067 }
6168
62- final boolean willMute = ( args .length > 1 ) || !user .getMuted ();
69+ final boolean willMute = ! isUnmute && (( args .length > 1 ) || !user .getMuted () );
6370 final User controller = sender .isPlayer () ? ess .getUser (sender .getPlayer ()) : null ;
6471 final MuteStatusChangeEvent event = new MuteStatusChangeEvent (user , controller , willMute , muteTimestamp , muteReason );
6572 ess .getServer ().getPluginManager ().callEvent (event );
@@ -121,6 +128,8 @@ public void run(final Server server, final CommandSource sender, final String co
121128 } else {
122129 sender .sendTl ("unmutedPlayer" , user .getDisplayName ());
123130 user .sendTl ("playerUnmuted" );
131+ ess .getLogger ().log (Level .INFO , ess .getAdventureFacet ().miniToLegacy (tlLiteral ("unmuteNotify" , sender .getSender ().getName (), user .getName ())));
132+ ess .broadcastTl (null , "essentials.mute.notify" , "unmuteNotify" , new Object []{sender .getSender ().getName (), user .getName ()});
124133 }
125134 }
126135 }
0 commit comments