Add mute awareness message feature for t3

Tested by t3hero
This commit is contained in:
AlexTheCoder 2017-08-12 23:50:43 -04:00 committed by cnr
parent 7f6796cff9
commit 0d7e404da8
5 changed files with 46 additions and 29 deletions

View File

@ -6,4 +6,4 @@ public class ClientMessage
public String LastAdminTo;
public long LastToTime;
public int SpamCounter;
}
}

View File

@ -1,5 +1,17 @@
package mineplex.core.message;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.UUID;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Sound;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitRunnable;
import mineplex.core.MiniClientPlugin;
import mineplex.core.account.CoreClientManager;
import mineplex.core.chat.Chat;
@ -33,18 +45,6 @@ import mineplex.core.punish.Punishment;
import mineplex.core.punish.PunishmentSentence;
import mineplex.serverdata.commands.AnnouncementCommand;
import mineplex.serverdata.commands.ServerCommandManager;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Sound;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitRunnable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.UUID;
public class MessageManager extends MiniClientPlugin<ClientMessage>
{
@ -263,6 +263,10 @@ public class MessageManager extends MiniClientPlugin<ClientMessage>
// Send
UtilPlayer.message(to, C.cGold + "§l" + from.getName() + " > " + to.getName() + C.cYellow + " §l" + message);
if (_punish.GetClient(to.getName()).IsMuted() && _preferences.get(to).isActive(Preference.INFORM_MUTED))
{
UtilPlayer.message(from, F.main(getName(), F.elem(to.getName()) + " is currently muted and cannot reply to you!"));
}
}
public void DoMessageAdmin(Player from, Player to, String message)
@ -345,7 +349,8 @@ public class MessageManager extends MiniClientPlugin<ClientMessage>
"Mmm...Steak!",
"Poop! Poop everywhere!",
"I'm so forgetful. Like I was going to say somethin...wait what were we talking about?",
"Mmm...Steak!"
"Mmm...Steak!",
"#BlameAlex"
);
}
@ -359,7 +364,7 @@ public class MessageManager extends MiniClientPlugin<ClientMessage>
if (_randomMessage.isEmpty())
return "meow";
return _randomMessage.get(UtilMath.r(_randomMessage.size()));
return UtilMath.randomElement(_randomMessage);
}
public void Help(Player caller)
@ -392,7 +397,7 @@ public class MessageManager extends MiniClientPlugin<ClientMessage>
// Message the sender
RedisMessageCallback message = new RedisMessageCallback(globalMessage, true, to.getName(),
C.cPurple + "-> " + toRank + " " + to.getName() + " " + C.cPurple + globalMessage.getMessage());
C.cPurple + "-> " + toRank + " " + to.getName() + " " + C.cPurple + globalMessage.getMessage(), false);
// Inform Admins
for (Player staff : UtilServer.getPlayers())
@ -416,8 +421,7 @@ public class MessageManager extends MiniClientPlugin<ClientMessage>
if (canMessage != null)
{
RedisMessageCallback message = new RedisMessageCallback(globalMessage, false, null, canMessage);
RedisMessageCallback message = new RedisMessageCallback(globalMessage, false, null, canMessage, false);
message.publish();
@ -431,9 +435,11 @@ public class MessageManager extends MiniClientPlugin<ClientMessage>
UtilPlayer.message(to, message);
to.playSound(to.getLocation(), Sound.NOTE_PIANO, 2f, 2f);
boolean informMuted = _punish.GetClient(to.getName()).IsMuted() && _preferences.get(to).isActive(Preference.INFORM_MUTED);
// Message the sender
RedisMessageCallback redisMessage = new RedisMessageCallback(globalMessage, false, to.getName(), message);
RedisMessageCallback redisMessage = new RedisMessageCallback(globalMessage, false, to.getName(), message, informMuted);
redisMessage.publish();
}
@ -453,6 +459,11 @@ public class MessageManager extends MiniClientPlugin<ClientMessage>
if (target != null)
{
target.sendMessage(message.getMessage());
if (message.informMuted())
{
UtilPlayer.message(target, F.main(getName(), F.elem(message.getLastReplied()) + " is currently muted and cannot reply to you!"));
}
target.playSound(target.getLocation(), Sound.NOTE_PIANO, 2f, 2f);
@ -647,6 +658,6 @@ public class MessageManager extends MiniClientPlugin<ClientMessage>
public PreferencesManager getPreferences()
{
return this._preferences;
return _preferences;
}
}
}

View File

@ -70,4 +70,4 @@ public class RedisMessage extends ServerCommand
{
// Utilitizes a callback functionality to seperate dependencies
}
}
}

View File

@ -12,16 +12,17 @@ public class RedisMessageCallback extends ServerCommand
private String _message;
private String _setLastMessage;
private String _target;
private boolean _staffMessage;
private boolean _staffMessage, _informMuted;
private UUID _uuid;
public RedisMessageCallback(RedisMessage globalMessage, boolean staffMessage, String receivedPlayer, String message)
public RedisMessageCallback(RedisMessage globalMessage, boolean staffMessage, String receivedPlayer, String message, boolean informMuted)
{
_target = globalMessage.getSender();
_message = message;
_setLastMessage = receivedPlayer;
_uuid = globalMessage.getUUID();
_staffMessage = staffMessage;
_informMuted = informMuted;
if (globalMessage.getSendingServer() != null)
{
@ -33,6 +34,11 @@ public class RedisMessageCallback extends ServerCommand
{
return _staffMessage;
}
public boolean informMuted()
{
return _informMuted;
}
public String getLastReplied()
{
@ -59,4 +65,4 @@ public class RedisMessageCallback extends ServerCommand
{
// Utilitizes a callback functionality to seperate dependencies
}
}
}

View File

@ -48,7 +48,9 @@ public enum Preference
PARTY_DISPLAY_INVENTORY_UI(true, PreferenceCategory.SOCIAL, Material.CHEST, "Display Parties GUI"),
RANDOM_MESSAGES(true, PreferenceCategory.USER, Material.COMMAND, "Send random messages", "Got nothing to say? We got you covered!")
RANDOM_MESSAGES(true, PreferenceCategory.USER, Material.COMMAND, "Send Random Messages", "Got nothing to say? We got you covered!"),
INFORM_MUTED(false, PreferenceCategory.USER, Material.BARRIER, "Inform When Muted", "Inform people who message you if you are muted!")
;
private static final Map<Integer, Preference> PREFERENCE_MAP = Maps.newHashMap();
@ -118,6 +120,4 @@ public enum Preference
{
return PREFERENCE_MAP.get(id);
}
}
}