Refactor command system to extend Bukkit's command.

This commit is contained in:
Aust1n46 2022-01-17 18:38:47 -06:00
parent 5ff71b4eeb
commit 2fd8fdbb4a
44 changed files with 3710 additions and 3747 deletions

View File

@ -95,7 +95,6 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
else { else {
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Config found! Loading file.")); Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Config found! Loading file."));
} }
saveResource("example_config_always_up_to_date!.yml", true); saveResource("example_config_always_up_to_date!.yml", true);
} }
catch(Exception ex) { catch(Exception ex) {
@ -107,6 +106,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
if(!setupPermissions() || !setupChat()) { if(!setupPermissions() || !setupChat()) {
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - &cCould not find Vault and/or a Vault compatible permissions plugin!")); Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - &cCould not find Vault and/or a Vault compatible permissions plugin!"));
Bukkit.getPluginManager().disablePlugin(this); Bukkit.getPluginManager().disablePlugin(this);
return;
} }
initializeConfigReaders(); initializeConfigReaders();
@ -245,7 +245,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
Alias.initialize(); Alias.initialize();
JsonFormat.initialize(); JsonFormat.initialize();
GuiSlot.initialize(); GuiSlot.initialize();
ChatChannel.initialize(false); ChatChannel.initialize();
} }
public static Chat getVaultChat() { public static Chat getVaultChat() {

View File

@ -22,8 +22,6 @@ import mineverse.Aust1n46.chat.utilities.Format;
public class ChatChannel { public class ChatChannel {
private static final String PERMISSION_PREFIX = "venturechat."; private static final String PERMISSION_PREFIX = "venturechat.";
private static final String NO_PERMISSIONS = "venturechat.none"; private static final String NO_PERMISSIONS = "venturechat.none";
private static boolean aliasesRegisteredAsCommands;
private static MineverseChat plugin = MineverseChat.getInstance(); private static MineverseChat plugin = MineverseChat.getInstance();
private static ChatChannel defaultChatChannel; private static ChatChannel defaultChatChannel;
@ -52,9 +50,8 @@ public class ChatChannel {
/** /**
* Read chat channels from config file and initialize channel array. * Read chat channels from config file and initialize channel array.
*/ */
public static void initialize(boolean aliasesRegisteredAsCommands) { public static void initialize() {
chatChannels = new HashMap<String, ChatChannel>(); chatChannels = new HashMap<String, ChatChannel>();
ChatChannel.aliasesRegisteredAsCommands = aliasesRegisteredAsCommands;
ConfigurationSection cs = plugin.getConfig().getConfigurationSection("channels"); ConfigurationSection cs = plugin.getConfig().getConfigurationSection("channels");
int len = (cs.getKeys(false)).size(); int len = (cs.getKeys(false)).size();
channels = new ChatChannel[len]; channels = new ChatChannel[len];
@ -95,10 +92,6 @@ public class ChatChannel {
chatChannels.put("md", defaultChatChannel); chatChannels.put("md", defaultChatChannel);
} }
} }
public static boolean areAliasesRegisteredAsCommands() {
return aliasesRegisteredAsCommands;
}
/** /**
* Get array of chat channels. * Get array of chat channels.

View File

@ -0,0 +1,68 @@
package mineverse.Aust1n46.chat.command;
import org.bukkit.command.Command;
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.channel.ChatChannel;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
public class ChannelAlias extends Command {
private MineverseChat plugin = MineverseChat.getInstance();
public ChannelAlias() {
super("channelalias");
}
@Override
public boolean execute(final CommandSender sender, final String commandLabel, final String[] args) {
if (!(sender instanceof Player)) {
plugin.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return true;
}
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
for (ChatChannel channel : ChatChannel.getChatChannels()) {
if (commandLabel.toLowerCase().equals(channel.getAlias())) {
if (args.length == 0) {
mcp.getPlayer()
.sendMessage(LocalizedMessage.SET_CHANNEL.toString().replace("{channel_color}", channel.getColor() + "").replace("{channel_name}", channel.getName()));
if (mcp.hasConversation()) {
for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if (p.isSpy()) {
p.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString().replace("{player_sender}", mcp.getName())
.replace("{player_receiver}", MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName()));
}
}
mcp.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION.toString().replace("{player_receiver}",
MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName()));
mcp.setConversation(null);
}
mcp.addListening(channel.getName());
mcp.setCurrentChannel(channel);
if (channel.getBungee()) {
MineverseChat.synchronize(mcp, true);
}
return true;
} else {
mcp.setQuickChat(true);
mcp.setQuickChannel(channel);
mcp.addListening(channel.getName());
if (channel.getBungee()) {
MineverseChat.synchronize(mcp, true);
}
String msg = "";
for (int x = 0; x < args.length; x++) {
if (args[x].length() > 0)
msg += " " + args[x];
}
mcp.getPlayer().chat(msg);
return true;
}
}
}
return true;
}
}

View File

@ -1,17 +0,0 @@
package mineverse.Aust1n46.chat.command;
import java.util.List;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
/**
* Interface for the plugin's commands.
*/
public interface VentureCommand {
public void execute(CommandSender sender, String command, String[] args);
public default List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) {
return null;
}
}

View File

@ -1,25 +1,21 @@
package mineverse.Aust1n46.chat.command; package mineverse.Aust1n46.chat.command;
import java.io.File; import java.io.File;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.PluginCommand;
import org.bukkit.command.SimpleCommandMap; import org.bukkit.command.SimpleCommandMap;
import org.bukkit.command.TabExecutor;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.Plugin;
import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.chat.Broadcast; import mineverse.Aust1n46.chat.command.chat.Broadcast;
import mineverse.Aust1n46.chat.command.chat.BungeeToggle; import mineverse.Aust1n46.chat.command.chat.BungeeToggle;
import mineverse.Aust1n46.chat.command.chat.Channel; import mineverse.Aust1n46.chat.command.chat.Channel;
@ -63,26 +59,12 @@ import mineverse.Aust1n46.chat.utilities.Format;
/** /**
* Class that initializes and executes the plugin's commands. * Class that initializes and executes the plugin's commands.
*/ */
public class VentureCommandExecutor implements TabExecutor { public class VentureCommandExecutor {
private static final String VERSION = "3.3.0"; private static final String VERSION = "3.3.0";
private static final Map<String, VentureCommand> commands = new HashMap<>(); private static final Map<String, Command> commands = new HashMap<>();
private static final MineverseChat plugin = MineverseChat.getInstance(); private static final MineverseChat plugin = MineverseChat.getInstance();
private static VentureCommandExecutor commandExecutor;
private static Map<String, Command> knownCommands; private static Map<String, Command> knownCommands;
private static Constructor<PluginCommand> pluginCommandConstructor;
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] parameters) {
commands.get(command.getName()).execute(sender, command.getName(), parameters);
command.execute(sender, label, parameters);
return true;
}
@Override
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) {
return commands.get(command.getName()).onTabComplete(sender, command, label, args);
}
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public static void initialize() { public static void initialize() {
@ -112,15 +94,11 @@ public class VentureCommandExecutor implements TabExecutor {
knownCommandsField.setAccessible(true); knownCommandsField.setAccessible(true);
knownCommands = (Map<String, Command>) knownCommandsField.get(simpleCommandMap); knownCommands = (Map<String, Command>) knownCommandsField.get(simpleCommandMap);
} catch (NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) { } catch (NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) {
server.getConsoleSender()
.sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - Unable to access CommandMap on Spigot. If this issue persists, try using Paper."));
e.printStackTrace(); e.printStackTrace();
} }
} }
try {
pluginCommandConstructor = PluginCommand.class.getDeclaredConstructor(String.class, Plugin.class);
pluginCommandConstructor.setAccessible(true);
} catch (NoSuchMethodException | SecurityException e) {
e.printStackTrace();
}
commands.put("broadcast", new Broadcast()); commands.put("broadcast", new Broadcast());
commands.put("channel", new Channel()); commands.put("channel", new Channel());
commands.put("channelinfo", new Channelinfo()); commands.put("channelinfo", new Channelinfo());
@ -159,46 +137,43 @@ public class VentureCommandExecutor implements TabExecutor {
commands.put("reply", new Reply()); commands.put("reply", new Reply());
commands.put("message", new Message()); commands.put("message", new Message());
commands.put("ignore", new Ignore()); commands.put("ignore", new Ignore());
final ChannelAlias channelAlias = new ChannelAlias();
for (final ChatChannel chatChannel : ChatChannel.getChatChannels()) {
final String alias = chatChannel.getAlias();
commands.put(alias, channelAlias);
}
final ConfigurationSection commandsSection = commandsFileConfiguration.getConfigurationSection("commands"); final ConfigurationSection commandsSection = commandsFileConfiguration.getConfigurationSection("commands");
for (final String commandLabel : commandsSection.getKeys(false)) { for (final String commandName : commandsSection.getKeys(false)) {
final ConfigurationSection commandSection = commandsSection.getConfigurationSection(commandLabel); final ConfigurationSection commandSection = commandsSection.getConfigurationSection(commandName);
final boolean isEnabled = commandSection.getBoolean("enabled", true); final boolean isEnabled = commandSection.getBoolean("enabled", true);
if (!isEnabled) { if (!isEnabled) {
commands.remove(commandLabel); commands.remove(commandName);
} else { } else {
final VentureCommand command = commands.get(commandLabel); final Command command = commands.get(commandName);
if (command != null) { if (command != null) {
final List<String> aliases = commandSection.getStringList("aliases"); final List<String> aliases = commandSection.getStringList("aliases");
for (final String alias : aliases) { for (final String alias : aliases) {
commands.put(alias, command); commands.put(alias, command);
} }
commands.put("venturechat:" + commandLabel, command); commands.put("venturechat:" + commandName, command);
} }
} }
} }
commandExecutor = new VentureCommandExecutor();
// Initial registration is required to ensure commands are recognized by the // Initial registration is required to ensure commands are recognized by the
// server after enabling every plugin // server after enabling every plugin
for (final String command : commands.keySet()) { for (final Entry<String, Command> commandEntry : commands.entrySet()) {
registerCommand(command, commandExecutor); registerCommand(commandEntry.getKey(), commandEntry.getValue());
} }
// Forcibly re-register enabled VentureChat commands on a delay to ensure they // Forcibly re-register enabled VentureChat commands on a delay to ensure they
// have priority // have priority
server.getScheduler().runTaskLater(plugin, () -> { server.getScheduler().runTaskLater(plugin, () -> {
for (final String command : commands.keySet()) { for (final Entry<String, Command> commandEntry : commands.entrySet()) {
registerCommand(command, commandExecutor); registerCommand(commandEntry.getKey(), commandEntry.getValue());
} }
}, 10); }, 10);
} }
private static void registerCommand(String command, TabExecutor tabExecutor) { public static void registerCommand(final String commandLabel, final Command command) {
try { knownCommands.put(commandLabel, command);
final PluginCommand pluginCommand = pluginCommandConstructor.newInstance(command, plugin);
pluginCommand.setExecutor(tabExecutor);
pluginCommand.setTabCompleter(tabExecutor);
knownCommands.put(command, pluginCommand);
} catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
e.printStackTrace();
}
} }
} }

View File

@ -1,41 +1,44 @@
package mineverse.Aust1n46.chat.command.chat; package mineverse.Aust1n46.chat.command.chat;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import mineverse.Aust1n46.chat.utilities.Format; import mineverse.Aust1n46.chat.utilities.Format;
public class Broadcast implements VentureCommand { public class Broadcast extends Command {
private MineverseChat plugin = MineverseChat.getInstance(); private MineverseChat plugin = MineverseChat.getInstance();
@Override public Broadcast() {
public void execute(CommandSender sender, String command, String[] args) { super("broadcast");
ConfigurationSection bs = plugin.getConfig().getConfigurationSection("broadcast"); }
String broadcastColor = bs.getString("color", "white");
String broadcastPermissions = bs.getString("permissions", "None"); @Override
String broadcastDisplayTag = Format.FormatStringAll(bs.getString("displaytag", "[Broadcast]")); public boolean execute(CommandSender sender, String command, String[] args) {
if (broadcastPermissions.equalsIgnoreCase("None") || sender.hasPermission(broadcastPermissions)) { ConfigurationSection bs = plugin.getConfig().getConfigurationSection("broadcast");
if (args.length > 0) { String broadcastColor = bs.getString("color", "white");
String bc = ""; String broadcastPermissions = bs.getString("permissions", "None");
for (int x = 0; x < args.length; x++) { String broadcastDisplayTag = Format.FormatStringAll(bs.getString("displaytag", "[Broadcast]"));
if (args[x].length() > 0) bc += args[x] + " "; if (broadcastPermissions.equalsIgnoreCase("None") || sender.hasPermission(broadcastPermissions)) {
} if (args.length > 0) {
bc = Format.FormatStringAll(bc); String bc = "";
Format.broadcastToServer(broadcastDisplayTag + ChatColor.valueOf(broadcastColor.toUpperCase()) + " " + bc); for (int x = 0; x < args.length; x++) {
return; if (args[x].length() > 0)
} else { bc += args[x] + " ";
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() }
.replace("{command}", "/broadcast") bc = Format.FormatStringAll(bc);
.replace("{args}", "[msg]")); Format.broadcastToServer(broadcastDisplayTag + ChatColor.valueOf(broadcastColor.toUpperCase()) + " " + bc);
return; return true;
} } else {
} else { sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/broadcast").replace("{args}", "[msg]"));
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); return true;
return; }
} } else {
} sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
return true;
}
}
} }

View File

@ -1,37 +1,40 @@
package mineverse.Aust1n46.chat.command.chat; package mineverse.Aust1n46.chat.command.chat;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
public class BungeeToggle implements VentureCommand { public class BungeeToggle extends Command {
public BungeeToggle() {
super("bungeetoggle");
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public boolean execute(CommandSender sender, String command, String[] args) {
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return; return true;
} }
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
if (mcp.getPlayer().hasPermission("venturechat.bungeetoggle")) { if (mcp.getPlayer().hasPermission("venturechat.bungeetoggle")) {
if (!mcp.getBungeeToggle()) { if (!mcp.getBungeeToggle()) {
mcp.setBungeeToggle(true); mcp.setBungeeToggle(true);
mcp.getPlayer().sendMessage(LocalizedMessage.BUNGEE_TOGGLE_ON.toString()); mcp.getPlayer().sendMessage(LocalizedMessage.BUNGEE_TOGGLE_ON.toString());
MineverseChat.synchronize(mcp, true); MineverseChat.synchronize(mcp, true);
return; return true;
} }
mcp.setBungeeToggle(false); mcp.setBungeeToggle(false);
mcp.getPlayer().sendMessage(LocalizedMessage.BUNGEE_TOGGLE_OFF.toString()); mcp.getPlayer().sendMessage(LocalizedMessage.BUNGEE_TOGGLE_OFF.toString());
MineverseChat.synchronize(mcp, true); MineverseChat.synchronize(mcp, true);
return; return true;
} }
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
return; return true;
} }
} }

View File

@ -1,6 +1,7 @@
package mineverse.Aust1n46.chat.command.chat; package mineverse.Aust1n46.chat.command.chat;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
@ -12,67 +13,64 @@ import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.api.events.ChannelJoinEvent; import mineverse.Aust1n46.chat.api.events.ChannelJoinEvent;
import mineverse.Aust1n46.chat.channel.ChatChannel; import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
public class Channel implements VentureCommand, Listener { public class Channel extends Command implements Listener {
public Channel() {
super("channel");
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public boolean execute(CommandSender sender, String command, String[] args) {
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return; return true;
} }
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
if (args.length > 0) { if (args.length > 0) {
if (!ChatChannel.isChannel(args[0])) { if (!ChatChannel.isChannel(args[0])) {
mcp.getPlayer().sendMessage(LocalizedMessage.INVALID_CHANNEL.toString() mcp.getPlayer().sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[0]));
.replace("{args}", args[0])); return true;
return; }
} ChatChannel channel = ChatChannel.getChannel(args[0]);
ChatChannel channel = ChatChannel.getChannel(args[0]); Bukkit.getServer().getPluginManager().callEvent(new ChannelJoinEvent(mcp.getPlayer(), channel,
Bukkit.getServer().getPluginManager().callEvent(new ChannelJoinEvent(mcp.getPlayer(), channel, LocalizedMessage.SET_CHANNEL.toString() LocalizedMessage.SET_CHANNEL.toString().replace("{channel_color}", channel.getColor() + "").replace("{channel_name}", channel.getName())));
.replace("{channel_color}", channel.getColor() + "") return true;
.replace("{channel_name}", channel.getName()))); }
return; mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/channel").replace("{args}", "[channel]"));
} return true;
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() }
.replace("{command}", "/channel")
.replace("{args}", "[channel]"));
return;
}
@EventHandler(priority = EventPriority.MONITOR) @EventHandler(priority = EventPriority.MONITOR)
public void onChannelJoin(ChannelJoinEvent event) { public void onChannelJoin(ChannelJoinEvent event) {
if (event.isCancelled()) if (event.isCancelled())
return; return;
ChatChannel channel = event.getChannel(); ChatChannel channel = event.getChannel();
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer(event.getPlayer()); MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer(event.getPlayer());
if (channel.hasPermission()) { if (channel.hasPermission()) {
if (!mcp.getPlayer().hasPermission(channel.getPermission())) { if (!mcp.getPlayer().hasPermission(channel.getPermission())) {
mcp.removeListening(channel.getName()); mcp.removeListening(channel.getName());
mcp.getPlayer().sendMessage(LocalizedMessage.CHANNEL_NO_PERMISSION.toString()); mcp.getPlayer().sendMessage(LocalizedMessage.CHANNEL_NO_PERMISSION.toString());
return; return;
} }
} }
if (mcp.hasConversation()) { if (mcp.hasConversation()) {
for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if (p.isSpy()) { if (p.isSpy()) {
p.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString() p.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString().replace("{player_sender}", mcp.getName()).replace("{player_receiver}",
.replace("{player_sender}", mcp.getName()) MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName()));
.replace("{player_receiver}", MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName())); }
} }
} mcp.getPlayer().sendMessage(
mcp.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION.toString() LocalizedMessage.EXIT_PRIVATE_CONVERSATION.toString().replace("{player_receiver}", MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName()));
.replace("{player_receiver}", MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName())); mcp.setConversation(null);
mcp.setConversation(null); }
} mcp.addListening(channel.getName());
mcp.addListening(channel.getName()); mcp.setCurrentChannel(channel);
mcp.setCurrentChannel(channel); mcp.getPlayer().sendMessage(event.getMessage());
mcp.getPlayer().sendMessage(event.getMessage()); if (channel.getBungee()) {
if (channel.getBungee()) { MineverseChat.synchronize(mcp, true);
MineverseChat.synchronize(mcp, true); }
} return;
return; }
}
} }

View File

@ -1,64 +1,68 @@
package mineverse.Aust1n46.chat.command.chat; package mineverse.Aust1n46.chat.command.chat;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import mineverse.Aust1n46.chat.channel.ChatChannel; import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.utilities.Format; import mineverse.Aust1n46.chat.utilities.Format;
public class Channelinfo implements VentureCommand { public class Channelinfo extends Command {
public Channelinfo() {
super("channelinfo");
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public boolean execute(CommandSender sender, String command, String[] args) {
if (sender.hasPermission("venturechat.channelinfo")) { if (sender.hasPermission("venturechat.channelinfo")) {
if (args.length < 1) { if (args.length < 1) {
sender.sendMessage(ChatColor.RED + "Invalid command: /channelinfo [channel]"); sender.sendMessage(ChatColor.RED + "Invalid command: /channelinfo [channel]");
return; return true;
} }
ChatChannel chname = ChatChannel.getChannel(args[0]); ChatChannel chname = ChatChannel.getChannel(args[0]);
if (chname == null) { if (chname == null) {
sender.sendMessage(ChatColor.RED + "Invalid channel: " + args[0]); sender.sendMessage(ChatColor.RED + "Invalid channel: " + args[0]);
return; return true;
} }
if (chname.hasPermission()) { if (chname.hasPermission()) {
if (!sender.hasPermission(chname.getPermission())) { if (!sender.hasPermission(chname.getPermission())) {
sender.sendMessage(ChatColor.RED + "You do not have permission to look at this channel."); sender.sendMessage(ChatColor.RED + "You do not have permission to look at this channel.");
return; return true;
} }
} }
sender.sendMessage(ChatColor.GOLD + "Channel: " + chname.getColor() + chname.getName()); sender.sendMessage(ChatColor.GOLD + "Channel: " + chname.getColor() + chname.getName());
sender.sendMessage(ChatColor.GOLD + "Alias: " + chname.getColor() + chname.getAlias()); sender.sendMessage(ChatColor.GOLD + "Alias: " + chname.getColor() + chname.getAlias());
sender.sendMessage(ChatColor.GOLD + "Color: " + chname.getColor() + chname.getColorRaw()); sender.sendMessage(ChatColor.GOLD + "Color: " + chname.getColor() + chname.getColorRaw());
sender.sendMessage(ChatColor.GOLD + "ChatColor: " + (chname.getChatColor().equalsIgnoreCase("None") ? Format.DEFAULT_COLOR_CODE : chname.getChatColor()) + chname.getChatColorRaw()); sender.sendMessage(ChatColor.GOLD + "ChatColor: " + (chname.getChatColor().equalsIgnoreCase("None") ? Format.DEFAULT_COLOR_CODE : chname.getChatColor())
if (chname.hasPermission()) { + chname.getChatColorRaw());
sender.sendMessage(ChatColor.GOLD + "Permission: " + chname.getColor() + chname.getPermission()); if (chname.hasPermission()) {
} else { sender.sendMessage(ChatColor.GOLD + "Permission: " + chname.getColor() + chname.getPermission());
sender.sendMessage(ChatColor.GOLD + "Permission: " + chname.getColor() + "None"); } else {
} sender.sendMessage(ChatColor.GOLD + "Permission: " + chname.getColor() + "None");
if (chname.hasSpeakPermission()) { }
sender.sendMessage(ChatColor.GOLD + "Speak Permission: " + chname.getColor() + chname.getSpeakPermission()); if (chname.hasSpeakPermission()) {
} else { sender.sendMessage(ChatColor.GOLD + "Speak Permission: " + chname.getColor() + chname.getSpeakPermission());
sender.sendMessage(ChatColor.GOLD + "Speak Permission: " + chname.getColor() + "None"); } else {
} sender.sendMessage(ChatColor.GOLD + "Speak Permission: " + chname.getColor() + "None");
sender.sendMessage(ChatColor.GOLD + "Autojoin: " + chname.getColor() + chname.getAutojoin()); }
sender.sendMessage(ChatColor.GOLD + "Default: " + chname.getColor() + chname.hasDistance()); sender.sendMessage(ChatColor.GOLD + "Autojoin: " + chname.getColor() + chname.getAutojoin());
if (!chname.hasDistance() || chname.getBungee()) { sender.sendMessage(ChatColor.GOLD + "Default: " + chname.getColor() + chname.hasDistance());
sender.sendMessage(ChatColor.GOLD + "Distance: " + ChatColor.RED + "N/A"); if (!chname.hasDistance() || chname.getBungee()) {
} else { sender.sendMessage(ChatColor.GOLD + "Distance: " + ChatColor.RED + "N/A");
sender.sendMessage(ChatColor.GOLD + "Distance: " + chname.getColor() + chname.getDistance()); } else {
} sender.sendMessage(ChatColor.GOLD + "Distance: " + chname.getColor() + chname.getDistance());
if (!chname.hasCooldown()) { }
sender.sendMessage(ChatColor.GOLD + "Cooldown: " + ChatColor.RED + "N/A"); if (!chname.hasCooldown()) {
} else { sender.sendMessage(ChatColor.GOLD + "Cooldown: " + ChatColor.RED + "N/A");
sender.sendMessage(ChatColor.GOLD + "Cooldown: " + chname.getColor() + chname.getCooldown()); } else {
} sender.sendMessage(ChatColor.GOLD + "Cooldown: " + chname.getColor() + chname.getCooldown());
sender.sendMessage(ChatColor.GOLD + "Bungeecord: " + chname.getColor() + chname.getBungee()); }
sender.sendMessage(ChatColor.GOLD + "Format: " + chname.getColor() + chname.getFormat()); sender.sendMessage(ChatColor.GOLD + "Bungeecord: " + chname.getColor() + chname.getBungee());
return; sender.sendMessage(ChatColor.GOLD + "Format: " + chname.getColor() + chname.getFormat());
} else { return true;
sender.sendMessage(ChatColor.RED + "You do not have permission for this command."); } else {
return; sender.sendMessage(ChatColor.RED + "You do not have permission for this command.");
} return true;
} }
}
} }

View File

@ -2,136 +2,140 @@ package mineverse.Aust1n46.chat.command.chat;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel; import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.command.mute.MuteContainer; import mineverse.Aust1n46.chat.command.mute.MuteContainer;
public class Chatinfo implements VentureCommand { public class Chatinfo extends Command {
public Chatinfo() {
super("chatinfo");
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public boolean execute(CommandSender sender, String command, String[] args) {
if (sender.hasPermission("venturechat.chatinfo")) { if (sender.hasPermission("venturechat.chatinfo")) {
if (args.length == 0) { if (args.length == 0) {
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
Bukkit.getServer().getConsoleSender().sendMessage(ChatColor.RED + "This command must be run by a player; use /ci [name]"); Bukkit.getServer().getConsoleSender().sendMessage(ChatColor.RED + "This command must be run by a player; use /ci [name]");
return; return true;
} }
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
String listen = ""; String listen = "";
String mute = ""; String mute = "";
String blockedcommands = ""; String blockedcommands = "";
if (args.length < 1) { if (args.length < 1) {
mcp.getPlayer().sendMessage(ChatColor.GOLD + "Player: " + ChatColor.GREEN + mcp.getName()); mcp.getPlayer().sendMessage(ChatColor.GOLD + "Player: " + ChatColor.GREEN + mcp.getName());
for (String c : mcp.getListening()) { for (String c : mcp.getListening()) {
ChatChannel channel = ChatChannel.getChannel(c); ChatChannel channel = ChatChannel.getChannel(c);
listen += channel.getColor() + channel.getName() + " "; listen += channel.getColor() + channel.getName() + " ";
} }
for (MuteContainer muteContainer : mcp.getMutes()) { for (MuteContainer muteContainer : mcp.getMutes()) {
ChatChannel channel = ChatChannel.getChannel(muteContainer.getChannel()); ChatChannel channel = ChatChannel.getChannel(muteContainer.getChannel());
mute += channel.getColor() + channel.getName() + " "; mute += channel.getColor() + channel.getName() + " ";
} }
for (String bc : mcp.getBlockedCommands()) { for (String bc : mcp.getBlockedCommands()) {
blockedcommands += bc + " "; blockedcommands += bc + " ";
} }
mcp.getPlayer().sendMessage(ChatColor.GOLD + "Listening: " + listen); mcp.getPlayer().sendMessage(ChatColor.GOLD + "Listening: " + listen);
if (mute.length() > 0) { if (mute.length() > 0) {
mcp.getPlayer().sendMessage(ChatColor.GOLD + "Mutes: " + mute); mcp.getPlayer().sendMessage(ChatColor.GOLD + "Mutes: " + mute);
} else { } else {
mcp.getPlayer().sendMessage(ChatColor.GOLD + "Mutes: " + ChatColor.RED + "N/A"); mcp.getPlayer().sendMessage(ChatColor.GOLD + "Mutes: " + ChatColor.RED + "N/A");
} }
if (blockedcommands.length() > 0) { if (blockedcommands.length() > 0) {
mcp.getPlayer().sendMessage(ChatColor.GOLD + "Blocked Commands: " + ChatColor.RED + blockedcommands); mcp.getPlayer().sendMessage(ChatColor.GOLD + "Blocked Commands: " + ChatColor.RED + blockedcommands);
} else { } else {
mcp.getPlayer().sendMessage(ChatColor.GOLD + "Blocked Commands: " + ChatColor.RED + "N/A"); mcp.getPlayer().sendMessage(ChatColor.GOLD + "Blocked Commands: " + ChatColor.RED + "N/A");
} }
if (mcp.hasConversation()) { if (mcp.hasConversation()) {
mcp.getPlayer().sendMessage(ChatColor.GOLD + "Private conversation: " + ChatColor.GREEN + MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName()); mcp.getPlayer().sendMessage(
} else { ChatColor.GOLD + "Private conversation: " + ChatColor.GREEN + MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName());
mcp.getPlayer().sendMessage(ChatColor.GOLD + "Private conversation: " + ChatColor.RED + "N/A"); } else {
} mcp.getPlayer().sendMessage(ChatColor.GOLD + "Private conversation: " + ChatColor.RED + "N/A");
if (mcp.isSpy()) { }
mcp.getPlayer().sendMessage(ChatColor.GOLD + "Spy: " + ChatColor.GREEN + "true"); if (mcp.isSpy()) {
} else { mcp.getPlayer().sendMessage(ChatColor.GOLD + "Spy: " + ChatColor.GREEN + "true");
mcp.getPlayer().sendMessage(ChatColor.GOLD + "Spy: " + ChatColor.RED + "false"); } else {
} mcp.getPlayer().sendMessage(ChatColor.GOLD + "Spy: " + ChatColor.RED + "false");
if (mcp.hasCommandSpy()) { }
mcp.getPlayer().sendMessage(ChatColor.GOLD + "Command spy: " + ChatColor.GREEN + "true"); if (mcp.hasCommandSpy()) {
} else { mcp.getPlayer().sendMessage(ChatColor.GOLD + "Command spy: " + ChatColor.GREEN + "true");
mcp.getPlayer().sendMessage(ChatColor.GOLD + "Command spy: " + ChatColor.RED + "false"); } else {
} mcp.getPlayer().sendMessage(ChatColor.GOLD + "Command spy: " + ChatColor.RED + "false");
if (mcp.hasFilter()) { }
mcp.getPlayer().sendMessage(ChatColor.GOLD + "Filter: " + ChatColor.GREEN + "true"); if (mcp.hasFilter()) {
} else { mcp.getPlayer().sendMessage(ChatColor.GOLD + "Filter: " + ChatColor.GREEN + "true");
mcp.getPlayer().sendMessage(ChatColor.GOLD + "Filter: " + ChatColor.RED + "false"); } else {
} mcp.getPlayer().sendMessage(ChatColor.GOLD + "Filter: " + ChatColor.RED + "false");
return; }
} return true;
} }
if (sender.hasPermission("venturechat.chatinfo.others")) { }
String listen = ""; if (sender.hasPermission("venturechat.chatinfo.others")) {
String mute = ""; String listen = "";
String blockedcommands = ""; String mute = "";
MineverseChatPlayer p = MineverseChatAPI.getMineverseChatPlayer(args[0]); String blockedcommands = "";
if (p == null) { MineverseChatPlayer p = MineverseChatAPI.getMineverseChatPlayer(args[0]);
sender.sendMessage(ChatColor.RED + "Player: " + ChatColor.GOLD + args[0] + ChatColor.RED + " is not online."); if (p == null) {
return; sender.sendMessage(ChatColor.RED + "Player: " + ChatColor.GOLD + args[0] + ChatColor.RED + " is not online.");
} return true;
sender.sendMessage(ChatColor.GOLD + "Player: " + ChatColor.GREEN + p.getName()); }
for (String c : p.getListening()) { sender.sendMessage(ChatColor.GOLD + "Player: " + ChatColor.GREEN + p.getName());
ChatChannel channel = ChatChannel.getChannel(c); for (String c : p.getListening()) {
listen += channel.getColor() + channel.getName() + " "; ChatChannel channel = ChatChannel.getChannel(c);
} listen += channel.getColor() + channel.getName() + " ";
for (MuteContainer muteContainer : p.getMutes()) { }
ChatChannel channel = ChatChannel.getChannel(muteContainer.getChannel()); for (MuteContainer muteContainer : p.getMutes()) {
mute += channel.getColor() + channel.getName() + " "; ChatChannel channel = ChatChannel.getChannel(muteContainer.getChannel());
} mute += channel.getColor() + channel.getName() + " ";
for (String bc : p.getBlockedCommands()) { }
blockedcommands += bc + " "; for (String bc : p.getBlockedCommands()) {
} blockedcommands += bc + " ";
sender.sendMessage(ChatColor.GOLD + "Listening: " + listen); }
if (mute.length() > 0) { sender.sendMessage(ChatColor.GOLD + "Listening: " + listen);
sender.sendMessage(ChatColor.GOLD + "Mutes: " + mute); if (mute.length() > 0) {
} else { sender.sendMessage(ChatColor.GOLD + "Mutes: " + mute);
sender.sendMessage(ChatColor.GOLD + "Mutes: " + ChatColor.RED + "N/A"); } else {
} sender.sendMessage(ChatColor.GOLD + "Mutes: " + ChatColor.RED + "N/A");
if (blockedcommands.length() > 0) { }
sender.sendMessage(ChatColor.GOLD + "Blocked Commands: " + ChatColor.RED + blockedcommands); if (blockedcommands.length() > 0) {
} else { sender.sendMessage(ChatColor.GOLD + "Blocked Commands: " + ChatColor.RED + blockedcommands);
sender.sendMessage(ChatColor.GOLD + "Blocked Commands: " + ChatColor.RED + "N/A"); } else {
} sender.sendMessage(ChatColor.GOLD + "Blocked Commands: " + ChatColor.RED + "N/A");
if (p.hasConversation()) { }
sender.sendMessage(ChatColor.GOLD + "Private conversation: " + ChatColor.GREEN + MineverseChatAPI.getMineverseChatPlayer(p.getConversation()).getName()); if (p.hasConversation()) {
} else { sender.sendMessage(ChatColor.GOLD + "Private conversation: " + ChatColor.GREEN + MineverseChatAPI.getMineverseChatPlayer(p.getConversation()).getName());
sender.sendMessage(ChatColor.GOLD + "Private conversation: " + ChatColor.RED + "N/A"); } else {
} sender.sendMessage(ChatColor.GOLD + "Private conversation: " + ChatColor.RED + "N/A");
if (p.isSpy()) { }
sender.sendMessage(ChatColor.GOLD + "Spy: " + ChatColor.GREEN + "true"); if (p.isSpy()) {
} else { sender.sendMessage(ChatColor.GOLD + "Spy: " + ChatColor.GREEN + "true");
sender.sendMessage(ChatColor.GOLD + "Spy: " + ChatColor.RED + "false"); } else {
} sender.sendMessage(ChatColor.GOLD + "Spy: " + ChatColor.RED + "false");
if (p.hasCommandSpy()) { }
sender.sendMessage(ChatColor.GOLD + "Command spy: " + ChatColor.GREEN + "true"); if (p.hasCommandSpy()) {
} else { sender.sendMessage(ChatColor.GOLD + "Command spy: " + ChatColor.GREEN + "true");
sender.sendMessage(ChatColor.GOLD + "Command spy: " + ChatColor.RED + "false"); } else {
} sender.sendMessage(ChatColor.GOLD + "Command spy: " + ChatColor.RED + "false");
if (p.hasFilter()) { }
sender.sendMessage(ChatColor.GOLD + "Filter: " + ChatColor.GREEN + "true"); if (p.hasFilter()) {
} else { sender.sendMessage(ChatColor.GOLD + "Filter: " + ChatColor.GREEN + "true");
sender.sendMessage(ChatColor.GOLD + "Filter: " + ChatColor.RED + "false"); } else {
} sender.sendMessage(ChatColor.GOLD + "Filter: " + ChatColor.RED + "false");
return; }
} else { return true;
sender.sendMessage(ChatColor.RED + "You do not have permission to check the chat info of others."); } else {
} sender.sendMessage(ChatColor.RED + "You do not have permission to check the chat info of others.");
return; }
} else { return true;
sender.sendMessage(ChatColor.RED + "You do not have permission for this command."); } else {
return; sender.sendMessage(ChatColor.RED + "You do not have permission for this command.");
} return true;
} }
}
} }

View File

@ -3,37 +3,42 @@ package mineverse.Aust1n46.chat.command.chat;
import java.util.UUID; import java.util.UUID;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.database.PlayerData; import mineverse.Aust1n46.chat.database.PlayerData;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import mineverse.Aust1n46.chat.utilities.Format; import mineverse.Aust1n46.chat.utilities.Format;
public class Chatreload implements VentureCommand { public class Chatreload extends Command {
private MineverseChat plugin = MineverseChat.getInstance(); private MineverseChat plugin = MineverseChat.getInstance();
public Chatreload() {
super("chatreload");
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public boolean execute(CommandSender sender, String command, String[] args) {
if(sender.hasPermission("venturechat.reload")) { if (sender.hasPermission("venturechat.reload")) {
PlayerData.savePlayerData(); PlayerData.savePlayerData();
MineverseChatAPI.clearMineverseChatPlayerMap(); MineverseChatAPI.clearMineverseChatPlayerMap();
MineverseChatAPI.clearNameMap(); MineverseChatAPI.clearNameMap();
MineverseChatAPI.clearOnlineMineverseChatPlayerMap(); MineverseChatAPI.clearOnlineMineverseChatPlayerMap();
plugin.reloadConfig(); plugin.reloadConfig();
MineverseChat.initializeConfigReaders(); MineverseChat.initializeConfigReaders();
PlayerData.loadLegacyPlayerData(); PlayerData.loadLegacyPlayerData();
PlayerData.loadPlayerData(); PlayerData.loadPlayerData();
for(Player p : plugin.getServer().getOnlinePlayers()) { for (Player p : plugin.getServer().getOnlinePlayers()) {
MineverseChatPlayer mcp = MineverseChatAPI.getMineverseChatPlayer(p); MineverseChatPlayer mcp = MineverseChatAPI.getMineverseChatPlayer(p);
if(mcp == null) { if (mcp == null) {
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - Could not find player data post reload for currently online player: " + p.getName())); Bukkit.getConsoleSender()
.sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - Could not find player data post reload for currently online player: " + p.getName()));
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - There could be an issue with your player data saving.")); Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - There could be an issue with your player data saving."));
String name = p.getName(); String name = p.getName();
UUID uuid = p.getUniqueId(); UUID uuid = p.getUniqueId();
@ -45,16 +50,16 @@ public class Chatreload implements VentureCommand {
MineverseChatAPI.addMineverseChatOnlinePlayerToMap(mcp); MineverseChatAPI.addMineverseChatOnlinePlayerToMap(mcp);
MineverseChatAPI.addNameToMap(mcp); MineverseChatAPI.addNameToMap(mcp);
} }
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Config reloaded")); Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Config reloaded"));
for(MineverseChatPlayer player : MineverseChatAPI.getOnlineMineverseChatPlayers()) { for (MineverseChatPlayer player : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if(player.getPlayer().hasPermission("venturechat.reload")) { if (player.getPlayer().hasPermission("venturechat.reload")) {
player.getPlayer().sendMessage(LocalizedMessage.CONFIG_RELOADED.toString()); player.getPlayer().sendMessage(LocalizedMessage.CONFIG_RELOADED.toString());
} }
} }
return; return true;
} }
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
return; return true;
} }
} }

View File

@ -1,31 +1,30 @@
package mineverse.Aust1n46.chat.command.chat; package mineverse.Aust1n46.chat.command.chat;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import mineverse.Aust1n46.chat.channel.ChatChannel; import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
public class Chlist implements VentureCommand { public class Chlist extends Command {
public Chlist() {
super("chlist");
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public boolean execute(CommandSender sender, String command, String[] args) {
sender.sendMessage(LocalizedMessage.CHANNEL_LIST_HEADER.toString()); sender.sendMessage(LocalizedMessage.CHANNEL_LIST_HEADER.toString());
for (ChatChannel chname : ChatChannel.getChatChannels()) { for (ChatChannel chname : ChatChannel.getChatChannels()) {
if (chname.hasPermission()) { if (chname.hasPermission()) {
if (sender.hasPermission(chname.getPermission())) { if (sender.hasPermission(chname.getPermission())) {
sender.sendMessage(LocalizedMessage.CHANNEL_LIST_WITH_PERMISSIONS.toString() sender.sendMessage(LocalizedMessage.CHANNEL_LIST_WITH_PERMISSIONS.toString().replace("{channel_color}", (chname.getColor()).toString())
.replace("{channel_color}", (chname.getColor()).toString()) .replace("{channel_name}", chname.getName()).replace("{channel_alias}", chname.getAlias()));
.replace("{channel_name}", chname.getName()) }
.replace("{channel_alias}", chname.getAlias())); } else {
} sender.sendMessage(LocalizedMessage.CHANNEL_LIST.toString().replace("{channel_color}", chname.getColor().toString()).replace("{channel_name}", chname.getName())
} else { .replace("{channel_alias}", chname.getAlias()));
sender.sendMessage(LocalizedMessage.CHANNEL_LIST.toString() }
.replace("{channel_color}", chname.getColor().toString()) }
.replace("{channel_name}", chname.getName()) return true;
.replace("{channel_alias}", chname.getAlias())); }
}
}
return;
}
} }

View File

@ -7,6 +7,7 @@ import java.io.DataOutputStream;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.PluginManager;
@ -19,188 +20,187 @@ import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel; import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
public class Chwho implements VentureCommand { public class Chwho extends Command {
private MineverseChat plugin = MineverseChat.getInstance(); private MineverseChat plugin = MineverseChat.getInstance();
@Override public Chwho() {
public void execute(CommandSender sender, String command, String[] args) { super("chwho");
String playerlist = ""; }
if (sender.hasPermission("venturechat.chwho")) {
if (args.length > 0) {
ChatChannel channel = ChatChannel.getChannel(args[0]);
if (channel != null) {
if (channel.hasPermission()) {
if (!sender.hasPermission(channel.getPermission())) {
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer(((Player) sender));
mcp.removeListening(channel.getName());
mcp.getPlayer().sendMessage(LocalizedMessage.CHANNEL_NO_PERMISSION_VIEW.toString());
return;
}
}
if (channel.getBungee() && sender instanceof Player) { @Override
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); public boolean execute(CommandSender sender, String command, String[] args) {
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); String playerlist = "";
DataOutputStream out = new DataOutputStream(byteOutStream); if (sender.hasPermission("venturechat.chwho")) {
try { if (args.length > 0) {
out.writeUTF("Chwho"); ChatChannel channel = ChatChannel.getChannel(args[0]);
out.writeUTF("Get"); if (channel != null) {
out.writeUTF(mcp.getUUID().toString()); if (channel.hasPermission()) {
out.writeUTF(channel.getName()); if (!sender.hasPermission(channel.getPermission())) {
mcp.getPlayer().sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray()); MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer(((Player) sender));
out.close(); mcp.removeListening(channel.getName());
} catch (Exception e) { mcp.getPlayer().sendMessage(LocalizedMessage.CHANNEL_NO_PERMISSION_VIEW.toString());
e.printStackTrace(); return true;
} }
return; }
}
PluginManager pluginManager = plugin.getServer().getPluginManager(); if (channel.getBungee() && sender instanceof Player) {
long linecount = LINE_LENGTH; MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
if (p.getListening().contains(channel.getName())) { DataOutputStream out = new DataOutputStream(byteOutStream);
if (sender instanceof Player) { try {
if (!((Player) sender).canSee(p.getPlayer())) { out.writeUTF("Chwho");
continue; out.writeUTF("Get");
} out.writeUTF(mcp.getUUID().toString());
} out.writeUTF(channel.getName());
if (channel.hasDistance() && sender instanceof Player) { mcp.getPlayer().sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray());
if (!this.isPlayerWithinDistance((Player) sender, p.getPlayer(), channel.getDistance())) { out.close();
continue; } catch (Exception e) {
} e.printStackTrace();
} }
if (plugin.getConfig().getBoolean("enable_towny_channel") && pluginManager.isPluginEnabled("Towny") && sender instanceof Player) { return true;
try { }
TownyUniverse towny = TownyUniverse.getInstance();
if (channel.getName().equalsIgnoreCase("Town")) {
Resident r = towny.getResident(p.getName());
Resident pp = towny.getResident(((Player) sender).getName());
if (!pp.hasTown()) {
if (playerlist.length() + p.getName().length() > linecount) {
playerlist += "\n";
linecount = linecount + LINE_LENGTH;
}
if (!p.isMuted(channel.getName())) {
playerlist += ChatColor.WHITE + p.getName();
} else {
playerlist += ChatColor.RED + p.getName();
}
playerlist += ChatColor.WHITE + ", ";
break;
} else if (!r.hasTown()) {
continue;
} else if (!(r.getTown().getName().equals(pp.getTown().getName()))) {
continue;
}
}
if (channel.getName().equalsIgnoreCase("Nation")) {
Resident r = towny.getResident(p.getName());
Resident pp = towny.getResident(((Player) sender).getName());
if (!pp.hasNation()) {
if (playerlist.length() + p.getName().length() > linecount) {
playerlist += "\n";
linecount = linecount + LINE_LENGTH;
}
if (!p.isMuted(channel.getName())) {
playerlist += ChatColor.WHITE + p.getName();
} else {
playerlist += ChatColor.RED + p.getName();
}
playerlist += ChatColor.WHITE + ", ";
break;
} else if (!r.hasNation()) {
continue;
} else if (!(r.getTown().getNation().getName().equals(pp.getTown().getNation().getName()))) {
continue;
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
if (plugin.getConfig().getBoolean("enable_factions_channel") && pluginManager.isPluginEnabled("Factions") && sender instanceof Player) {
try {
if (channel.getName().equalsIgnoreCase("Faction")) {
MPlayer mplayer = MPlayer.get(p.getPlayer());
MPlayer mplayerp = MPlayer.get((Player) sender);
if (!mplayerp.hasFaction()) {
if (playerlist.length() + p.getName().length() > linecount) {
playerlist += "\n";
linecount = linecount + LINE_LENGTH;
}
if (!p.isMuted(channel.getName())) {
playerlist += ChatColor.WHITE + p.getName();
} else {
playerlist += ChatColor.RED + p.getName();
}
playerlist += ChatColor.WHITE + ", ";
break;
} else if (!mplayerp.hasFaction()) {
continue;
} else if (!(mplayer.getFactionName().equals(mplayerp.getFactionName()))) {
continue;
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
if (playerlist.length() + p.getName().length() > linecount) {
playerlist += "\n";
linecount = linecount + LINE_LENGTH;
}
if (!p.isMuted(channel.getName())) {
playerlist += ChatColor.WHITE + p.getName();
} else {
playerlist += ChatColor.RED + p.getName();
}
playerlist += ChatColor.WHITE + ", ";
}
}
if (playerlist.length() > 2) {
playerlist = playerlist.substring(0, playerlist.length() - 2);
}
sender.sendMessage(LocalizedMessage.CHANNEL_PLAYER_LIST_HEADER.toString()
.replace("{channel_color}", (channel.getColor()).toString())
.replace("{channel_name}", channel.getName()));
sender.sendMessage(playerlist);
return;
} else {
sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString()
.replace("{args}", args[0]));
return;
}
} else {
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString()
.replace("{command}", "/chwho")
.replace("{args}", "[channel]"));
return;
}
} else {
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
return;
}
}
private boolean isPlayerWithinDistance(Player p1, Player p2, double Distance) { PluginManager pluginManager = plugin.getServer().getPluginManager();
Double chDistance = Distance; long linecount = LINE_LENGTH;
Location locreceip; for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
Location locsender = p1.getLocation(); if (p.getListening().contains(channel.getName())) {
Location diff; if (sender instanceof Player) {
if (chDistance > (double) 0) { if (!((Player) sender).canSee(p.getPlayer())) {
locreceip = p2.getLocation(); continue;
if (locreceip.getWorld() == p1.getWorld()) { }
diff = locreceip.subtract(locsender); }
if (Math.abs(diff.getX()) > chDistance || Math.abs(diff.getZ()) > chDistance || Math.abs(diff.getY()) > chDistance) { if (channel.hasDistance() && sender instanceof Player) {
return false; if (!this.isPlayerWithinDistance((Player) sender, p.getPlayer(), channel.getDistance())) {
} continue;
} else { }
return false; }
} if (plugin.getConfig().getBoolean("enable_towny_channel") && pluginManager.isPluginEnabled("Towny") && sender instanceof Player) {
} try {
return true; TownyUniverse towny = TownyUniverse.getInstance();
} if (channel.getName().equalsIgnoreCase("Town")) {
Resident r = towny.getResident(p.getName());
Resident pp = towny.getResident(((Player) sender).getName());
if (!pp.hasTown()) {
if (playerlist.length() + p.getName().length() > linecount) {
playerlist += "\n";
linecount = linecount + LINE_LENGTH;
}
if (!p.isMuted(channel.getName())) {
playerlist += ChatColor.WHITE + p.getName();
} else {
playerlist += ChatColor.RED + p.getName();
}
playerlist += ChatColor.WHITE + ", ";
break;
} else if (!r.hasTown()) {
continue;
} else if (!(r.getTown().getName().equals(pp.getTown().getName()))) {
continue;
}
}
if (channel.getName().equalsIgnoreCase("Nation")) {
Resident r = towny.getResident(p.getName());
Resident pp = towny.getResident(((Player) sender).getName());
if (!pp.hasNation()) {
if (playerlist.length() + p.getName().length() > linecount) {
playerlist += "\n";
linecount = linecount + LINE_LENGTH;
}
if (!p.isMuted(channel.getName())) {
playerlist += ChatColor.WHITE + p.getName();
} else {
playerlist += ChatColor.RED + p.getName();
}
playerlist += ChatColor.WHITE + ", ";
break;
} else if (!r.hasNation()) {
continue;
} else if (!(r.getTown().getNation().getName().equals(pp.getTown().getNation().getName()))) {
continue;
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
if (plugin.getConfig().getBoolean("enable_factions_channel") && pluginManager.isPluginEnabled("Factions") && sender instanceof Player) {
try {
if (channel.getName().equalsIgnoreCase("Faction")) {
MPlayer mplayer = MPlayer.get(p.getPlayer());
MPlayer mplayerp = MPlayer.get((Player) sender);
if (!mplayerp.hasFaction()) {
if (playerlist.length() + p.getName().length() > linecount) {
playerlist += "\n";
linecount = linecount + LINE_LENGTH;
}
if (!p.isMuted(channel.getName())) {
playerlist += ChatColor.WHITE + p.getName();
} else {
playerlist += ChatColor.RED + p.getName();
}
playerlist += ChatColor.WHITE + ", ";
break;
} else if (!mplayerp.hasFaction()) {
continue;
} else if (!(mplayer.getFactionName().equals(mplayerp.getFactionName()))) {
continue;
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
if (playerlist.length() + p.getName().length() > linecount) {
playerlist += "\n";
linecount = linecount + LINE_LENGTH;
}
if (!p.isMuted(channel.getName())) {
playerlist += ChatColor.WHITE + p.getName();
} else {
playerlist += ChatColor.RED + p.getName();
}
playerlist += ChatColor.WHITE + ", ";
}
}
if (playerlist.length() > 2) {
playerlist = playerlist.substring(0, playerlist.length() - 2);
}
sender.sendMessage(LocalizedMessage.CHANNEL_PLAYER_LIST_HEADER.toString().replace("{channel_color}", (channel.getColor()).toString()).replace("{channel_name}",
channel.getName()));
sender.sendMessage(playerlist);
return true;
} else {
sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[0]));
return true;
}
} else {
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/chwho").replace("{args}", "[channel]"));
return true;
}
} else {
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
return true;
}
}
private boolean isPlayerWithinDistance(Player p1, Player p2, double Distance) {
Double chDistance = Distance;
Location locreceip;
Location locsender = p1.getLocation();
Location diff;
if (chDistance > (double) 0) {
locreceip = p2.getLocation();
if (locreceip.getWorld() == p1.getWorld()) {
diff = locreceip.subtract(locsender);
if (Math.abs(diff.getX()) > chDistance || Math.abs(diff.getZ()) > chDistance || Math.abs(diff.getY()) > chDistance) {
return false;
}
} else {
return false;
}
}
return true;
}
} }

View File

@ -1,29 +1,32 @@
package mineverse.Aust1n46.chat.command.chat; package mineverse.Aust1n46.chat.command.chat;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.InternalMessage; import mineverse.Aust1n46.chat.localization.InternalMessage;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
public class Clearchat implements VentureCommand { public class Clearchat extends Command {
public Clearchat() {
super("clearchat");
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public boolean execute(CommandSender sender, String command, String[] args) {
if (sender.hasPermission("venturechat.clearchat")) { if (sender.hasPermission("venturechat.clearchat")) {
for (MineverseChatPlayer player : MineverseChatAPI.getOnlineMineverseChatPlayers()) { for (MineverseChatPlayer player : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if (!player.getPlayer().hasPermission("venturechat.clearchat.bypass")) { if (!player.getPlayer().hasPermission("venturechat.clearchat.bypass")) {
for (int a = 1; a <= 20; a++) for (int a = 1; a <= 20; a++)
player.getPlayer().sendMessage(InternalMessage.EMPTY_STRING.toString()); player.getPlayer().sendMessage(InternalMessage.EMPTY_STRING.toString());
player.getPlayer().sendMessage(LocalizedMessage.CLEAR_CHAT_SERVER.toString()); player.getPlayer().sendMessage(LocalizedMessage.CLEAR_CHAT_SERVER.toString());
} }
} }
sender.sendMessage(LocalizedMessage.CLEAR_CHAT_SENDER.toString()); sender.sendMessage(LocalizedMessage.CLEAR_CHAT_SENDER.toString());
return; return true;
} }
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
return; return true;
} }
} }

View File

@ -2,57 +2,53 @@ package mineverse.Aust1n46.chat.command.chat;
import java.util.List; import java.util.List;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
public class Commandblock implements VentureCommand { public class Commandblock extends Command {
private MineverseChat plugin = MineverseChat.getInstance(); private MineverseChat plugin = MineverseChat.getInstance();
@Override public Commandblock() {
public void execute(CommandSender sender, String command, String[] args) { super("commandblock");
if (sender.hasPermission("venturechat.commandblock")) { }
if (args.length > 1) {
MineverseChatPlayer player = MineverseChatAPI.getOnlineMineverseChatPlayer(args[0]); @Override
if (player == null) { public boolean execute(CommandSender sender, String command, String[] args) {
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() if (sender.hasPermission("venturechat.commandblock")) {
.replace("{args}", args[0])); if (args.length > 1) {
return; MineverseChatPlayer player = MineverseChatAPI.getOnlineMineverseChatPlayer(args[0]);
} if (player == null) {
boolean match = false; sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0]));
for (String cb : (List<String>) plugin.getConfig().getStringList("blockablecommands")) return true;
if (args[1].equals("/" + cb)) }
match = true; boolean match = false;
if (match || player.isBlockedCommand(args[1])) { for (String cb : (List<String>) plugin.getConfig().getStringList("blockablecommands"))
if (!player.isBlockedCommand(args[1])) { if (args[1].equals("/" + cb))
player.addBlockedCommand(args[1]); match = true;
player.getPlayer().sendMessage(LocalizedMessage.BLOCK_COMMAND_PLAYER.toString() if (match || player.isBlockedCommand(args[1])) {
.replace("{command}", args[1])); if (!player.isBlockedCommand(args[1])) {
sender.sendMessage(LocalizedMessage.BLOCK_COMMAND_SENDER.toString() player.addBlockedCommand(args[1]);
.replace("{player}", player.getName()) player.getPlayer().sendMessage(LocalizedMessage.BLOCK_COMMAND_PLAYER.toString().replace("{command}", args[1]));
.replace("{command}", args[1])); sender.sendMessage(LocalizedMessage.BLOCK_COMMAND_SENDER.toString().replace("{player}", player.getName()).replace("{command}", args[1]));
return; return true;
} }
player.removeBlockedCommand(args[1]); player.removeBlockedCommand(args[1]);
player.getPlayer().sendMessage(LocalizedMessage.UNBLOCK_COMMAND_PLAYER.toString() player.getPlayer().sendMessage(LocalizedMessage.UNBLOCK_COMMAND_PLAYER.toString().replace("{command}", args[1]));
.replace("{command}", args[1])); sender.sendMessage(LocalizedMessage.UNBLOCK_COMMAND_SENDER.toString().replace("{player}", player.getName()).replace("{command}", args[1]));
sender.sendMessage(LocalizedMessage.UNBLOCK_COMMAND_SENDER.toString() return true;
.replace("{player}", player.getName()) }
.replace("{command}", args[1])); sender.sendMessage(LocalizedMessage.COMMAND_NOT_BLOCKABLE.toString());
return; return true;
} }
sender.sendMessage(LocalizedMessage.COMMAND_NOT_BLOCKABLE.toString()); sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/commandblock").replace("{args}", "[player] [command]"));
return; return true;
} }
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
.replace("{command}", "/commandblock") return true;
.replace("{args}", "[player] [command]")); }
return;
}
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
}
} }

View File

@ -1,33 +1,37 @@
package mineverse.Aust1n46.chat.command.chat; package mineverse.Aust1n46.chat.command.chat;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
public class Commandspy implements VentureCommand { public class Commandspy extends Command {
public Commandspy() {
super("commandspy");
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public boolean execute(CommandSender sender, String command, String[] args) {
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return; return true;
} }
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
if (mcp.getPlayer().hasPermission("venturechat.commandspy")) { if (mcp.getPlayer().hasPermission("venturechat.commandspy")) {
if (!mcp.hasCommandSpy()) { if (!mcp.hasCommandSpy()) {
mcp.setCommandSpy(true); mcp.setCommandSpy(true);
mcp.getPlayer().sendMessage(LocalizedMessage.COMMANDSPY_ON.toString()); mcp.getPlayer().sendMessage(LocalizedMessage.COMMANDSPY_ON.toString());
return; return true;
} }
mcp.setCommandSpy(false); mcp.setCommandSpy(false);
mcp.getPlayer().sendMessage(LocalizedMessage.COMMANDSPY_OFF.toString()); mcp.getPlayer().sendMessage(LocalizedMessage.COMMANDSPY_OFF.toString());
return; return true;
} }
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
} return true;
}
} }

File diff suppressed because it is too large Load Diff

View File

@ -5,6 +5,7 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitRunnable;
@ -16,93 +17,104 @@ import mineverse.Aust1n46.chat.ChatMessage;
import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import mineverse.Aust1n46.chat.utilities.Format; import mineverse.Aust1n46.chat.utilities.Format;
public class Edit implements VentureCommand { public class Edit extends Command {
private PacketContainer emptyLinePacketContainer = Format.createPacketPlayOutChat("{\"extra\":[\" \"],\"text\":\"\"}"); private PacketContainer emptyLinePacketContainer = Format.createPacketPlayOutChat("{\"extra\":[\" \"],\"text\":\"\"}");
private MineverseChat plugin = MineverseChat.getInstance(); private MineverseChat plugin = MineverseChat.getInstance();
private WrappedChatComponent messageDeletedComponentPlayer; private WrappedChatComponent messageDeletedComponentPlayer;
@Override public Edit() {
@SuppressWarnings({"unchecked", "rawtypes"}) super("edit");
public void execute(CommandSender sender, String command, String[] args) { }
if (args.length == 0) {
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString()
.replace("{command}", "/edit")
.replace("{args}", "[hashcode]"));
return;
}
final int hash;
try {
hash = Integer.parseInt(args[0]);
} catch (Exception e) {
sender.sendMessage(LocalizedMessage.INVALID_HASH.toString());
return;
}
new BukkitRunnable() {
public void run() {
final Map<Player, List<PacketContainer>> packets = new HashMap();
for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
List<ChatMessage> messages = p.getMessages();
List<PacketContainer> playerPackets = new ArrayList();
boolean resend = false;
for (int fill = 0; fill < 100 - messages.size(); fill++) {
playerPackets.add(Edit.this.emptyLinePacketContainer);
}
for (ChatMessage message : messages) {
if (message.getHash() == hash) {
WrappedChatComponent removedComponent = p.getPlayer().hasPermission("venturechat.message.bypass") ? Edit.this.getMessageDeletedChatComponentAdmin(message) : Edit.this.getMessageDeletedChatComponentPlayer();
message.setComponent(removedComponent);
message.setHash(-1);
playerPackets.add(Format.createPacketPlayOutChat(removedComponent));
resend = true;
continue;
}
if (message.getMessage().contains(Format.FormatStringAll(plugin.getConfig().getString("messageremovericon")))) {
String submessage = message.getMessage().substring(0, message.getMessage().length() - plugin.getConfig().getString("messageremovericon").length() - 1).replaceAll("(<28>([a-z0-9]))", "");
if (submessage.hashCode() == hash) {
WrappedChatComponent removedComponent = p.getPlayer().hasPermission("venturechat.message.bypass") ? Edit.this.getMessageDeletedChatComponentAdmin(message) : Edit.this.getMessageDeletedChatComponentPlayer();
message.setComponent(removedComponent);
message.setHash(-1);
playerPackets.add(Format.createPacketPlayOutChat(removedComponent));
resend = true;
continue;
}
}
playerPackets.add(Format.createPacketPlayOutChat(message.getComponent()));
}
if (resend) {
packets.put(p.getPlayer(), playerPackets);
}
}
new BukkitRunnable() {
public void run() {
for (Player p : packets.keySet()) {
List<PacketContainer> pPackets = packets.get(p);
for (PacketContainer c : pPackets) {
Format.sendPacketPlayOutChat(p, c);
}
}
}
}.runTask(plugin);
}
}.runTaskAsynchronously(plugin);
}
public WrappedChatComponent getMessageDeletedChatComponentPlayer() { @Override
if (this.messageDeletedComponentPlayer == null) { @SuppressWarnings({ "unchecked", "rawtypes" })
this.messageDeletedComponentPlayer = WrappedChatComponent.fromJson("{\"text\":\"\",\"extra\":[{\"text\":\"<message removed>\",\"color\":\"red\",\"italic\":\"true\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"" + Format.FormatStringAll(plugin.getConfig().getString("messageremoverpermissions")) + "\"}]}}}]}"); public boolean execute(CommandSender sender, String command, String[] args) {
} if (args.length == 0) {
return this.messageDeletedComponentPlayer; sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/edit").replace("{args}", "[hashcode]"));
} return true;
}
final int hash;
try {
hash = Integer.parseInt(args[0]);
} catch (Exception e) {
sender.sendMessage(LocalizedMessage.INVALID_HASH.toString());
return true;
}
new BukkitRunnable() {
public void run() {
final Map<Player, List<PacketContainer>> packets = new HashMap();
for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
List<ChatMessage> messages = p.getMessages();
List<PacketContainer> playerPackets = new ArrayList();
boolean resend = false;
for (int fill = 0; fill < 100 - messages.size(); fill++) {
playerPackets.add(Edit.this.emptyLinePacketContainer);
}
for (ChatMessage message : messages) {
if (message.getHash() == hash) {
WrappedChatComponent removedComponent = p.getPlayer().hasPermission("venturechat.message.bypass")
? Edit.this.getMessageDeletedChatComponentAdmin(message)
: Edit.this.getMessageDeletedChatComponentPlayer();
message.setComponent(removedComponent);
message.setHash(-1);
playerPackets.add(Format.createPacketPlayOutChat(removedComponent));
resend = true;
continue;
}
if (message.getMessage().contains(Format.FormatStringAll(plugin.getConfig().getString("messageremovericon")))) {
String submessage = message.getMessage().substring(0, message.getMessage().length() - plugin.getConfig().getString("messageremovericon").length() - 1)
.replaceAll("(<28>([a-z0-9]))", "");
if (submessage.hashCode() == hash) {
WrappedChatComponent removedComponent = p.getPlayer().hasPermission("venturechat.message.bypass")
? Edit.this.getMessageDeletedChatComponentAdmin(message)
: Edit.this.getMessageDeletedChatComponentPlayer();
message.setComponent(removedComponent);
message.setHash(-1);
playerPackets.add(Format.createPacketPlayOutChat(removedComponent));
resend = true;
continue;
}
}
playerPackets.add(Format.createPacketPlayOutChat(message.getComponent()));
}
if (resend) {
packets.put(p.getPlayer(), playerPackets);
}
}
new BukkitRunnable() {
public void run() {
for (Player p : packets.keySet()) {
List<PacketContainer> pPackets = packets.get(p);
for (PacketContainer c : pPackets) {
Format.sendPacketPlayOutChat(p, c);
}
}
}
}.runTask(plugin);
}
}.runTaskAsynchronously(plugin);
return true;
}
public WrappedChatComponent getMessageDeletedChatComponentAdmin(ChatMessage message) { public WrappedChatComponent getMessageDeletedChatComponentPlayer() {
String oMessage = message.getComponent().getJson().substring(1, message.getComponent().getJson().length() - 11); if (this.messageDeletedComponentPlayer == null) {
if (message.getMessage().contains(Format.FormatStringAll(plugin.getConfig().getString("messageremovericon")))) { this.messageDeletedComponentPlayer = WrappedChatComponent.fromJson(
oMessage = oMessage.substring(0, oMessage.length() - plugin.getConfig().getString("messageremovericon").length() - 4) + "\"}]"; "{\"text\":\"\",\"extra\":[{\"text\":\"<message removed>\",\"color\":\"red\",\"italic\":\"true\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\""
} + Format.FormatStringAll(plugin.getConfig().getString("messageremoverpermissions")) + "\"}]}}}]}");
return WrappedChatComponent.fromJson(Format.FormatStringAll("{\"text\":\"\",\"extra\":[{\"text\":\"&c&o<message removed>\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"&7Message: \"," + oMessage + "}}}]}")); }
} return this.messageDeletedComponentPlayer;
}
public WrappedChatComponent getMessageDeletedChatComponentAdmin(ChatMessage message) {
String oMessage = message.getComponent().getJson().substring(1, message.getComponent().getJson().length() - 11);
if (message.getMessage().contains(Format.FormatStringAll(plugin.getConfig().getString("messageremovericon")))) {
oMessage = oMessage.substring(0, oMessage.length() - plugin.getConfig().getString("messageremovericon").length() - 4) + "\"}]";
}
return WrappedChatComponent.fromJson(
Format.FormatStringAll("{\"text\":\"\",\"extra\":[{\"text\":\"&c&o<message removed>\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"&7Message: \","
+ oMessage + "}}}]}"));
}
} }

View File

@ -1,33 +1,37 @@
package mineverse.Aust1n46.chat.command.chat; package mineverse.Aust1n46.chat.command.chat;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
public class Filter implements VentureCommand { public class Filter extends Command {
public Filter() {
super("filter");
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public boolean execute(CommandSender sender, String command, String[] args) {
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return; return true;
} }
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
if (mcp.getPlayer().hasPermission("venturechat.ignorefilter")) { if (mcp.getPlayer().hasPermission("venturechat.ignorefilter")) {
if (!mcp.hasFilter()) { if (!mcp.hasFilter()) {
mcp.setFilter(true); mcp.setFilter(true);
mcp.getPlayer().sendMessage(LocalizedMessage.FILTER_ON.toString()); mcp.getPlayer().sendMessage(LocalizedMessage.FILTER_ON.toString());
return; return true;
} }
mcp.setFilter(false); mcp.setFilter(false);
mcp.getPlayer().sendMessage(LocalizedMessage.FILTER_OFF.toString()); mcp.getPlayer().sendMessage(LocalizedMessage.FILTER_OFF.toString());
return; return true;
} }
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
} return true;
}
} }

View File

@ -1,39 +1,38 @@
package mineverse.Aust1n46.chat.command.chat; package mineverse.Aust1n46.chat.command.chat;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
public class Force implements VentureCommand { public class Force extends Command {
public Force() {
super("force");
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public boolean execute(CommandSender sender, String command, String[] args) {
if (sender.hasPermission("venturechat.force")) { if (sender.hasPermission("venturechat.force")) {
if (args.length < 2) { if (args.length < 2) {
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/force").replace("{args}", "[player] [message]"));
.replace("{command}", "/force") return true;
.replace("{args}", "[player] [message]")); }
return; MineverseChatPlayer player = MineverseChatAPI.getOnlineMineverseChatPlayer(args[0]);
} if (player == null) {
MineverseChatPlayer player = MineverseChatAPI.getOnlineMineverseChatPlayer(args[0]); sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0]));
if (player == null) { return true;
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() }
.replace("{args}", args[0])); String forcemsg = "";
return; for (int x = 1; x < args.length; x++)
} if (args[x].length() > 0)
String forcemsg = ""; forcemsg += args[x] + " ";
for (int x = 1; x < args.length; x++) sender.sendMessage(LocalizedMessage.FORCE_PLAYER.toString().replace("{player}", player.getName()).replace("{message}", forcemsg));
if (args[x].length() > 0) player.getPlayer().chat(forcemsg);
forcemsg += args[x] + " "; return true;
sender.sendMessage(LocalizedMessage.FORCE_PLAYER.toString() }
.replace("{player}", player.getName()) sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
.replace("{message}", forcemsg)); return true;
player.getPlayer().chat(forcemsg); }
return;
}
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
}
} }

View File

@ -1,34 +1,37 @@
package mineverse.Aust1n46.chat.command.chat; package mineverse.Aust1n46.chat.command.chat;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
public class Forceall implements VentureCommand { public class Forceall extends Command {
public Forceall() {
super("forceall");
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public boolean execute(CommandSender sender, String command, String[] args) {
if (sender.hasPermission("venturechat.forceall")) { if (sender.hasPermission("venturechat.forceall")) {
if (args.length < 1) { if (args.length < 1) {
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/forceall").replace("{args}", "[message]"));
.replace("{command}", "/forceall").replace("{args}", "[message]")); return true;
return; }
} String forcemsg = "";
String forcemsg = ""; for (int x = 0; x < args.length; x++) {
for (int x = 0; x < args.length; x++) { if (args[x].length() > 0) {
if (args[x].length() > 0) { forcemsg += args[x] + " ";
forcemsg += args[x] + " "; }
} }
} sender.sendMessage(LocalizedMessage.FORCE_ALL.toString().replace("{message}", forcemsg));
sender.sendMessage(LocalizedMessage.FORCE_ALL.toString().replace("{message}", forcemsg)); for (MineverseChatPlayer player : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
for (MineverseChatPlayer player : MineverseChatAPI.getOnlineMineverseChatPlayers()) { player.getPlayer().chat(forcemsg);
player.getPlayer().chat(forcemsg); }
} return true;
return; }
} sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); return true;
} }
} }

View File

@ -1,70 +1,67 @@
package mineverse.Aust1n46.chat.command.chat; package mineverse.Aust1n46.chat.command.chat;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel; import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
public class Kickchannel implements VentureCommand { public class Kickchannel extends Command {
public Kickchannel() {
super("kickchannel");
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public boolean execute(CommandSender sender, String command, String[] args) {
if (sender.hasPermission("venturechat.kickchannel")) { if (sender.hasPermission("venturechat.kickchannel")) {
if (args.length < 2) { if (args.length < 2) {
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/kickchannel").replace("{args}", "[player] [channel]"));
.replace("{command}", "/kickchannel") return true;
.replace("{args}", "[player] [channel]")); }
return; MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]);
} if (player == null) {
MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]); sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0]));
if (player == null) { return true;
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() }
.replace("{args}", args[0])); ChatChannel channel = ChatChannel.getChannel(args[1]);
return; if (channel == null) {
} sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[1]));
ChatChannel channel = ChatChannel.getChannel(args[1]); return true;
if (channel == null) { }
sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString() sender.sendMessage(LocalizedMessage.KICK_CHANNEL.toString().replace("{player}", args[0]).replace("{channel_color}", channel.getColor() + "").replace("{channel_name}",
.replace("{args}", args[1])); channel.getName()));
return; player.removeListening(channel.getName());
} if (player.isOnline()) {
sender.sendMessage(LocalizedMessage.KICK_CHANNEL.toString() player.getPlayer()
.replace("{player}", args[0]) .sendMessage(LocalizedMessage.LEAVE_CHANNEL.toString().replace("{channel_color}", channel.getColor() + "").replace("{channel_name}", channel.getName()));
.replace("{channel_color}", channel.getColor() + "") } else {
.replace("{channel_name}", channel.getName())); player.setModified(true);
player.removeListening(channel.getName()); }
if (player.isOnline()) { boolean isThereABungeeChannel = channel.getBungee();
player.getPlayer().sendMessage(LocalizedMessage.LEAVE_CHANNEL.toString() if (player.getListening().size() == 0) {
.replace("{channel_color}", channel.getColor() + "") player.addListening(ChatChannel.getDefaultChannel().getName());
.replace("{channel_name}", channel.getName())); player.setCurrentChannel(ChatChannel.getDefaultChannel());
} else { if (ChatChannel.getDefaultChannel().getBungee()) {
player.setModified(true); isThereABungeeChannel = true;
} }
boolean isThereABungeeChannel = channel.getBungee(); if (player.isOnline()) {
if (player.getListening().size() == 0) { player.getPlayer().sendMessage(LocalizedMessage.MUST_LISTEN_ONE_CHANNEL.toString());
player.addListening(ChatChannel.getDefaultChannel().getName()); player.getPlayer()
player.setCurrentChannel(ChatChannel.getDefaultChannel()); .sendMessage(LocalizedMessage.SET_CHANNEL.toString().replace("{channel_color}", ChatColor.valueOf(ChatChannel.getDefaultColor().toUpperCase()) + "")
if (ChatChannel.getDefaultChannel().getBungee()) { .replace("{channel_name}", ChatChannel.getDefaultChannel().getName()));
isThereABungeeChannel = true; } else
} player.setModified(true);
if (player.isOnline()) { }
player.getPlayer().sendMessage(LocalizedMessage.MUST_LISTEN_ONE_CHANNEL.toString()); if (isThereABungeeChannel) {
player.getPlayer().sendMessage(LocalizedMessage.SET_CHANNEL.toString() MineverseChat.synchronize(player, true);
.replace("{channel_color}", ChatColor.valueOf(ChatChannel.getDefaultColor().toUpperCase()) + "") }
.replace("{channel_name}", ChatChannel.getDefaultChannel().getName())); return true;
} else }
player.setModified(true); sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
} return true;
if (isThereABungeeChannel) { }
MineverseChat.synchronize(player, true);
}
return;
}
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
}
} }

View File

@ -1,63 +1,63 @@
package mineverse.Aust1n46.chat.command.chat; package mineverse.Aust1n46.chat.command.chat;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel; import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
public class Kickchannelall implements VentureCommand { public class Kickchannelall extends Command {
public Kickchannelall() {
super("kickchannelall");
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public boolean execute(CommandSender sender, String command, String[] args) {
if (sender.hasPermission("venturechat.kickchannelall")) { if (sender.hasPermission("venturechat.kickchannelall")) {
if (args.length < 1) { if (args.length < 1) {
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/kickchannelall").replace("{args}", "[player]"));
.replace("{command}", "/kickchannelall") return true;
.replace("{args}", "[player]")); }
return; MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]);
} if (player == null) {
MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]); sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0]));
if (player == null) { return true;
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() }
.replace("{args}", args[0])); boolean isThereABungeeChannel = false;
return; for (String channel : player.getListening()) {
} if (ChatChannel.isChannel(channel)) {
boolean isThereABungeeChannel = false; ChatChannel chatChannelObj = ChatChannel.getChannel(channel);
for (String channel : player.getListening()) { if (chatChannelObj.getBungee()) {
if (ChatChannel.isChannel(channel)) { isThereABungeeChannel = true;
ChatChannel chatChannelObj = ChatChannel.getChannel(channel); }
if (chatChannelObj.getBungee()) { }
isThereABungeeChannel = true; }
} player.clearListening();
} sender.sendMessage(LocalizedMessage.KICK_CHANNEL_ALL_SENDER.toString().replace("{player}", player.getName()));
} player.addListening(ChatChannel.getDefaultChannel().getName());
player.clearListening(); player.setCurrentChannel(ChatChannel.getDefaultChannel());
sender.sendMessage(LocalizedMessage.KICK_CHANNEL_ALL_SENDER.toString() if (ChatChannel.getDefaultChannel().getBungee()) {
.replace("{player}", player.getName())); isThereABungeeChannel = true;
player.addListening(ChatChannel.getDefaultChannel().getName()); }
player.setCurrentChannel(ChatChannel.getDefaultChannel()); if (isThereABungeeChannel) {
if (ChatChannel.getDefaultChannel().getBungee()) { MineverseChat.synchronize(player, true);
isThereABungeeChannel = true; }
} if (player.isOnline()) {
if (isThereABungeeChannel) { player.getPlayer().sendMessage(LocalizedMessage.KICK_CHANNEL_ALL_PLAYER.toString());
MineverseChat.synchronize(player, true); player.getPlayer().sendMessage(LocalizedMessage.MUST_LISTEN_ONE_CHANNEL.toString());
} player.getPlayer()
if (player.isOnline()) { .sendMessage(LocalizedMessage.SET_CHANNEL.toString().replace("{channel_color}", ChatColor.valueOf(ChatChannel.getDefaultColor().toUpperCase()) + "")
player.getPlayer().sendMessage(LocalizedMessage.KICK_CHANNEL_ALL_PLAYER.toString()); .replace("{channel_name}", ChatChannel.getDefaultChannel().getName()));
player.getPlayer().sendMessage(LocalizedMessage.MUST_LISTEN_ONE_CHANNEL.toString()); } else {
player.getPlayer().sendMessage(LocalizedMessage.SET_CHANNEL.toString() player.setModified(true);
.replace("{channel_color}", ChatColor.valueOf(ChatChannel.getDefaultColor().toUpperCase()) + "") }
.replace("{channel_name}", ChatChannel.getDefaultChannel().getName())); return true;
} else { }
player.setModified(true); sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
} return true;
return; }
}
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
}
} }

View File

@ -2,6 +2,7 @@ package mineverse.Aust1n46.chat.command.chat;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -9,48 +10,45 @@ import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel; import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
public class Leave implements VentureCommand { public class Leave extends Command {
public Leave() {
super("leave");
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public boolean execute(CommandSender sender, String command, String[] args) {
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return; return true;
} }
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
if (args.length > 0) { if (args.length > 0) {
ChatChannel channel = ChatChannel.getChannel(args[0]); ChatChannel channel = ChatChannel.getChannel(args[0]);
if (channel == null) { if (channel == null) {
mcp.getPlayer().sendMessage(LocalizedMessage.INVALID_CHANNEL.toString() mcp.getPlayer().sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[0]));
.replace("{args}", args[0])); return true;
return; }
} mcp.removeListening(channel.getName());
mcp.removeListening(channel.getName()); mcp.getPlayer().sendMessage(LocalizedMessage.LEAVE_CHANNEL.toString().replace("{channel_color}", channel.getColor() + "").replace("{channel_name}", channel.getName()));
mcp.getPlayer().sendMessage(LocalizedMessage.LEAVE_CHANNEL.toString() boolean isThereABungeeChannel = channel.getBungee();
.replace("{channel_color}", channel.getColor() + "") if (mcp.getListening().size() == 0) {
.replace("{channel_name}", channel.getName())); mcp.addListening(ChatChannel.getDefaultChannel().getName());
boolean isThereABungeeChannel = channel.getBungee(); mcp.setCurrentChannel(ChatChannel.getDefaultChannel());
if (mcp.getListening().size() == 0) { if (ChatChannel.getDefaultChannel().getBungee()) {
mcp.addListening(ChatChannel.getDefaultChannel().getName()); isThereABungeeChannel = true;
mcp.setCurrentChannel(ChatChannel.getDefaultChannel()); }
if (ChatChannel.getDefaultChannel().getBungee()) { mcp.getPlayer().sendMessage(LocalizedMessage.MUST_LISTEN_ONE_CHANNEL.toString());
isThereABungeeChannel = true; mcp.getPlayer().sendMessage(LocalizedMessage.SET_CHANNEL.toString().replace("{channel_color}", ChatColor.valueOf(ChatChannel.getDefaultColor().toUpperCase()) + "")
} .replace("{channel_name}", ChatChannel.getDefaultChannel().getName()));
mcp.getPlayer().sendMessage(LocalizedMessage.MUST_LISTEN_ONE_CHANNEL.toString()); }
mcp.getPlayer().sendMessage(LocalizedMessage.SET_CHANNEL.toString() if (isThereABungeeChannel) {
.replace("{channel_color}", ChatColor.valueOf(ChatChannel.getDefaultColor().toUpperCase()) + "") MineverseChat.synchronize(mcp, true);
.replace("{channel_name}", ChatChannel.getDefaultChannel().getName())); }
} return true;
if (isThereABungeeChannel) { }
MineverseChat.synchronize(mcp, true); mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/leave").replace("{args}", "[channel]"));
} return true;
return; }
}
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString()
.replace("{command}", "/leave")
.replace("{args}", "[channel]"));
}
} }

View File

@ -1,6 +1,7 @@
package mineverse.Aust1n46.chat.command.chat; package mineverse.Aust1n46.chat.command.chat;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -8,43 +9,42 @@ import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel; import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
public class Listen implements VentureCommand { public class Listen extends Command {
public Listen() {
super("listen");
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public boolean execute(CommandSender sender, String command, String[] args) {
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return; return true;
} }
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
if (args.length > 0) { if (args.length > 0) {
ChatChannel channel = ChatChannel.getChannel(args[0]); ChatChannel channel = ChatChannel.getChannel(args[0]);
if (channel == null) { if (channel == null) {
mcp.getPlayer().sendMessage(LocalizedMessage.INVALID_CHANNEL.toString() mcp.getPlayer().sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[0]));
.replace("{args}", args[0])); return true;
return; }
} if (channel.hasPermission()) {
if (channel.hasPermission()) { if (!mcp.getPlayer().hasPermission(channel.getPermission())) {
if (!mcp.getPlayer().hasPermission(channel.getPermission())) { mcp.removeListening(channel.getName());
mcp.removeListening(channel.getName()); mcp.getPlayer().sendMessage(LocalizedMessage.CHANNEL_NO_PERMISSION.toString());
mcp.getPlayer().sendMessage(LocalizedMessage.CHANNEL_NO_PERMISSION.toString()); return true;
return; }
} }
} mcp.addListening(channel.getName());
mcp.addListening(channel.getName()); mcp.getPlayer()
mcp.getPlayer().sendMessage(LocalizedMessage.LISTEN_CHANNEL.toString() .sendMessage(LocalizedMessage.LISTEN_CHANNEL.toString().replace("{channel_color}", channel.getColor() + "").replace("{channel_name}", channel.getName()));
.replace("{channel_color}", channel.getColor() + "") if (channel.getBungee()) {
.replace("{channel_name}", channel.getName())); MineverseChat.synchronize(mcp, true);
if (channel.getBungee()) { }
MineverseChat.synchronize(mcp, true); return true;
} }
return; mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/listen").replace("{args}", "[channel]"));
} return true;
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() }
.replace("{command}", "/listen")
.replace("{args}", "[channel]"));
}
} }

View File

@ -1,46 +1,48 @@
package mineverse.Aust1n46.chat.command.chat; package mineverse.Aust1n46.chat.command.chat;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import mineverse.Aust1n46.chat.utilities.Format; import mineverse.Aust1n46.chat.utilities.Format;
public class Me implements VentureCommand { public class Me extends Command {
public Me() {
super("me");
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public boolean execute(CommandSender sender, String command, String[] args) {
if (sender.hasPermission("venturechat.me")) { if (sender.hasPermission("venturechat.me")) {
if (args.length > 0) { if (args.length > 0) {
String msg = ""; String msg = "";
for (int x = 0; x < args.length; x++) for (int x = 0; x < args.length; x++)
if (args[x].length() > 0) if (args[x].length() > 0)
msg += " " + args[x]; msg += " " + args[x];
if (sender instanceof Player && MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender).hasFilter()) { if (sender instanceof Player && MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender).hasFilter()) {
msg = Format.FilterChat(msg); msg = Format.FilterChat(msg);
} }
if (sender.hasPermission("venturechat.color.legacy")) { if (sender.hasPermission("venturechat.color.legacy")) {
msg = Format.FormatStringLegacyColor(msg); msg = Format.FormatStringLegacyColor(msg);
} }
if (sender.hasPermission("venturechat.color")) if (sender.hasPermission("venturechat.color"))
msg = Format.FormatStringColor(msg); msg = Format.FormatStringColor(msg);
if (sender.hasPermission("venturechat.format")) if (sender.hasPermission("venturechat.format"))
msg = Format.FormatString(msg); msg = Format.FormatString(msg);
if (sender instanceof Player) { if (sender instanceof Player) {
Player p = (Player) sender; Player p = (Player) sender;
Format.broadcastToServer("* " + p.getDisplayName() + msg); Format.broadcastToServer("* " + p.getDisplayName() + msg);
return; return true;
} }
Format.broadcastToServer("* " + sender.getName() + msg); Format.broadcastToServer("* " + sender.getName() + msg);
return; return true;
} }
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/me").replace("{args}", "[message]"));
.replace("{command}", "/me") return true;
.replace("{args}", "[message]")); }
return; sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
} return true;
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); }
}
} }

View File

@ -3,46 +3,49 @@ package mineverse.Aust1n46.chat.command.chat;
import static mineverse.Aust1n46.chat.MineverseChat.LINE_LENGTH; import static mineverse.Aust1n46.chat.MineverseChat.LINE_LENGTH;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.utilities.Format; import mineverse.Aust1n46.chat.utilities.Format;
public class Party implements VentureCommand { public class Party extends Command {
private MineverseChat plugin = MineverseChat.getInstance(); private MineverseChat plugin = MineverseChat.getInstance();
public Party() {
super("party");
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public boolean execute(CommandSender sender, String command, String[] args) {
if(!(sender instanceof Player)) { if (!(sender instanceof Player)) {
plugin.getServer().getConsoleSender().sendMessage(ChatColor.RED + "This command must be run by a player."); plugin.getServer().getConsoleSender().sendMessage(ChatColor.RED + "This command must be run by a player.");
return; return true;
} }
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
if(!mcp.getPlayer().hasPermission("venturechat.party")) { if (!mcp.getPlayer().hasPermission("venturechat.party")) {
mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!"); mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!");
return; return true;
} }
try { try {
switch(args[0]) { switch (args[0]) {
case "host": { case "host": {
if(!mcp.getPlayer().hasPermission("venturechat.party.host")) { if (!mcp.getPlayer().hasPermission("venturechat.party.host")) {
mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!"); mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!");
return; return true;
} }
if(mcp.isHost()) { if (mcp.isHost()) {
mcp.setHost(false); mcp.setHost(false);
mcp.getPlayer().sendMessage(ChatColor.GREEN + "You are no longer hosting a party."); mcp.getPlayer().sendMessage(ChatColor.GREEN + "You are no longer hosting a party.");
for(MineverseChatPlayer player : MineverseChatAPI.getMineverseChatPlayers()) { for (MineverseChatPlayer player : MineverseChatAPI.getMineverseChatPlayers()) {
if(player.hasParty() && player.getParty().equals(mcp.getParty())) { if (player.hasParty() && player.getParty().equals(mcp.getParty())) {
player.setParty(null); player.setParty(null);
if(player.isOnline()) { if (player.isOnline()) {
player.getPlayer().sendMessage(ChatColor.RED + mcp.getName() + " is no longer hosting a party."); player.getPlayer().sendMessage(ChatColor.RED + mcp.getName() + " is no longer hosting a party.");
} } else {
else {
player.setModified(true); player.setModified(true);
} }
} }
@ -56,21 +59,19 @@ public class Party implements VentureCommand {
break; break;
} }
case "join": { case "join": {
if(!mcp.getPlayer().hasPermission("venturechat.party.join")) { if (!mcp.getPlayer().hasPermission("venturechat.party.join")) {
mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!"); mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!");
return; return true;
} }
if(args.length > 1) { if (args.length > 1) {
MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[1]); MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[1]);
if(player != null) { if (player != null) {
if(player.isHost()) { if (player.isHost()) {
if(!mcp.hasParty()) { if (!mcp.hasParty()) {
/* /*
* if(plugin.getMetadata(player, * if(plugin.getMetadata(player, "MineverseChat.party.ban." + tp.getName(),
* "MineverseChat.party.ban." + tp.getName(), * plugin)) { player.sendMessage(ChatColor.RED + "You are banned from " +
* plugin)) { player.sendMessage(ChatColor.RED + * tp.getName() + "'s party."); break; }
* "You are banned from " + tp.getName() +
* "'s party."); break; }
*/ */
mcp.getPlayer().sendMessage(ChatColor.GREEN + "Joined " + player.getName() + "'s party."); mcp.getPlayer().sendMessage(ChatColor.GREEN + "Joined " + player.getName() + "'s party.");
mcp.setParty(player.getUUID()); mcp.setParty(player.getUUID());
@ -90,21 +91,20 @@ public class Party implements VentureCommand {
break; break;
} }
case "leave": { case "leave": {
if(!mcp.getPlayer().hasPermission("venturechat.party.leave")) { if (!mcp.getPlayer().hasPermission("venturechat.party.leave")) {
mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!"); mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!");
return; return true;
} }
if(mcp.hasParty()) { if (mcp.hasParty()) {
mcp.getPlayer().sendMessage(ChatColor.GREEN + "Leaving " + MineverseChatAPI.getMineverseChatPlayer(mcp.getParty()).getName() + "'s party."); mcp.getPlayer().sendMessage(ChatColor.GREEN + "Leaving " + MineverseChatAPI.getMineverseChatPlayer(mcp.getParty()).getName() + "'s party.");
mcp.setParty(null); mcp.setParty(null);
if(mcp.isHost()) { if (mcp.isHost()) {
for(MineverseChatPlayer player : MineverseChatAPI.getMineverseChatPlayers()) { for (MineverseChatPlayer player : MineverseChatAPI.getMineverseChatPlayers()) {
if(player.hasParty() && player.getParty().equals(mcp.getUUID()) && !player.getName().equals(mcp.getName())) { if (player.hasParty() && player.getParty().equals(mcp.getUUID()) && !player.getName().equals(mcp.getName())) {
player.setParty(null); player.setParty(null);
if(player.isOnline()) { if (player.isOnline()) {
player.getPlayer().sendMessage(ChatColor.RED + mcp.getName() + " is no longer hosting a party."); player.getPlayer().sendMessage(ChatColor.RED + mcp.getName() + " is no longer hosting a party.");
} } else {
else {
player.setModified(true); player.setModified(true);
} }
} }
@ -117,16 +117,16 @@ public class Party implements VentureCommand {
break; break;
} }
case "kick": { case "kick": {
if(!mcp.getPlayer().hasPermission("venturechat.party.kick")) { if (!mcp.getPlayer().hasPermission("venturechat.party.kick")) {
mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!"); mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!");
return; return true;
} }
if(mcp.isHost()) { if (mcp.isHost()) {
if(args.length > 1) { if (args.length > 1) {
MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[1]); MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[1]);
if(player != null) { if (player != null) {
if(!player.getName().equals(mcp.getName())) { if (!player.getName().equals(mcp.getName())) {
if(player.hasParty() && player.getParty().equals(mcp.getUUID())) { if (player.hasParty() && player.getParty().equals(mcp.getUUID())) {
player.setParty(null); player.setParty(null);
player.getPlayer().sendMessage(ChatColor.RED + "You have been kicked out of " + mcp.getName() + "'s party."); player.getPlayer().sendMessage(ChatColor.RED + "You have been kicked out of " + mcp.getName() + "'s party.");
mcp.getPlayer().sendMessage(ChatColor.RED + "You have kicked " + player.getName() + " out of your party."); mcp.getPlayer().sendMessage(ChatColor.RED + "You have kicked " + player.getName() + " out of your party.");
@ -148,59 +148,49 @@ public class Party implements VentureCommand {
break; break;
} }
/* /*
* case "ban": { if(mcp.isHost()) { if(args.length > 1) { Player tp * case "ban": { if(mcp.isHost()) { if(args.length > 1) { Player tp =
* = Bukkit.getPlayer(args[1]); if(tp != null) {
* if(!tp.getName().equals(player.getName())) {
* tp.setMetadata("MineverseChat.party.ban." +
* player.getUniqueId().toString(), new FixedMetadataValue(plugin,
* true)); if(plugin.getMetadataString(tp, "MineverseChat.party",
* plugin).equals(plugin.getMetadataString(player,
* "MineverseChat.party", plugin))) {
* tp.setMetadata("MineverseChat.party", new
* FixedMetadataValue(plugin, "")); } tp.sendMessage(ChatColor.RED +
* "You have been banned from " + player.getName() + "'s party.");
* player.sendMessage(ChatColor.RED + "You have banned " +
* tp.getName() + " from your party."); break; }
* player.sendMessage(ChatColor.RED + "You cannot ban yourself.");
* break; } player.sendMessage(ChatColor.RED + "Player: " +
* ChatColor.GOLD + args[1] + ChatColor.RED + " is not online.");
* break; } player.sendMessage(ChatColor.RED +
* "Invalid command: /party ban [playername]"); break; }
* player.sendMessage(ChatColor.RED +
* "You are not hosting a party."); break; } case "unban": {
* if(plugin.getMetadata(player, "MineverseChat.party.host",
* plugin)) { if(args.length > 1) { Player tp =
* Bukkit.getPlayer(args[1]); if(tp != null) { * Bukkit.getPlayer(args[1]); if(tp != null) {
* if(!tp.getName().equals(player.getName())) { * if(!tp.getName().equals(player.getName())) {
* tp.setMetadata("MineverseChat.party.ban." + player.getUniqueId(), * tp.setMetadata("MineverseChat.party.ban." + player.getUniqueId().toString(),
* new FixedMetadataValue(plugin, false)); * new FixedMetadataValue(plugin, true)); if(plugin.getMetadataString(tp,
* tp.sendMessage(ChatColor.RED + "You have been unbanned from " + * "MineverseChat.party", plugin).equals(plugin.getMetadataString(player,
* player.getName() + "'s party."); player.sendMessage(ChatColor.RED * "MineverseChat.party", plugin))) { tp.setMetadata("MineverseChat.party", new
* + "You have unbanned " + tp.getName() + " from your party."); * FixedMetadataValue(plugin, "")); } tp.sendMessage(ChatColor.RED +
* "You have been banned from " + player.getName() + "'s party.");
* player.sendMessage(ChatColor.RED + "You have banned " + tp.getName() +
* " from your party."); break; } player.sendMessage(ChatColor.RED +
* "You cannot ban yourself."); break; } player.sendMessage(ChatColor.RED +
* "Player: " + ChatColor.GOLD + args[1] + ChatColor.RED + " is not online.");
* break; } player.sendMessage(ChatColor.RED +
* "Invalid command: /party ban [playername]"); break; }
* player.sendMessage(ChatColor.RED + "You are not hosting a party."); break; }
* case "unban": { if(plugin.getMetadata(player, "MineverseChat.party.host",
* plugin)) { if(args.length > 1) { Player tp = Bukkit.getPlayer(args[1]); if(tp
* != null) { if(!tp.getName().equals(player.getName())) {
* tp.setMetadata("MineverseChat.party.ban." + player.getUniqueId(), new
* FixedMetadataValue(plugin, false)); tp.sendMessage(ChatColor.RED +
* "You have been unbanned from " + player.getName() + "'s party.");
* player.sendMessage(ChatColor.RED + "You have unbanned " + tp.getName() +
* " from your party."); break; } player.sendMessage(ChatColor.RED +
* "You cannot unban yourself."); break; } player.sendMessage(ChatColor.RED +
* "Player: " + ChatColor.GOLD + args[1] + ChatColor.RED + " is not online.");
* break; } player.sendMessage(ChatColor.RED + * break; } player.sendMessage(ChatColor.RED +
* "You cannot unban yourself."); break; }
* player.sendMessage(ChatColor.RED + "Player: " + ChatColor.GOLD +
* args[1] + ChatColor.RED + " is not online."); break; }
* player.sendMessage(ChatColor.RED +
* "Invalid command: /party unban [playername]"); break; } * "Invalid command: /party unban [playername]"); break; }
* player.sendMessage(ChatColor.RED + * player.sendMessage(ChatColor.RED + "You are not hosting a party."); break; }
* "You are not hosting a party."); break; }
*/ */
case "info": { case "info": {
if(!mcp.getPlayer().hasPermission("venturechat.party.info")) { if (!mcp.getPlayer().hasPermission("venturechat.party.info")) {
mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!"); mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!");
return; return true;
} }
if(mcp.hasParty() && !mcp.isHost()) { if (mcp.hasParty() && !mcp.isHost()) {
mcp.getPlayer().sendMessage(ChatColor.GREEN + "You are in " + MineverseChatAPI.getMineverseChatPlayer(mcp.getParty()).getName() + "'s party."); mcp.getPlayer().sendMessage(ChatColor.GREEN + "You are in " + MineverseChatAPI.getMineverseChatPlayer(mcp.getParty()).getName() + "'s party.");
} } else if (mcp.isHost()) {
else if(mcp.isHost()) {
mcp.getPlayer().sendMessage(ChatColor.GREEN + "You are hosting a party."); mcp.getPlayer().sendMessage(ChatColor.GREEN + "You are hosting a party.");
} } else {
else {
mcp.getPlayer().sendMessage(ChatColor.RED + "You are not hosting a party and you are not in a party."); mcp.getPlayer().sendMessage(ChatColor.RED + "You are not hosting a party and you are not in a party.");
} }
if(mcp.isPartyChat()) { if (mcp.isPartyChat()) {
mcp.getPlayer().sendMessage(ChatColor.GREEN + "Party chat on."); mcp.getPlayer().sendMessage(ChatColor.GREEN + "Party chat on.");
break; break;
} }
@ -208,20 +198,20 @@ public class Party implements VentureCommand {
break; break;
} }
case "chat": { case "chat": {
if(!mcp.getPlayer().hasPermission("venturechat.party.chat")) { if (!mcp.getPlayer().hasPermission("venturechat.party.chat")) {
mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!"); mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!");
return; return true;
} }
if(mcp.isPartyChat()) { if (mcp.isPartyChat()) {
mcp.setPartyChat(false); mcp.setPartyChat(false);
mcp.getPlayer().sendMessage(ChatColor.GREEN + "Toggled party chat off."); mcp.getPlayer().sendMessage(ChatColor.GREEN + "Toggled party chat off.");
break; break;
} }
if(mcp.hasConversation()) { if (mcp.hasConversation()) {
String tellChat = MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName(); String tellChat = MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName();
mcp.setConversation(null); mcp.setConversation(null);
for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if(p.isSpy()) { if (p.isSpy()) {
p.getPlayer().sendMessage(mcp.getName() + " is no longer in a private conversation with " + tellChat + "."); p.getPlayer().sendMessage(mcp.getName() + " is no longer in a private conversation with " + tellChat + ".");
} }
} }
@ -232,39 +222,39 @@ public class Party implements VentureCommand {
break; break;
} }
case "help": { case "help": {
if(!mcp.getPlayer().hasPermission("venturechat.party.help")) { if (!mcp.getPlayer().hasPermission("venturechat.party.help")) {
mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!"); mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!");
return; return true;
} }
mcp.getPlayer().sendMessage(ChatColor.GREEN + "/party host\n/party join [player]\n/party leave\n/party kick [player]\n/party ban [player]\n/party unban [player]\n/party info\n/party members [player]\n/party chat\n/party help"); mcp.getPlayer().sendMessage(ChatColor.GREEN
+ "/party host\n/party join [player]\n/party leave\n/party kick [player]\n/party ban [player]\n/party unban [player]\n/party info\n/party members [player]\n/party chat\n/party help");
break; break;
} }
case "members": { case "members": {
if(!mcp.getPlayer().hasPermission("venturechat.party.members")) { if (!mcp.getPlayer().hasPermission("venturechat.party.members")) {
mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!"); mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!");
return; return true;
} }
if(args.length > 1) { if (args.length > 1) {
MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[1]); MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[1]);
if(player != null) { if (player != null) {
if(player.isHost()) { if (player.isHost()) {
String members = ""; String members = "";
long linecount = LINE_LENGTH; long linecount = LINE_LENGTH;
for(MineverseChatPlayer p : MineverseChatAPI.getMineverseChatPlayers()) { for (MineverseChatPlayer p : MineverseChatAPI.getMineverseChatPlayers()) {
if(p.getParty() != null && p.getParty().equals(player.getUUID())) { if (p.getParty() != null && p.getParty().equals(player.getUUID())) {
if(members.length() + p.getName().length() > linecount) { if (members.length() + p.getName().length() > linecount) {
members += "\n"; members += "\n";
linecount = linecount + LINE_LENGTH; linecount = linecount + LINE_LENGTH;
} }
if(p.isOnline()) { if (p.isOnline()) {
members += ChatColor.GREEN + p.getName() + ChatColor.WHITE + ", "; members += ChatColor.GREEN + p.getName() + ChatColor.WHITE + ", ";
} } else {
else {
members += ChatColor.RED + p.getName() + ChatColor.WHITE + ", "; members += ChatColor.RED + p.getName() + ChatColor.WHITE + ", ";
} }
} }
} }
if(members.length() > 2) { if (members.length() > 2) {
members = members.substring(0, members.length() - 2); members = members.substring(0, members.length() - 2);
} }
mcp.getPlayer().sendMessage(ChatColor.GREEN + "Members in " + player.getName() + "'s party: " + members); mcp.getPlayer().sendMessage(ChatColor.GREEN + "Members in " + player.getName() + "'s party: " + members);
@ -280,46 +270,47 @@ public class Party implements VentureCommand {
break; break;
} }
} }
if(args[0].length() > 0) { if (args[0].length() > 0) {
if(!args[0].equals("host") && !args[0].equals("join") && !args[0].equals("leave") && !args[0].equals("kick") && !args[0].equals("info") && !args[0].equals("chat") && !args[0].equals("help") && !args[0].equals("members") && !args[0].equals("ban") && !args[0].equals("unban")) { if (!args[0].equals("host") && !args[0].equals("join") && !args[0].equals("leave") && !args[0].equals("kick") && !args[0].equals("info") && !args[0].equals("chat")
if(mcp.hasParty()) { && !args[0].equals("help") && !args[0].equals("members") && !args[0].equals("ban") && !args[0].equals("unban")) {
if (mcp.hasParty()) {
String msg = ""; String msg = "";
String partyformat = ""; String partyformat = "";
for(int x = 0; x < args.length; x++) { for (int x = 0; x < args.length; x++) {
if(args[x].length() > 0) msg += " " + args[x]; if (args[x].length() > 0)
msg += " " + args[x];
} }
if(mcp.hasFilter()) { if (mcp.hasFilter()) {
msg = Format.FilterChat(msg); msg = Format.FilterChat(msg);
} }
if(mcp.getPlayer().hasPermission("venturechat.color.legacy")) { if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) {
msg = Format.FormatStringLegacyColor(msg); msg = Format.FormatStringLegacyColor(msg);
} }
if(mcp.getPlayer().hasPermission("venturechat.color")) { if (mcp.getPlayer().hasPermission("venturechat.color")) {
msg = Format.FormatStringColor(msg); msg = Format.FormatStringColor(msg);
} }
if(mcp.getPlayer().hasPermission("venturechat.format")) { if (mcp.getPlayer().hasPermission("venturechat.format")) {
msg = Format.FormatString(msg); msg = Format.FormatString(msg);
} }
if(plugin.getConfig().getString("partyformat").equalsIgnoreCase("Default")) { if (plugin.getConfig().getString("partyformat").equalsIgnoreCase("Default")) {
partyformat = ChatColor.GREEN + "[" + MineverseChatAPI.getMineverseChatPlayer(mcp.getParty()).getName() + "'s Party] " + mcp.getName() + ":" + msg; partyformat = ChatColor.GREEN + "[" + MineverseChatAPI.getMineverseChatPlayer(mcp.getParty()).getName() + "'s Party] " + mcp.getName() + ":" + msg;
} else {
partyformat = Format.FormatStringAll(plugin.getConfig().getString("partyformat")
.replace("{host}", MineverseChatAPI.getMineverseChatPlayer(mcp.getParty()).getName()).replace("{player}", mcp.getName())) + msg;
} }
else { for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
partyformat = Format.FormatStringAll(plugin.getConfig().getString("partyformat").replace("{host}", MineverseChatAPI.getMineverseChatPlayer(mcp.getParty()).getName()).replace("{player}", mcp.getName())) + msg; if ((p.getParty().equals(mcp.getParty()) || p.isSpy())) {
}
for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if((p.getParty().equals(mcp.getParty()) || p.isSpy())) {
p.getPlayer().sendMessage(partyformat); p.getPlayer().sendMessage(partyformat);
} }
} }
return; return true;
} }
mcp.getPlayer().sendMessage(ChatColor.RED + "You are not in a party."); mcp.getPlayer().sendMessage(ChatColor.RED + "You are not in a party.");
} }
} }
} } catch (Exception e) {
catch(Exception e) {
mcp.getPlayer().sendMessage(ChatColor.RED + "Invalid arguments, /party help"); mcp.getPlayer().sendMessage(ChatColor.RED + "Invalid arguments, /party help");
} }
return; return true;
} }
} }

View File

@ -1,34 +1,37 @@
package mineverse.Aust1n46.chat.command.chat; package mineverse.Aust1n46.chat.command.chat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
public class RangedSpy implements VentureCommand { import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
@Override public class RangedSpy extends Command {
public void execute(CommandSender sender, String command, String[] args) { public RangedSpy() {
if (!(sender instanceof Player)) { super("rangedspy");
Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); }
return;
} @Override
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); public boolean execute(CommandSender sender, String command, String[] args) {
if (mcp.getPlayer().hasPermission("venturechat.rangedspy")) { if (!(sender instanceof Player)) {
if (!mcp.getRangedSpy()) { Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
mcp.setRangedSpy(true); return true;
mcp.getPlayer().sendMessage(LocalizedMessage.RANGED_SPY_ON.toString()); }
return; MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
} if (mcp.getPlayer().hasPermission("venturechat.rangedspy")) {
mcp.setRangedSpy(false); if (!mcp.getRangedSpy()) {
mcp.getPlayer().sendMessage(LocalizedMessage.RANGED_SPY_OFF.toString()); mcp.setRangedSpy(true);
return; mcp.getPlayer().sendMessage(LocalizedMessage.RANGED_SPY_ON.toString());
} return true;
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); }
return; mcp.setRangedSpy(false);
} mcp.getPlayer().sendMessage(LocalizedMessage.RANGED_SPY_OFF.toString());
return true;
}
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
return true;
}
} }

View File

@ -7,16 +7,8 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import mineverse.Aust1n46.chat.ChatMessage;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import mineverse.Aust1n46.chat.utilities.Format;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitRunnable;
@ -24,98 +16,118 @@ import org.bukkit.scheduler.BukkitRunnable;
import com.comphenix.protocol.events.PacketContainer; import com.comphenix.protocol.events.PacketContainer;
import com.comphenix.protocol.wrappers.WrappedChatComponent; import com.comphenix.protocol.wrappers.WrappedChatComponent;
public class Removemessage implements VentureCommand { import mineverse.Aust1n46.chat.ChatMessage;
private MineverseChat plugin = MineverseChat.getInstance(); import mineverse.Aust1n46.chat.MineverseChat;
private PacketContainer emptyLinePacketContainer = Format.createPacketPlayOutChat("{\"extra\":[\" \"],\"text\":\"\"}"); import mineverse.Aust1n46.chat.api.MineverseChatAPI;
private WrappedChatComponent messageDeletedComponentPlayer = WrappedChatComponent.fromJson("{\"text\":\"\",\"extra\":[{\"text\":\"\",\"extra\":[" + Format.convertToJsonColors(Format.FormatStringAll(plugin.getConfig().getString("messageremovertext"))) + "],\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[" + Format.convertToJsonColors(Format.FormatStringAll(plugin.getConfig().getString("messageremoverpermissions"))) + "]}}}]}"); import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
; import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import mineverse.Aust1n46.chat.utilities.Format;
@Override public class Removemessage extends Command {
@SuppressWarnings({"unchecked", "rawtypes"}) private MineverseChat plugin = MineverseChat.getInstance();
public void execute(CommandSender sender, String command, String[] args) { private PacketContainer emptyLinePacketContainer = Format.createPacketPlayOutChat("{\"extra\":[\" \"],\"text\":\"\"}");
if (args.length == 0) { private WrappedChatComponent messageDeletedComponentPlayer = WrappedChatComponent.fromJson(
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() "{\"text\":\"\",\"extra\":[{\"text\":\"\",\"extra\":[" + Format.convertToJsonColors(Format.FormatStringAll(plugin.getConfig().getString("messageremovertext")))
.replace("{command}", "/removemessage") + "],\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":["
.replace("{args}", "[hashcode] {channel}")); + Format.convertToJsonColors(Format.FormatStringAll(plugin.getConfig().getString("messageremoverpermissions"))) + "]}}}]}");
return;
}
final int hash;
try {
hash = Integer.parseInt(args[0]);
} catch (Exception e) {
sender.sendMessage(LocalizedMessage.INVALID_HASH.toString());
return;
}
if (args.length > 1 && ChatChannel.isChannel(args[1]) && ChatChannel.getChannel(args[1]).getBungee() && sender instanceof Player) {
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(byteOutStream);
try {
out.writeUTF("RemoveMessage");
out.writeUTF(String.valueOf(hash));
((Player) sender).sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray());
out.close();
} catch (Exception e) {
e.printStackTrace();
}
return;
} else {
new BukkitRunnable() {
public void run() {
final Map<Player, List<PacketContainer>> packets = new HashMap();
for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
List<ChatMessage> messages = p.getMessages();
List<PacketContainer> playerPackets = new ArrayList();
boolean resend = false;
for (int fill = 0; fill < 100 - messages.size(); fill++) {
playerPackets.add(Removemessage.this.emptyLinePacketContainer);
}
for (ChatMessage message : messages) {
if (message.getHash() == hash) {
WrappedChatComponent removedComponent = p.getPlayer().hasPermission("venturechat.message.bypass") ? Removemessage.this.getMessageDeletedChatComponentAdmin(message) : Removemessage.this.getMessageDeletedChatComponentPlayer();
message.setComponent(removedComponent);
message.setHash(-1);
playerPackets.add(Format.createPacketPlayOutChat(removedComponent));
resend = true;
continue;
}
if (message.getMessage().contains(ChatColor.stripColor(Format.FormatStringAll(plugin.getConfig().getString("guiicon"))))) {
String submessage = message.getMessage().substring(0, message.getMessage().length() - ChatColor.stripColor(Format.FormatStringAll(plugin.getConfig().getString("guiicon"))).length());
if (submessage.hashCode() == hash) {
WrappedChatComponent removedComponent = p.getPlayer().hasPermission("venturechat.message.bypass") ? Removemessage.this.getMessageDeletedChatComponentAdmin(message) : Removemessage.this.getMessageDeletedChatComponentPlayer();
message.setComponent(removedComponent);
message.setHash(-1);
playerPackets.add(Format.createPacketPlayOutChat(removedComponent));
resend = true;
continue;
}
}
playerPackets.add(Format.createPacketPlayOutChat(message.getComponent()));
} public Removemessage() {
if (resend) { super("removemessage");
packets.put(p.getPlayer(), playerPackets); }
}
}
new BukkitRunnable() {
public void run() {
for (Player p : packets.keySet()) {
List<PacketContainer> pPackets = packets.get(p);
for (PacketContainer c : pPackets) {
Format.sendPacketPlayOutChat(p, c);
}
}
}
}.runTask(plugin);
}
}.runTaskAsynchronously(plugin);
}
}
public WrappedChatComponent getMessageDeletedChatComponentPlayer() { @Override
return this.messageDeletedComponentPlayer; @SuppressWarnings({ "unchecked", "rawtypes" })
} public boolean execute(CommandSender sender, String command, String[] args) {
if (args.length == 0) {
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/removemessage").replace("{args}", "[hashcode] {channel}"));
return true;
}
final int hash;
try {
hash = Integer.parseInt(args[0]);
} catch (Exception e) {
sender.sendMessage(LocalizedMessage.INVALID_HASH.toString());
return true;
}
if (args.length > 1 && ChatChannel.isChannel(args[1]) && ChatChannel.getChannel(args[1]).getBungee() && sender instanceof Player) {
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(byteOutStream);
try {
out.writeUTF("RemoveMessage");
out.writeUTF(String.valueOf(hash));
((Player) sender).sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray());
out.close();
} catch (Exception e) {
e.printStackTrace();
}
return true;
} else {
new BukkitRunnable() {
public void run() {
final Map<Player, List<PacketContainer>> packets = new HashMap();
for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
List<ChatMessage> messages = p.getMessages();
List<PacketContainer> playerPackets = new ArrayList();
boolean resend = false;
for (int fill = 0; fill < 100 - messages.size(); fill++) {
playerPackets.add(Removemessage.this.emptyLinePacketContainer);
}
for (ChatMessage message : messages) {
if (message.getHash() == hash) {
WrappedChatComponent removedComponent = p.getPlayer().hasPermission("venturechat.message.bypass")
? Removemessage.this.getMessageDeletedChatComponentAdmin(message)
: Removemessage.this.getMessageDeletedChatComponentPlayer();
message.setComponent(removedComponent);
message.setHash(-1);
playerPackets.add(Format.createPacketPlayOutChat(removedComponent));
resend = true;
continue;
}
if (message.getMessage().contains(ChatColor.stripColor(Format.FormatStringAll(plugin.getConfig().getString("guiicon"))))) {
String submessage = message.getMessage().substring(0,
message.getMessage().length() - ChatColor.stripColor(Format.FormatStringAll(plugin.getConfig().getString("guiicon"))).length());
if (submessage.hashCode() == hash) {
WrappedChatComponent removedComponent = p.getPlayer().hasPermission("venturechat.message.bypass")
? Removemessage.this.getMessageDeletedChatComponentAdmin(message)
: Removemessage.this.getMessageDeletedChatComponentPlayer();
message.setComponent(removedComponent);
message.setHash(-1);
playerPackets.add(Format.createPacketPlayOutChat(removedComponent));
resend = true;
continue;
}
}
playerPackets.add(Format.createPacketPlayOutChat(message.getComponent()));
public WrappedChatComponent getMessageDeletedChatComponentAdmin(ChatMessage message) { }
return WrappedChatComponent.fromJson("[{\"text\":\"\",\"extra\":[{\"text\":\"\",\"extra\":[" + Format.convertToJsonColors(Format.FormatStringAll(plugin.getConfig().getString("messageremovertext"))) + "],\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\"," + message.getColoredMessage() + "}}}]}]"); if (resend) {
} packets.put(p.getPlayer(), playerPackets);
}
}
new BukkitRunnable() {
public void run() {
for (Player p : packets.keySet()) {
List<PacketContainer> pPackets = packets.get(p);
for (PacketContainer c : pPackets) {
Format.sendPacketPlayOutChat(p, c);
}
}
}
}.runTask(plugin);
}
}.runTaskAsynchronously(plugin);
return true;
}
}
public WrappedChatComponent getMessageDeletedChatComponentPlayer() {
return this.messageDeletedComponentPlayer;
}
public WrappedChatComponent getMessageDeletedChatComponentAdmin(ChatMessage message) {
return WrappedChatComponent.fromJson(
"[{\"text\":\"\",\"extra\":[{\"text\":\"\",\"extra\":[" + Format.convertToJsonColors(Format.FormatStringAll(plugin.getConfig().getString("messageremovertext")))
+ "],\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\"," + message.getColoredMessage() + "}}}]}]");
}
} }

View File

@ -1,84 +1,78 @@
package mineverse.Aust1n46.chat.command.chat; package mineverse.Aust1n46.chat.command.chat;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel; import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
public class Setchannel implements VentureCommand { public class Setchannel extends Command {
public Setchannel() {
super("setchannel");
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public boolean execute(CommandSender sender, String command, String[] args) {
if (sender.hasPermission("venturechat.setchannel")) { if (sender.hasPermission("venturechat.setchannel")) {
if (args.length < 2) { if (args.length < 2) {
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/setchannel").replace("{args}", "[player] [channel]"));
.replace("{command}", "/setchannel") return true;
.replace("{args}", "[player] [channel]")); }
return; MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]);
} if (player == null) {
MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]); sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0]));
if (player == null) { return true;
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() }
.replace("{args}", args[0])); ChatChannel channel = ChatChannel.getChannel(args[1]);
return; if (channel == null) {
} sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[1]));
ChatChannel channel = ChatChannel.getChannel(args[1]); return true;
if (channel == null) { }
sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString() if (channel.hasPermission()) {
.replace("{args}", args[1])); if (!player.isOnline()) {
return; sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE_NO_PERMISSIONS_CHECK.toString());
} return true;
if (channel.hasPermission()) { }
if (!player.isOnline()) { if (!player.getPlayer().hasPermission(channel.getPermission())) {
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE_NO_PERMISSIONS_CHECK.toString()); player.removeListening(channel.getName());
return; sender.sendMessage(LocalizedMessage.SET_CHANNEL_PLAYER_CHANNEL_NO_PERMISSION.toString().replace("{player}", player.getName())
} .replace("{channel_color}", channel.getColor() + "").replace("{channel_name}", channel.getName()));
if (!player.getPlayer().hasPermission(channel.getPermission())) { return true;
player.removeListening(channel.getName()); }
sender.sendMessage(LocalizedMessage.SET_CHANNEL_PLAYER_CHANNEL_NO_PERMISSION.toString() }
.replace("{player}", player.getName()) player.addListening(channel.getName());
.replace("{channel_color}", channel.getColor() + "") player.setCurrentChannel(channel);
.replace("{channel_name}", channel.getName())); sender.sendMessage(LocalizedMessage.SET_CHANNEL_SENDER.toString().replace("{player}", player.getName()).replace("{channel_color}", channel.getColor() + "")
return; .replace("{channel_name}", channel.getName()));
} if (player.hasConversation()) {
} for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
player.addListening(channel.getName()); if (p.isSpy()) {
player.setCurrentChannel(channel); p.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString().replace("{player_sender}", player.getName())
sender.sendMessage(LocalizedMessage.SET_CHANNEL_SENDER.toString() .replace("{player_receiver}", MineverseChatAPI.getMineverseChatPlayer(player.getConversation()).getName()));
.replace("{player}", player.getName()) }
.replace("{channel_color}", channel.getColor() + "") }
.replace("{channel_name}", channel.getName())); if (player.isOnline())
if (player.hasConversation()) { player.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION.toString().replace("{player_receiver}",
for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { MineverseChatAPI.getMineverseChatPlayer(player.getConversation()).getName()));
if (p.isSpy()) { else
p.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString() player.setModified(true);
.replace("{player_sender}", player.getName()) player.setConversation(null);
.replace("{player_receiver}", MineverseChatAPI.getMineverseChatPlayer(player.getConversation()).getName())); }
} if (player.isOnline())
} player.getPlayer()
if (player.isOnline()) .sendMessage(LocalizedMessage.SET_CHANNEL.toString().replace("{channel_color}", channel.getColor() + "").replace("{channel_name}", channel.getName()));
player.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION.toString() else {
.replace("{player_receiver}", MineverseChatAPI.getMineverseChatPlayer(player.getConversation()).getName())); player.setModified(true);
else }
player.setModified(true); if (channel.getBungee()) {
player.setConversation(null); MineverseChat.synchronize(player, true);
} }
if (player.isOnline()) return true;
player.getPlayer().sendMessage(LocalizedMessage.SET_CHANNEL.toString() }
.replace("{channel_color}", channel.getColor() + "") sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
.replace("{channel_name}", channel.getName())); return true;
else { }
player.setModified(true);
}
if (channel.getBungee()) {
MineverseChat.synchronize(player, true);
}
return;
}
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
}
} }

View File

@ -1,61 +1,61 @@
package mineverse.Aust1n46.chat.command.chat; package mineverse.Aust1n46.chat.command.chat;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel; import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
public class Setchannelall implements VentureCommand { public class Setchannelall extends Command {
public Setchannelall() {
super("setchannelall");
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public boolean execute(CommandSender sender, String command, String[] args) {
if (sender.hasPermission("venturechat.setchannelall")) { if (sender.hasPermission("venturechat.setchannelall")) {
if (args.length < 1) { if (args.length < 1) {
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/setchannelall").replace("{args}", "[player]"));
.replace("{command}", "/setchannelall") return true;
.replace("{args}", "[player]")); }
return; MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]);
} if (player == null) {
MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]); sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0]));
if (player == null) { return true;
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() }
.replace("{args}", args[0])); boolean isThereABungeeChannel = false;
return; for (ChatChannel channel : ChatChannel.getChatChannels()) {
} if (channel.hasPermission()) {
boolean isThereABungeeChannel = false; if (!player.isOnline()) {
for (ChatChannel channel : ChatChannel.getChatChannels()) { sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE_NO_PERMISSIONS_CHECK.toString());
if (channel.hasPermission()) { return true;
if (!player.isOnline()) { }
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE_NO_PERMISSIONS_CHECK.toString()); if (!player.getPlayer().hasPermission(channel.getPermission())) {
return; player.removeListening(channel.getName());
} } else {
if (!player.getPlayer().hasPermission(channel.getPermission())) { player.addListening(channel.getName());
player.removeListening(channel.getName()); }
} else { } else {
player.addListening(channel.getName()); player.addListening(channel.getName());
} }
} else { if (channel.getBungee()) {
player.addListening(channel.getName()); isThereABungeeChannel = true;
} }
if (channel.getBungee()) { }
isThereABungeeChannel = true; sender.sendMessage(LocalizedMessage.SET_CHANNEL_ALL_SENDER.toString().replace("{player}", player.getName()));
} if (player.isOnline())
} player.getPlayer().sendMessage(LocalizedMessage.SET_CHANNEL_ALL_PLAYER.toString());
sender.sendMessage(LocalizedMessage.SET_CHANNEL_ALL_SENDER.toString() else
.replace("{player}", player.getName())); player.setModified(true);
if (player.isOnline()) if (isThereABungeeChannel) {
player.getPlayer().sendMessage(LocalizedMessage.SET_CHANNEL_ALL_PLAYER.toString()); MineverseChat.synchronize(player, true);
else }
player.setModified(true); return true;
if (isThereABungeeChannel) { }
MineverseChat.synchronize(player, true); sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
} return true;
return; }
}
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
}
} }

View File

@ -6,6 +6,7 @@ import java.util.List;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory; import org.bukkit.inventory.Inventory;
@ -18,186 +19,187 @@ import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel; import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.gui.GuiSlot; import mineverse.Aust1n46.chat.gui.GuiSlot;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import mineverse.Aust1n46.chat.utilities.Format; import mineverse.Aust1n46.chat.utilities.Format;
import mineverse.Aust1n46.chat.versions.VersionHandler; import mineverse.Aust1n46.chat.versions.VersionHandler;
public class VentureChatGui implements VentureCommand { public class VentureChatGui extends Command {
private MineverseChat plugin = MineverseChat.getInstance(); private MineverseChat plugin = MineverseChat.getInstance();
@Override public VentureChatGui() {
public void execute(CommandSender sender, String command, String[] args) { super("venturechatgui");
if (!(sender instanceof Player)) { }
Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return;
}
if (args.length < 3) {
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString()
.replace("{command}", "/venturechatgui")
.replace("{args}", "[player] [channel] [hashcode]"));
return;
}
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
if (mcp.getPlayer().hasPermission("venturechat.gui")) {
MineverseChatPlayer target = MineverseChatAPI.getMineverseChatPlayer(args[0]);
if (target == null && !args[0].equals("Discord")) {
mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString()
.replace("{args}", args[0]));
return;
}
if (ChatChannel.isChannel(args[1])) {
ChatChannel channel = ChatChannel.getChannel(args[1]);
final int hash;
try {
hash = Integer.parseInt(args[2]);
} catch (Exception e) {
sender.sendMessage(LocalizedMessage.INVALID_HASH.toString());
return;
}
if (args[0].equals("Discord")) {
this.openInventoryDiscord(mcp, channel, hash);
return;
}
this.openInventory(mcp, target, channel, hash);
return;
}
mcp.getPlayer().sendMessage(LocalizedMessage.INVALID_CHANNEL.toString()
.replace("{args}", args[1]));
return;
}
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
return;
}
@SuppressWarnings("deprecation") @Override
private void openInventory(MineverseChatPlayer mcp, MineverseChatPlayer target, ChatChannel channel, int hash) { public boolean execute(CommandSender sender, String command, String[] args) {
Inventory inv = Bukkit.createInventory(null, this.getSlots(), "VentureChat: " + target.getName() + " GUI"); if (!(sender instanceof Player)) {
ItemStack close = null; Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
ItemStack skull = null; return true;
if (VersionHandler.is1_7()) { }
close = new ItemStack(Material.BEDROCK); if (args.length < 3) {
} else { sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/venturechatgui").replace("{args}", "[player] [channel] [hashcode]"));
close = new ItemStack(Material.BARRIER); return true;
} }
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
if (mcp.getPlayer().hasPermission("venturechat.gui")) {
MineverseChatPlayer target = MineverseChatAPI.getMineverseChatPlayer(args[0]);
if (target == null && !args[0].equals("Discord")) {
mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0]));
return true;
}
if (ChatChannel.isChannel(args[1])) {
ChatChannel channel = ChatChannel.getChannel(args[1]);
final int hash;
try {
hash = Integer.parseInt(args[2]);
} catch (Exception e) {
sender.sendMessage(LocalizedMessage.INVALID_HASH.toString());
return true;
}
if (args[0].equals("Discord")) {
this.openInventoryDiscord(mcp, channel, hash);
return true;
}
this.openInventory(mcp, target, channel, hash);
return true;
}
mcp.getPlayer().sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[1]));
return true;
}
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
return true;
}
if (VersionHandler.is1_7() || VersionHandler.is1_8() || VersionHandler.is1_9() || VersionHandler.is1_10() || VersionHandler.is1_11() || VersionHandler.is1_12()) { @SuppressWarnings("deprecation")
skull = new ItemStack(Material.getMaterial("SKULL_ITEM")); private void openInventory(MineverseChatPlayer mcp, MineverseChatPlayer target, ChatChannel channel, int hash) {
} else { Inventory inv = Bukkit.createInventory(null, this.getSlots(), "VentureChat: " + target.getName() + " GUI");
skull = new ItemStack(Material.PLAYER_HEAD); ItemStack close = null;
} ItemStack skull = null;
if (VersionHandler.is1_7()) {
close = new ItemStack(Material.BEDROCK);
} else {
close = new ItemStack(Material.BARRIER);
}
ItemMeta closeMeta = close.getItemMeta(); if (VersionHandler.is1_7() || VersionHandler.is1_8() || VersionHandler.is1_9() || VersionHandler.is1_10() || VersionHandler.is1_11() || VersionHandler.is1_12()) {
closeMeta.setDisplayName(ChatColor.RED + "" + ChatColor.ITALIC + "Close GUI"); skull = new ItemStack(Material.getMaterial("SKULL_ITEM"));
close.setItemMeta(closeMeta); } else {
skull = new ItemStack(Material.PLAYER_HEAD);
}
SkullMeta skullMeta = (SkullMeta) skull.getItemMeta(); ItemMeta closeMeta = close.getItemMeta();
skullMeta.setOwner(target.getName()); closeMeta.setDisplayName(ChatColor.RED + "" + ChatColor.ITALIC + "Close GUI");
skullMeta.setDisplayName(ChatColor.AQUA + target.getName()); close.setItemMeta(closeMeta);
List<String> skullLore = new ArrayList<String>();
skullLore.add(ChatColor.GRAY + "Channel: " + channel.getColor() + channel.getName());
skullLore.add(ChatColor.GRAY + "Hash: " + channel.getColor() + hash);
skullMeta.setLore(skullLore);
skull.setItemMeta(skullMeta);
skull.setDurability((short) 3);
inv.setItem(0, skull);
for (GuiSlot g : GuiSlot.getGuiSlots()) { SkullMeta skullMeta = (SkullMeta) skull.getItemMeta();
if (!g.hasPermission() || mcp.getPlayer().hasPermission(g.getPermission())) { skullMeta.setOwner(target.getName());
if (this.checkSlot(g.getSlot())) { skullMeta.setDisplayName(ChatColor.AQUA + target.getName());
MineverseChat.getInstance().getServer().getConsoleSender().sendMessage(Format.FormatStringAll("&cGUI: " + g.getName() + " has invalid slot: " + g.getSlot() + "!")); List<String> skullLore = new ArrayList<String>();
continue; skullLore.add(ChatColor.GRAY + "Channel: " + channel.getColor() + channel.getName());
} skullLore.add(ChatColor.GRAY + "Hash: " + channel.getColor() + hash);
ItemStack gStack = new ItemStack(g.getIcon()); skullMeta.setLore(skullLore);
gStack.setDurability((short) g.getDurability()); skull.setItemMeta(skullMeta);
ItemMeta gMeta = gStack.getItemMeta(); skull.setDurability((short) 3);
String displayName = g.getText().replace("{player_name}", target.getName()).replace("{channel}", channel.getName()).replace("{hash}", hash + ""); inv.setItem(0, skull);
if (target.isOnline()) {
displayName = PlaceholderAPI.setBracketPlaceholders(target.getPlayer(), displayName);
}
gMeta.setDisplayName(Format.FormatStringAll(displayName));
List<String> gLore = new ArrayList<String>();
gMeta.setLore(gLore);
gStack.setItemMeta(gMeta);
inv.setItem(g.getSlot(), gStack);
}
}
inv.setItem(8, close); for (GuiSlot g : GuiSlot.getGuiSlots()) {
mcp.getPlayer().openInventory(inv); if (!g.hasPermission() || mcp.getPlayer().hasPermission(g.getPermission())) {
} if (this.checkSlot(g.getSlot())) {
MineverseChat.getInstance().getServer().getConsoleSender()
.sendMessage(Format.FormatStringAll("&cGUI: " + g.getName() + " has invalid slot: " + g.getSlot() + "!"));
continue;
}
ItemStack gStack = new ItemStack(g.getIcon());
gStack.setDurability((short) g.getDurability());
ItemMeta gMeta = gStack.getItemMeta();
String displayName = g.getText().replace("{player_name}", target.getName()).replace("{channel}", channel.getName()).replace("{hash}", hash + "");
if (target.isOnline()) {
displayName = PlaceholderAPI.setBracketPlaceholders(target.getPlayer(), displayName);
}
gMeta.setDisplayName(Format.FormatStringAll(displayName));
List<String> gLore = new ArrayList<String>();
gMeta.setLore(gLore);
gStack.setItemMeta(gMeta);
inv.setItem(g.getSlot(), gStack);
}
}
@SuppressWarnings("deprecation") inv.setItem(8, close);
private void openInventoryDiscord(MineverseChatPlayer mcp, ChatChannel channel, int hash) { mcp.getPlayer().openInventory(inv);
Inventory inv = Bukkit.createInventory(null, this.getSlots(), "VentureChat: Discord_Message GUI"); }
ItemStack close = null;
ItemStack skull = null;
if (VersionHandler.is1_7()) {
close = new ItemStack(Material.BEDROCK);
} else {
close = new ItemStack(Material.BARRIER);
}
if (VersionHandler.is1_7() || VersionHandler.is1_8() || VersionHandler.is1_9() || VersionHandler.is1_10() || VersionHandler.is1_11() || VersionHandler.is1_12()) { @SuppressWarnings("deprecation")
skull = new ItemStack(Material.getMaterial("SKULL_ITEM")); private void openInventoryDiscord(MineverseChatPlayer mcp, ChatChannel channel, int hash) {
} else { Inventory inv = Bukkit.createInventory(null, this.getSlots(), "VentureChat: Discord_Message GUI");
skull = new ItemStack(Material.PLAYER_HEAD); ItemStack close = null;
} ItemStack skull = null;
if (VersionHandler.is1_7()) {
close = new ItemStack(Material.BEDROCK);
} else {
close = new ItemStack(Material.BARRIER);
}
ItemMeta closeMeta = close.getItemMeta(); if (VersionHandler.is1_7() || VersionHandler.is1_8() || VersionHandler.is1_9() || VersionHandler.is1_10() || VersionHandler.is1_11() || VersionHandler.is1_12()) {
closeMeta.setDisplayName("<EFBFBD>oClose GUI"); skull = new ItemStack(Material.getMaterial("SKULL_ITEM"));
close.setItemMeta(closeMeta); } else {
skull = new ItemStack(Material.PLAYER_HEAD);
}
SkullMeta skullMeta = (SkullMeta) skull.getItemMeta(); ItemMeta closeMeta = close.getItemMeta();
skullMeta.setOwner("Scarsz"); closeMeta.setDisplayName("<EFBFBD>oClose GUI");
skullMeta.setDisplayName("<EFBFBD>bDiscord_Message"); close.setItemMeta(closeMeta);
List<String> skullLore = new ArrayList<String>();
skullLore.add("<EFBFBD>7Channel: " + channel.getColor() + channel.getName());
skullLore.add("<EFBFBD>7Hash: " + channel.getColor() + hash);
skullMeta.setLore(skullLore);
skull.setItemMeta(skullMeta);
skull.setDurability((short) 3);
inv.setItem(0, skull);
for (GuiSlot g : GuiSlot.getGuiSlots()) { SkullMeta skullMeta = (SkullMeta) skull.getItemMeta();
if (!g.hasPermission() || mcp.getPlayer().hasPermission(g.getPermission())) { skullMeta.setOwner("Scarsz");
if (this.checkSlot(g.getSlot())) { skullMeta.setDisplayName("<EFBFBD>bDiscord_Message");
MineverseChat.getInstance().getServer().getConsoleSender().sendMessage(Format.FormatStringAll("&cGUI: " + g.getName() + " has invalid slot: " + g.getSlot() + "!")); List<String> skullLore = new ArrayList<String>();
continue; skullLore.add("<EFBFBD>7Channel: " + channel.getColor() + channel.getName());
} skullLore.add("<EFBFBD>7Hash: " + channel.getColor() + hash);
ItemStack gStack = new ItemStack(g.getIcon()); skullMeta.setLore(skullLore);
gStack.setDurability((short) g.getDurability()); skull.setItemMeta(skullMeta);
ItemMeta gMeta = gStack.getItemMeta(); skull.setDurability((short) 3);
String displayName = g.getText().replace("{player_name}", "Discord_Message").replace("{channel}", channel.getName()).replace("{hash}", hash + ""); inv.setItem(0, skull);
gMeta.setDisplayName(Format.FormatStringAll(displayName));
List<String> gLore = new ArrayList<String>();
gMeta.setLore(gLore);
gStack.setItemMeta(gMeta);
inv.setItem(g.getSlot(), gStack);
}
}
inv.setItem(8, close); for (GuiSlot g : GuiSlot.getGuiSlots()) {
mcp.getPlayer().openInventory(inv); if (!g.hasPermission() || mcp.getPlayer().hasPermission(g.getPermission())) {
} if (this.checkSlot(g.getSlot())) {
MineverseChat.getInstance().getServer().getConsoleSender()
.sendMessage(Format.FormatStringAll("&cGUI: " + g.getName() + " has invalid slot: " + g.getSlot() + "!"));
continue;
}
ItemStack gStack = new ItemStack(g.getIcon());
gStack.setDurability((short) g.getDurability());
ItemMeta gMeta = gStack.getItemMeta();
String displayName = g.getText().replace("{player_name}", "Discord_Message").replace("{channel}", channel.getName()).replace("{hash}", hash + "");
gMeta.setDisplayName(Format.FormatStringAll(displayName));
List<String> gLore = new ArrayList<String>();
gMeta.setLore(gLore);
gStack.setItemMeta(gMeta);
inv.setItem(g.getSlot(), gStack);
}
}
private boolean checkSlot(int slot) { inv.setItem(8, close);
return slot == 0 || slot == 8; mcp.getPlayer().openInventory(inv);
} }
private int getSlots() { private boolean checkSlot(int slot) {
int rows = plugin.getConfig().getInt("guirows", 1); return slot == 0 || slot == 8;
if (rows == 2) }
return 18;
if (rows == 3) private int getSlots() {
return 27; int rows = plugin.getConfig().getInt("guirows", 1);
if (rows == 4) if (rows == 2)
return 36; return 18;
if (rows == 5) if (rows == 3)
return 45; return 27;
if (rows == 6) if (rows == 4)
return 54; return 36;
return 9; if (rows == 5)
} return 45;
if (rows == 6)
return 54;
return 9;
}
} }

View File

@ -1,7 +1,12 @@
package mineverse.Aust1n46.chat.command.chat; package mineverse.Aust1n46.chat.command.chat;
import org.bukkit.command.Command;
//import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
//import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer;
//import org.bukkit.entity.Player;
import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.InternalMessage; import mineverse.Aust1n46.chat.localization.InternalMessage;
//import net.md_5.bungee.api.chat.ClickEvent; //import net.md_5.bungee.api.chat.ClickEvent;
//import net.md_5.bungee.api.chat.ComponentBuilder; //import net.md_5.bungee.api.chat.ComponentBuilder;
@ -10,19 +15,19 @@ import mineverse.Aust1n46.chat.localization.InternalMessage;
//import net.minecraft.server.v1_15_R1.IChatBaseComponent; //import net.minecraft.server.v1_15_R1.IChatBaseComponent;
//import net.minecraft.server.v1_15_R1.PacketPlayOutChat; //import net.minecraft.server.v1_15_R1.PacketPlayOutChat;
//import org.bukkit.ChatColor; public class Venturechat extends Command {
import org.bukkit.command.CommandSender;
//import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer;
//import org.bukkit.entity.Player;
public class Venturechat implements VentureCommand {
private MineverseChat plugin = MineverseChat.getInstance(); private MineverseChat plugin = MineverseChat.getInstance();
public Venturechat() {
super("venturechat");
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public boolean execute(CommandSender sender, String command, String[] args) {
sender.sendMessage(InternalMessage.VENTURECHAT_VERSION.toString() sender.sendMessage(InternalMessage.VENTURECHAT_VERSION.toString()
.replace("{version}", plugin.getDescription().getVersion())); .replace("{version}", plugin.getDescription().getVersion()));
sender.sendMessage(InternalMessage.VENTURECHAT_AUTHOR.toString()); sender.sendMessage(InternalMessage.VENTURECHAT_AUTHOR.toString());
return true;
// if (sender instanceof Player && plugin.getConfig().getString("loglevel", "info").equals("debug")) { // if (sender instanceof Player && plugin.getConfig().getString("loglevel", "info").equals("debug")) {
// Player player = (Player) sender; // Player player = (Player) sender;
// String title = ChatColor.GOLD + " | " + ChatColor.BLUE.toString() + ChatColor.BOLD + "SpigotAPI chat message" + ChatColor.RESET + ChatColor.GOLD + " | "; // String title = ChatColor.GOLD + " | " + ChatColor.BLUE.toString() + ChatColor.BOLD + "SpigotAPI chat message" + ChatColor.RESET + ChatColor.GOLD + " | ";

View File

@ -16,92 +16,91 @@ import org.bukkit.util.StringUtil;
import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
public class Ignore implements VentureCommand { public class Ignore extends Command {
private MineverseChat plugin = MineverseChat.getInstance(); public Ignore() {
super("ignore");
}
@Override private MineverseChat plugin = MineverseChat.getInstance();
public void execute(CommandSender sender, String command, String[] args) {
if (!(sender instanceof Player)) {
plugin.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return;
}
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
if (args.length == 0) {
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS_IGNORE.toString());
return;
}
if (args[0].equalsIgnoreCase("list")) {
String ignoreList = "";
for (UUID ignore : mcp.getIgnores()) {
MineverseChatPlayer i = MineverseChatAPI.getMineverseChatPlayer(ignore);
String iName = ignore.toString();
if (i != null) {
iName = i.getName();
}
ignoreList += ChatColor.RED + iName + ChatColor.WHITE + ", ";
}
mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_LIST_HEADER.toString());
if (ignoreList.length() > 0) {
mcp.getPlayer().sendMessage(ignoreList.substring(0, ignoreList.length() - 2));
}
return;
}
if (mcp.getName().equalsIgnoreCase(args[0])) {
mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_YOURSELF.toString());
return;
}
if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) {
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(byteOutStream);
try {
out.writeUTF("Ignore");
out.writeUTF("Send");
out.writeUTF(args[0]);
out.writeUTF(mcp.getUUID().toString());
mcp.getPlayer().sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray());
out.close();
} catch (Exception e) {
e.printStackTrace();
}
return;
}
MineverseChatPlayer player = MineverseChatAPI.getOnlineMineverseChatPlayer(args[0]); @Override
if (player == null) { public boolean execute(CommandSender sender, String command, String[] args) {
mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() if (!(sender instanceof Player)) {
.replace("{args}", args[0])); plugin.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return; return true;
} }
if (mcp.getIgnores().contains(player.getUUID())) { MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_PLAYER_OFF.toString() if (args.length == 0) {
.replace("{player}", player.getName())); mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS_IGNORE.toString());
mcp.removeIgnore(player.getUUID()); return true;
MineverseChat.synchronize(mcp, true); }
return; if (args[0].equalsIgnoreCase("list")) {
} String ignoreList = "";
if (player.getPlayer().hasPermission("venturechat.ignore.bypass")) { for (UUID ignore : mcp.getIgnores()) {
mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_PLAYER_CANT.toString() MineverseChatPlayer i = MineverseChatAPI.getMineverseChatPlayer(ignore);
.replace("{player}", player.getName())); String iName = ignore.toString();
return; if (i != null) {
} iName = i.getName();
mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_PLAYER_ON.toString() }
.replace("{player}", player.getName())); ignoreList += ChatColor.RED + iName + ChatColor.WHITE + ", ";
mcp.addIgnore(player.getUUID()); }
MineverseChat.synchronize(mcp, true); mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_LIST_HEADER.toString());
return; if (ignoreList.length() > 0) {
} mcp.getPlayer().sendMessage(ignoreList.substring(0, ignoreList.length() - 2));
}
return true;
}
if (mcp.getName().equalsIgnoreCase(args[0])) {
mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_YOURSELF.toString());
return true;
}
if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) {
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(byteOutStream);
try {
out.writeUTF("Ignore");
out.writeUTF("Send");
out.writeUTF(args[0]);
out.writeUTF(mcp.getUUID().toString());
mcp.getPlayer().sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray());
out.close();
} catch (Exception e) {
e.printStackTrace();
}
return true;
}
@Override MineverseChatPlayer player = MineverseChatAPI.getOnlineMineverseChatPlayer(args[0]);
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) { if (player == null) {
if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) { mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0]));
List<String> completions = new ArrayList<>(); return true;
StringUtil.copyPartialMatches(args[args.length - 1], MineverseChatAPI.getNetworkPlayerNames(), completions); }
Collections.sort(completions); if (mcp.getIgnores().contains(player.getUUID())) {
return completions; mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_PLAYER_OFF.toString().replace("{player}", player.getName()));
} mcp.removeIgnore(player.getUUID());
return null; MineverseChat.synchronize(mcp, true);
} return true;
}
if (player.getPlayer().hasPermission("venturechat.ignore.bypass")) {
mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_PLAYER_CANT.toString().replace("{player}", player.getName()));
return true;
}
mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_PLAYER_ON.toString().replace("{player}", player.getName()));
mcp.addIgnore(player.getUUID());
MineverseChat.synchronize(mcp, true);
return true;
}
@Override
public List<String> tabComplete(CommandSender sender, String label, String[] args) {
if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) {
List<String> completions = new ArrayList<>();
StringUtil.copyPartialMatches(args[args.length - 1], MineverseChatAPI.getNetworkPlayerNames(), completions);
Collections.sort(completions);
return completions;
}
return null;
}
} }

View File

@ -15,202 +15,193 @@ import me.clip.placeholderapi.PlaceholderAPI;
import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import mineverse.Aust1n46.chat.utilities.Format; import mineverse.Aust1n46.chat.utilities.Format;
public class Message implements VentureCommand { public class Message extends Command {
private MineverseChat plugin = MineverseChat.getInstance(); public Message() {
super("message");
}
@Override private MineverseChat plugin = MineverseChat.getInstance();
public void execute(CommandSender sender, String command, String[] args) {
if (!(sender instanceof Player)) {
plugin.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return;
}
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); @Override
if (args.length == 0) { public boolean execute(CommandSender sender, String command, String[] args) {
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() if (!(sender instanceof Player)) {
.replace("{command}", "/" + command) plugin.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
.replace("{args}", "[player] [message]")); return true;
return; }
}
if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) { MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
sendBungeeCordMessage(mcp, command, args); if (args.length == 0) {
return; mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/" + command).replace("{args}", "[player] [message]"));
} return true;
}
MineverseChatPlayer player = MineverseChatAPI.getOnlineMineverseChatPlayer(args[0]); if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) {
if (player == null) { sendBungeeCordMessage(mcp, command, args);
mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() return true;
.replace("{args}", args[0])); }
return;
}
if (!mcp.getPlayer().canSee(player.getPlayer())) {
mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString()
.replace("{args}", args[0]));
return;
}
if (player.getIgnores().contains(mcp.getUUID())) {
mcp.getPlayer().sendMessage(LocalizedMessage.IGNORING_MESSAGE.toString()
.replace("{player}", player.getName()));
return;
}
if (!player.getMessageToggle()) {
mcp.getPlayer().sendMessage(LocalizedMessage.BLOCKING_MESSAGE.toString()
.replace("{player}", player.getName()));
return;
}
if (args.length >= 2) { MineverseChatPlayer player = MineverseChatAPI.getOnlineMineverseChatPlayer(args[0]);
String msg = ""; if (player == null) {
String echo = ""; mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0]));
String send = ""; return true;
String spy = ""; }
if (args[1].length() > 0) { if (!mcp.getPlayer().canSee(player.getPlayer())) {
for (int r = 1; r < args.length; r++) { mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0]));
msg += " " + args[r]; return true;
} }
if (mcp.hasFilter()) { if (player.getIgnores().contains(mcp.getUUID())) {
msg = Format.FilterChat(msg); mcp.getPlayer().sendMessage(LocalizedMessage.IGNORING_MESSAGE.toString().replace("{player}", player.getName()));
} return true;
if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) { }
msg = Format.FormatStringLegacyColor(msg); if (!player.getMessageToggle()) {
} mcp.getPlayer().sendMessage(LocalizedMessage.BLOCKING_MESSAGE.toString().replace("{player}", player.getName()));
if (mcp.getPlayer().hasPermission("venturechat.color")) { return true;
msg = Format.FormatStringColor(msg); }
}
if (mcp.getPlayer().hasPermission("venturechat.format")) {
msg = Format.FormatString(msg);
}
send = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatfrom").replaceAll("sender_", ""))); if (args.length >= 2) {
echo = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatto").replaceAll("sender_", ""))); String msg = "";
spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatspy").replaceAll("sender_", ""))); String echo = "";
String send = "";
String spy = "";
if (args[1].length() > 0) {
for (int r = 1; r < args.length; r++) {
msg += " " + args[r];
}
if (mcp.hasFilter()) {
msg = Format.FilterChat(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) {
msg = Format.FormatStringLegacyColor(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.color")) {
msg = Format.FormatStringColor(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.format")) {
msg = Format.FormatString(msg);
}
send = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), send.replaceAll("receiver_", ""))) + msg; send = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatfrom").replaceAll("sender_", "")));
echo = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), echo.replaceAll("receiver_", ""))) + msg; echo = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatto").replaceAll("sender_", "")));
spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), spy.replaceAll("receiver_", ""))) + msg; spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatspy").replaceAll("sender_", "")));
player.setReplyPlayer(mcp.getUUID()); send = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), send.replaceAll("receiver_", ""))) + msg;
mcp.setReplyPlayer(player.getUUID()); echo = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), echo.replaceAll("receiver_", ""))) + msg;
player.getPlayer().sendMessage(send); spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), spy.replaceAll("receiver_", ""))) + msg;
mcp.getPlayer().sendMessage(echo);
if (player.hasNotifications()) {
Format.playMessageSound(player);
}
if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) {
for (MineverseChatPlayer sp : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if (sp.getName().equals(mcp.getName()) || sp.getName().equals(player.getName())) {
continue;
}
if (sp.isSpy()) {
sp.getPlayer().sendMessage(spy);
}
}
}
}
}
if (args.length == 1) {
if (args[0].length() > 0) {
if (!mcp.hasConversation() || (mcp.hasConversation() && !mcp.getConversation().toString().equals(player.getUUID().toString()))) {
mcp.setConversation(player.getUUID());
if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) {
for (MineverseChatPlayer sp : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if (sp.getName().equals(mcp.getName())) {
continue;
}
if (sp.isSpy()) {
sp.getPlayer().sendMessage(LocalizedMessage.ENTER_PRIVATE_CONVERSATION_SPY.toString()
.replace("{player_sender}", mcp.getName())
.replace("{player_receiver}", player.getName()));
}
}
}
mcp.getPlayer().sendMessage(LocalizedMessage.ENTER_PRIVATE_CONVERSATION.toString()
.replace("{player_receiver}", player.getName()));
} else {
mcp.setConversation(null);
if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) {
for (MineverseChatPlayer sp : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if (sp.getName().equals(mcp.getName())) {
continue;
}
if (sp.isSpy()) {
sp.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString()
.replace("{player_sender}", mcp.getName())
.replace("{player_receiver}", player.getName()));
}
}
}
mcp.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION.toString()
.replace("{player_receiver}", player.getName()));
}
}
}
return;
}
@Override player.setReplyPlayer(mcp.getUUID());
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) { mcp.setReplyPlayer(player.getUUID());
if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) { player.getPlayer().sendMessage(send);
List<String> completions = new ArrayList<>(); mcp.getPlayer().sendMessage(echo);
StringUtil.copyPartialMatches(args[args.length - 1], MineverseChatAPI.getNetworkPlayerNames(), completions); if (player.hasNotifications()) {
Collections.sort(completions); Format.playMessageSound(player);
return completions; }
} if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) {
return null; for (MineverseChatPlayer sp : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
} if (sp.getName().equals(mcp.getName()) || sp.getName().equals(player.getName())) {
continue;
}
if (sp.isSpy()) {
sp.getPlayer().sendMessage(spy);
}
}
}
}
}
if (args.length == 1) {
if (args[0].length() > 0) {
if (!mcp.hasConversation() || (mcp.hasConversation() && !mcp.getConversation().toString().equals(player.getUUID().toString()))) {
mcp.setConversation(player.getUUID());
if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) {
for (MineverseChatPlayer sp : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if (sp.getName().equals(mcp.getName())) {
continue;
}
if (sp.isSpy()) {
sp.getPlayer().sendMessage(LocalizedMessage.ENTER_PRIVATE_CONVERSATION_SPY.toString().replace("{player_sender}", mcp.getName())
.replace("{player_receiver}", player.getName()));
}
}
}
mcp.getPlayer().sendMessage(LocalizedMessage.ENTER_PRIVATE_CONVERSATION.toString().replace("{player_receiver}", player.getName()));
} else {
mcp.setConversation(null);
if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) {
for (MineverseChatPlayer sp : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if (sp.getName().equals(mcp.getName())) {
continue;
}
if (sp.isSpy()) {
sp.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString().replace("{player_sender}", mcp.getName())
.replace("{player_receiver}", player.getName()));
}
}
}
mcp.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION.toString().replace("{player_receiver}", player.getName()));
}
}
}
return true;
}
private void sendBungeeCordMessage(MineverseChatPlayer mcp, String command, String[] args) { @Override
if (args.length < 2) { public List<String> tabComplete(CommandSender sender, String label, String[] args) {
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) {
.replace("{command}", "/" + command) List<String> completions = new ArrayList<>();
.replace("{args}", "[player] [message]")); StringUtil.copyPartialMatches(args[args.length - 1], MineverseChatAPI.getNetworkPlayerNames(), completions);
return; Collections.sort(completions);
} return completions;
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); }
DataOutputStream out = new DataOutputStream(byteOutStream); return null;
StringBuilder msgBuilder = new StringBuilder(); }
for (int r = 1; r < args.length; r++) {
msgBuilder.append(" " + args[r]);
}
String msg = msgBuilder.toString();
if (mcp.hasFilter()) {
msg = Format.FilterChat(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) {
msg = Format.FormatStringLegacyColor(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.color")) {
msg = Format.FormatStringColor(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.format")) {
msg = Format.FormatString(msg);
}
String send = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatfrom").replaceAll("sender_", ""))); private void sendBungeeCordMessage(MineverseChatPlayer mcp, String command, String[] args) {
String echo = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatto").replaceAll("sender_", ""))); if (args.length < 2) {
String spy = "VentureChat:NoSpy"; mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/" + command).replace("{args}", "[player] [message]"));
if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) { return;
spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatspy").replaceAll("sender_", ""))); }
} ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
try { DataOutputStream out = new DataOutputStream(byteOutStream);
out.writeUTF("Message"); StringBuilder msgBuilder = new StringBuilder();
out.writeUTF("Send"); for (int r = 1; r < args.length; r++) {
out.writeUTF(args[0]); msgBuilder.append(" " + args[r]);
out.writeUTF(mcp.getUUID().toString()); }
out.writeUTF(mcp.getName()); String msg = msgBuilder.toString();
out.writeUTF(send); if (mcp.hasFilter()) {
out.writeUTF(echo); msg = Format.FilterChat(msg);
out.writeUTF(spy); }
out.writeUTF(msg); if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) {
mcp.getPlayer().sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray()); msg = Format.FormatStringLegacyColor(msg);
out.close(); }
} catch (Exception e) { if (mcp.getPlayer().hasPermission("venturechat.color")) {
e.printStackTrace(); msg = Format.FormatStringColor(msg);
} }
} if (mcp.getPlayer().hasPermission("venturechat.format")) {
msg = Format.FormatString(msg);
}
String send = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatfrom").replaceAll("sender_", "")));
String echo = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatto").replaceAll("sender_", "")));
String spy = "VentureChat:NoSpy";
if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) {
spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatspy").replaceAll("sender_", "")));
}
try {
out.writeUTF("Message");
out.writeUTF("Send");
out.writeUTF(args[0]);
out.writeUTF(mcp.getUUID().toString());
out.writeUTF(mcp.getName());
out.writeUTF(send);
out.writeUTF(echo);
out.writeUTF(spy);
out.writeUTF(msg);
mcp.getPlayer().sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray());
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
} }

View File

@ -1,37 +1,40 @@
package mineverse.Aust1n46.chat.command.message; package mineverse.Aust1n46.chat.command.message;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
public class MessageToggle implements VentureCommand { public class MessageToggle extends Command {
public MessageToggle() {
super("messagetoggle");
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public boolean execute(CommandSender sender, String command, String[] args) {
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return; return true;
} }
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
if (mcp.getPlayer().hasPermission("venturechat.messagetoggle")) { if (mcp.getPlayer().hasPermission("venturechat.messagetoggle")) {
if (!mcp.getMessageToggle()) { if (!mcp.getMessageToggle()) {
mcp.setMessageToggle(true); mcp.setMessageToggle(true);
mcp.getPlayer().sendMessage(LocalizedMessage.MESSAGE_TOGGLE_ON.toString()); mcp.getPlayer().sendMessage(LocalizedMessage.MESSAGE_TOGGLE_ON.toString());
MineverseChat.synchronize(mcp, true); MineverseChat.synchronize(mcp, true);
return; return true;
} }
mcp.setMessageToggle(false); mcp.setMessageToggle(false);
mcp.getPlayer().sendMessage(LocalizedMessage.MESSAGE_TOGGLE_OFF.toString()); mcp.getPlayer().sendMessage(LocalizedMessage.MESSAGE_TOGGLE_OFF.toString());
MineverseChat.synchronize(mcp, true); MineverseChat.synchronize(mcp, true);
return; return true;
} }
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
return; return true;
} }
} }

View File

@ -1,31 +1,34 @@
package mineverse.Aust1n46.chat.command.message; package mineverse.Aust1n46.chat.command.message;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
public class Notifications implements VentureCommand { public class Notifications extends Command {
public Notifications() {
super("notifications");
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public boolean execute(CommandSender sender, String command, String[] args) {
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return; return true;
} }
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
if (!mcp.hasNotifications()) { if (!mcp.hasNotifications()) {
mcp.setNotifications(true); mcp.setNotifications(true);
mcp.getPlayer().sendMessage(LocalizedMessage.NOTIFICATIONS_ON.toString()); mcp.getPlayer().sendMessage(LocalizedMessage.NOTIFICATIONS_ON.toString());
return; return true;
} }
mcp.setNotifications(false); mcp.setNotifications(false);
mcp.getPlayer().sendMessage(LocalizedMessage.NOTIFICATIONS_OFF.toString()); mcp.getPlayer().sendMessage(LocalizedMessage.NOTIFICATIONS_OFF.toString());
return; return true;
} }
} }

View File

@ -3,6 +3,7 @@ package mineverse.Aust1n46.chat.command.message;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream; import java.io.DataOutputStream;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -10,142 +11,143 @@ import me.clip.placeholderapi.PlaceholderAPI;
import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import mineverse.Aust1n46.chat.utilities.Format; import mineverse.Aust1n46.chat.utilities.Format;
public class Reply implements VentureCommand { public class Reply extends Command {
private MineverseChat plugin = MineverseChat.getInstance(); private MineverseChat plugin = MineverseChat.getInstance();
@Override public Reply() {
public void execute(CommandSender sender, String command, String[] args) { super("reply");
if (!(sender instanceof Player)) { }
plugin.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return;
}
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
if (args.length > 0) {
if (mcp.hasReplyPlayer()) {
if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) {
sendBungeeCordReply(mcp, args);
return;
}
MineverseChatPlayer player = MineverseChatAPI.getOnlineMineverseChatPlayer(mcp.getReplyPlayer()); @Override
if (player == null) { public boolean execute(CommandSender sender, String command, String[] args) {
mcp.getPlayer().sendMessage(LocalizedMessage.NO_PLAYER_TO_REPLY_TO.toString()); if (!(sender instanceof Player)) {
return; plugin.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
} return true;
if (!mcp.getPlayer().canSee(player.getPlayer())) { }
mcp.getPlayer().sendMessage(LocalizedMessage.NO_PLAYER_TO_REPLY_TO.toString()); MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
return; if (args.length > 0) {
} if (mcp.hasReplyPlayer()) {
if (player.getIgnores().contains(mcp.getUUID())) { if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) {
mcp.getPlayer().sendMessage(LocalizedMessage.IGNORING_MESSAGE.toString() sendBungeeCordReply(mcp, args);
.replace("{player}", player.getName())); return true;
return; }
}
if (!player.getMessageToggle()) {
mcp.getPlayer().sendMessage(LocalizedMessage.BLOCKING_MESSAGE.toString()
.replace("{player}", player.getName()));
return;
}
String msg = "";
String echo = "";
String send = "";
String spy = "";
if (args.length > 0) {
for (int r = 0; r < args.length; r++)
msg += " " + args[r];
if (mcp.hasFilter()) {
msg = Format.FilterChat(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) {
msg = Format.FormatStringLegacyColor(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.color")) {
msg = Format.FormatStringColor(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.format")) {
msg = Format.FormatString(msg);
}
send = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatfrom").replaceAll("sender_", ""))); MineverseChatPlayer player = MineverseChatAPI.getOnlineMineverseChatPlayer(mcp.getReplyPlayer());
echo = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatto").replaceAll("sender_", ""))); if (player == null) {
spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatspy").replaceAll("sender_", ""))); mcp.getPlayer().sendMessage(LocalizedMessage.NO_PLAYER_TO_REPLY_TO.toString());
return true;
}
if (!mcp.getPlayer().canSee(player.getPlayer())) {
mcp.getPlayer().sendMessage(LocalizedMessage.NO_PLAYER_TO_REPLY_TO.toString());
return true;
}
if (player.getIgnores().contains(mcp.getUUID())) {
mcp.getPlayer().sendMessage(LocalizedMessage.IGNORING_MESSAGE.toString().replace("{player}", player.getName()));
return true;
}
if (!player.getMessageToggle()) {
mcp.getPlayer().sendMessage(LocalizedMessage.BLOCKING_MESSAGE.toString().replace("{player}", player.getName()));
return true;
}
String msg = "";
String echo = "";
String send = "";
String spy = "";
if (args.length > 0) {
for (int r = 0; r < args.length; r++)
msg += " " + args[r];
if (mcp.hasFilter()) {
msg = Format.FilterChat(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) {
msg = Format.FormatStringLegacyColor(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.color")) {
msg = Format.FormatStringColor(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.format")) {
msg = Format.FormatString(msg);
}
send = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), send.replaceAll("receiver_", ""))) + msg; send = Format
echo = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), echo.replaceAll("receiver_", ""))) + msg; .FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatfrom").replaceAll("sender_", "")));
spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), spy.replaceAll("receiver_", ""))) + msg; echo = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatto").replaceAll("sender_", "")));
spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatspy").replaceAll("sender_", "")));
if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) { send = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), send.replaceAll("receiver_", ""))) + msg;
for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { echo = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), echo.replaceAll("receiver_", ""))) + msg;
if (p.getName().equals(mcp.getName()) || p.getName().equals(player.getName())) { spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), spy.replaceAll("receiver_", ""))) + msg;
continue;
}
if (p.isSpy()) {
p.getPlayer().sendMessage(spy);
}
}
}
player.getPlayer().sendMessage(send);
mcp.getPlayer().sendMessage(echo);
if (player.hasNotifications()) {
Format.playMessageSound(player);
}
player.setReplyPlayer(mcp.getUUID());
return;
}
}
mcp.getPlayer().sendMessage(LocalizedMessage.NO_PLAYER_TO_REPLY_TO.toString());
return;
}
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString()
.replace("{command}", "/reply")
.replace("{args}", "[message]"));
}
private void sendBungeeCordReply(MineverseChatPlayer mcp, String[] args) { if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) {
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
DataOutputStream out = new DataOutputStream(byteOutStream); if (p.getName().equals(mcp.getName()) || p.getName().equals(player.getName())) {
StringBuilder msgBuilder = new StringBuilder(); continue;
for (int r = 0; r < args.length; r++) { }
msgBuilder.append(" " + args[r]); if (p.isSpy()) {
} p.getPlayer().sendMessage(spy);
String msg = msgBuilder.toString(); }
if (mcp.hasFilter()) { }
msg = Format.FilterChat(msg); }
} player.getPlayer().sendMessage(send);
if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) { mcp.getPlayer().sendMessage(echo);
msg = Format.FormatStringLegacyColor(msg); if (player.hasNotifications()) {
} Format.playMessageSound(player);
if (mcp.getPlayer().hasPermission("venturechat.color")) { }
msg = Format.FormatStringColor(msg); player.setReplyPlayer(mcp.getUUID());
} return true;
if (mcp.getPlayer().hasPermission("venturechat.format")) { }
msg = Format.FormatString(msg); }
} mcp.getPlayer().sendMessage(LocalizedMessage.NO_PLAYER_TO_REPLY_TO.toString());
return true;
}
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/reply").replace("{args}", "[message]"));
return true;
}
String send = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatfrom").replaceAll("sender_", ""))); private void sendBungeeCordReply(MineverseChatPlayer mcp, String[] args) {
String echo = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatto").replaceAll("sender_", ""))); ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
String spy = "VentureChat:NoSpy"; DataOutputStream out = new DataOutputStream(byteOutStream);
if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) { StringBuilder msgBuilder = new StringBuilder();
spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatspy").replaceAll("sender_", ""))); for (int r = 0; r < args.length; r++) {
} msgBuilder.append(" " + args[r]);
try { }
out.writeUTF("Message"); String msg = msgBuilder.toString();
out.writeUTF("Send"); if (mcp.hasFilter()) {
out.writeUTF(MineverseChatAPI.getMineverseChatPlayer(mcp.getReplyPlayer()).getName()); msg = Format.FilterChat(msg);
out.writeUTF(mcp.getUUID().toString()); }
out.writeUTF(mcp.getName()); if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) {
out.writeUTF(send); msg = Format.FormatStringLegacyColor(msg);
out.writeUTF(echo); }
out.writeUTF(spy); if (mcp.getPlayer().hasPermission("venturechat.color")) {
out.writeUTF(msg); msg = Format.FormatStringColor(msg);
mcp.getPlayer().sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray()); }
out.close(); if (mcp.getPlayer().hasPermission("venturechat.format")) {
} catch (Exception e) { msg = Format.FormatString(msg);
e.printStackTrace(); }
}
} String send = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatfrom").replaceAll("sender_", "")));
String echo = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatto").replaceAll("sender_", "")));
String spy = "VentureChat:NoSpy";
if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) {
spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatspy").replaceAll("sender_", "")));
}
try {
out.writeUTF("Message");
out.writeUTF("Send");
out.writeUTF(MineverseChatAPI.getMineverseChatPlayer(mcp.getReplyPlayer()).getName());
out.writeUTF(mcp.getUUID().toString());
out.writeUTF(mcp.getName());
out.writeUTF(send);
out.writeUTF(echo);
out.writeUTF(spy);
out.writeUTF(msg);
mcp.getPlayer().sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray());
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
} }

View File

@ -1,37 +1,40 @@
package mineverse.Aust1n46.chat.command.message; package mineverse.Aust1n46.chat.command.message;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
public class Spy implements VentureCommand { public class Spy extends Command {
public Spy() {
super("spy");
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public boolean execute(CommandSender sender, String command, String[] args) {
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return; return true;
} }
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
if (mcp.getPlayer().hasPermission("venturechat.spy")) { if (mcp.getPlayer().hasPermission("venturechat.spy")) {
if (!mcp.isSpy()) { if (!mcp.isSpy()) {
mcp.setSpy(true); mcp.setSpy(true);
mcp.getPlayer().sendMessage(LocalizedMessage.SPY_ON.toString()); mcp.getPlayer().sendMessage(LocalizedMessage.SPY_ON.toString());
MineverseChat.synchronize(mcp, true); MineverseChat.synchronize(mcp, true);
return; return true;
} }
mcp.setSpy(false); mcp.setSpy(false);
mcp.getPlayer().sendMessage(LocalizedMessage.SPY_OFF.toString()); mcp.getPlayer().sendMessage(LocalizedMessage.SPY_OFF.toString());
MineverseChat.synchronize(mcp, true); MineverseChat.synchronize(mcp, true);
return; return true;
} }
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
return; return true;
} }
} }

View File

@ -17,194 +17,174 @@ import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel; import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import mineverse.Aust1n46.chat.utilities.Format; import mineverse.Aust1n46.chat.utilities.Format;
public class Mute implements VentureCommand { public class Mute extends Command {
private static final List<String> COMMON_MUTE_TIMES = Collections.unmodifiableList(Arrays.asList(new String[]{"12h", "15m", "1d", "1h", "1m", "30s"})); public Mute() {
super("mute");
}
@Override private static final List<String> COMMON_MUTE_TIMES = Collections.unmodifiableList(Arrays.asList(new String[] { "12h", "15m", "1d", "1h", "1m", "30s" }));
public void execute(CommandSender sender, String command, String[] args) {
if (sender.hasPermission("venturechat.mute")) {
if (args.length < 2) {
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/mute")
.replace("{args}", "[channel] [player] {time} {reason}"));
return;
}
if (ChatChannel.isChannel(args[0])) {
ChatChannel channel = ChatChannel.getChannel(args[0]);
if (channel.isMutable()) {
long datetime = System.currentTimeMillis();
long time = 0;
int reasonStartPos = 2;
String reason = "";
if (args.length > 2) {
String timeString = args[2];
if (Character.isDigit(timeString.charAt(0))) {
reasonStartPos = 3;
time = Format.parseTimeStringToMillis(timeString);
if (time <= 0) {
sender.sendMessage(LocalizedMessage.INVALID_TIME.toString().replace("{args}", timeString));
return;
}
}
StringBuilder reasonBuilder = new StringBuilder();
for (int a = reasonStartPos; a < args.length; a++) {
reasonBuilder.append(args[a] + " ");
}
reason = Format.FormatStringAll(reasonBuilder.toString().trim());
}
if (channel.getBungee()) {
sendBungeeCordMute(sender, args[1], channel, time, reason);
return;
}
MineverseChatPlayer playerToMute = MineverseChatAPI.getMineverseChatPlayer(args[1]);
if (playerToMute == null || (!playerToMute.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) {
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[1]));
return;
}
if (playerToMute.isMuted(channel.getName())) {
sender.sendMessage(LocalizedMessage.PLAYER_ALREADY_MUTED.toString()
.replace("{player}", playerToMute.getName()).replace("{channel_color}", channel.getColor())
.replace("{channel_name}", channel.getName()));
return;
}
if (time > 0) { @Override
if (reason.isEmpty()) { public boolean execute(CommandSender sender, String command, String[] args) {
playerToMute.addMute(channel.getName(), datetime + time); if (sender.hasPermission("venturechat.mute")) {
String timeString = Format.parseTimeStringFromMillis(time); if (args.length < 2) {
sender.sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER_TIME.toString() sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/mute").replace("{args}", "[channel] [player] {time} {reason}"));
.replace("{player}", playerToMute.getName()) return true;
.replace("{channel_color}", channel.getColor()) }
.replace("{channel_name}", channel.getName()) if (ChatChannel.isChannel(args[0])) {
.replace("{time}", timeString)); ChatChannel channel = ChatChannel.getChannel(args[0]);
if (playerToMute.isOnline()) { if (channel.isMutable()) {
playerToMute.getPlayer() long datetime = System.currentTimeMillis();
.sendMessage(LocalizedMessage.MUTE_PLAYER_PLAYER_TIME.toString() long time = 0;
.replace("{channel_color}", channel.getColor()) int reasonStartPos = 2;
.replace("{channel_name}", channel.getName()) String reason = "";
.replace("{time}", timeString)); if (args.length > 2) {
} else { String timeString = args[2];
playerToMute.setModified(true); if (Character.isDigit(timeString.charAt(0))) {
} reasonStartPos = 3;
return; time = Format.parseTimeStringToMillis(timeString);
} else { if (time <= 0) {
playerToMute.addMute(channel.getName(), datetime + time, reason); sender.sendMessage(LocalizedMessage.INVALID_TIME.toString().replace("{args}", timeString));
String timeString = Format.parseTimeStringFromMillis(time); return true;
sender.sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER_TIME_REASON.toString() }
.replace("{player}", playerToMute.getName()) }
.replace("{channel_color}", channel.getColor()) StringBuilder reasonBuilder = new StringBuilder();
.replace("{channel_name}", channel.getName()) for (int a = reasonStartPos; a < args.length; a++) {
.replace("{time}", timeString) reasonBuilder.append(args[a] + " ");
.replace("{reason}", reason)); }
if (playerToMute.isOnline()) { reason = Format.FormatStringAll(reasonBuilder.toString().trim());
playerToMute.getPlayer() }
.sendMessage(LocalizedMessage.MUTE_PLAYER_PLAYER_TIME_REASON.toString() if (channel.getBungee()) {
.replace("{channel_color}", channel.getColor()) sendBungeeCordMute(sender, args[1], channel, time, reason);
.replace("{channel_name}", channel.getName()) return true;
.replace("{time}", timeString) }
.replace("{reason}", reason)); MineverseChatPlayer playerToMute = MineverseChatAPI.getMineverseChatPlayer(args[1]);
} else { if (playerToMute == null || (!playerToMute.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) {
playerToMute.setModified(true); sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[1]));
} return true;
return; }
} if (playerToMute.isMuted(channel.getName())) {
} else { sender.sendMessage(LocalizedMessage.PLAYER_ALREADY_MUTED.toString().replace("{player}", playerToMute.getName())
if (reason.isEmpty()) { .replace("{channel_color}", channel.getColor()).replace("{channel_name}", channel.getName()));
playerToMute.addMute(channel.getName()); return true;
sender.sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER.toString() }
.replace("{player}", playerToMute.getName()).replace("{channel_color}", channel.getColor())
.replace("{channel_name}", channel.getName()));
if (playerToMute.isOnline()) {
playerToMute.getPlayer()
.sendMessage(LocalizedMessage.MUTE_PLAYER_PLAYER.toString()
.replace("{channel_color}", channel.getColor())
.replace("{channel_name}", channel.getName()));
} else {
playerToMute.setModified(true);
}
return;
} else {
playerToMute.addMute(channel.getName(), reason);
sender.sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER_REASON.toString()
.replace("{player}", playerToMute.getName()).replace("{channel_color}", channel.getColor())
.replace("{channel_name}", channel.getName())
.replace("{reason}", reason));
if (playerToMute.isOnline()) {
playerToMute.getPlayer()
.sendMessage(LocalizedMessage.MUTE_PLAYER_PLAYER_REASON.toString()
.replace("{channel_color}", channel.getColor())
.replace("{channel_name}", channel.getName())
.replace("{reason}", reason));
} else {
playerToMute.setModified(true);
}
return;
}
}
}
sender.sendMessage(LocalizedMessage.CHANNEL_CANNOT_MUTE.toString()
.replace("{channel_color}", channel.getColor())
.replace("{channel_name}", channel.getName()));
return;
}
sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[0]));
return;
}
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
}
@Override if (time > 0) {
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) { if (reason.isEmpty()) {
List<String> completions = new ArrayList<>(); playerToMute.addMute(channel.getName(), datetime + time);
if (args.length == 1) { String timeString = Format.parseTimeStringFromMillis(time);
StringUtil.copyPartialMatches(args[0], ChatChannel.getChatChannels().stream().map(ChatChannel::getName).collect(Collectors.toList()), completions); sender.sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER_TIME.toString().replace("{player}", playerToMute.getName())
Collections.sort(completions); .replace("{channel_color}", channel.getColor()).replace("{channel_name}", channel.getName()).replace("{time}", timeString));
return completions; if (playerToMute.isOnline()) {
} playerToMute.getPlayer().sendMessage(LocalizedMessage.MUTE_PLAYER_PLAYER_TIME.toString().replace("{channel_color}", channel.getColor())
if (args.length == 2) { .replace("{channel_name}", channel.getName()).replace("{time}", timeString));
if (ChatChannel.isChannel(args[0])) { } else {
ChatChannel chatChannelObj = ChatChannel.getChannel(args[0]); playerToMute.setModified(true);
if (chatChannelObj.getBungee()) { }
StringUtil.copyPartialMatches(args[1], MineverseChatAPI.getNetworkPlayerNames(), completions); return true;
Collections.sort(completions); } else {
return completions; playerToMute.addMute(channel.getName(), datetime + time, reason);
} String timeString = Format.parseTimeStringFromMillis(time);
StringUtil.copyPartialMatches(args[1], MineverseChatAPI.getOnlineMineverseChatPlayers().stream().filter(mcp -> !mcp.isMuted(chatChannelObj.getName())).map(MineverseChatPlayer::getName).collect(Collectors.toList()), completions); sender.sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER_TIME_REASON.toString().replace("{player}", playerToMute.getName())
Collections.sort(completions); .replace("{channel_color}", channel.getColor()).replace("{channel_name}", channel.getName()).replace("{time}", timeString)
return completions; .replace("{reason}", reason));
} if (playerToMute.isOnline()) {
} playerToMute.getPlayer().sendMessage(LocalizedMessage.MUTE_PLAYER_PLAYER_TIME_REASON.toString().replace("{channel_color}", channel.getColor())
if (args.length == 3) { .replace("{channel_name}", channel.getName()).replace("{time}", timeString).replace("{reason}", reason));
StringUtil.copyPartialMatches(args[2], COMMON_MUTE_TIMES, completions); } else {
Collections.sort(completions); playerToMute.setModified(true);
return completions; }
return true;
}
} else {
if (reason.isEmpty()) {
playerToMute.addMute(channel.getName());
sender.sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER.toString().replace("{player}", playerToMute.getName())
.replace("{channel_color}", channel.getColor()).replace("{channel_name}", channel.getName()));
if (playerToMute.isOnline()) {
playerToMute.getPlayer().sendMessage(
LocalizedMessage.MUTE_PLAYER_PLAYER.toString().replace("{channel_color}", channel.getColor()).replace("{channel_name}", channel.getName()));
} else {
playerToMute.setModified(true);
}
return true;
} else {
playerToMute.addMute(channel.getName(), reason);
sender.sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER_REASON.toString().replace("{player}", playerToMute.getName())
.replace("{channel_color}", channel.getColor()).replace("{channel_name}", channel.getName()).replace("{reason}", reason));
if (playerToMute.isOnline()) {
playerToMute.getPlayer().sendMessage(LocalizedMessage.MUTE_PLAYER_PLAYER_REASON.toString().replace("{channel_color}", channel.getColor())
.replace("{channel_name}", channel.getName()).replace("{reason}", reason));
} else {
playerToMute.setModified(true);
}
return true;
}
}
}
sender.sendMessage(LocalizedMessage.CHANNEL_CANNOT_MUTE.toString().replace("{channel_color}", channel.getColor()).replace("{channel_name}", channel.getName()));
return true;
}
sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[0]));
return true;
}
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
return true;
}
} @Override
return Collections.emptyList(); public List<String> tabComplete(CommandSender sender, String label, String[] args) {
} List<String> completions = new ArrayList<>();
if (args.length == 1) {
StringUtil.copyPartialMatches(args[0], ChatChannel.getChatChannels().stream().map(ChatChannel::getName).collect(Collectors.toList()), completions);
Collections.sort(completions);
return completions;
}
if (args.length == 2) {
if (ChatChannel.isChannel(args[0])) {
ChatChannel chatChannelObj = ChatChannel.getChannel(args[0]);
if (chatChannelObj.getBungee()) {
StringUtil.copyPartialMatches(args[1], MineverseChatAPI.getNetworkPlayerNames(), completions);
Collections.sort(completions);
return completions;
}
StringUtil.copyPartialMatches(args[1], MineverseChatAPI.getOnlineMineverseChatPlayers().stream().filter(mcp -> !mcp.isMuted(chatChannelObj.getName()))
.map(MineverseChatPlayer::getName).collect(Collectors.toList()), completions);
Collections.sort(completions);
return completions;
}
}
if (args.length == 3) {
StringUtil.copyPartialMatches(args[2], COMMON_MUTE_TIMES, completions);
Collections.sort(completions);
return completions;
private void sendBungeeCordMute(CommandSender sender, String playerToMute, ChatChannel channel, long time, String reason) { }
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); return Collections.emptyList();
DataOutputStream out = new DataOutputStream(byteOutStream); }
try {
out.writeUTF("Mute"); private void sendBungeeCordMute(CommandSender sender, String playerToMute, ChatChannel channel, long time, String reason) {
out.writeUTF("Send"); ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
if (sender instanceof Player) { DataOutputStream out = new DataOutputStream(byteOutStream);
out.writeUTF(((Player) sender).getUniqueId().toString()); try {
} else { out.writeUTF("Mute");
out.writeUTF("VentureChat:Console"); out.writeUTF("Send");
} if (sender instanceof Player) {
out.writeUTF(playerToMute); out.writeUTF(((Player) sender).getUniqueId().toString());
out.writeUTF(channel.getName()); } else {
out.writeLong(time); out.writeUTF("VentureChat:Console");
out.writeUTF(reason); }
MineverseChat.sendPluginMessage(byteOutStream); out.writeUTF(playerToMute);
out.close(); out.writeUTF(channel.getName());
} catch (Exception e) { out.writeLong(time);
e.printStackTrace(); out.writeUTF(reason);
} MineverseChat.sendPluginMessage(byteOutStream);
} out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
} }

View File

@ -1,86 +1,82 @@
package mineverse.Aust1n46.chat.command.mute; package mineverse.Aust1n46.chat.command.mute;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel; import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import mineverse.Aust1n46.chat.utilities.Format; import mineverse.Aust1n46.chat.utilities.Format;
public class Muteall implements VentureCommand { public class Muteall extends Command {
public Muteall() {
super("muteall");
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public boolean execute(CommandSender sender, String command, String[] args) {
if (sender.hasPermission("venturechat.mute")) { if (sender.hasPermission("venturechat.mute")) {
if (args.length < 1) { if (args.length < 1) {
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/muteall").replace("{args}", "[player] {reason}"));
.replace("{command}", "/muteall") return true;
.replace("{args}", "[player] {reason}")); }
return; MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]);
} if (player == null || (!player.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) {
MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]); sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0]));
if (player == null || (!player.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) { return true;
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() }
.replace("{args}", args[0])); String reason = "";
return; if (args.length > 1) {
} StringBuilder reasonBuilder = new StringBuilder();
String reason = ""; for (int a = 1; a < args.length; a++) {
if (args.length > 1) { reasonBuilder.append(args[a] + " ");
StringBuilder reasonBuilder = new StringBuilder(); }
for (int a = 1; a < args.length; a++) { reason = Format.FormatStringAll(reasonBuilder.toString().trim());
reasonBuilder.append(args[a] + " "); }
} if (reason.isEmpty()) {
reason = Format.FormatStringAll(reasonBuilder.toString().trim()); boolean bungee = false;
} for (ChatChannel channel : ChatChannel.getChatChannels()) {
if (reason.isEmpty()) { if (channel.isMutable()) {
boolean bungee = false; player.addMute(channel.getName());
for (ChatChannel channel : ChatChannel.getChatChannels()) { if (channel.getBungee()) {
if (channel.isMutable()) { bungee = true;
player.addMute(channel.getName()); }
if (channel.getBungee()) { }
bungee = true; }
} if (bungee) {
} MineverseChat.synchronize(player, true);
} }
if (bungee) { sender.sendMessage(LocalizedMessage.MUTE_PLAYER_ALL_SENDER.toString().replace("{player}", player.getName()));
MineverseChat.synchronize(player, true); if (player.isOnline()) {
} player.getPlayer().sendMessage(LocalizedMessage.MUTE_PLAYER_ALL_PLAYER.toString());
sender.sendMessage(LocalizedMessage.MUTE_PLAYER_ALL_SENDER.toString() } else
.replace("{player}", player.getName())); player.setModified(true);
if (player.isOnline()) { return true;
player.getPlayer().sendMessage(LocalizedMessage.MUTE_PLAYER_ALL_PLAYER.toString()); } else {
} else boolean bungee = false;
player.setModified(true); for (ChatChannel channel : ChatChannel.getChatChannels()) {
return; if (channel.isMutable()) {
} else { player.addMute(channel.getName(), reason);
boolean bungee = false; if (channel.getBungee()) {
for (ChatChannel channel : ChatChannel.getChatChannels()) { bungee = true;
if (channel.isMutable()) { }
player.addMute(channel.getName(), reason); }
if (channel.getBungee()) { }
bungee = true; if (bungee) {
} MineverseChat.synchronize(player, true);
} }
} sender.sendMessage(LocalizedMessage.MUTE_PLAYER_ALL_SENDER_REASON.toString().replace("{player}", player.getName()).replace("{reason}", reason));
if (bungee) { if (player.isOnline()) {
MineverseChat.synchronize(player, true); player.getPlayer().sendMessage(LocalizedMessage.MUTE_PLAYER_ALL_PLAYER_REASON.toString().replace("{reason}", reason));
} } else
sender.sendMessage(LocalizedMessage.MUTE_PLAYER_ALL_SENDER_REASON.toString() player.setModified(true);
.replace("{player}", player.getName()) return true;
.replace("{reason}", reason)); }
if (player.isOnline()) { } else {
player.getPlayer().sendMessage(LocalizedMessage.MUTE_PLAYER_ALL_PLAYER_REASON.toString() sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
.replace("{reason}", reason)); return true;
} else }
player.setModified(true); }
return;
}
} else {
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
return;
}
}
} }

View File

@ -16,98 +16,97 @@ import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel; import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
public class Unmute implements VentureCommand { public class Unmute extends Command {
public Unmute() {
super("unmute");
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public boolean 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().replace("{command}", "/unmute") sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/unmute").replace("{args}", "[channel] [player]"));
.replace("{args}", "[channel] [player]")); return true;
return; }
} if (ChatChannel.isChannel(args[0])) {
if (ChatChannel.isChannel(args[0])) { ChatChannel channel = ChatChannel.getChannel(args[0]);
ChatChannel channel = ChatChannel.getChannel(args[0]); if (channel.getBungee()) {
if (channel.getBungee()) { sendBungeeCordUnmute(sender, args[1], channel);
sendBungeeCordUnmute(sender, args[1], channel); return true;
return; }
} MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[1]);
MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[1]); 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().replace("{args}", args[1]));
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[1])); return true;
return; }
} if (!player.isMuted(channel.getName())) {
if (!player.isMuted(channel.getName())) { sender.sendMessage(LocalizedMessage.PLAYER_NOT_MUTED.toString().replace("{player}", player.getName()).replace("{channel_color}", channel.getColor())
sender.sendMessage(LocalizedMessage.PLAYER_NOT_MUTED.toString() .replace("{channel_name}", channel.getName()));
.replace("{player}", player.getName()).replace("{channel_color}", channel.getColor()) return true;
.replace("{channel_name}", channel.getName())); }
return; player.removeMute(channel.getName());
} sender.sendMessage(LocalizedMessage.UNMUTE_PLAYER_SENDER.toString().replace("{player}", player.getName()).replace("{channel_color}", channel.getColor())
player.removeMute(channel.getName()); .replace("{channel_name}", channel.getName()));
sender.sendMessage(LocalizedMessage.UNMUTE_PLAYER_SENDER.toString() if (player.isOnline()) {
.replace("{player}", player.getName()).replace("{channel_color}", channel.getColor()) player.getPlayer().sendMessage(LocalizedMessage.UNMUTE_PLAYER_PLAYER.toString().replace("{player}", player.getName())
.replace("{channel_name}", channel.getName())); .replace("{channel_color}", channel.getColor()).replace("{channel_name}", channel.getName()));
if (player.isOnline()) { } else {
player.getPlayer().sendMessage(LocalizedMessage.UNMUTE_PLAYER_PLAYER.toString() player.setModified(true);
.replace("{player}", player.getName()).replace("{channel_color}", channel.getColor()) }
.replace("{channel_name}", channel.getName())); return true;
} else { }
player.setModified(true); sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[0]));
} return true;
return; } else {
} sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[0])); return true;
return; }
} else { }
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
return;
}
}
@Override @Override
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) { public List<String> tabComplete(CommandSender sender, String label, String[] args) {
List<String> completions = new ArrayList<>(); List<String> completions = new ArrayList<>();
if (args.length == 1) { if (args.length == 1) {
StringUtil.copyPartialMatches(args[0], ChatChannel.getChatChannels().stream().map(ChatChannel::getName).collect(Collectors.toList()), completions); StringUtil.copyPartialMatches(args[0], ChatChannel.getChatChannels().stream().map(ChatChannel::getName).collect(Collectors.toList()), completions);
Collections.sort(completions); Collections.sort(completions);
return completions; return completions;
} }
if (args.length == 2) { if (args.length == 2) {
if (ChatChannel.isChannel(args[0])) { if (ChatChannel.isChannel(args[0])) {
ChatChannel chatChannelObj = ChatChannel.getChannel(args[0]); ChatChannel chatChannelObj = ChatChannel.getChannel(args[0]);
if (chatChannelObj.getBungee()) { if (chatChannelObj.getBungee()) {
StringUtil.copyPartialMatches(args[1], MineverseChatAPI.getNetworkPlayerNames(), completions); StringUtil.copyPartialMatches(args[1], MineverseChatAPI.getNetworkPlayerNames(), completions);
Collections.sort(completions); Collections.sort(completions);
return completions; return completions;
} }
StringUtil.copyPartialMatches(args[1], MineverseChatAPI.getOnlineMineverseChatPlayers().stream().filter(mcp -> mcp.isMuted(chatChannelObj.getName())).map(MineverseChatPlayer::getName).collect(Collectors.toList()), completions); StringUtil.copyPartialMatches(args[1], MineverseChatAPI.getOnlineMineverseChatPlayers().stream().filter(mcp -> mcp.isMuted(chatChannelObj.getName()))
Collections.sort(completions); .map(MineverseChatPlayer::getName).collect(Collectors.toList()), completions);
return completions; Collections.sort(completions);
} return completions;
} }
return Collections.emptyList(); }
} return Collections.emptyList();
}
private void sendBungeeCordUnmute(CommandSender sender, String playerToUnmute, ChatChannel channel) { private void sendBungeeCordUnmute(CommandSender sender, String playerToUnmute, ChatChannel channel) {
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(byteOutStream); DataOutputStream out = new DataOutputStream(byteOutStream);
try { try {
out.writeUTF("Unmute"); out.writeUTF("Unmute");
out.writeUTF("Send"); out.writeUTF("Send");
if (sender instanceof Player) { if (sender instanceof Player) {
out.writeUTF(((Player) sender).getUniqueId().toString()); out.writeUTF(((Player) sender).getUniqueId().toString());
} else { } else {
out.writeUTF("VentureChat:Console"); out.writeUTF("VentureChat:Console");
} }
out.writeUTF(playerToUnmute); out.writeUTF(playerToUnmute);
out.writeUTF(channel.getName()); out.writeUTF(channel.getName());
MineverseChat.sendPluginMessage(byteOutStream); MineverseChat.sendPluginMessage(byteOutStream);
out.close(); out.close();
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
} }

View File

@ -1,51 +1,50 @@
package mineverse.Aust1n46.chat.command.mute; package mineverse.Aust1n46.chat.command.mute;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel; import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
public class Unmuteall implements VentureCommand { public class Unmuteall extends Command {
public Unmuteall() {
super("unmuteall");
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public boolean execute(CommandSender sender, String command, String[] args) {
if (sender.hasPermission("venturechat.mute")) { if (sender.hasPermission("venturechat.mute")) {
if (args.length < 1) { if (args.length < 1) {
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/unmuteall").replace("{args}", "[player]"));
.replace("{command}", "/unmuteall") return true;
.replace("{args}", "[player]")); }
return; MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]);
} if (player == null || (!player.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) {
MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]); sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0]));
if (player == null || (!player.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) { return true;
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() }
.replace("{args}", args[0])); boolean bungee = false;
return; for (ChatChannel channel : ChatChannel.getChatChannels()) {
} player.removeMute(channel.getName());
boolean bungee = false; if (channel.getBungee()) {
for (ChatChannel channel : ChatChannel.getChatChannels()) { bungee = true;
player.removeMute(channel.getName()); }
if (channel.getBungee()) { }
bungee = true; if (bungee) {
} MineverseChat.synchronize(player, true);
} }
if (bungee) { sender.sendMessage(LocalizedMessage.UNMUTE_PLAYER_ALL_SENDER.toString().replace("{player}", player.getName()));
MineverseChat.synchronize(player, true); if (player.isOnline()) {
} player.getPlayer().sendMessage(LocalizedMessage.UNMUTE_PLAYER_ALL_PLAYER.toString());
sender.sendMessage(LocalizedMessage.UNMUTE_PLAYER_ALL_SENDER.toString() } else
.replace("{player}", player.getName())); player.setModified(true);
if (player.isOnline()) { return true;
player.getPlayer().sendMessage(LocalizedMessage.UNMUTE_PLAYER_ALL_PLAYER.toString()); } else {
} else sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
player.setModified(true); return true;
return; }
} else { }
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); }
return;
}
}
}

View File

@ -2,23 +2,9 @@ package mineverse.Aust1n46.chat.listeners;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.alias.Alias;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.database.Database;
import mineverse.Aust1n46.chat.gui.GuiSlot;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import mineverse.Aust1n46.chat.utilities.Format;
import mineverse.Aust1n46.chat.versions.VersionHandler;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
@ -30,34 +16,40 @@ import org.bukkit.event.server.ServerCommandEvent;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.SkullMeta; import org.bukkit.inventory.meta.SkullMeta;
import me.clip.placeholderapi.PlaceholderAPI; import me.clip.placeholderapi.PlaceholderAPI;
import mineverse.Aust1n46.chat.MineverseChat;
//This class listens for commands (Any chat that begins with a /) to use in the command spy and import mineverse.Aust1n46.chat.alias.Alias;
//in the custom commands such as aliases. import mineverse.Aust1n46.chat.api.MineverseChatAPI;
public class CommandListener implements CommandExecutor, Listener { import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
private MineverseChat plugin = MineverseChat.getInstance(); import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.database.Database;
@EventHandler import mineverse.Aust1n46.chat.gui.GuiSlot;
public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) throws FileNotFoundException { import mineverse.Aust1n46.chat.localization.LocalizedMessage;
if(event.getPlayer() == null) { import mineverse.Aust1n46.chat.utilities.Format;
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - Event.getPlayer() returned null in PlayerCommandPreprocessEvent")); import mineverse.Aust1n46.chat.versions.VersionHandler;
return;
} public class CommandListener implements Listener {
ConfigurationSection cs = plugin.getConfig().getConfigurationSection("commandspy"); private MineverseChat plugin = MineverseChat.getInstance();
Boolean wec = cs.getBoolean("worldeditcommands", true);
@EventHandler
public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) throws FileNotFoundException {
if (event.getPlayer() == null) {
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - Event.getPlayer() returned null in PlayerCommandPreprocessEvent"));
return;
}
ConfigurationSection cs = plugin.getConfig().getConfigurationSection("commandspy");
Boolean wec = cs.getBoolean("worldeditcommands", true);
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer(event.getPlayer()); MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer(event.getPlayer());
if(!mcp.getPlayer().hasPermission("venturechat.commandspy.override")) { if (!mcp.getPlayer().hasPermission("venturechat.commandspy.override")) {
for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if(p.hasCommandSpy()) { if (p.hasCommandSpy()) {
if(wec) { if (wec) {
p.getPlayer().sendMessage(Format.FormatStringAll(cs.getString("format").replace("{player}", mcp.getName()).replace("{command}", event.getMessage()))); p.getPlayer().sendMessage(Format.FormatStringAll(cs.getString("format").replace("{player}", mcp.getName()).replace("{command}", event.getMessage())));
} } else {
else { if (!(event.getMessage().toLowerCase().startsWith("//"))) {
if(!(event.getMessage().toLowerCase().startsWith("//"))) {
p.getPlayer().sendMessage(Format.FormatStringAll(cs.getString("format").replace("{player}", mcp.getName()).replace("{command}", event.getMessage()))); p.getPlayer().sendMessage(Format.FormatStringAll(cs.getString("format").replace("{player}", mcp.getName()).replace("{command}", event.getMessage())));
} } else {
else { if (!(event.getMessage().toLowerCase().startsWith("//"))) {
if(!(event.getMessage().toLowerCase().startsWith("//"))) {
p.getPlayer().sendMessage(ChatColor.GOLD + mcp.getName() + ": " + event.getMessage()); p.getPlayer().sendMessage(ChatColor.GOLD + mcp.getName() + ": " + event.getMessage());
} }
} }
@ -67,170 +59,87 @@ public class CommandListener implements CommandExecutor, Listener {
} }
String[] blocked = event.getMessage().split(" "); String[] blocked = event.getMessage().split(" ");
if(mcp.getBlockedCommands().contains(blocked[0])) { if (mcp.getBlockedCommands().contains(blocked[0])) {
mcp.getPlayer().sendMessage(LocalizedMessage.BLOCKED_COMMAND.toString() mcp.getPlayer().sendMessage(LocalizedMessage.BLOCKED_COMMAND.toString().replace("{command}", event.getMessage()));
.replace("{command}", event.getMessage()));
event.setCancelled(true); event.setCancelled(true);
return; return;
} }
String message = event.getMessage(); String message = event.getMessage();
if(Database.isEnabled()) { if (Database.isEnabled()) {
Database.writeVentureChat(mcp.getUUID().toString(), mcp.getName(), "Local", "Command_Component", event.getMessage().replace("'", "''"), "Command"); Database.writeVentureChat(mcp.getUUID().toString(), mcp.getName(), "Local", "Command_Component", event.getMessage().replace("'", "''"), "Command");
} }
for(Alias a : Alias.getAliases()) { for (Alias a : Alias.getAliases()) {
if(message.toLowerCase().substring(1).split(" ")[0].equals(a.getName().toLowerCase())) { if (message.toLowerCase().substring(1).split(" ")[0].equals(a.getName().toLowerCase())) {
for(String s : a.getComponents()) { for (String s : a.getComponents()) {
if(!mcp.getPlayer().hasPermission(a.getPermission()) && a.hasPermission()) { if (!mcp.getPlayer().hasPermission(a.getPermission()) && a.hasPermission()) {
mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this alias."); mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this alias.");
event.setCancelled(true); event.setCancelled(true);
return; return;
} }
int num = 1; int num = 1;
if(message.length() < a.getName().length() + 2 || a.getArguments() == 0) num = 0; if (message.length() < a.getName().length() + 2 || a.getArguments() == 0)
num = 0;
int arg = 0; int arg = 0;
if(message.substring(a.getName().length() + 1 + num).length() == 0) arg = 1; if (message.substring(a.getName().length() + 1 + num).length() == 0)
arg = 1;
String[] args = message.substring(a.getName().length() + 1 + num).split(" "); String[] args = message.substring(a.getName().length() + 1 + num).split(" ");
String send = ""; String send = "";
if(args.length - arg < a.getArguments()) { if (args.length - arg < a.getArguments()) {
String keyword = "arguments."; String keyword = "arguments.";
if(a.getArguments() == 1) keyword = "argument."; if (a.getArguments() == 1)
keyword = "argument.";
mcp.getPlayer().sendMessage(ChatColor.RED + "Invalid arguments for this alias, enter at least " + a.getArguments() + " " + keyword); mcp.getPlayer().sendMessage(ChatColor.RED + "Invalid arguments for this alias, enter at least " + a.getArguments() + " " + keyword);
event.setCancelled(true); event.setCancelled(true);
return; return;
} }
for(int b = 0; b < args.length; b++) { for (int b = 0; b < args.length; b++) {
send += " " + args[b]; send += " " + args[b];
} }
if(send.length() > 0) send = send.substring(1); if (send.length() > 0)
send = send.substring(1);
s = Format.FormatStringAll(s); s = Format.FormatStringAll(s);
if(mcp.getPlayer().hasPermission("venturechat.color.legacy")) { if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) {
send = Format.FormatStringLegacyColor(send); send = Format.FormatStringLegacyColor(send);
} }
if(mcp.getPlayer().hasPermission("venturechat.color")) { if (mcp.getPlayer().hasPermission("venturechat.color")) {
send = Format.FormatStringColor(send); send = Format.FormatStringColor(send);
} }
if(mcp.getPlayer().hasPermission("venturechat.format")) { if (mcp.getPlayer().hasPermission("venturechat.format")) {
send = Format.FormatString(send); send = Format.FormatString(send);
} }
if(s.startsWith("Command:")) { if (s.startsWith("Command:")) {
mcp.getPlayer().chat(s.substring(9).replace("$", send)); mcp.getPlayer().chat(s.substring(9).replace("$", send));
event.setCancelled(true); event.setCancelled(true);
} }
if(s.startsWith("Message:")) { if (s.startsWith("Message:")) {
mcp.getPlayer().sendMessage(s.substring(9).replace("$", send)); mcp.getPlayer().sendMessage(s.substring(9).replace("$", send));
event.setCancelled(true); event.setCancelled(true);
} }
if(s.startsWith("Broadcast:")) { if (s.startsWith("Broadcast:")) {
Format.broadcastToServer(s.substring(11).replace("$", send)); Format.broadcastToServer(s.substring(11).replace("$", send));
event.setCancelled(true); event.setCancelled(true);
} }
} }
} }
} }
if(!ChatChannel.areAliasesRegisteredAsCommands()) {
for(ChatChannel channel : ChatChannel.getChatChannels()) {
if(!channel.hasPermission() || mcp.getPlayer().hasPermission(channel.getPermission())) {
if(message.equals("/" + channel.getAlias())) {
mcp.getPlayer().sendMessage(LocalizedMessage.SET_CHANNEL.toString()
.replace("{channel_color}", channel.getColor() + "")
.replace("{channel_name}", channel.getName()));
if(mcp.hasConversation()) {
for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if(p.isSpy()) {
p.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString()
.replace("{player_sender}", mcp.getName())
.replace("{player_receiver}", MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName()));
}
}
mcp.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION.toString()
.replace("{player_receiver}", MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName()));
mcp.setConversation(null);
}
mcp.addListening(channel.getName());
mcp.setCurrentChannel(channel);
if(channel.getBungee()) {
MineverseChat.synchronize(mcp, true);
}
event.setCancelled(true);
return;
}
if(message.toLowerCase().startsWith("/" + channel.getAlias() + " ")) {
message = message.substring(channel.getAlias().length() + 1);
mcp.addListening(channel.getName());
if(channel.getBungee()) {
MineverseChat.synchronize(mcp, true);
}
mcp.setQuickChannel(channel);
/*String format = "";
if(plugin.getConfig().getConfigurationSection("channels." + channel.getName()).getString("format").equalsIgnoreCase("Default")) {
format = FormatTags.ChatFormat(ChatColor.valueOf(channel.getColor().toUpperCase()) + "[" + channel.getName() + "] {prefix}{name}" + ChatColor.valueOf(channel.getColor().toUpperCase()) + ":" + ChatColor.valueOf(channel.getChatColor().toUpperCase()), mcp.getPlayer(), plugin, cc, channel, plugin.getConfig().getBoolean("jsonFormat"));
}
else {
format = FormatTags.ChatFormat(plugin.getConfig().getConfigurationSection("channels." + channel.getName()).getString("format"), mcp.getPlayer(), plugin, cc, channel, plugin.getConfig().getBoolean("jsonFormat"));
if(plugin.getConfig().getBoolean("formatcleaner", false)) {
format = format.replace("[]", " ");
format = format.replace(" ", " ").replace(" ", " ").replace(" ", " ");
}
}*/
mcp.setQuickChat(true);
mcp.getPlayer().chat(message);
event.setCancelled(true);
}
}
}
}
} }
//old 1.8 command map // old 1.8 command map
@EventHandler @EventHandler
public void onServerCommand(ServerCommandEvent event) { public void onServerCommand(ServerCommandEvent event) {
if (Database.isEnabled()) { if (Database.isEnabled()) {
Database.writeVentureChat("N/A", "Console", "Local", "Command_Component", event.getCommand().replace("'", "''") , "Command"); Database.writeVentureChat("N/A", "Console", "Local", "Command_Component", event.getCommand().replace("'", "''"), "Command");
} }
} }
/**
* Unused
*/
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if(!(sender instanceof Player)) {
plugin.getServer().getConsoleSender().sendMessage(ChatColor.RED + "This command must be run by a player.");
return true;
}
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
for(ChatChannel channel : ChatChannel.getChatChannels()) {
if(command.getName().toLowerCase().equals(channel.getAlias())) {
if(args.length == 0) {
mcp.getPlayer().sendMessage(ChatColor.RED + "Invalid command: /" + channel.getAlias() + " message");
return true;
}
mcp.setQuickChat(true);
mcp.setQuickChannel(channel);
mcp.addListening(channel.getName());
if(channel.getBungee()) {
MineverseChat.synchronize(mcp, true);
}
String msg = "";
for(int x = 0; x < args.length; x++) {
if(args[x].length() > 0) msg += " " + args[x];
}
mcp.getPlayer().chat(msg);
return true;
}
}
return false;
}
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
@EventHandler(priority = EventPriority.LOW) @EventHandler(priority = EventPriority.LOW)
public void InventoryClick(InventoryClickEvent e) { public void InventoryClick(InventoryClickEvent e) {
ItemStack item = e.getCurrentItem(); ItemStack item = e.getCurrentItem();
if(item == null || !e.getView().getTitle().contains("VentureChat")) { if (item == null || !e.getView().getTitle().contains("VentureChat")) {
return; return;
} }
e.setCancelled(true); e.setCancelled(true);
@ -241,26 +150,24 @@ public class CommandListener implements CommandExecutor, Listener {
SkullMeta skullMeta = (SkullMeta) skull.getItemMeta(); SkullMeta skullMeta = (SkullMeta) skull.getItemMeta();
ChatChannel channel = ChatChannel.getChannel(ChatColor.stripColor(skullMeta.getLore().get(0)).replace("Channel: ", "")); ChatChannel channel = ChatChannel.getChannel(ChatColor.stripColor(skullMeta.getLore().get(0)).replace("Channel: ", ""));
int hash = Integer.parseInt(ChatColor.stripColor(skullMeta.getLore().get(1).replace("Hash: ", ""))); int hash = Integer.parseInt(ChatColor.stripColor(skullMeta.getLore().get(1).replace("Hash: ", "")));
if(VersionHandler.is1_7()) { if (VersionHandler.is1_7()) {
if(item.getType() == Material.BEDROCK) { if (item.getType() == Material.BEDROCK) {
mcp.getPlayer().closeInventory();
}
} else {
if (item.getType() == Material.BARRIER) {
mcp.getPlayer().closeInventory(); mcp.getPlayer().closeInventory();
} }
} }
else { for (GuiSlot g : GuiSlot.getGuiSlots()) {
if(item.getType() == Material.BARRIER) { if (g.getIcon() == item.getType() && g.getDurability() == item.getDurability() && g.getSlot() == e.getSlot()) {
mcp.getPlayer().closeInventory();
}
}
for(GuiSlot g : GuiSlot.getGuiSlots()) {
if(g.getIcon() == item.getType() && g.getDurability() == item.getDurability() && g.getSlot() == e.getSlot()) {
String command = g.getCommand().replace("{channel}", channel.getName()).replace("{hash}", hash + ""); String command = g.getCommand().replace("{channel}", channel.getName()).replace("{hash}", hash + "");
if(target != null) { if (target != null) {
command = command.replace("{player_name}", target.getName()); command = command.replace("{player_name}", target.getName());
if(target.isOnline()) { if (target.isOnline()) {
command = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(target.getPlayer(), command)); command = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(target.getPlayer(), command));
} }
} } else {
else {
command = command.replace("{player_name}", "Discord_Message"); command = command.replace("{player_name}", "Discord_Message");
} }
mcp.getPlayer().chat(command); mcp.getPlayer().chat(command);