Added new command /messagetoggle to toggle receiving or blocking

messages.
This commit is contained in:
Aust1n46 2016-09-07 09:41:09 -04:00
parent c8b87fddd6
commit 750948ffd8
15 changed files with 147 additions and 25 deletions

View File

@ -138,7 +138,7 @@ messageremoverpermissions: '&cYou need additional permissions to view this messa
# A lower priority overrides a higher priority if a player has more than 1 group
# Possible options for click_name and click_prefix are suggest_command, run_command, and open_url
jsonformatting:
Default:
Default: # This default format is required! Do not delete or rename it!
priority: 2147483647 # Integer.MAX_VALUE
hover_name:
- '&6I have no rank!'

View File

@ -83,6 +83,7 @@ import mineverse.Aust1n46.chat.command.chat.Venturechat;
import mineverse.Aust1n46.chat.command.message.Afk;
import mineverse.Aust1n46.chat.command.message.Ignore;
import mineverse.Aust1n46.chat.command.message.Message;
import mineverse.Aust1n46.chat.command.message.MessageToggle;
import mineverse.Aust1n46.chat.command.message.Notifications;
import mineverse.Aust1n46.chat.command.message.Reply;
import mineverse.Aust1n46.chat.command.message.Spy;
@ -214,6 +215,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
// Set up Vault
if(!this.setupPermissions()) {
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - &cCould not find Vault dependency, disabling."));
Bukkit.getPluginManager().disablePlugin(this);
}
this.setupChat();
// Log completion of initialization
@ -272,7 +274,8 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
boolean commandSpy = PlayerData.getPlayerData().getConfigurationSection("players." + uuidString).getBoolean("commandspy", false);
boolean rangedSpy = PlayerData.getPlayerData().getConfigurationSection("players." + uuidString).getBoolean("rangedspy", false);
boolean buttons = PlayerData.getPlayerData().getConfigurationSection("players." + uuidString).getBoolean("buttons", true);
players.add(new MineverseChatPlayer(uuid, name, currentChannel, ignores, listening, mutes, blockedCommands, mail, host, party, filter, notifications, nickname, jsonFormat, spy, commandSpy, rangedSpy, buttons));
boolean messageToggle = PlayerData.getPlayerData().getConfigurationSection("players." + uuidString).getBoolean("messagetoggle", true);
players.add(new MineverseChatPlayer(uuid, name, currentChannel, ignores, listening, mutes, blockedCommands, mail, host, party, filter, notifications, nickname, jsonFormat, spy, commandSpy, rangedSpy, buttons, messageToggle));
}
}
else {
@ -377,6 +380,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
commands.put("unmute", new Unmute("unmute"));
commands.put("unmuteall", new Unmuteall("unmuteall"));
commands.put("venturechatgui", new VentureChatGui("venturechatgui"));
commands.put("messagetoggle", new MessageToggle("messagetoggle"));
commandExecutor = new MineverseCommandExecutor(commands);
for(String command : commands.keySet()) {
this.getCommand(command).setExecutor(commandExecutor);
@ -697,6 +701,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
out.writeUTF(c.toString());
}
out.writeBoolean(mcp.isSpy());
out.writeBoolean(mcp.getMessageToggle());
}
for(MineverseChatPlayer p : MineverseChat.onlinePlayers) {
p.getPlayer().sendPluginMessage(this, "VentureChat", outstream.toByteArray());
@ -830,6 +835,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
}
// System.out.println(msgin.available() + " available before");
p.setSpy(msgin.readBoolean());
p.setMessageToggle(msgin.readBoolean());
// System.out.println(msgin.available() + " available after");
for(Object o : p.getIgnores().toArray()) {
p.removeIgnore((UUID) o);
@ -939,6 +945,15 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
player.sendPluginMessage(this, "VentureChat", stream.toByteArray());
return;
}
if(!p.getMessageToggle()) {
out.writeUTF("Message");
out.writeUTF("Blocked");
out.writeUTF(server);
out.writeUTF(receiver);
out.writeUTF(sender.toString());
player.sendPluginMessage(this, "VentureChat", stream.toByteArray());
return;
}
if(s != null) {
sName = Format.FormatStringAll(s.getNickname());
}
@ -953,7 +968,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
Set<String> blockedCommands = new HashSet<String>();
List<String> mail = new ArrayList<String>();
String jsonFormat = "Default";
s = new MineverseChatPlayer(uuid, name, current, ignores, listening, mutes, blockedCommands, mail, false, null, true, true, name, jsonFormat, false, false, false, true);
s = new MineverseChatPlayer(uuid, name, current, ignores, listening, mutes, blockedCommands, mail, false, null, true, true, name, jsonFormat, false, false, false, true, true);
MineverseChat.players.add(s);
}
p.getPlayer().sendMessage(msg.replace("{playerfrom}", sName).replace("{playerto}", Format.FormatStringAll(p.getNickname())));
@ -990,6 +1005,12 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
MineverseChatPlayer p = MineverseChatAPI.getOnlineMineverseChatPlayer(sender);
p.getPlayer().sendMessage(ChatColor.GOLD + receiver + " is currently ignoring your messages.");
}
if(identifier.equals("Blocked")) {
String receiver = msgin.readUTF();
UUID sender = UUID.fromString(msgin.readUTF());
MineverseChatPlayer p = MineverseChatAPI.getOnlineMineverseChatPlayer(sender);
p.getPlayer().sendMessage(ChatColor.GOLD + receiver + " is currently blocking messages.");
}
if(identifier.equals("Echo")) {
String receiver = msgin.readUTF();
UUID sender = UUID.fromString(msgin.readUTF());

View File

@ -49,8 +49,9 @@ public class MineverseChatPlayer {
private int editHash;
private boolean rangedSpy;
private boolean buttons;
private boolean messageToggle;
public MineverseChatPlayer(UUID uuid, String name, ChatChannel currentChannel, Set<UUID> ignores, Set<String> listening, HashMap<String, Integer> mutes, Set<String> blockedCommands, List<String> mail, boolean host, UUID party, boolean filter, boolean notifications, String nickname, String jsonFormat, boolean spy, boolean commandSpy, boolean rangedSpy, boolean buttons) {
public MineverseChatPlayer(UUID uuid, String name, ChatChannel currentChannel, Set<UUID> ignores, Set<String> listening, HashMap<String, Integer> mutes, Set<String> blockedCommands, List<String> mail, boolean host, UUID party, boolean filter, boolean notifications, String nickname, String jsonFormat, boolean spy, boolean commandSpy, boolean rangedSpy, boolean buttons, boolean messageToggle) {
this.uuid = uuid;
this.name = name;
this.currentChannel = currentChannel;
@ -82,6 +83,15 @@ public class MineverseChatPlayer {
this.jsonFormat = jsonFormat;
this.cooldowns = new HashMap<ChatChannel, Integer>();
this.spam = new HashMap<ChatChannel, List<Integer>>();
this.messageToggle = messageToggle;
}
public boolean getMessageToggle() {
return this.messageToggle;
}
public void setMessageToggle(boolean messageToggle) {
this.messageToggle = messageToggle;
}
public boolean getButtons() {

View File

@ -11,13 +11,15 @@ public class SynchronizedMineverseChatPlayer {
private Set<UUID> ignores;
private int messagePackets;
private boolean spy;
private boolean messageToggle;
public SynchronizedMineverseChatPlayer(UUID uuid, Set<String> listening, HashMap<String, Integer> mutes, Set<UUID> ignores, boolean spy) {
public SynchronizedMineverseChatPlayer(UUID uuid, Set<String> listening, HashMap<String, Integer> mutes, Set<UUID> ignores, boolean spy, boolean messageToggle) {
this.uuid = uuid;
this.listening = listening;
this.mutes = mutes;
this.ignores = ignores;
this.spy = spy;
this.messageToggle = messageToggle;
}
public int getMessagePackets() {
@ -79,4 +81,12 @@ public class SynchronizedMineverseChatPlayer {
public void setSpy(boolean spy) {
this.spy = spy;
}
public boolean getMessageToggle() {
return this.messageToggle;
}
public void setMessageToggle(boolean messageToggle) {
this.messageToggle = messageToggle;
}
}

View File

@ -81,7 +81,8 @@ public class MineverseChatBungee extends Plugin implements Listener {
ignores.add(UUID.fromString(ignore));
}
boolean spy = playerData.getBoolean(uuidString + ".spy");
players.add(new SynchronizedMineverseChatPlayer(uuid, listening, mutes, ignores, spy));
boolean messageToggle = playerData.getBoolean(uuidString + ".messagetoggle");
players.add(new SynchronizedMineverseChatPlayer(uuid, listening, mutes, ignores, spy, messageToggle));
}
this.getProxy().registerChannel("VentureChat");
this.getProxy().getPluginManager().registerListener(this, this);
@ -122,6 +123,7 @@ public class MineverseChatBungee extends Plugin implements Listener {
playerData.set(p.getUUID().toString() + ".mutes", mute);
playerData.set(p.getUUID().toString() + ".ignores", ignore);
playerData.set(p.getUUID().toString() + ".spy", p.isSpy());
playerData.set(p.getUUID().toString() + ".messagetoggle", p.getMessageToggle());
}
try {
ConfigurationProvider.getProvider(YamlConfiguration.class).save(playerData, new File(getDataFolder(), "BungeePlayers.yml"));
@ -297,6 +299,18 @@ public class MineverseChatBungee extends Plugin implements Listener {
getProxy().getServers().get(server).sendData("VentureChat", outstream.toByteArray());
}
}
if(identifier.equals("Blocked")) {
String server = in.readUTF();
String player = in.readUTF();
String sender = in.readUTF();
out.writeUTF("Message");
out.writeUTF("Blocked");
out.writeUTF(player);
out.writeUTF(sender);
if(getProxy().getServers().get(server).getPlayers().size() > 0) {
getProxy().getServers().get(server).sendData("VentureChat", outstream.toByteArray());
}
}
if(identifier.equals("Echo")) {
String server = in.readUTF();
String player = in.readUTF();
@ -335,7 +349,7 @@ public class MineverseChatBungee extends Plugin implements Listener {
UUID uuid = UUID.fromString(in.readUTF());
SynchronizedMineverseChatPlayer smcp = MineverseChatAPI.getSynchronizedMineverseChatPlayer(uuid);
if(smcp == null) {
smcp = new SynchronizedMineverseChatPlayer(uuid, new HashSet<String>(), new HashMap<String, Integer>(), new HashSet<UUID>(), false);
smcp = new SynchronizedMineverseChatPlayer(uuid, new HashSet<String>(), new HashMap<String, Integer>(), new HashSet<UUID>(), false, true);
players.add(smcp);
}
out.writeUTF("Sync");
@ -356,6 +370,7 @@ public class MineverseChatBungee extends Plugin implements Listener {
//System.out.println(smcp.isSpy() + " spy value");
//System.out.println(out.size() + " size before");
out.writeBoolean(smcp.isSpy());
out.writeBoolean(smcp.getMessageToggle());
//System.out.println(out.size() + " size after");
int ignoreCount = smcp.getIgnores().size();
//System.out.println(ignoreCount + " ignore size");
@ -370,7 +385,7 @@ public class MineverseChatBungee extends Plugin implements Listener {
UUID uuid = UUID.fromString(in.readUTF());
SynchronizedMineverseChatPlayer smcp = MineverseChatAPI.getSynchronizedMineverseChatPlayer(uuid);
if(smcp == null) {
smcp = new SynchronizedMineverseChatPlayer(uuid, new HashSet<String>(), new HashMap<String, Integer>(), new HashSet<UUID>(), false);
smcp = new SynchronizedMineverseChatPlayer(uuid, new HashSet<String>(), new HashMap<String, Integer>(), new HashSet<UUID>(), false, true);
players.add(smcp);
}
smcp.getListening().clear();
@ -395,6 +410,7 @@ public class MineverseChatBungee extends Plugin implements Listener {
smcp.addIgnore(MineverseChatAPI.getSynchronizedMineverseChatPlayer(UUID.fromString(ignore)));
}
smcp.setSpy(in.readBoolean());
smcp.setMessageToggle(in.readBoolean());
}
if(identifier.equals("PlayersReceive")) {
String server = in.readUTF();

View File

@ -66,7 +66,7 @@ public class VentureChatGui extends MineverseCommand {
Set<String> blockedCommands = new HashSet<String>();
List<String> mail = new ArrayList<String>();
String jsonFormat = "Default";
target = new MineverseChatPlayer(uuid, name, current, ignores, listening, mutes, blockedCommands, mail, false, null, true, true, name, jsonFormat, false, false, false, true);
target = new MineverseChatPlayer(uuid, name, current, ignores, listening, mutes, blockedCommands, mail, false, null, true, true, name, jsonFormat, false, false, false, true, true);
MineverseChat.players.add(target);
}
if(MineverseChat.ccInfo.isChannel(args[1])) {

View File

@ -4,3 +4,4 @@
/Notifications.class
/Reply.class
/Spy.class
/MessageToggle.class

View File

@ -114,6 +114,10 @@ public class Message extends MineverseCommand {
mcp.getPlayer().sendMessage(ChatColor.GOLD + player.getName() + " is currently ignoring your messages.");
return;
}
if(!player.getMessageToggle()) {
mcp.getPlayer().sendMessage(ChatColor.GOLD + player.getName() + " is currently blocking messages.");
return;
}
if(args.length >= 2) {
String msg = "";
String echo = "";

View File

@ -0,0 +1,42 @@
package mineverse.Aust1n46.chat.command.message;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.MineverseCommand;
public class MessageToggle extends MineverseCommand {
private MineverseChat plugin;
public MessageToggle(String name) {
super(name);
this.plugin = MineverseChat.getInstance();
}
@Override
public void execute(CommandSender sender, String command, String[] args) {
if(!(sender instanceof Player)) {
plugin.getServer().getConsoleSender().sendMessage(ChatColor.RED + "This command must be run by a player.");
return;
}
MineverseChatPlayer mcp = MineverseChatAPI.getMineverseChatPlayer((Player) sender);
if(mcp.getPlayer().hasPermission("venturechat.messagetoggle")) {
if(!mcp.getMessageToggle()) {
mcp.setMessageToggle(true);
mcp.getPlayer().sendMessage(ChatColor.GOLD + "You are now receiving messages.");
MineverseChat.getInstance().synchronize(mcp, true);
return;
}
mcp.setMessageToggle(false);
mcp.getPlayer().sendMessage(ChatColor.GOLD + "You are now blocking messages.");
MineverseChat.getInstance().synchronize(mcp, true);
return;
}
mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command.");
return;
}
}

View File

@ -93,6 +93,10 @@ public class Reply extends MineverseCommand {
mcp.getPlayer().sendMessage(ChatColor.GOLD + player.getNickname() + " is currently ignoring your replies.");
return;
}
if(!player.getMessageToggle()) {
mcp.getPlayer().sendMessage(ChatColor.GOLD + player.getNickname() + " is currently blocking messages.");
return;
}
String msg = "";
String echo = "";
String send = "";

View File

@ -108,6 +108,7 @@ public class PlayerData {
cs.set("commandspy", p.hasCommandSpy());
cs.set("rangedspy", p.getRangedSpy());
cs.set("buttons", p.getButtons());
cs.set("messagetoggle", p.getMessageToggle());
Calendar currentDate = Calendar.getInstance();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MMM/dd HH:mm:ss");
String dateNow = formatter.format(currentDate.getTime());

View File

@ -128,6 +128,11 @@ public class ChatListener implements Listener {
event.setCancelled(true);
return;
}
if(!tp.getMessageToggle()) {
mcp.getPlayer().sendMessage(ChatColor.GOLD + tp.getName() + " is currently blocking messages.");
event.setCancelled(true);
return;
}
String filtered = event.getMessage();
String echo = "";
String send = "";
@ -258,6 +263,11 @@ public class ChatListener implements Listener {
event.setCancelled(true);
return;
}
if(!p.getMessageToggle()) {
mcp.getPlayer().sendMessage(ChatColor.GOLD + p.getName() + " is currently blocking messages.");
event.setCancelled(true);
return;
}
String echo = "";
String send = "";
String spy = "";
@ -328,6 +338,11 @@ public class ChatListener implements Listener {
event.setCancelled(true);
return;
}
if(!p.getMessageToggle()) {
mcp.getPlayer().sendMessage(ChatColor.GOLD + p.getName() + " is currently blocking messages.");
event.setCancelled(true);
return;
}
String echo = "";
String send = "";
String spy = "";

View File

@ -77,7 +77,7 @@ public class LoginListener implements Listener {
Set<String> blockedCommands = new HashSet<String>();
List<String> mail = new ArrayList<String>();
String jsonFormat = "Default";
mcp = new MineverseChatPlayer(uuid, name, current, ignores, listening, mutes, blockedCommands, mail, false, null, true, true, name, jsonFormat, false, false, false, true);
mcp = new MineverseChatPlayer(uuid, name, current, ignores, listening, mutes, blockedCommands, mail, false, null, true, true, name, jsonFormat, false, false, false, true, true);
MineverseChat.players.add(mcp);
}
mcp.setOnline(true);

View File

@ -39,6 +39,8 @@ public class Format {
if(plugin.getConfig().getString("loglevel", "info").equals("debug")) {
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Prefix and / or suffix don't exist, setting to nothing."));
}
suffix = "venturechat_no_suffix_code";
prefix = "venturechat_no_prefix_code";
}
String nickname = "";
if(icp.getPlayer() != null) {
@ -132,34 +134,25 @@ public class Format {
temp += convertToJsonColors(lastCode + remaining.substring(0, indexStart)) + ",";
lastCode = getLastCode(lastCode + remaining.substring(0, indexStart));
String action = "";
if(placeholder.contains(prefix))
action = format.getClickPrefix();
if(placeholder.contains(nickname))
action = format.getClickName();
if(placeholder.contains(suffix))
action = format.getClickSuffix();
String text = "";
if(placeholder.contains(prefix))
text = PlaceholderAPI.setBracketPlaceholders(icp.getPlayer(), format.getClickPrefixText());
if(placeholder.contains(nickname))
text = PlaceholderAPI.setBracketPlaceholders(icp.getPlayer(), format.getClickNameText());
if(placeholder.contains(suffix))
text = PlaceholderAPI.setBracketPlaceholders(icp.getPlayer(), format.getClickSuffixText());
String hover = "";
if(placeholder.contains(prefix)) {
hover = "";
action = format.getClickPrefix();
text = PlaceholderAPI.setBracketPlaceholders(icp.getPlayer(), format.getClickPrefixText());
for(String st : format.getHoverTextPrefix()) {
hover += Format.FormatStringAll(st) + "\n";
}
}
if(placeholder.contains(nickname)) {
hover = "";
action = format.getClickName();
text = PlaceholderAPI.setBracketPlaceholders(icp.getPlayer(), format.getClickNameText());
for(String st : format.getHoverTextName()) {
hover += Format.FormatStringAll(st) + "\n";
}
}
if(placeholder.contains(suffix)) {
hover = "";
action = format.getClickSuffix();
text = PlaceholderAPI.setBracketPlaceholders(icp.getPlayer(), format.getClickSuffixText());
for(String st : format.getHoverTextSuffix()) {
hover += Format.FormatStringAll(st) + "\n";
}

View File

@ -220,3 +220,8 @@ commands:
aliases: [vchatgui]
description: Opens the chat management gui
permission-message: You don't have <permission>
messagetoggle:
usage: /<command>
aliases: [mtoggle,vmessagetoggle]
description: Toggle receiving messages
permission-message: You don't have <permission>