Convert all commands to new command API

This commit is contained in:
Aust1n46 2022-04-03 15:43:02 -05:00
parent 6f830190a6
commit ccccf02d5e
44 changed files with 2223 additions and 2219 deletions

View File

@ -0,0 +1,5 @@
eclipse.preferences.version=1
encoding//src/main/java=UTF-8
encoding//src/main/resources=UTF-8
encoding//src/test/java=UTF-8
encoding/<project>=UTF-8

View File

@ -0,0 +1,4 @@
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1

View File

@ -1,23 +1,18 @@
package venture.Aust1n46.chat.controllers; package venture.Aust1n46.chat.controllers;
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.CommandExecutor;
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.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 com.google.inject.Inject; import com.google.inject.Inject;
import com.google.inject.Singleton; import com.google.inject.Singleton;
@ -25,6 +20,7 @@ import com.google.inject.Singleton;
import venture.Aust1n46.chat.controllers.commands.Broadcast; import venture.Aust1n46.chat.controllers.commands.Broadcast;
import venture.Aust1n46.chat.controllers.commands.BungeeToggle; import venture.Aust1n46.chat.controllers.commands.BungeeToggle;
import venture.Aust1n46.chat.controllers.commands.Channel; import venture.Aust1n46.chat.controllers.commands.Channel;
import venture.Aust1n46.chat.controllers.commands.ChannelAlias;
import venture.Aust1n46.chat.controllers.commands.Channelinfo; import venture.Aust1n46.chat.controllers.commands.Channelinfo;
import venture.Aust1n46.chat.controllers.commands.Chatinfo; import venture.Aust1n46.chat.controllers.commands.Chatinfo;
import venture.Aust1n46.chat.controllers.commands.Chatreload; import venture.Aust1n46.chat.controllers.commands.Chatreload;
@ -37,13 +33,13 @@ import venture.Aust1n46.chat.controllers.commands.Edit;
import venture.Aust1n46.chat.controllers.commands.Filter; import venture.Aust1n46.chat.controllers.commands.Filter;
import venture.Aust1n46.chat.controllers.commands.Force; import venture.Aust1n46.chat.controllers.commands.Force;
import venture.Aust1n46.chat.controllers.commands.Forceall; import venture.Aust1n46.chat.controllers.commands.Forceall;
import venture.Aust1n46.chat.controllers.commands.IgnoreCommandExecutor; import venture.Aust1n46.chat.controllers.commands.Ignore;
import venture.Aust1n46.chat.controllers.commands.Kickchannel; import venture.Aust1n46.chat.controllers.commands.Kickchannel;
import venture.Aust1n46.chat.controllers.commands.Kickchannelall; import venture.Aust1n46.chat.controllers.commands.Kickchannelall;
import venture.Aust1n46.chat.controllers.commands.Leave; import venture.Aust1n46.chat.controllers.commands.Leave;
import venture.Aust1n46.chat.controllers.commands.Listen; import venture.Aust1n46.chat.controllers.commands.Listen;
import venture.Aust1n46.chat.controllers.commands.Me; import venture.Aust1n46.chat.controllers.commands.Me;
import venture.Aust1n46.chat.controllers.commands.MessageCommandExecutor; import venture.Aust1n46.chat.controllers.commands.Message;
import venture.Aust1n46.chat.controllers.commands.MessageToggle; import venture.Aust1n46.chat.controllers.commands.MessageToggle;
import venture.Aust1n46.chat.controllers.commands.Mute; import venture.Aust1n46.chat.controllers.commands.Mute;
import venture.Aust1n46.chat.controllers.commands.Muteall; import venture.Aust1n46.chat.controllers.commands.Muteall;
@ -60,24 +56,18 @@ import venture.Aust1n46.chat.controllers.commands.Unmuteall;
import venture.Aust1n46.chat.controllers.commands.VentureChatGui; import venture.Aust1n46.chat.controllers.commands.VentureChatGui;
import venture.Aust1n46.chat.controllers.commands.Venturechat; import venture.Aust1n46.chat.controllers.commands.Venturechat;
import venture.Aust1n46.chat.initiators.application.VentureChat; import venture.Aust1n46.chat.initiators.application.VentureChat;
import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.service.ConfigService;
import venture.Aust1n46.chat.utilities.FormatUtils; import venture.Aust1n46.chat.utilities.FormatUtils;
/**
* Class that initializes and executes the plugin's commands.
*/
@Singleton @Singleton
public class CommandController implements TabExecutor { public class CommandController {
private static final String COMMAND_CONFIG_VERSION = "3.3.0"; private static final String COMMAND_CONFIG_VERSION = "3.3.0";
private Map<String, VentureCommand> commandsOld = new HashMap<>();
@Inject @Inject
private VentureChat plugin; private VentureChat plugin;
@Inject @Inject
private MessageCommandExecutor messageCommandExecutor; private ConfigService configService;
@Inject
private IgnoreCommandExecutor ignoreCommandExecutor;
@Inject @Inject
private Broadcast broadcast; private Broadcast broadcast;
@ -149,23 +139,16 @@ public class CommandController implements TabExecutor {
private Unmute unmute; private Unmute unmute;
@Inject @Inject
private Unmuteall unmuteall; private Unmuteall unmuteall;
@Inject
private Constructor<PluginCommand> pluginCommandConstructor; private Message message;
@Inject
private Ignore ignore;
@Inject
private ChannelAlias channelAlias;
private final Map<String, Command> commands = new HashMap<>(); private final Map<String, Command> commands = new HashMap<>();
private Map<String, Command> knownCommands; private Map<String, Command> knownCommands;
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] parameters) {
commandsOld.get(command.getName()).execute(sender, command.getName(), parameters);
return true;
}
@Override
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) {
return commandsOld.get(command.getName()).onTabComplete(sender, command, label, args);
}
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Inject @Inject
public void postConstruct() { public void postConstruct() {
@ -183,7 +166,6 @@ public class CommandController implements TabExecutor {
plugin.saveResource("commands.yml", true); plugin.saveResource("commands.yml", true);
commandsFileConfiguration = YamlConfiguration.loadConfiguration(commandsFile); commandsFileConfiguration = YamlConfiguration.loadConfiguration(commandsFile);
} }
try { try {
knownCommands = server.getCommandMap().getKnownCommands(); // Paper :) knownCommands = server.getCommandMap().getKnownCommands(); // Paper :)
} }
@ -202,85 +184,77 @@ public class CommandController implements TabExecutor {
e.printStackTrace(); e.printStackTrace();
} }
} }
try { commands.put("broadcast", broadcast);
pluginCommandConstructor = PluginCommand.class.getDeclaredConstructor(String.class, Plugin.class); commands.put("channel", channel);
pluginCommandConstructor.setAccessible(true); commands.put("join", channel);
} catch (NoSuchMethodException | SecurityException e) { commands.put("channelinfo", channelinfo);
e.printStackTrace(); commands.put("chatinfo", chatinfo);
commands.put("chatreload", chatreload);
commands.put("chlist", chlist);
commands.put("chwho", chwho);
commands.put("clearchat", clearchat);
commands.put("commandblock", commandblock);
commands.put("commandspy", commandspy);
commands.put("edit", edit);
commands.put("filter", filter);
commands.put("force", force);
commands.put("forceall", forceall);
commands.put("kickchannel", kickchannel);
commands.put("kickchannelall", kickchannelall);
commands.put("leave", leave);
commands.put("listen", listen);
commands.put("me", me);
commands.put("venturechat", venturechat);
commands.put("notifications", notifications);
commands.put("party", party);
commands.put("rangedspy", rangedSpy);
commands.put("removemessage", removemessage);
commands.put("setchannel", setchannel);
commands.put("setchannelall", setchannelall);
commands.put("spy", spy);
commands.put("venturechatgui", ventureChatGui);
commands.put("messagetoggle", messageToggle);
commands.put("bungeetoggle", bungeeToggle);
commands.put("reply", reply);
commands.put("mute", mute);
commands.put("muteall", muteall);
commands.put("unmute", unmute);
commands.put("unmuteall", unmuteall);
commands.put("message", message);
commands.put("ignore", ignore);
for (final ChatChannel chatChannel : configService.getChatChannels()) {
final String alias = chatChannel.getAlias();
commands.put(alias, channelAlias);
} }
final ConfigurationSection commandsSection = commandsFileConfiguration.getConfigurationSection("commands");
commandsOld.put("broadcast", broadcast); for (final String commandName : commandsSection.getKeys(false)) {
// commandsOld.put("channel", channel); final ConfigurationSection commandSection = commandsSection.getConfigurationSection(commandName);
// commandsOld.put("join", channel); final boolean isEnabled = commandSection.getBoolean("enabled", true);
commandsOld.put("channelinfo", channelinfo); if (!isEnabled) {
commandsOld.put("chatinfo", chatinfo); commands.remove(commandName);
commandsOld.put("chatreload", chatreload); } else {
commandsOld.put("chlist", chlist); final Command command = commands.get(commandName);
commandsOld.put("chwho", chwho); if (command != null) {
commandsOld.put("clearchat", clearchat); final List<String> aliases = commandSection.getStringList("aliases");
commandsOld.put("commandblock", commandblock); for (final String alias : aliases) {
commandsOld.put("commandspy", commandspy); commands.put(alias, command);
commandsOld.put("edit", edit); }
commandsOld.put("filter", filter); commands.put("venturechat:" + commandName, command);
commandsOld.put("force", force); }
commandsOld.put("forceall", forceall);
commandsOld.put("kickchannel", kickchannel);
commandsOld.put("kickchannelall", kickchannelall);
commandsOld.put("leave", leave);
commandsOld.put("listen", listen);
commandsOld.put("me", me);
commandsOld.put("venturechat", venturechat);
commandsOld.put("notifications", notifications);
commandsOld.put("party", party);
commandsOld.put("rangedspy", rangedSpy);
commandsOld.put("removemessage", removemessage);
commandsOld.put("setchannel", setchannel);
commandsOld.put("setchannelall", setchannelall);
commandsOld.put("spy", spy);
commandsOld.put("venturechatgui", ventureChatGui);
commandsOld.put("messagetoggle", messageToggle);
commandsOld.put("bungeetoggle", bungeeToggle);
for (String command : commandsOld.keySet()) {
registerCommand(command, this);
}
plugin.getServer().getScheduler().runTaskLater(plugin, () -> {
if (plugin.isEnabled()) {
commandsOld.put("reply", reply);
commandsOld.put("r", reply);
registerCommand("reply", this);
registerCommand("r", this);
commandsOld.put("mute", mute);
commandsOld.put("muteall", muteall);
commandsOld.put("unmute", unmute);
commandsOld.put("unmuteall", unmuteall);
registerCommand("mute", this);
registerCommand("muteall", this);
registerCommand("unmute", this);
registerCommand("unmuteall", this);
registerCommand("message", messageCommandExecutor);
registerCommand("msg", messageCommandExecutor);
registerCommand("tell", messageCommandExecutor);
registerCommand("whisper", messageCommandExecutor);
registerCommand("ignore", ignoreCommandExecutor);
} }
}, 0);
registerCommand("channel", channel);
}
private void registerCommand(final String command, final CommandExecutor commandExecutor) {
try {
final PluginCommand pluginCommand = pluginCommandConstructor.newInstance(command, plugin);
pluginCommand.setExecutor(commandExecutor);
knownCommands.put(command, pluginCommand);
} catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
e.printStackTrace();
} }
// Initial registration is required to ensure commands are recognized by the
// server after enabling every plugin
for (final Entry<String, Command> commandEntry : commands.entrySet()) {
registerCommand(commandEntry.getKey(), commandEntry.getValue());
}
// Forcibly re-register enabled VentureChat commands on a delay to ensure they
// have priority
server.getScheduler().runTaskLater(plugin, () -> {
for (final Entry<String, Command> commandEntry : commands.entrySet()) {
registerCommand(commandEntry.getKey(), commandEntry.getValue());
}
}, 10);
} }
private void registerCommand(final String commandLabel, final Command command) { private void registerCommand(final String commandLabel, final Command command) {

View File

@ -8,40 +8,44 @@ import com.google.inject.Inject;
import venture.Aust1n46.chat.initiators.application.VentureChat; import venture.Aust1n46.chat.initiators.application.VentureChat;
import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.model.UniversalCommand;
import venture.Aust1n46.chat.service.VentureChatFormatService; import venture.Aust1n46.chat.service.VentureChatFormatService;
import venture.Aust1n46.chat.utilities.FormatUtils; import venture.Aust1n46.chat.utilities.FormatUtils;
public class Broadcast implements VentureCommand { public class Broadcast extends UniversalCommand {
@Inject @Inject
private VentureChat plugin; private VentureChat plugin;
@Inject @Inject
private VentureChatFormatService formatService; private VentureChatFormatService formatService;
@Override @Inject
public void execute(CommandSender sender, String command, String[] args) { public Broadcast(String name) {
ConfigurationSection bs = plugin.getConfig().getConfigurationSection("broadcast"); super(name);
String broadcastColor = bs.getString("color", "white"); }
String broadcastPermissions = bs.getString("permissions", "None");
String broadcastDisplayTag = FormatUtils.FormatStringAll(bs.getString("displaytag", "[Broadcast]")); @Override
if (broadcastPermissions.equalsIgnoreCase("None") || sender.hasPermission(broadcastPermissions)) { protected void executeCommand(CommandSender sender, String command, String[] args) {
if (args.length > 0) { ConfigurationSection bs = plugin.getConfig().getConfigurationSection("broadcast");
String bc = ""; String broadcastColor = bs.getString("color", "white");
for (int x = 0; x < args.length; x++) { String broadcastPermissions = bs.getString("permissions", "None");
if (args[x].length() > 0) bc += args[x] + " "; String broadcastDisplayTag = FormatUtils.FormatStringAll(bs.getString("displaytag", "[Broadcast]"));
} if (broadcastPermissions.equalsIgnoreCase("None") || sender.hasPermission(broadcastPermissions)) {
bc = FormatUtils.FormatStringAll(bc); if (args.length > 0) {
formatService.broadcastToServer(broadcastDisplayTag + ChatColor.valueOf(broadcastColor.toUpperCase()) + " " + bc); String bc = "";
return; for (int x = 0; x < args.length; x++) {
} else { if (args[x].length() > 0)
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() bc += args[x] + " ";
.replace("{command}", "/broadcast") }
.replace("{args}", "[msg]")); bc = FormatUtils.FormatStringAll(bc);
return; formatService.broadcastToServer(broadcastDisplayTag + ChatColor.valueOf(broadcastColor.toUpperCase()) + " " + bc);
} return;
} else { } else {
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/broadcast").replace("{args}", "[msg]"));
return; return;
} }
} } else {
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
return;
}
}
} }

View File

@ -1,43 +1,42 @@
package venture.Aust1n46.chat.controllers.commands; package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.google.inject.Inject; import com.google.inject.Inject;
import venture.Aust1n46.chat.controllers.PluginMessageController; import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.PlayerCommand;
import venture.Aust1n46.chat.model.VentureChatPlayer; import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class BungeeToggle implements VentureCommand { public class BungeeToggle extends PlayerCommand {
@Inject @Inject
private PluginMessageController pluginMessageController; private PluginMessageController pluginMessageController;
@Inject @Inject
private VentureChatPlayerApiService playerApiService; private VentureChatPlayerApiService playerApiService;
@Override @Inject
public void execute(CommandSender sender, String command, String[] args) { public BungeeToggle(String name) {
if (!(sender instanceof Player)) { super(name);
Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); }
return;
} @Override
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender); protected void executeCommand(Player player, String command, String[] args) {
if (mcp.getPlayer().hasPermission("venturechat.bungeetoggle")) { VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer(player);
if (!mcp.isBungeeToggle()) { if (mcp.getPlayer().hasPermission("venturechat.bungeetoggle")) {
mcp.setBungeeToggle(true); if (!mcp.isBungeeToggle()) {
mcp.getPlayer().sendMessage(LocalizedMessage.BUNGEE_TOGGLE_ON.toString()); mcp.setBungeeToggle(true);
pluginMessageController.synchronize(mcp, true); mcp.getPlayer().sendMessage(LocalizedMessage.BUNGEE_TOGGLE_ON.toString());
return; pluginMessageController.synchronize(mcp, true);
} return;
mcp.setBungeeToggle(false); }
mcp.getPlayer().sendMessage(LocalizedMessage.BUNGEE_TOGGLE_OFF.toString()); mcp.setBungeeToggle(false);
pluginMessageController.synchronize(mcp, true); mcp.getPlayer().sendMessage(LocalizedMessage.BUNGEE_TOGGLE_OFF.toString());
return; pluginMessageController.synchronize(mcp, true);
} return;
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); }
return; mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
} return;
}
} }

View File

@ -0,0 +1,70 @@
package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.entity.Player;
import com.google.inject.Inject;
import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.PlayerCommand;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.service.ConfigService;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class ChannelAlias extends PlayerCommand {
@Inject
private VentureChatPlayerApiService playerApiService;
@Inject
private ConfigService configService;
@Inject
private PluginMessageController pluginMessageController;
public ChannelAlias() {
super("channelalias");
}
@Override
public void executeCommand(final Player player, final String commandLabel, final String[] args) {
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer(player);
for (ChatChannel channel : configService.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 (VentureChatPlayer p : playerApiService.getOnlineMineverseChatPlayers()) {
if (p.isSpy()) {
p.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString().replace("{player_sender}", mcp.getName())
.replace("{player_receiver}", playerApiService.getMineverseChatPlayer(mcp.getConversation()).getName()));
}
}
mcp.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION.toString().replace("{player_receiver}",
playerApiService.getMineverseChatPlayer(mcp.getConversation()).getName()));
mcp.setConversation(null);
}
mcp.addListening(channel.getName());
mcp.setCurrentChannel(channel);
if (channel.getBungee()) {
pluginMessageController.synchronize(mcp, true);
}
return;
} else {
mcp.setQuickChat(true);
mcp.setQuickChannel(channel);
mcp.addListening(channel.getName());
if (channel.getBungee()) {
pluginMessageController.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;
}
}
}
}
}

View File

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

View File

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

View File

@ -12,13 +12,13 @@ import venture.Aust1n46.chat.controllers.VentureChatSpigotFlatFileController;
import venture.Aust1n46.chat.initiators.application.VentureChat; import venture.Aust1n46.chat.initiators.application.VentureChat;
import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.JsonFormat; import venture.Aust1n46.chat.model.JsonFormat;
import venture.Aust1n46.chat.model.UniversalCommand;
import venture.Aust1n46.chat.model.VentureChatPlayer; import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.service.ConfigService;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
import venture.Aust1n46.chat.utilities.FormatUtils; import venture.Aust1n46.chat.utilities.FormatUtils;
public class Chatreload implements VentureCommand { public class Chatreload extends UniversalCommand {
@Inject @Inject
private VentureChat plugin; private VentureChat plugin;
@Inject @Inject
@ -28,23 +28,29 @@ public class Chatreload implements VentureCommand {
@Inject @Inject
private ConfigService configService; private ConfigService configService;
@Inject
public Chatreload(String name) {
super(name);
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public void executeCommand(CommandSender sender, String command, String[] args) {
if(sender.hasPermission("venturechat.reload")) { if (sender.hasPermission("venturechat.reload")) {
spigotFlatFileController.savePlayerData(); spigotFlatFileController.savePlayerData();
playerApiService.clearMineverseChatPlayerMap(); playerApiService.clearMineverseChatPlayerMap();
playerApiService.clearNameMap(); playerApiService.clearNameMap();
playerApiService.clearOnlineMineverseChatPlayerMap(); playerApiService.clearOnlineMineverseChatPlayerMap();
plugin.reloadConfig(); plugin.reloadConfig();
configService.postConstruct(); configService.postConstruct();
spigotFlatFileController.loadLegacyPlayerData(); spigotFlatFileController.loadLegacyPlayerData();
spigotFlatFileController.loadPlayerData(); spigotFlatFileController.loadPlayerData();
for(Player p : plugin.getServer().getOnlinePlayers()) { for (Player p : plugin.getServer().getOnlinePlayers()) {
VentureChatPlayer mcp = playerApiService.getMineverseChatPlayer(p); VentureChatPlayer mcp = playerApiService.getMineverseChatPlayer(p);
if(mcp == null) { if (mcp == null) {
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&c - Could not find player data post reload for currently online player: " + p.getName())); Bukkit.getConsoleSender()
.sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&c - Could not find player data post reload for currently online player: " + p.getName()));
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&c - There could be an issue with your player data saving.")); Bukkit.getConsoleSender().sendMessage(FormatUtils.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();
@ -54,9 +60,9 @@ public class Chatreload implements VentureCommand {
mcp.setPlayer(plugin.getServer().getPlayer(mcp.getUuid())); mcp.setPlayer(plugin.getServer().getPlayer(mcp.getUuid()));
mcp.setHasPlayed(false); mcp.setHasPlayed(false);
String jsonFormat = mcp.getJsonFormat(); String jsonFormat = mcp.getJsonFormat();
for(JsonFormat j : configService.getJsonFormats()) { for (JsonFormat j : configService.getJsonFormats()) {
if(mcp.getPlayer().hasPermission("venturechat.json." + j.getName())) { if (mcp.getPlayer().hasPermission("venturechat.json." + j.getName())) {
if(configService.getJsonFormat(mcp.getJsonFormat()).getPriority() > j.getPriority()) { if (configService.getJsonFormat(mcp.getJsonFormat()).getPriority() > j.getPriority()) {
jsonFormat = j.getName(); jsonFormat = j.getName();
} }
} }
@ -65,10 +71,10 @@ public class Chatreload implements VentureCommand {
playerApiService.addMineverseChatOnlinePlayerToMap(mcp); playerApiService.addMineverseChatOnlinePlayerToMap(mcp);
playerApiService.addNameToMap(mcp); playerApiService.addNameToMap(mcp);
} }
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&e - Config reloaded")); Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&e - Config reloaded"));
for(VentureChatPlayer player : playerApiService.getOnlineMineverseChatPlayers()) { for (VentureChatPlayer player : playerApiService.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());
} }
} }

View File

@ -6,15 +6,20 @@ import com.google.inject.Inject;
import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.ChatChannel; import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.model.UniversalCommand;
import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.service.ConfigService;
public class Chlist implements VentureCommand { public class Chlist extends UniversalCommand {
@Inject @Inject
private ConfigService configService; private ConfigService configService;
@Inject
public Chlist(String name) {
super(name);
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public void executeCommand(CommandSender sender, String command, String[] args) {
sender.sendMessage(LocalizedMessage.CHANNEL_LIST_HEADER.toString()); sender.sendMessage(LocalizedMessage.CHANNEL_LIST_HEADER.toString());
for (ChatChannel chname : configService.getChatChannels()) { for (ChatChannel chname : configService.getChatChannels()) {
if (chname.hasPermission()) { if (chname.hasPermission()) {

View File

@ -21,11 +21,11 @@ import venture.Aust1n46.chat.initiators.application.VentureChat;
import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.ChatChannel; import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.VentureChatPlayer; import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.model.UniversalCommand;
import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.service.ConfigService;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Chwho implements VentureCommand { public class Chwho extends UniversalCommand {
@Inject @Inject
private VentureChat plugin; private VentureChat plugin;
@Inject @Inject
@ -34,9 +34,14 @@ public class Chwho implements VentureCommand {
private VentureChatPlayerApiService playerApiService; private VentureChatPlayerApiService playerApiService;
@Inject @Inject
private ConfigService configService; private ConfigService configService;
@Inject
public Chwho(String name) {
super(name);
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public void executeCommand(CommandSender sender, String command, String[] args) {
String playerlist = ""; String playerlist = "";
if (sender.hasPermission("venturechat.chwho")) { if (sender.hasPermission("venturechat.chwho")) {
if (args.length > 0) { if (args.length > 0) {

View File

@ -7,15 +7,20 @@ import com.google.inject.Inject;
import venture.Aust1n46.chat.localization.InternalMessage; import venture.Aust1n46.chat.localization.InternalMessage;
import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.VentureChatPlayer; import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.model.UniversalCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Clearchat implements VentureCommand { public class Clearchat extends UniversalCommand {
@Inject @Inject
private VentureChatPlayerApiService ventureChatApi; private VentureChatPlayerApiService ventureChatApi;
@Inject
public Clearchat(String name) {
super(name);
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public void executeCommand(CommandSender sender, String command, String[] args) {
if (sender.hasPermission("venturechat.clearchat")) { if (sender.hasPermission("venturechat.clearchat")) {
for (VentureChatPlayer player : ventureChatApi.getOnlineMineverseChatPlayers()) { for (VentureChatPlayer player : ventureChatApi.getOnlineMineverseChatPlayers()) {
if (!player.getPlayer().hasPermission("venturechat.clearchat.bypass")) { if (!player.getPlayer().hasPermission("venturechat.clearchat.bypass")) {

View File

@ -9,17 +9,22 @@ import com.google.inject.Inject;
import venture.Aust1n46.chat.initiators.application.VentureChat; import venture.Aust1n46.chat.initiators.application.VentureChat;
import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.VentureChatPlayer; import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.model.UniversalCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Commandblock implements VentureCommand { public class Commandblock extends UniversalCommand {
@Inject @Inject
private VentureChat plugin; private VentureChat plugin;
@Inject @Inject
private VentureChatPlayerApiService playerApiService; private VentureChatPlayerApiService playerApiService;
@Inject
public Commandblock(String name) {
super(name);
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public void executeCommand(CommandSender sender, String command, String[] args) {
if (sender.hasPermission("venturechat.commandblock")) { if (sender.hasPermission("venturechat.commandblock")) {
if (args.length > 1) { if (args.length > 1) {
VentureChatPlayer player = playerApiService.getOnlineMineverseChatPlayer(args[0]); VentureChatPlayer player = playerApiService.getOnlineMineverseChatPlayer(args[0]);

View File

@ -1,37 +1,36 @@
package venture.Aust1n46.chat.controllers.commands; package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.google.inject.Inject; import com.google.inject.Inject;
import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.PlayerCommand;
import venture.Aust1n46.chat.model.VentureChatPlayer; import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Commandspy implements VentureCommand { public class Commandspy extends PlayerCommand {
@Inject @Inject
private VentureChatPlayerApiService playerApiService; private VentureChatPlayerApiService playerApiService;
@Override @Inject
public void execute(CommandSender sender, String command, String[] args) { public Commandspy(String name) {
if (!(sender instanceof Player)) { super(name);
Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); }
return;
} @Override
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender); public void executeCommand(Player sender, String command, String[] args) {
if (mcp.getPlayer().hasPermission("venturechat.commandspy")) { VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender);
if (!mcp.hasCommandSpy()) { if (mcp.getPlayer().hasPermission("venturechat.commandspy")) {
mcp.setCommandSpy(true); if (!mcp.hasCommandSpy()) {
mcp.getPlayer().sendMessage(LocalizedMessage.COMMANDSPY_ON.toString()); mcp.setCommandSpy(true);
return; mcp.getPlayer().sendMessage(LocalizedMessage.COMMANDSPY_ON.toString());
} return;
mcp.setCommandSpy(false); }
mcp.getPlayer().sendMessage(LocalizedMessage.COMMANDSPY_OFF.toString()); mcp.setCommandSpy(false);
return; mcp.getPlayer().sendMessage(LocalizedMessage.COMMANDSPY_OFF.toString());
} return;
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); }
} mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
}
} }

View File

@ -17,12 +17,12 @@ import venture.Aust1n46.chat.initiators.application.VentureChat;
import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.ChatMessage; import venture.Aust1n46.chat.model.ChatMessage;
import venture.Aust1n46.chat.model.VentureChatPlayer; import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.model.UniversalCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
import venture.Aust1n46.chat.utilities.FormatUtils; import venture.Aust1n46.chat.utilities.FormatUtils;
import venture.Aust1n46.chat.service.VentureChatFormatService; import venture.Aust1n46.chat.service.VentureChatFormatService;
public class Edit implements VentureCommand { public class Edit extends UniversalCommand {
@Inject @Inject
private VentureChat plugin; private VentureChat plugin;
@Inject @Inject
@ -32,6 +32,11 @@ public class Edit implements VentureCommand {
private PacketContainer emptyLinePacketContainer; private PacketContainer emptyLinePacketContainer;
private WrappedChatComponent messageDeletedComponentPlayer; private WrappedChatComponent messageDeletedComponentPlayer;
@Inject
public Edit(String name) {
super(name);
}
@Inject @Inject
public void postConstruct() { public void postConstruct() {
@ -41,7 +46,7 @@ public class Edit implements VentureCommand {
@Override @Override
@SuppressWarnings({"unchecked", "rawtypes"}) @SuppressWarnings({"unchecked", "rawtypes"})
public void execute(CommandSender sender, String command, String[] args) { public void executeCommand(CommandSender sender, String command, String[] args) {
if (args.length == 0) { if (args.length == 0) {
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString()
.replace("{command}", "/edit") .replace("{command}", "/edit")

View File

@ -1,37 +1,36 @@
package venture.Aust1n46.chat.controllers.commands; package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.google.inject.Inject; import com.google.inject.Inject;
import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.PlayerCommand;
import venture.Aust1n46.chat.model.VentureChatPlayer; import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Filter implements VentureCommand { public class Filter extends PlayerCommand {
@Inject @Inject
private VentureChatPlayerApiService playerApiService; private VentureChatPlayerApiService playerApiService;
@Override @Inject
public void execute(CommandSender sender, String command, String[] args) { public Filter(String name) {
if (!(sender instanceof Player)) { super(name);
Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); }
return;
} @Override
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender); public void executeCommand(Player sender, String command, String[] args) {
if (mcp.getPlayer().hasPermission("venturechat.ignorefilter")) { VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender);
if (!mcp.isFilter()) { if (mcp.getPlayer().hasPermission("venturechat.ignorefilter")) {
mcp.setFilter(true); if (!mcp.isFilter()) {
mcp.getPlayer().sendMessage(LocalizedMessage.FILTER_ON.toString()); mcp.setFilter(true);
return; mcp.getPlayer().sendMessage(LocalizedMessage.FILTER_ON.toString());
} return;
mcp.setFilter(false); }
mcp.getPlayer().sendMessage(LocalizedMessage.FILTER_OFF.toString()); mcp.setFilter(false);
return; mcp.getPlayer().sendMessage(LocalizedMessage.FILTER_OFF.toString());
} return;
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); }
} mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
}
} }

View File

@ -5,39 +5,39 @@ import org.bukkit.command.CommandSender;
import com.google.inject.Inject; import com.google.inject.Inject;
import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.UniversalCommand;
import venture.Aust1n46.chat.model.VentureChatPlayer; import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Force implements VentureCommand { public class Force extends UniversalCommand {
@Inject @Inject
private VentureChatPlayerApiService playerApiService; private VentureChatPlayerApiService playerApiService;
@Override @Inject
public void execute(CommandSender sender, String command, String[] args) { public Force(String name) {
if (sender.hasPermission("venturechat.force")) { super(name);
if (args.length < 2) { }
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString()
.replace("{command}", "/force") @Override
.replace("{args}", "[player] [message]")); public void executeCommand(CommandSender sender, String command, String[] args) {
return; if (sender.hasPermission("venturechat.force")) {
} if (args.length < 2) {
VentureChatPlayer player = playerApiService.getOnlineMineverseChatPlayer(args[0]); sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/force").replace("{args}", "[player] [message]"));
if (player == null) { return;
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() }
.replace("{args}", args[0])); VentureChatPlayer player = playerApiService.getOnlineMineverseChatPlayer(args[0]);
return; if (player == null) {
} 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() if (args[x].length() > 0)
.replace("{player}", player.getName()) forcemsg += args[x] + " ";
.replace("{message}", forcemsg)); sender.sendMessage(LocalizedMessage.FORCE_PLAYER.toString().replace("{player}", player.getName()).replace("{message}", forcemsg));
player.getPlayer().chat(forcemsg); player.getPlayer().chat(forcemsg);
return; return;
} }
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
} }
} }

View File

@ -5,34 +5,38 @@ import org.bukkit.command.CommandSender;
import com.google.inject.Inject; import com.google.inject.Inject;
import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.UniversalCommand;
import venture.Aust1n46.chat.model.VentureChatPlayer; import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Forceall implements VentureCommand { public class Forceall extends UniversalCommand {
@Inject @Inject
private VentureChatPlayerApiService playerApiService; private VentureChatPlayerApiService playerApiService;
@Override @Inject
public void execute(CommandSender sender, String command, String[] args) { public Forceall(String name) {
if (sender.hasPermission("venturechat.forceall")) { super(name);
if (args.length < 1) { }
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString()
.replace("{command}", "/forceall").replace("{args}", "[message]")); @Override
return; public void executeCommand(CommandSender sender, String command, String[] args) {
} if (sender.hasPermission("venturechat.forceall")) {
String forcemsg = ""; if (args.length < 1) {
for (int x = 0; x < args.length; x++) { sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/forceall").replace("{args}", "[message]"));
if (args[x].length() > 0) { return;
forcemsg += args[x] + " "; }
} String forcemsg = "";
} for (int x = 0; x < args.length; x++) {
sender.sendMessage(LocalizedMessage.FORCE_ALL.toString().replace("{message}", forcemsg)); if (args[x].length() > 0) {
for (VentureChatPlayer player : playerApiService.getOnlineMineverseChatPlayers()) { forcemsg += args[x] + " ";
player.getPlayer().chat(forcemsg); }
} }
return; sender.sendMessage(LocalizedMessage.FORCE_ALL.toString().replace("{message}", forcemsg));
} for (VentureChatPlayer player : playerApiService.getOnlineMineverseChatPlayers()) {
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); player.getPlayer().chat(forcemsg);
} }
return;
}
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
}
} }

View File

@ -0,0 +1,114 @@
package venture.Aust1n46.chat.controllers.commands;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.UUID;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.util.StringUtil;
import com.google.inject.Inject;
import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.initiators.application.VentureChat;
import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.PlayerCommand;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Ignore extends PlayerCommand {
@Inject
private VentureChat plugin;
@Inject
private PluginMessageController pluginMessageController;
@Inject
private VentureChatPlayerApiService playerApiService;
@Inject
public Ignore(String name) {
super(name);
}
@Override
public void executeCommand(Player sender, String label, String[] args) {
if (!(sender instanceof Player)) {
plugin.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return;
}
VentureChatPlayer mcp = playerApiService.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()) {
VentureChatPlayer i = playerApiService.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());
pluginMessageController.sendPluginMessage(byteOutStream);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
return;
}
VentureChatPlayer player = playerApiService.getOnlineMineverseChatPlayer(args[0]);
if (player == null) {
mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0]));
return;
}
if (mcp.getIgnores().contains(player.getUuid())) {
mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_PLAYER_OFF.toString().replace("{player}", player.getName()));
mcp.removeIgnore(player.getUuid());
pluginMessageController.synchronize(mcp, true);
return;
}
if (player.getPlayer().hasPermission("venturechat.ignore.bypass")) {
mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_PLAYER_CANT.toString().replace("{player}", player.getName()));
return;
}
mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_PLAYER_ON.toString().replace("{player}", player.getName()));
mcp.addIgnore(player.getUuid());
pluginMessageController.synchronize(mcp, true);
}
@Override
public List<String> tabComplete(CommandSender sender, String alias, String[] args) {
if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) {
List<String> completions = new ArrayList<>();
StringUtil.copyPartialMatches(args[args.length - 1], playerApiService.getNetworkPlayerNames(), completions);
Collections.sort(completions);
return completions;
}
return null;
}
}

View File

@ -1,115 +0,0 @@
package venture.Aust1n46.chat.controllers.commands;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.UUID;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabExecutor;
import org.bukkit.entity.Player;
import org.bukkit.util.StringUtil;
import com.google.inject.Inject;
import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.initiators.application.VentureChat;
import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class IgnoreCommandExecutor implements TabExecutor {
@Inject
private VentureChat plugin;
@Inject
private PluginMessageController pluginMessageController;
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!(sender instanceof Player)) {
plugin.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return true;
}
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender);
if (args.length == 0) {
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS_IGNORE.toString());
return true;
}
if (args[0].equalsIgnoreCase("list")) {
String ignoreList = "";
for (UUID ignore : mcp.getIgnores()) {
VentureChatPlayer i = playerApiService.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 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());
pluginMessageController.sendPluginMessage(byteOutStream);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
return true;
}
VentureChatPlayer player = playerApiService.getOnlineMineverseChatPlayer(args[0]);
if (player == null) {
mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString()
.replace("{args}", args[0]));
return true;
}
if (mcp.getIgnores().contains(player.getUuid())) {
mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_PLAYER_OFF.toString()
.replace("{player}", player.getName()));
mcp.removeIgnore(player.getUuid());
pluginMessageController.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());
pluginMessageController.synchronize(mcp, true);
return true;
}
@Override
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) {
if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) {
List<String> completions = new ArrayList<>();
StringUtil.copyPartialMatches(args[args.length - 1], playerApiService.getNetworkPlayerNames(), completions);
Collections.sort(completions);
return completions;
}
return null;
}
}

View File

@ -8,12 +8,12 @@ import com.google.inject.Inject;
import venture.Aust1n46.chat.controllers.PluginMessageController; import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.ChatChannel; import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.UniversalCommand;
import venture.Aust1n46.chat.model.VentureChatPlayer; import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.service.ConfigService;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Kickchannel implements VentureCommand { public class Kickchannel extends UniversalCommand {
@Inject @Inject
private PluginMessageController pluginMessageController; private PluginMessageController pluginMessageController;
@Inject @Inject
@ -21,59 +21,57 @@ public class Kickchannel implements VentureCommand {
@Inject @Inject
private ConfigService configService; private ConfigService configService;
@Override @Inject
public void execute(CommandSender sender, String command, String[] args) { public Kickchannel(String name) {
if (sender.hasPermission("venturechat.kickchannel")) { super(name);
if (args.length < 2) { }
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString()
.replace("{command}", "/kickchannel") @Override
.replace("{args}", "[player] [channel]")); public void executeCommand(CommandSender sender, String command, String[] args) {
return; if (sender.hasPermission("venturechat.kickchannel")) {
} if (args.length < 2) {
VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[0]); sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/kickchannel").replace("{args}", "[player] [channel]"));
if (player == null) { return;
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() }
.replace("{args}", args[0])); VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[0]);
return; if (player == null) {
} sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0]));
ChatChannel channel = configService.getChannel(args[1]); return;
if (channel == null) { }
sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString() ChatChannel channel = configService.getChannel(args[1]);
.replace("{args}", args[1])); if (channel == null) {
return; sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[1]));
} return;
sender.sendMessage(LocalizedMessage.KICK_CHANNEL.toString() }
.replace("{player}", args[0]) sender.sendMessage(LocalizedMessage.KICK_CHANNEL.toString().replace("{player}", args[0]).replace("{channel_color}", channel.getColor() + "").replace("{channel_name}",
.replace("{channel_color}", channel.getColor() + "") channel.getName()));
.replace("{channel_name}", channel.getName())); player.removeListening(channel.getName());
player.removeListening(channel.getName()); if (player.isOnline()) {
if (player.isOnline()) { player.getPlayer()
player.getPlayer().sendMessage(LocalizedMessage.LEAVE_CHANNEL.toString() .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);
} else { }
player.setModified(true); boolean isThereABungeeChannel = channel.getBungee();
} if (player.getListening().size() == 0) {
boolean isThereABungeeChannel = channel.getBungee(); player.addListening(configService.getDefaultChannel().getName());
if (player.getListening().size() == 0) { player.setCurrentChannel(configService.getDefaultChannel());
player.addListening(configService.getDefaultChannel().getName()); if (configService.getDefaultChannel().getBungee()) {
player.setCurrentChannel(configService.getDefaultChannel()); isThereABungeeChannel = true;
if (configService.getDefaultChannel().getBungee()) { }
isThereABungeeChannel = true; if (player.isOnline()) {
} player.getPlayer().sendMessage(LocalizedMessage.MUST_LISTEN_ONE_CHANNEL.toString());
if (player.isOnline()) { player.getPlayer()
player.getPlayer().sendMessage(LocalizedMessage.MUST_LISTEN_ONE_CHANNEL.toString()); .sendMessage(LocalizedMessage.SET_CHANNEL.toString().replace("{channel_color}", ChatColor.valueOf(configService.getDefaultColor().toUpperCase()) + "")
player.getPlayer().sendMessage(LocalizedMessage.SET_CHANNEL.toString() .replace("{channel_name}", configService.getDefaultChannel().getName()));
.replace("{channel_color}", ChatColor.valueOf(configService.getDefaultColor().toUpperCase()) + "") } else
.replace("{channel_name}", configService.getDefaultChannel().getName())); player.setModified(true);
} else }
player.setModified(true); if (isThereABungeeChannel) {
} pluginMessageController.synchronize(player, true);
if (isThereABungeeChannel) { }
pluginMessageController.synchronize(player, true); return;
} }
return; sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
} }
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
}
} }

View File

@ -8,12 +8,12 @@ import com.google.inject.Inject;
import venture.Aust1n46.chat.controllers.PluginMessageController; import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.ChatChannel; import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.UniversalCommand;
import venture.Aust1n46.chat.model.VentureChatPlayer; import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.service.ConfigService;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Kickchannelall implements VentureCommand { public class Kickchannelall extends UniversalCommand {
@Inject @Inject
private PluginMessageController pluginMessageController; private PluginMessageController pluginMessageController;
@Inject @Inject
@ -21,52 +21,53 @@ public class Kickchannelall implements VentureCommand {
@Inject @Inject
private ConfigService configService; private ConfigService configService;
@Override @Inject
public void execute(CommandSender sender, String command, String[] args) { public Kickchannelall(String name) {
if (sender.hasPermission("venturechat.kickchannelall")) { super(name);
if (args.length < 1) { }
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString()
.replace("{command}", "/kickchannelall") @Override
.replace("{args}", "[player]")); public void executeCommand(CommandSender sender, String command, String[] args) {
return; if (sender.hasPermission("venturechat.kickchannelall")) {
} if (args.length < 1) {
VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[0]); sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/kickchannelall").replace("{args}", "[player]"));
if (player == null) { return;
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() }
.replace("{args}", args[0])); VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[0]);
return; if (player == null) {
} sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0]));
boolean isThereABungeeChannel = false; return;
for (String channel : player.getListening()) { }
if (configService.isChannel(channel)) { boolean isThereABungeeChannel = false;
ChatChannel chatChannelObj = configService.getChannel(channel); for (String channel : player.getListening()) {
if (chatChannelObj.getBungee()) { if (configService.isChannel(channel)) {
isThereABungeeChannel = true; ChatChannel chatChannelObj = configService.getChannel(channel);
} if (chatChannelObj.getBungee()) {
} isThereABungeeChannel = true;
} }
player.clearListening(); }
sender.sendMessage(LocalizedMessage.KICK_CHANNEL_ALL_SENDER.toString() }
.replace("{player}", player.getName())); player.clearListening();
player.addListening(configService.getDefaultChannel().getName()); sender.sendMessage(LocalizedMessage.KICK_CHANNEL_ALL_SENDER.toString().replace("{player}", player.getName()));
player.setCurrentChannel(configService.getDefaultChannel()); player.addListening(configService.getDefaultChannel().getName());
if (configService.getDefaultChannel().getBungee()) { player.setCurrentChannel(configService.getDefaultChannel());
isThereABungeeChannel = true; if (configService.getDefaultChannel().getBungee()) {
} isThereABungeeChannel = true;
if (isThereABungeeChannel) { }
pluginMessageController.synchronize(player, true); if (isThereABungeeChannel) {
} pluginMessageController.synchronize(player, true);
if (player.isOnline()) { }
player.getPlayer().sendMessage(LocalizedMessage.KICK_CHANNEL_ALL_PLAYER.toString()); if (player.isOnline()) {
player.getPlayer().sendMessage(LocalizedMessage.MUST_LISTEN_ONE_CHANNEL.toString()); player.getPlayer().sendMessage(LocalizedMessage.KICK_CHANNEL_ALL_PLAYER.toString());
player.getPlayer().sendMessage(LocalizedMessage.SET_CHANNEL.toString() player.getPlayer().sendMessage(LocalizedMessage.MUST_LISTEN_ONE_CHANNEL.toString());
.replace("{channel_color}", ChatColor.valueOf(configService.getDefaultColor().toUpperCase()) + "") player.getPlayer()
.replace("{channel_name}", configService.getDefaultChannel().getName())); .sendMessage(LocalizedMessage.SET_CHANNEL.toString().replace("{channel_color}", ChatColor.valueOf(configService.getDefaultColor().toUpperCase()) + "")
} else { .replace("{channel_name}", configService.getDefaultChannel().getName()));
player.setModified(true); } else {
} player.setModified(true);
return; }
} return;
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); }
} sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
}
} }

View File

@ -1,8 +1,6 @@
package venture.Aust1n46.chat.controllers.commands; package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.google.inject.Inject; import com.google.inject.Inject;
@ -10,12 +8,12 @@ import com.google.inject.Inject;
import venture.Aust1n46.chat.controllers.PluginMessageController; import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.ChatChannel; import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.PlayerCommand;
import venture.Aust1n46.chat.model.VentureChatPlayer; import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.service.ConfigService;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Leave implements VentureCommand { public class Leave extends PlayerCommand {
@Inject @Inject
private PluginMessageController pluginMessageController; private PluginMessageController pluginMessageController;
@Inject @Inject
@ -23,43 +21,39 @@ public class Leave implements VentureCommand {
@Inject @Inject
private ConfigService configService; private ConfigService configService;
@Override @Inject
public void execute(CommandSender sender, String command, String[] args) { public Leave(String name) {
if (!(sender instanceof Player)) { super(name);
Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); }
return;
} @Override
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender); public void executeCommand(Player sender, String command, String[] args) {
if (args.length > 0) { VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender);
ChatChannel channel = configService.getChannel(args[0]); if (args.length > 0) {
if (channel == null) { ChatChannel channel = configService.getChannel(args[0]);
mcp.getPlayer().sendMessage(LocalizedMessage.INVALID_CHANNEL.toString() if (channel == null) {
.replace("{args}", args[0])); mcp.getPlayer().sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[0]));
return; return;
} }
mcp.removeListening(channel.getName()); mcp.removeListening(channel.getName());
mcp.getPlayer().sendMessage(LocalizedMessage.LEAVE_CHANNEL.toString() mcp.getPlayer().sendMessage(LocalizedMessage.LEAVE_CHANNEL.toString().replace("{channel_color}", channel.getColor() + "").replace("{channel_name}", channel.getName()));
.replace("{channel_color}", channel.getColor() + "") boolean isThereABungeeChannel = channel.getBungee();
.replace("{channel_name}", channel.getName())); if (mcp.getListening().size() == 0) {
boolean isThereABungeeChannel = channel.getBungee(); mcp.addListening(configService.getDefaultChannel().getName());
if (mcp.getListening().size() == 0) { mcp.setCurrentChannel(configService.getDefaultChannel());
mcp.addListening(configService.getDefaultChannel().getName()); if (configService.getDefaultChannel().getBungee()) {
mcp.setCurrentChannel(configService.getDefaultChannel()); isThereABungeeChannel = true;
if (configService.getDefaultChannel().getBungee()) { }
isThereABungeeChannel = true; mcp.getPlayer().sendMessage(LocalizedMessage.MUST_LISTEN_ONE_CHANNEL.toString());
} mcp.getPlayer()
mcp.getPlayer().sendMessage(LocalizedMessage.MUST_LISTEN_ONE_CHANNEL.toString()); .sendMessage(LocalizedMessage.SET_CHANNEL.toString().replace("{channel_color}", ChatColor.valueOf(configService.getDefaultColor().toUpperCase()) + "")
mcp.getPlayer().sendMessage(LocalizedMessage.SET_CHANNEL.toString() .replace("{channel_name}", configService.getDefaultChannel().getName()));
.replace("{channel_color}", ChatColor.valueOf(configService.getDefaultColor().toUpperCase()) + "") }
.replace("{channel_name}", configService.getDefaultChannel().getName())); if (isThereABungeeChannel) {
} pluginMessageController.synchronize(mcp, true);
if (isThereABungeeChannel) { }
pluginMessageController.synchronize(mcp, true); return;
} }
return; mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/leave").replace("{args}", "[channel]"));
} }
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString()
.replace("{command}", "/leave")
.replace("{args}", "[channel]"));
}
} }

View File

@ -1,7 +1,5 @@
package venture.Aust1n46.chat.controllers.commands; package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.google.inject.Inject; import com.google.inject.Inject;
@ -9,12 +7,12 @@ import com.google.inject.Inject;
import venture.Aust1n46.chat.controllers.PluginMessageController; import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.ChatChannel; import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.PlayerCommand;
import venture.Aust1n46.chat.model.VentureChatPlayer; import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.service.ConfigService;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Listen implements VentureCommand { public class Listen extends PlayerCommand {
@Inject @Inject
private PluginMessageController pluginMessageController; private PluginMessageController pluginMessageController;
@Inject @Inject
@ -22,38 +20,35 @@ public class Listen implements VentureCommand {
@Inject @Inject
private ConfigService configService; private ConfigService configService;
@Override @Inject
public void execute(CommandSender sender, String command, String[] args) { public Listen(String name) {
if (!(sender instanceof Player)) { super(name);
Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); }
return;
} @Override
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender); public void executeCommand(Player player, String command, String[] args) {
if (args.length > 0) { VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer(player);
ChatChannel channel = configService.getChannel(args[0]); if (args.length > 0) {
if (channel == null) { ChatChannel channel = configService.getChannel(args[0]);
mcp.getPlayer().sendMessage(LocalizedMessage.INVALID_CHANNEL.toString() if (channel == null) {
.replace("{args}", args[0])); mcp.getPlayer().sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[0]));
return; 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; return;
} }
} }
mcp.addListening(channel.getName()); mcp.addListening(channel.getName());
mcp.getPlayer().sendMessage(LocalizedMessage.LISTEN_CHANNEL.toString() mcp.getPlayer()
.replace("{channel_color}", channel.getColor() + "") .sendMessage(LocalizedMessage.LISTEN_CHANNEL.toString().replace("{channel_color}", channel.getColor() + "").replace("{channel_name}", channel.getName()));
.replace("{channel_name}", channel.getName())); if (channel.getBungee()) {
if (channel.getBungee()) { pluginMessageController.synchronize(mcp, true);
pluginMessageController.synchronize(mcp, true); }
} return;
return; }
} mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/listen").replace("{args}", "[channel]"));
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() }
.replace("{command}", "/listen")
.replace("{args}", "[channel]"));
}
} }

View File

@ -6,49 +6,52 @@ import org.bukkit.entity.Player;
import com.google.inject.Inject; import com.google.inject.Inject;
import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.model.UniversalCommand;
import venture.Aust1n46.chat.service.VentureChatFormatService;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
import venture.Aust1n46.chat.utilities.FormatUtils; import venture.Aust1n46.chat.utilities.FormatUtils;
import venture.Aust1n46.chat.service.VentureChatFormatService;
public class Me implements VentureCommand { public class Me extends UniversalCommand {
@Inject @Inject
private VentureChatFormatService formatService; private VentureChatFormatService formatService;
@Inject @Inject
private VentureChatPlayerApiService playerApiService; private VentureChatPlayerApiService playerApiService;
@SuppressWarnings("deprecation") @Inject
public Me(String name) {
super(name);
}
@SuppressWarnings("deprecation")
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public void executeCommand(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 && playerApiService.getOnlineMineverseChatPlayer((Player) sender).isFilter()) { if (sender instanceof Player && playerApiService.getOnlineMineverseChatPlayer((Player) sender).isFilter()) {
msg = formatService.FilterChat(msg); msg = formatService.FilterChat(msg);
} }
if (sender.hasPermission("venturechat.color.legacy")) { if (sender.hasPermission("venturechat.color.legacy")) {
msg = FormatUtils.FormatStringLegacyColor(msg); msg = FormatUtils.FormatStringLegacyColor(msg);
} }
if (sender.hasPermission("venturechat.color")) if (sender.hasPermission("venturechat.color"))
msg = FormatUtils.FormatStringColor(msg); msg = FormatUtils.FormatStringColor(msg);
if (sender.hasPermission("venturechat.format")) if (sender.hasPermission("venturechat.format"))
msg = FormatUtils.FormatString(msg); msg = FormatUtils.FormatString(msg);
if (sender instanceof Player) { if (sender instanceof Player) {
Player p = (Player) sender; Player p = (Player) sender;
formatService.broadcastToServer("* " + p.getDisplayName() + msg); formatService.broadcastToServer("* " + p.getDisplayName() + msg);
return; return;
} }
formatService.broadcastToServer("* " + sender.getName() + msg); formatService.broadcastToServer("* " + sender.getName() + msg);
return; return;
} }
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/me").replace("{args}", "[message]"));
.replace("{command}", "/me") return;
.replace("{args}", "[message]")); }
return; sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
} }
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
}
} }

View File

@ -0,0 +1,219 @@
package venture.Aust1n46.chat.controllers.commands;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.util.StringUtil;
import com.google.inject.Inject;
import me.clip.placeholderapi.PlaceholderAPI;
import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.initiators.application.VentureChat;
import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.PlayerCommand;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.service.VentureChatFormatService;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
import venture.Aust1n46.chat.utilities.FormatUtils;
public class Message extends PlayerCommand {
@Inject
private VentureChat plugin;
@Inject
private VentureChatFormatService formatService;
@Inject
private PluginMessageController pluginMessageController;
@Inject
private VentureChatPlayerApiService playerApiService;
@Inject
public Message(String name) {
super(name);
}
@Override
public void executeCommand(Player sender, String command, String[] args) {
if (!(sender instanceof Player)) {
plugin.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return;
}
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender);
if (args.length == 0) {
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/" + command).replace("{args}", "[player] [message]"));
return;
}
if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) {
sendBungeeCordMessage(mcp, command, args);
return;
}
VentureChatPlayer player = playerApiService.getOnlineMineverseChatPlayer(args[0]);
if (player == null) {
mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().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.isMessageToggle()) {
mcp.getPlayer().sendMessage(LocalizedMessage.BLOCKING_MESSAGE.toString().replace("{player}", player.getName()));
return;
}
if (args.length >= 2) {
String msg = "";
String echo = "";
String send = "";
String spy = "";
if (args[1].length() > 0) {
for (int r = 1; r < args.length; r++) {
msg += " " + args[r];
}
if (mcp.isFilter()) {
msg = formatService.FilterChat(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) {
msg = FormatUtils.FormatStringLegacyColor(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.color")) {
msg = FormatUtils.FormatStringColor(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.format")) {
msg = FormatUtils.FormatString(msg);
}
send = FormatUtils
.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatfrom").replaceAll("sender_", "")));
echo = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatto").replaceAll("sender_", "")));
spy = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatspy").replaceAll("sender_", "")));
send = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), send.replaceAll("receiver_", ""))) + msg;
echo = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), echo.replaceAll("receiver_", ""))) + msg;
spy = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), spy.replaceAll("receiver_", ""))) + msg;
player.setReplyPlayer(mcp.getUuid());
mcp.setReplyPlayer(player.getUuid());
player.getPlayer().sendMessage(send);
mcp.getPlayer().sendMessage(echo);
if (player.isNotifications()) {
formatService.playMessageSound(player);
}
if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) {
for (VentureChatPlayer sp : playerApiService.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 (VentureChatPlayer sp : playerApiService.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 (VentureChatPlayer sp : playerApiService.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()));
}
}
}
}
@Override
public List<String> tabComplete(CommandSender sender, String alias, String[] args) {
if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) {
List<String> completions = new ArrayList<>();
StringUtil.copyPartialMatches(args[args.length - 1], playerApiService.getNetworkPlayerNames(), completions);
Collections.sort(completions);
return completions;
}
return null;
}
private void sendBungeeCordMessage(VentureChatPlayer mcp, String command, String[] args) {
if (args.length < 2) {
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/" + command).replace("{args}", "[player] [message]"));
return;
}
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(byteOutStream);
StringBuilder msgBuilder = new StringBuilder();
for (int r = 1; r < args.length; r++) {
msgBuilder.append(" " + args[r]);
}
String msg = msgBuilder.toString();
if (mcp.isFilter()) {
msg = formatService.FilterChat(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) {
msg = FormatUtils.FormatStringLegacyColor(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.color")) {
msg = FormatUtils.FormatStringColor(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.format")) {
msg = FormatUtils.FormatString(msg);
}
String send = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatfrom").replaceAll("sender_", "")));
String echo = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatto").replaceAll("sender_", "")));
String spy = "VentureChat:NoSpy";
if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) {
spy = FormatUtils.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);
pluginMessageController.sendPluginMessage(byteOutStream);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

View File

@ -1,227 +0,0 @@
package venture.Aust1n46.chat.controllers.commands;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabExecutor;
import org.bukkit.entity.Player;
import org.bukkit.util.StringUtil;
import com.google.inject.Inject;
import me.clip.placeholderapi.PlaceholderAPI;
import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.initiators.application.VentureChat;
import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
import venture.Aust1n46.chat.utilities.FormatUtils;
import venture.Aust1n46.chat.service.VentureChatFormatService;
public class MessageCommandExecutor implements TabExecutor {
@Inject
private VentureChat plugin;
@Inject
private VentureChatFormatService formatService;
@Inject
private PluginMessageController pluginMessageController;
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!(sender instanceof Player)) {
plugin.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return true;
}
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender);
if (args.length == 0) {
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString()
.replace("{command}", "/" + command.getName())
.replace("{args}", "[player] [message]"));
return true;
}
if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) {
sendBungeeCordMessage(mcp, command.getName(), args);
return true;
}
VentureChatPlayer player = playerApiService.getOnlineMineverseChatPlayer(args[0]);
if (player == null) {
mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString()
.replace("{args}", args[0]));
return true;
}
if (!mcp.getPlayer().canSee(player.getPlayer())) {
mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString()
.replace("{args}", args[0]));
return true;
}
if (player.getIgnores().contains(mcp.getUuid())) {
mcp.getPlayer().sendMessage(LocalizedMessage.IGNORING_MESSAGE.toString()
.replace("{player}", player.getName()));
return true;
}
if (!player.isMessageToggle()) {
mcp.getPlayer().sendMessage(LocalizedMessage.BLOCKING_MESSAGE.toString()
.replace("{player}", player.getName()));
return true;
}
if (args.length >= 2) {
String msg = "";
String echo = "";
String send = "";
String spy = "";
if (args[1].length() > 0) {
for (int r = 1; r < args.length; r++) {
msg += " " + args[r];
}
if (mcp.isFilter()) {
msg = formatService.FilterChat(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) {
msg = FormatUtils.FormatStringLegacyColor(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.color")) {
msg = FormatUtils.FormatStringColor(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.format")) {
msg = FormatUtils.FormatString(msg);
}
send = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatfrom").replaceAll("sender_", "")));
echo = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatto").replaceAll("sender_", "")));
spy = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatspy").replaceAll("sender_", "")));
send = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), send.replaceAll("receiver_", ""))) + msg;
echo = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), echo.replaceAll("receiver_", ""))) + msg;
spy = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), spy.replaceAll("receiver_", ""))) + msg;
player.setReplyPlayer(mcp.getUuid());
mcp.setReplyPlayer(player.getUuid());
player.getPlayer().sendMessage(send);
mcp.getPlayer().sendMessage(echo);
if (player.isNotifications()) {
formatService.playMessageSound(player);
}
if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) {
for (VentureChatPlayer sp : playerApiService.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 (VentureChatPlayer sp : playerApiService.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 (VentureChatPlayer sp : playerApiService.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;
}
@Override
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) {
if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) {
List<String> completions = new ArrayList<>();
StringUtil.copyPartialMatches(args[args.length - 1], playerApiService.getNetworkPlayerNames(), completions);
Collections.sort(completions);
return completions;
}
return null;
}
private void sendBungeeCordMessage(VentureChatPlayer mcp, String command, String[] args) {
if (args.length < 2) {
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString()
.replace("{command}", "/" + command)
.replace("{args}", "[player] [message]"));
return;
}
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(byteOutStream);
StringBuilder msgBuilder = new StringBuilder();
for (int r = 1; r < args.length; r++) {
msgBuilder.append(" " + args[r]);
}
String msg = msgBuilder.toString();
if (mcp.isFilter()) {
msg = formatService.FilterChat(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) {
msg = FormatUtils.FormatStringLegacyColor(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.color")) {
msg = FormatUtils.FormatStringColor(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.format")) {
msg = FormatUtils.FormatString(msg);
}
String send = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatfrom").replaceAll("sender_", "")));
String echo = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatto").replaceAll("sender_", "")));
String spy = "VentureChat:NoSpy";
if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) {
spy = FormatUtils.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);
pluginMessageController.sendPluginMessage(byteOutStream);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

View File

@ -1,43 +1,42 @@
package venture.Aust1n46.chat.controllers.commands; package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.google.inject.Inject; import com.google.inject.Inject;
import venture.Aust1n46.chat.controllers.PluginMessageController; import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.PlayerCommand;
import venture.Aust1n46.chat.model.VentureChatPlayer; import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class MessageToggle implements VentureCommand { public class MessageToggle extends PlayerCommand {
@Inject @Inject
private PluginMessageController pluginMessageController; private PluginMessageController pluginMessageController;
@Inject @Inject
private VentureChatPlayerApiService playerApiService; private VentureChatPlayerApiService playerApiService;
@Override @Inject
public void execute(CommandSender sender, String command, String[] args) { public MessageToggle(String name) {
if (!(sender instanceof Player)) { super(name);
Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); }
return;
} @Override
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender); public void executeCommand(Player player, String command, String[] args) {
if (mcp.getPlayer().hasPermission("venturechat.messagetoggle")) { VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer(player);
if (!mcp.isMessageToggle()) { if (mcp.getPlayer().hasPermission("venturechat.messagetoggle")) {
mcp.setMessageToggle(true); if (!mcp.isMessageToggle()) {
mcp.getPlayer().sendMessage(LocalizedMessage.MESSAGE_TOGGLE_ON.toString()); mcp.setMessageToggle(true);
pluginMessageController.synchronize(mcp, true); mcp.getPlayer().sendMessage(LocalizedMessage.MESSAGE_TOGGLE_ON.toString());
return; pluginMessageController.synchronize(mcp, true);
} return;
mcp.setMessageToggle(false); }
mcp.getPlayer().sendMessage(LocalizedMessage.MESSAGE_TOGGLE_OFF.toString()); mcp.setMessageToggle(false);
pluginMessageController.synchronize(mcp, true); mcp.getPlayer().sendMessage(LocalizedMessage.MESSAGE_TOGGLE_OFF.toString());
return; pluginMessageController.synchronize(mcp, true);
} return;
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); }
return; mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
} return;
}
} }

View File

@ -8,7 +8,6 @@ import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
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.util.StringUtil; import org.bukkit.util.StringUtil;
@ -18,203 +17,184 @@ import com.google.inject.Inject;
import venture.Aust1n46.chat.controllers.PluginMessageController; import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.ChatChannel; import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.UniversalCommand;
import venture.Aust1n46.chat.model.VentureChatPlayer; import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.service.ConfigService;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
import venture.Aust1n46.chat.utilities.FormatUtils; import venture.Aust1n46.chat.utilities.FormatUtils;
public class Mute implements VentureCommand { public class Mute extends UniversalCommand {
private static final List<String> COMMON_MUTE_TIMES = Collections.unmodifiableList(Arrays.asList(new String[]{"12h", "15m", "1d", "1h", "1m", "30s"})); private static final List<String> COMMON_MUTE_TIMES = Collections.unmodifiableList(Arrays.asList(new String[] { "12h", "15m", "1d", "1h", "1m", "30s" }));
@Inject @Inject
private PluginMessageController pluginMessageController; private PluginMessageController pluginMessageController;
@Inject @Inject
private VentureChatPlayerApiService playerApiService; private VentureChatPlayerApiService playerApiService;
@Inject @Inject
private ConfigService configService; private ConfigService configService;
@Override @Inject
public void execute(CommandSender sender, String command, String[] args) { public Mute(String name) {
if (sender.hasPermission("venturechat.mute")) { super(name);
if (args.length < 2) { }
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/mute")
.replace("{args}", "[channel] [player] {time} {reason}"));
return;
}
if (configService.isChannel(args[0])) {
ChatChannel channel = configService.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 = FormatUtils.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 = FormatUtils.FormatStringAll(reasonBuilder.toString().trim());
}
if (channel.getBungee()) {
sendBungeeCordMute(sender, args[1], channel, time, reason);
return;
}
VentureChatPlayer playerToMute = playerApiService.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 void executeCommand(CommandSender sender, String command, String[] args) {
playerToMute.addMute(channel.getName(), datetime + time); if (sender.hasPermission("venturechat.mute")) {
String timeString = FormatUtils.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;
.replace("{channel_color}", channel.getColor()) }
.replace("{channel_name}", channel.getName()) if (configService.isChannel(args[0])) {
.replace("{time}", timeString)); ChatChannel channel = configService.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 = FormatUtils.parseTimeStringToMillis(timeString);
} else { if (time <= 0) {
playerToMute.addMute(channel.getName(), datetime + time, reason); sender.sendMessage(LocalizedMessage.INVALID_TIME.toString().replace("{args}", timeString));
String timeString = FormatUtils.parseTimeStringFromMillis(time); return;
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 = FormatUtils.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;
.replace("{time}", timeString) }
.replace("{reason}", reason)); VentureChatPlayer playerToMute = playerApiService.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;
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;
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 = FormatUtils.parseTimeStringFromMillis(time);
StringUtil.copyPartialMatches(args[0], configService.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 (configService.isChannel(args[0])) { } else {
ChatChannel chatChannelObj = configService.getChannel(args[0]); playerToMute.setModified(true);
if (chatChannelObj.getBungee()) { }
StringUtil.copyPartialMatches(args[1], playerApiService.getNetworkPlayerNames(), completions); return;
Collections.sort(completions); } else {
return completions; playerToMute.addMute(channel.getName(), datetime + time, reason);
} String timeString = FormatUtils.parseTimeStringFromMillis(time);
StringUtil.copyPartialMatches(args[1], playerApiService.getOnlineMineverseChatPlayers().stream().filter(mcp -> !mcp.isMuted(chatChannelObj.getName())).map(VentureChatPlayer::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;
}
} 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;
} 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
return Collections.emptyList(); public List<String> tabComplete(CommandSender sender, String alias, String[] args) {
} List<String> completions = new ArrayList<>();
if (args.length == 1) {
StringUtil.copyPartialMatches(args[0], configService.getChatChannels().stream().map(ChatChannel::getName).collect(Collectors.toList()), completions);
Collections.sort(completions);
return completions;
}
if (args.length == 2) {
if (configService.isChannel(args[0])) {
ChatChannel chatChannelObj = configService.getChannel(args[0]);
if (chatChannelObj.getBungee()) {
StringUtil.copyPartialMatches(args[1], playerApiService.getNetworkPlayerNames(), completions);
Collections.sort(completions);
return completions;
}
StringUtil.copyPartialMatches(args[1], playerApiService.getOnlineMineverseChatPlayers().stream().filter(mcp -> !mcp.isMuted(chatChannelObj.getName()))
.map(VentureChatPlayer::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); }
pluginMessageController.sendPluginMessage(byteOutStream); out.writeUTF(playerToMute);
out.close(); out.writeUTF(channel.getName());
} catch (Exception e) { out.writeLong(time);
e.printStackTrace(); out.writeUTF(reason);
} pluginMessageController.sendPluginMessage(byteOutStream);
} out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
} }

View File

@ -7,13 +7,13 @@ import com.google.inject.Inject;
import venture.Aust1n46.chat.controllers.PluginMessageController; import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.ChatChannel; import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.UniversalCommand;
import venture.Aust1n46.chat.model.VentureChatPlayer; import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.service.ConfigService;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
import venture.Aust1n46.chat.utilities.FormatUtils; import venture.Aust1n46.chat.utilities.FormatUtils;
public class Muteall implements VentureCommand { public class Muteall extends UniversalCommand {
@Inject @Inject
private PluginMessageController pluginMessageController; private PluginMessageController pluginMessageController;
@Inject @Inject
@ -21,75 +21,73 @@ public class Muteall implements VentureCommand {
@Inject @Inject
private ConfigService configService; private ConfigService configService;
@Override @Inject
public void execute(CommandSender sender, String command, String[] args) { public Muteall(String name) {
if (sender.hasPermission("venturechat.mute")) { super(name);
if (args.length < 1) { }
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString()
.replace("{command}", "/muteall") @Override
.replace("{args}", "[player] {reason}")); public void executeCommand(CommandSender sender, String command, String[] args) {
return; if (sender.hasPermission("venturechat.mute")) {
} if (args.length < 1) {
VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[0]); sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/muteall").replace("{args}", "[player] {reason}"));
if (player == null || (!player.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) { return;
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() }
.replace("{args}", args[0])); VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[0]);
return; if (player == null || (!player.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) {
} 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 = FormatUtils.FormatStringAll(reasonBuilder.toString().trim()); reasonBuilder.append(args[a] + " ");
} }
if (reason.isEmpty()) { reason = FormatUtils.FormatStringAll(reasonBuilder.toString().trim());
boolean bungee = false; }
for (ChatChannel channel : configService.getChatChannels()) { if (reason.isEmpty()) {
if (channel.isMutable()) { boolean bungee = false;
player.addMute(channel.getName()); for (ChatChannel channel : configService.getChatChannels()) {
if (channel.getBungee()) { if (channel.isMutable()) {
bungee = true; player.addMute(channel.getName());
} if (channel.getBungee()) {
} bungee = true;
} }
if (bungee) { }
pluginMessageController.synchronize(player, true); }
} if (bungee) {
sender.sendMessage(LocalizedMessage.MUTE_PLAYER_ALL_SENDER.toString() pluginMessageController.synchronize(player, true);
.replace("{player}", player.getName())); }
if (player.isOnline()) { sender.sendMessage(LocalizedMessage.MUTE_PLAYER_ALL_SENDER.toString().replace("{player}", player.getName()));
player.getPlayer().sendMessage(LocalizedMessage.MUTE_PLAYER_ALL_PLAYER.toString()); if (player.isOnline()) {
} else player.getPlayer().sendMessage(LocalizedMessage.MUTE_PLAYER_ALL_PLAYER.toString());
player.setModified(true); } else
return; player.setModified(true);
} else { return;
boolean bungee = false; } else {
for (ChatChannel channel : configService.getChatChannels()) { boolean bungee = false;
if (channel.isMutable()) { for (ChatChannel channel : configService.getChatChannels()) {
player.addMute(channel.getName(), reason); if (channel.isMutable()) {
if (channel.getBungee()) { player.addMute(channel.getName(), reason);
bungee = true; if (channel.getBungee()) {
} bungee = true;
} }
} }
if (bungee) { }
pluginMessageController.synchronize(player, true); if (bungee) {
} pluginMessageController.synchronize(player, true);
sender.sendMessage(LocalizedMessage.MUTE_PLAYER_ALL_SENDER_REASON.toString() }
.replace("{player}", player.getName()) sender.sendMessage(LocalizedMessage.MUTE_PLAYER_ALL_SENDER_REASON.toString().replace("{player}", player.getName()).replace("{reason}", reason));
.replace("{reason}", reason)); if (player.isOnline()) {
if (player.isOnline()) { player.getPlayer().sendMessage(LocalizedMessage.MUTE_PLAYER_ALL_PLAYER_REASON.toString().replace("{reason}", reason));
player.getPlayer().sendMessage(LocalizedMessage.MUTE_PLAYER_ALL_PLAYER_REASON.toString() } else
.replace("{reason}", reason)); player.setModified(true);
} else return;
player.setModified(true); }
return; } else {
} sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
} else { return;
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); }
return; }
}
}
} }

View File

@ -1,35 +1,33 @@
package venture.Aust1n46.chat.controllers.commands; package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.google.inject.Inject; import com.google.inject.Inject;
import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.PlayerCommand;
import venture.Aust1n46.chat.model.VentureChatPlayer; import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Notifications implements VentureCommand { public class Notifications extends PlayerCommand {
@Inject @Inject
private VentureChatPlayerApiService playerApiService; private VentureChatPlayerApiService playerApiService;
@Override @Inject
public void execute(CommandSender sender, String command, String[] args) { public Notifications(String name) {
if (!(sender instanceof Player)) { super(name);
Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); }
return;
}
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender); @Override
if (!mcp.isNotifications()) { public void executeCommand(Player player, String command, String[] args) {
mcp.setNotifications(true); VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer(player);
mcp.getPlayer().sendMessage(LocalizedMessage.NOTIFICATIONS_ON.toString()); if (!mcp.isNotifications()) {
return; mcp.setNotifications(true);
} mcp.getPlayer().sendMessage(LocalizedMessage.NOTIFICATIONS_ON.toString());
mcp.setNotifications(false); return;
mcp.getPlayer().sendMessage(LocalizedMessage.NOTIFICATIONS_OFF.toString()); }
return; mcp.setNotifications(false);
} mcp.getPlayer().sendMessage(LocalizedMessage.NOTIFICATIONS_OFF.toString());
return;
}
} }

View File

@ -3,54 +3,53 @@ package venture.Aust1n46.chat.controllers.commands;
import static venture.Aust1n46.chat.utilities.FormatUtils.LINE_LENGTH; import static venture.Aust1n46.chat.utilities.FormatUtils.LINE_LENGTH;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.google.inject.Inject; import com.google.inject.Inject;
import venture.Aust1n46.chat.initiators.application.VentureChat; import venture.Aust1n46.chat.initiators.application.VentureChat;
import venture.Aust1n46.chat.model.PlayerCommand;
import venture.Aust1n46.chat.model.VentureChatPlayer; import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatFormatService; import venture.Aust1n46.chat.service.VentureChatFormatService;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
import venture.Aust1n46.chat.utilities.FormatUtils; import venture.Aust1n46.chat.utilities.FormatUtils;
public class Party implements VentureCommand { public class Party extends PlayerCommand {
@Inject @Inject
private VentureChat plugin; private VentureChat plugin;
@Inject @Inject
private VentureChatFormatService formatService; private VentureChatFormatService formatService;
@Inject @Inject
private VentureChatPlayerApiService playerApiService; private VentureChatPlayerApiService playerApiService;
@Inject
public Party(String name) {
super(name);
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public void executeCommand(Player sender, String command, String[] args) {
if(!(sender instanceof Player)) { VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer(sender);
plugin.getServer().getConsoleSender().sendMessage(ChatColor.RED + "This command must be run by a player."); if (!mcp.getPlayer().hasPermission("venturechat.party")) {
return;
}
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender);
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;
} }
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;
} }
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(VentureChatPlayer player : playerApiService.getMineverseChatPlayers()) { for (VentureChatPlayer player : playerApiService.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);
} }
} }
@ -64,21 +63,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;
} }
if(args.length > 1) { if (args.length > 1) {
VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[1]); VentureChatPlayer player = playerApiService.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());
@ -98,21 +95,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;
} }
if(mcp.hasParty()) { if (mcp.hasParty()) {
mcp.getPlayer().sendMessage(ChatColor.GREEN + "Leaving " + playerApiService.getMineverseChatPlayer(mcp.getParty()).getName() + "'s party."); mcp.getPlayer().sendMessage(ChatColor.GREEN + "Leaving " + playerApiService.getMineverseChatPlayer(mcp.getParty()).getName() + "'s party.");
mcp.setParty(null); mcp.setParty(null);
if(mcp.isHost()) { if (mcp.isHost()) {
for(VentureChatPlayer player : playerApiService.getMineverseChatPlayers()) { for (VentureChatPlayer player : playerApiService.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);
} }
} }
@ -125,16 +121,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;
} }
if(mcp.isHost()) { if (mcp.isHost()) {
if(args.length > 1) { if (args.length > 1) {
VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[1]); VentureChatPlayer player = playerApiService.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.");
@ -156,59 +152,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;
} }
if(mcp.hasParty() && !mcp.isHost()) { if (mcp.hasParty() && !mcp.isHost()) {
mcp.getPlayer().sendMessage(ChatColor.GREEN + "You are in " + playerApiService.getMineverseChatPlayer(mcp.getParty()).getName() + "'s party."); mcp.getPlayer().sendMessage(ChatColor.GREEN + "You are in " + playerApiService.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;
} }
@ -216,20 +202,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;
} }
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 = playerApiService.getMineverseChatPlayer(mcp.getConversation()).getName(); String tellChat = playerApiService.getMineverseChatPlayer(mcp.getConversation()).getName();
mcp.setConversation(null); mcp.setConversation(null);
for(VentureChatPlayer p : playerApiService.getOnlineMineverseChatPlayers()) { for (VentureChatPlayer p : playerApiService.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 + ".");
} }
} }
@ -240,39 +226,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;
} }
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;
} }
if(args.length > 1) { if (args.length > 1) {
VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[1]); VentureChatPlayer player = playerApiService.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(VentureChatPlayer p : playerApiService.getMineverseChatPlayers()) { for (VentureChatPlayer p : playerApiService.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);
@ -288,34 +274,36 @@ 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.isFilter()) { if (mcp.isFilter()) {
msg = formatService.FilterChat(msg); msg = formatService.FilterChat(msg);
} }
if(mcp.getPlayer().hasPermission("venturechat.color.legacy")) { if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) {
msg = FormatUtils.FormatStringLegacyColor(msg); msg = FormatUtils.FormatStringLegacyColor(msg);
} }
if(mcp.getPlayer().hasPermission("venturechat.color")) { if (mcp.getPlayer().hasPermission("venturechat.color")) {
msg = FormatUtils.FormatStringColor(msg); msg = FormatUtils.FormatStringColor(msg);
} }
if(mcp.getPlayer().hasPermission("venturechat.format")) { if (mcp.getPlayer().hasPermission("venturechat.format")) {
msg = FormatUtils.FormatString(msg); msg = FormatUtils.FormatString(msg);
} }
if(plugin.getConfig().getString("partyformat").equalsIgnoreCase("Default")) { if (plugin.getConfig().getString("partyformat").equalsIgnoreCase("Default")) {
partyformat = ChatColor.GREEN + "[" + playerApiService.getMineverseChatPlayer(mcp.getParty()).getName() + "'s Party] " + mcp.getName() + ":" + msg; partyformat = ChatColor.GREEN + "[" + playerApiService.getMineverseChatPlayer(mcp.getParty()).getName() + "'s Party] " + mcp.getName() + ":" + msg;
} else {
partyformat = FormatUtils.FormatStringAll(plugin.getConfig().getString("partyformat")
.replace("{host}", playerApiService.getMineverseChatPlayer(mcp.getParty()).getName()).replace("{player}", mcp.getName())) + msg;
} }
else { for (VentureChatPlayer p : playerApiService.getOnlineMineverseChatPlayers()) {
partyformat = FormatUtils.FormatStringAll(plugin.getConfig().getString("partyformat").replace("{host}", playerApiService.getMineverseChatPlayer(mcp.getParty()).getName()).replace("{player}", mcp.getName())) + msg; if ((p.getParty().equals(mcp.getParty()) || p.isSpy())) {
}
for(VentureChatPlayer p : playerApiService.getOnlineMineverseChatPlayers()) {
if((p.getParty().equals(mcp.getParty()) || p.isSpy())) {
p.getPlayer().sendMessage(partyformat); p.getPlayer().sendMessage(partyformat);
} }
} }
@ -324,8 +312,7 @@ public class Party implements VentureCommand {
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;

View File

@ -1,38 +1,37 @@
package venture.Aust1n46.chat.controllers.commands; package venture.Aust1n46.chat.controllers.commands;
import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.google.inject.Inject; import com.google.inject.Inject;
public class RangedSpy implements VentureCommand { import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.PlayerCommand;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class RangedSpy extends PlayerCommand {
@Inject @Inject
private VentureChatPlayerApiService playerApiService; private VentureChatPlayerApiService playerApiService;
@Override @Inject
public void execute(CommandSender sender, String command, String[] args) { public RangedSpy(String name) {
if (!(sender instanceof Player)) { super(name);
Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); }
return;
} @Override
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender); public void executeCommand(Player player, String command, String[] args) {
if (mcp.getPlayer().hasPermission("venturechat.rangedspy")) { VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) player);
if (!mcp.getRangedSpy()) { if (mcp.getPlayer().hasPermission("venturechat.rangedspy")) {
mcp.setRangedSpy(true); if (!mcp.getRangedSpy()) {
mcp.getPlayer().sendMessage(LocalizedMessage.RANGED_SPY_ON.toString()); mcp.setRangedSpy(true);
return; mcp.getPlayer().sendMessage(LocalizedMessage.RANGED_SPY_ON.toString());
} return;
mcp.setRangedSpy(false); }
mcp.getPlayer().sendMessage(LocalizedMessage.RANGED_SPY_OFF.toString()); mcp.setRangedSpy(false);
return; mcp.getPlayer().sendMessage(LocalizedMessage.RANGED_SPY_OFF.toString());
} return;
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); }
return; mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
} return;
}
} }

View File

@ -20,16 +20,16 @@ import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.initiators.application.VentureChat; import venture.Aust1n46.chat.initiators.application.VentureChat;
import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.ChatMessage; import venture.Aust1n46.chat.model.ChatMessage;
import venture.Aust1n46.chat.model.UniversalCommand;
import venture.Aust1n46.chat.model.VentureChatPlayer; import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.service.ConfigService;
import venture.Aust1n46.chat.service.VentureChatFormatService; import venture.Aust1n46.chat.service.VentureChatFormatService;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
import venture.Aust1n46.chat.utilities.FormatUtils; import venture.Aust1n46.chat.utilities.FormatUtils;
public class Removemessage implements VentureCommand { public class Removemessage extends UniversalCommand {
@Inject @Inject
private VentureChat plugin; private VentureChat plugin;
@Inject @Inject
private VentureChatFormatService formatService; private VentureChatFormatService formatService;
@Inject @Inject
@ -38,102 +38,115 @@ public class Removemessage implements VentureCommand {
private VentureChatPlayerApiService playerApiService; private VentureChatPlayerApiService playerApiService;
@Inject @Inject
private ConfigService configService; private ConfigService configService;
private PacketContainer emptyLinePacketContainer;
private WrappedChatComponent messageDeletedComponentPlayer;
@Inject private PacketContainer emptyLinePacketContainer;
public void postConstruct() { private WrappedChatComponent messageDeletedComponentPlayer;
emptyLinePacketContainer = formatService.createPacketPlayOutChat("{\"extra\":[\" \"],\"text\":\"\"}");
messageDeletedComponentPlayer = WrappedChatComponent.fromJson("{\"text\":\"\",\"extra\":[{\"text\":\"\",\"extra\":[" + formatService.convertToJsonColors(FormatUtils.FormatStringAll(plugin.getConfig().getString("messageremovertext"))) + "],\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[" + formatService.convertToJsonColors(FormatUtils.FormatStringAll(plugin.getConfig().getString("messageremoverpermissions"))) + "]}}}]}");
}
@Override
@SuppressWarnings({"unchecked", "rawtypes"})
public void 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;
}
final int hash;
try {
hash = Integer.parseInt(args[0]);
} catch (Exception e) {
sender.sendMessage(LocalizedMessage.INVALID_HASH.toString());
return;
}
if (args.length > 1 && configService.isChannel(args[1]) && configService.getChannel(args[1]).getBungee()) {
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(byteOutStream);
try {
out.writeUTF("RemoveMessage");
out.writeUTF(String.valueOf(hash));
pluginMessageController.sendPluginMessage(byteOutStream);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
return;
} else {
new BukkitRunnable() {
public void run() {
final Map<Player, List<PacketContainer>> packets = new HashMap();
for (VentureChatPlayer p : playerApiService.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(formatService.createPacketPlayOutChat(removedComponent));
resend = true;
continue;
}
if (message.getMessage().contains(ChatColor.stripColor(FormatUtils.FormatStringAll(plugin.getConfig().getString("guiicon"))))) {
String submessage = message.getMessage().substring(0, message.getMessage().length() - ChatColor.stripColor(FormatUtils.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(formatService.createPacketPlayOutChat(removedComponent));
resend = true;
continue;
}
}
playerPackets.add(formatService.createPacketPlayOutChat(message.getComponent()));
} @Inject
if (resend) { public Removemessage(String name) {
packets.put(p.getPlayer(), playerPackets); super(name);
} }
}
new BukkitRunnable() {
public void run() {
for (Player p : packets.keySet()) {
List<PacketContainer> pPackets = packets.get(p);
for (PacketContainer c : pPackets) {
formatService.sendPacketPlayOutChat(p, c);
}
}
}
}.runTask(plugin);
}
}.runTaskAsynchronously(plugin);
}
}
public WrappedChatComponent getMessageDeletedChatComponentPlayer() { @Inject
return this.messageDeletedComponentPlayer; public void postConstruct() {
} emptyLinePacketContainer = formatService.createPacketPlayOutChat("{\"extra\":[\" \"],\"text\":\"\"}");
messageDeletedComponentPlayer = WrappedChatComponent.fromJson("{\"text\":\"\",\"extra\":[{\"text\":\"\",\"extra\":["
+ formatService.convertToJsonColors(FormatUtils.FormatStringAll(plugin.getConfig().getString("messageremovertext")))
+ "],\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":["
+ formatService.convertToJsonColors(FormatUtils.FormatStringAll(plugin.getConfig().getString("messageremoverpermissions"))) + "]}}}]}");
}
public WrappedChatComponent getMessageDeletedChatComponentAdmin(ChatMessage message) { @Override
return WrappedChatComponent.fromJson("[{\"text\":\"\",\"extra\":[{\"text\":\"\",\"extra\":[" + formatService.convertToJsonColors(FormatUtils.FormatStringAll(plugin.getConfig().getString("messageremovertext"))) + "],\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\"," + message.getColoredMessage() + "}}}]}]"); @SuppressWarnings({ "unchecked", "rawtypes" })
} public void executeCommand(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;
}
final int hash;
try {
hash = Integer.parseInt(args[0]);
} catch (Exception e) {
sender.sendMessage(LocalizedMessage.INVALID_HASH.toString());
return;
}
if (args.length > 1 && configService.isChannel(args[1]) && configService.getChannel(args[1]).getBungee()) {
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(byteOutStream);
try {
out.writeUTF("RemoveMessage");
out.writeUTF(String.valueOf(hash));
pluginMessageController.sendPluginMessage(byteOutStream);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
return;
} else {
new BukkitRunnable() {
public void run() {
final Map<Player, List<PacketContainer>> packets = new HashMap();
for (VentureChatPlayer p : playerApiService.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(formatService.createPacketPlayOutChat(removedComponent));
resend = true;
continue;
}
if (message.getMessage().contains(ChatColor.stripColor(FormatUtils.FormatStringAll(plugin.getConfig().getString("guiicon"))))) {
String submessage = message.getMessage().substring(0,
message.getMessage().length() - ChatColor.stripColor(FormatUtils.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(formatService.createPacketPlayOutChat(removedComponent));
resend = true;
continue;
}
}
playerPackets.add(formatService.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) {
formatService.sendPacketPlayOutChat(p, c);
}
}
}
}.runTask(plugin);
}
}.runTaskAsynchronously(plugin);
}
}
public WrappedChatComponent getMessageDeletedChatComponentPlayer() {
return this.messageDeletedComponentPlayer;
}
public WrappedChatComponent getMessageDeletedChatComponentAdmin(ChatMessage message) {
return WrappedChatComponent.fromJson("[{\"text\":\"\",\"extra\":[{\"text\":\"\",\"extra\":["
+ formatService.convertToJsonColors(FormatUtils.FormatStringAll(plugin.getConfig().getString("messageremovertext")))
+ "],\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\"," + message.getColoredMessage() + "}}}]}]");
}
} }

View File

@ -3,7 +3,6 @@ package venture.Aust1n46.chat.controllers.commands;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream; import java.io.DataOutputStream;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.google.inject.Inject; import com.google.inject.Inject;
@ -12,15 +11,15 @@ import me.clip.placeholderapi.PlaceholderAPI;
import venture.Aust1n46.chat.controllers.PluginMessageController; import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.initiators.application.VentureChat; import venture.Aust1n46.chat.initiators.application.VentureChat;
import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.PlayerCommand;
import venture.Aust1n46.chat.model.VentureChatPlayer; import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.service.VentureChatFormatService;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
import venture.Aust1n46.chat.utilities.FormatUtils; import venture.Aust1n46.chat.utilities.FormatUtils;
import venture.Aust1n46.chat.service.VentureChatFormatService;
public class Reply implements VentureCommand { public class Reply extends PlayerCommand {
@Inject @Inject
private VentureChat plugin; private VentureChat plugin;
@Inject @Inject
private VentureChatFormatService formatService; private VentureChatFormatService formatService;
@Inject @Inject
@ -28,135 +27,140 @@ public class Reply implements VentureCommand {
@Inject @Inject
private VentureChatPlayerApiService playerApiService; private VentureChatPlayerApiService playerApiService;
@Override @Inject
public void execute(CommandSender sender, String command, String[] args) { public Reply(String name) {
if (!(sender instanceof Player)) { super(name);
plugin.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); }
return;
}
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender);
if (args.length > 0) {
if (mcp.hasReplyPlayer()) {
if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) {
sendBungeeCordReply(mcp, args);
return;
}
VentureChatPlayer player = playerApiService.getOnlineMineverseChatPlayer(mcp.getReplyPlayer()); @Override
if (player == null) { public void executeCommand(Player 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;
if (!mcp.getPlayer().canSee(player.getPlayer())) { }
mcp.getPlayer().sendMessage(LocalizedMessage.NO_PLAYER_TO_REPLY_TO.toString()); VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer(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;
return; }
}
if (!player.isMessageToggle()) {
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.isFilter()) {
msg = formatService.FilterChat(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) {
msg = FormatUtils.FormatStringLegacyColor(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.color")) {
msg = FormatUtils.FormatStringColor(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.format")) {
msg = FormatUtils.FormatString(msg);
}
send = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatfrom").replaceAll("sender_", ""))); VentureChatPlayer player = playerApiService.getOnlineMineverseChatPlayer(mcp.getReplyPlayer());
echo = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatto").replaceAll("sender_", ""))); if (player == null) {
spy = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatspy").replaceAll("sender_", ""))); mcp.getPlayer().sendMessage(LocalizedMessage.NO_PLAYER_TO_REPLY_TO.toString());
return;
}
if (!mcp.getPlayer().canSee(player.getPlayer())) {
mcp.getPlayer().sendMessage(LocalizedMessage.NO_PLAYER_TO_REPLY_TO.toString());
return;
}
if (player.getIgnores().contains(mcp.getUuid())) {
mcp.getPlayer().sendMessage(LocalizedMessage.IGNORING_MESSAGE.toString().replace("{player}", player.getName()));
return;
}
if (!player.isMessageToggle()) {
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.isFilter()) {
msg = formatService.FilterChat(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) {
msg = FormatUtils.FormatStringLegacyColor(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.color")) {
msg = FormatUtils.FormatStringColor(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.format")) {
msg = FormatUtils.FormatString(msg);
}
send = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), send.replaceAll("receiver_", ""))) + msg; send = FormatUtils
echo = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), echo.replaceAll("receiver_", ""))) + msg; .FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatfrom").replaceAll("sender_", "")));
spy = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), spy.replaceAll("receiver_", ""))) + msg; echo = FormatUtils
.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatto").replaceAll("sender_", "")));
spy = FormatUtils
.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatspy").replaceAll("sender_", "")));
if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) { send = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), send.replaceAll("receiver_", ""))) + msg;
for (VentureChatPlayer p : playerApiService.getOnlineMineverseChatPlayers()) { echo = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), echo.replaceAll("receiver_", ""))) + msg;
if (p.getName().equals(mcp.getName()) || p.getName().equals(player.getName())) { spy = FormatUtils.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.isNotifications()) {
formatService.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(VentureChatPlayer mcp, String[] args) { if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) {
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); for (VentureChatPlayer p : playerApiService.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.isFilter()) { }
msg = formatService.FilterChat(msg); }
} player.getPlayer().sendMessage(send);
if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) { mcp.getPlayer().sendMessage(echo);
msg = FormatUtils.FormatStringLegacyColor(msg); if (player.isNotifications()) {
} formatService.playMessageSound(player);
if (mcp.getPlayer().hasPermission("venturechat.color")) { }
msg = FormatUtils.FormatStringColor(msg); player.setReplyPlayer(mcp.getUuid());
} return;
if (mcp.getPlayer().hasPermission("venturechat.format")) { }
msg = FormatUtils.FormatString(msg); }
} 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]"));
}
String send = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatfrom").replaceAll("sender_", ""))); private void sendBungeeCordReply(VentureChatPlayer mcp, String[] args) {
String echo = FormatUtils.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 = FormatUtils.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.isFilter()) {
out.writeUTF(playerApiService.getMineverseChatPlayer(mcp.getReplyPlayer()).getName()); msg = formatService.FilterChat(msg);
out.writeUTF(mcp.getUuid().toString()); }
out.writeUTF(mcp.getName()); if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) {
out.writeUTF(send); msg = FormatUtils.FormatStringLegacyColor(msg);
out.writeUTF(echo); }
out.writeUTF(spy); if (mcp.getPlayer().hasPermission("venturechat.color")) {
out.writeUTF(msg); msg = FormatUtils.FormatStringColor(msg);
pluginMessageController.sendPluginMessage(byteOutStream); }
out.close(); if (mcp.getPlayer().hasPermission("venturechat.format")) {
} catch (Exception e) { msg = FormatUtils.FormatString(msg);
e.printStackTrace(); }
}
} String send = FormatUtils
.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatfrom").replaceAll("sender_", "")));
String echo = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatto").replaceAll("sender_", "")));
String spy = "VentureChat:NoSpy";
if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) {
spy = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatspy").replaceAll("sender_", "")));
}
try {
out.writeUTF("Message");
out.writeUTF("Send");
out.writeUTF(playerApiService.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);
pluginMessageController.sendPluginMessage(byteOutStream);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
} }

View File

@ -7,12 +7,12 @@ import com.google.inject.Inject;
import venture.Aust1n46.chat.controllers.PluginMessageController; import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.ChatChannel; import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.UniversalCommand;
import venture.Aust1n46.chat.model.VentureChatPlayer; import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.service.ConfigService;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Setchannel implements VentureCommand { public class Setchannel extends UniversalCommand {
@Inject @Inject
private PluginMessageController pluginMessageController; private PluginMessageController pluginMessageController;
@Inject @Inject
@ -20,74 +20,69 @@ public class Setchannel implements VentureCommand {
@Inject @Inject
private ConfigService configService; private ConfigService configService;
@Override @Inject
public void execute(CommandSender sender, String command, String[] args) { public Setchannel(String name) {
if (sender.hasPermission("venturechat.setchannel")) { super(name);
if (args.length < 2) { }
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString()
.replace("{command}", "/setchannel") @Override
.replace("{args}", "[player] [channel]")); public void executeCommand(CommandSender sender, String command, String[] args) {
return; if (sender.hasPermission("venturechat.setchannel")) {
} if (args.length < 2) {
VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[0]); sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/setchannel").replace("{args}", "[player] [channel]"));
if (player == null) { return;
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() }
.replace("{args}", args[0])); VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[0]);
return; if (player == null) {
} sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0]));
ChatChannel channel = configService.getChannel(args[1]); return;
if (channel == null) { }
sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString() ChatChannel channel = configService.getChannel(args[1]);
.replace("{args}", args[1])); if (channel == null) {
return; sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[1]));
} return;
if (channel.hasPermission()) { }
if (!player.isOnline()) { if (channel.hasPermission()) {
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE_NO_PERMISSIONS_CHECK.toString()); if (!player.isOnline()) {
return; sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE_NO_PERMISSIONS_CHECK.toString());
} return;
if (!player.getPlayer().hasPermission(channel.getPermission())) { }
player.removeListening(channel.getName()); if (!player.getPlayer().hasPermission(channel.getPermission())) {
sender.sendMessage(LocalizedMessage.SET_CHANNEL_PLAYER_CHANNEL_NO_PERMISSION.toString() player.removeListening(channel.getName());
.replace("{player}", player.getName()) sender.sendMessage(LocalizedMessage.SET_CHANNEL_PLAYER_CHANNEL_NO_PERMISSION.toString().replace("{player}", player.getName())
.replace("{channel_color}", channel.getColor() + "") .replace("{channel_color}", channel.getColor() + "").replace("{channel_name}", channel.getName()));
.replace("{channel_name}", channel.getName())); return;
return; }
} }
} player.addListening(channel.getName());
player.addListening(channel.getName()); player.setCurrentChannel(channel);
player.setCurrentChannel(channel); sender.sendMessage(LocalizedMessage.SET_CHANNEL_SENDER.toString().replace("{player}", player.getName()).replace("{channel_color}", channel.getColor() + "")
sender.sendMessage(LocalizedMessage.SET_CHANNEL_SENDER.toString() .replace("{channel_name}", channel.getName()));
.replace("{player}", player.getName()) if (player.hasConversation()) {
.replace("{channel_color}", channel.getColor() + "") for (VentureChatPlayer p : playerApiService.getOnlineMineverseChatPlayers()) {
.replace("{channel_name}", channel.getName())); if (p.isSpy()) {
if (player.hasConversation()) { p.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString().replace("{player_sender}", player.getName())
for (VentureChatPlayer p : playerApiService.getOnlineMineverseChatPlayers()) { .replace("{player_receiver}", playerApiService.getMineverseChatPlayer(player.getConversation()).getName()));
if (p.isSpy()) { }
p.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString() }
.replace("{player_sender}", player.getName()) if (player.isOnline())
.replace("{player_receiver}", playerApiService.getMineverseChatPlayer(player.getConversation()).getName())); player.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION.toString().replace("{player_receiver}",
} playerApiService.getMineverseChatPlayer(player.getConversation()).getName()));
} else
if (player.isOnline()) player.setModified(true);
player.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION.toString() player.setConversation(null);
.replace("{player_receiver}", playerApiService.getMineverseChatPlayer(player.getConversation()).getName())); }
else if (player.isOnline())
player.setModified(true); player.getPlayer()
player.setConversation(null); .sendMessage(LocalizedMessage.SET_CHANNEL.toString().replace("{channel_color}", channel.getColor() + "").replace("{channel_name}", channel.getName()));
} else {
if (player.isOnline()) player.setModified(true);
player.getPlayer().sendMessage(LocalizedMessage.SET_CHANNEL.toString() }
.replace("{channel_color}", channel.getColor() + "") if (channel.getBungee()) {
.replace("{channel_name}", channel.getName())); pluginMessageController.synchronize(player, true);
else { }
player.setModified(true); return;
} }
if (channel.getBungee()) { sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
pluginMessageController.synchronize(player, true); }
}
return;
}
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
}
} }

View File

@ -7,12 +7,12 @@ import com.google.inject.Inject;
import venture.Aust1n46.chat.controllers.PluginMessageController; import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.ChatChannel; import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.UniversalCommand;
import venture.Aust1n46.chat.model.VentureChatPlayer; import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.service.ConfigService;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Setchannelall implements VentureCommand { public class Setchannelall extends UniversalCommand {
@Inject @Inject
private PluginMessageController pluginMessageController; private PluginMessageController pluginMessageController;
@Inject @Inject
@ -20,51 +20,52 @@ public class Setchannelall implements VentureCommand {
@Inject @Inject
private ConfigService configService; private ConfigService configService;
@Override @Inject
public void execute(CommandSender sender, String command, String[] args) { public Setchannelall(String name) {
if (sender.hasPermission("venturechat.setchannelall")) { super(name);
if (args.length < 1) { }
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString()
.replace("{command}", "/setchannelall") @Override
.replace("{args}", "[player]")); public void executeCommand(CommandSender sender, String command, String[] args) {
return; if (sender.hasPermission("venturechat.setchannelall")) {
} if (args.length < 1) {
VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[0]); sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/setchannelall").replace("{args}", "[player]"));
if (player == null) { return;
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() }
.replace("{args}", args[0])); VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[0]);
return; if (player == null) {
} sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0]));
boolean isThereABungeeChannel = false; return;
for (ChatChannel channel : configService.getChatChannels()) { }
if (channel.hasPermission()) { boolean isThereABungeeChannel = false;
if (!player.isOnline()) { for (ChatChannel channel : configService.getChatChannels()) {
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE_NO_PERMISSIONS_CHECK.toString()); if (channel.hasPermission()) {
return; 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()) sender.sendMessage(LocalizedMessage.SET_CHANNEL_ALL_SENDER.toString().replace("{player}", player.getName()));
player.getPlayer().sendMessage(LocalizedMessage.SET_CHANNEL_ALL_PLAYER.toString()); if (player.isOnline())
else player.getPlayer().sendMessage(LocalizedMessage.SET_CHANNEL_ALL_PLAYER.toString());
player.setModified(true); else
if (isThereABungeeChannel) { player.setModified(true);
pluginMessageController.synchronize(player, true); if (isThereABungeeChannel) {
} pluginMessageController.synchronize(player, true);
return; }
} return;
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); }
} sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
}
} }

View File

@ -1,43 +1,42 @@
package venture.Aust1n46.chat.controllers.commands; package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.google.inject.Inject; import com.google.inject.Inject;
import venture.Aust1n46.chat.controllers.PluginMessageController; import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.PlayerCommand;
import venture.Aust1n46.chat.model.VentureChatPlayer; import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Spy implements VentureCommand { public class Spy extends PlayerCommand {
@Inject @Inject
private PluginMessageController pluginMessageController; private PluginMessageController pluginMessageController;
@Inject @Inject
private VentureChatPlayerApiService playerApiService; private VentureChatPlayerApiService playerApiService;
@Override @Inject
public void execute(CommandSender sender, String command, String[] args) { public Spy(String name) {
if (!(sender instanceof Player)) { super(name);
Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); }
return;
} @Override
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender); public void executeCommand(Player player, String command, String[] args) {
if (mcp.getPlayer().hasPermission("venturechat.spy")) { VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer(player);
if (!mcp.isSpy()) { if (mcp.getPlayer().hasPermission("venturechat.spy")) {
mcp.setSpy(true); if (!mcp.isSpy()) {
mcp.getPlayer().sendMessage(LocalizedMessage.SPY_ON.toString()); mcp.setSpy(true);
pluginMessageController.synchronize(mcp, true); mcp.getPlayer().sendMessage(LocalizedMessage.SPY_ON.toString());
return; pluginMessageController.synchronize(mcp, true);
} return;
mcp.setSpy(false); }
mcp.getPlayer().sendMessage(LocalizedMessage.SPY_OFF.toString()); mcp.setSpy(false);
pluginMessageController.synchronize(mcp, true); mcp.getPlayer().sendMessage(LocalizedMessage.SPY_OFF.toString());
return; pluginMessageController.synchronize(mcp, true);
} return;
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); }
return; mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
} return;
}
} }

View File

@ -7,7 +7,6 @@ import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
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.util.StringUtil; import org.bukkit.util.StringUtil;
@ -17,12 +16,12 @@ import com.google.inject.Inject;
import venture.Aust1n46.chat.controllers.PluginMessageController; import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.ChatChannel; import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.UniversalCommand;
import venture.Aust1n46.chat.model.VentureChatPlayer; import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.service.ConfigService;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Unmute implements VentureCommand { public class Unmute extends UniversalCommand {
@Inject @Inject
private PluginMessageController pluginMessageController; private PluginMessageController pluginMessageController;
@Inject @Inject
@ -30,93 +29,95 @@ public class Unmute implements VentureCommand {
@Inject @Inject
private ConfigService configService; private ConfigService configService;
@Override @Inject
public void execute(CommandSender sender, String command, String[] args) { public Unmute(String name) {
if (sender.hasPermission("venturechat.mute")) { super(name);
if (args.length < 2) { }
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/unmute")
.replace("{args}", "[channel] [player]"));
return;
}
if (configService.isChannel(args[0])) {
ChatChannel channel = configService.getChannel(args[0]);
if (channel.getBungee()) {
sendBungeeCordUnmute(sender, args[1], channel);
return;
}
VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[1]);
if (player == null || (!player.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) {
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[1]));
return;
}
if (!player.isMuted(channel.getName())) {
sender.sendMessage(LocalizedMessage.PLAYER_NOT_MUTED.toString()
.replace("{player}", player.getName()).replace("{channel_color}", channel.getColor())
.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())
.replace("{channel_name}", channel.getName()));
if (player.isOnline()) {
player.getPlayer().sendMessage(LocalizedMessage.UNMUTE_PLAYER_PLAYER.toString()
.replace("{player}", player.getName()).replace("{channel_color}", channel.getColor())
.replace("{channel_name}", channel.getName()));
} else {
player.setModified(true);
}
return;
}
sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[0]));
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 void executeCommand(CommandSender sender, String command, String[] args) {
List<String> completions = new ArrayList<>(); if (sender.hasPermission("venturechat.mute")) {
if (args.length == 1) { if (args.length < 2) {
StringUtil.copyPartialMatches(args[0], configService.getChatChannels().stream().map(ChatChannel::getName).collect(Collectors.toList()), completions); sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/unmute").replace("{args}", "[channel] [player]"));
Collections.sort(completions); return;
return completions; }
} if (configService.isChannel(args[0])) {
if (args.length == 2) { ChatChannel channel = configService.getChannel(args[0]);
if (configService.isChannel(args[0])) { if (channel.getBungee()) {
ChatChannel chatChannelObj = configService.getChannel(args[0]); sendBungeeCordUnmute(sender, args[1], channel);
if (chatChannelObj.getBungee()) { return;
StringUtil.copyPartialMatches(args[1], playerApiService.getNetworkPlayerNames(), completions); }
Collections.sort(completions); VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[1]);
return completions; if (player == null || (!player.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) {
} sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[1]));
StringUtil.copyPartialMatches(args[1], playerApiService.getOnlineMineverseChatPlayers().stream().filter(mcp -> mcp.isMuted(chatChannelObj.getName())).map(VentureChatPlayer::getName).collect(Collectors.toList()), completions); return;
Collections.sort(completions); }
return completions; if (!player.isMuted(channel.getName())) {
} sender.sendMessage(LocalizedMessage.PLAYER_NOT_MUTED.toString().replace("{player}", player.getName()).replace("{channel_color}", channel.getColor())
} .replace("{channel_name}", channel.getName()));
return Collections.emptyList(); return;
} }
player.removeMute(channel.getName());
sender.sendMessage(LocalizedMessage.UNMUTE_PLAYER_SENDER.toString().replace("{player}", player.getName()).replace("{channel_color}", channel.getColor())
.replace("{channel_name}", channel.getName()));
if (player.isOnline()) {
player.getPlayer().sendMessage(LocalizedMessage.UNMUTE_PLAYER_PLAYER.toString().replace("{player}", player.getName())
.replace("{channel_color}", channel.getColor()).replace("{channel_name}", channel.getName()));
} else {
player.setModified(true);
}
return;
}
sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[0]));
return;
} else {
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
return;
}
}
private void sendBungeeCordUnmute(CommandSender sender, String playerToUnmute, ChatChannel channel) { @Override
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); public List<String> tabComplete(CommandSender sender, String alias, String[] args) {
DataOutputStream out = new DataOutputStream(byteOutStream); List<String> completions = new ArrayList<>();
try { if (args.length == 1) {
out.writeUTF("Unmute"); StringUtil.copyPartialMatches(args[0], configService.getChatChannels().stream().map(ChatChannel::getName).collect(Collectors.toList()), completions);
out.writeUTF("Send"); Collections.sort(completions);
if (sender instanceof Player) { return completions;
out.writeUTF(((Player) sender).getUniqueId().toString()); }
} else { if (args.length == 2) {
out.writeUTF("VentureChat:Console"); if (configService.isChannel(args[0])) {
} ChatChannel chatChannelObj = configService.getChannel(args[0]);
out.writeUTF(playerToUnmute); if (chatChannelObj.getBungee()) {
out.writeUTF(channel.getName()); StringUtil.copyPartialMatches(args[1], playerApiService.getNetworkPlayerNames(), completions);
pluginMessageController.sendPluginMessage(byteOutStream); Collections.sort(completions);
out.close(); return completions;
} catch (Exception e) { }
e.printStackTrace(); StringUtil.copyPartialMatches(args[1], playerApiService.getOnlineMineverseChatPlayers().stream().filter(mcp -> mcp.isMuted(chatChannelObj.getName()))
} .map(VentureChatPlayer::getName).collect(Collectors.toList()), completions);
} Collections.sort(completions);
return completions;
}
}
return Collections.emptyList();
}
private void sendBungeeCordUnmute(CommandSender sender, String playerToUnmute, ChatChannel channel) {
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(byteOutStream);
try {
out.writeUTF("Unmute");
out.writeUTF("Send");
if (sender instanceof Player) {
out.writeUTF(((Player) sender).getUniqueId().toString());
} else {
out.writeUTF("VentureChat:Console");
}
out.writeUTF(playerToUnmute);
out.writeUTF(channel.getName());
pluginMessageController.sendPluginMessage(byteOutStream);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
} }

View File

@ -7,12 +7,12 @@ import com.google.inject.Inject;
import venture.Aust1n46.chat.controllers.PluginMessageController; import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.ChatChannel; import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.UniversalCommand;
import venture.Aust1n46.chat.model.VentureChatPlayer; import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.service.ConfigService;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Unmuteall implements VentureCommand { public class Unmuteall extends UniversalCommand {
@Inject @Inject
private PluginMessageController pluginMessageController; private PluginMessageController pluginMessageController;
@Inject @Inject
@ -20,41 +20,42 @@ public class Unmuteall implements VentureCommand {
@Inject @Inject
private ConfigService configService; private ConfigService configService;
@Override @Inject
public void execute(CommandSender sender, String command, String[] args) { public Unmuteall(String name) {
if (sender.hasPermission("venturechat.mute")) { super(name);
if (args.length < 1) { }
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString()
.replace("{command}", "/unmuteall") @Override
.replace("{args}", "[player]")); public void executeCommand(CommandSender sender, String command, String[] args) {
return; if (sender.hasPermission("venturechat.mute")) {
} if (args.length < 1) {
VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[0]); sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/unmuteall").replace("{args}", "[player]"));
if (player == null || (!player.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) { return;
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() }
.replace("{args}", args[0])); VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[0]);
return; if (player == null || (!player.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) {
} sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0]));
boolean bungee = false; return;
for (ChatChannel channel : configService.getChatChannels()) { }
player.removeMute(channel.getName()); boolean bungee = false;
if (channel.getBungee()) { for (ChatChannel channel : configService.getChatChannels()) {
bungee = true; player.removeMute(channel.getName());
} if (channel.getBungee()) {
} bungee = true;
if (bungee) { }
pluginMessageController.synchronize(player, true); }
} if (bungee) {
sender.sendMessage(LocalizedMessage.UNMUTE_PLAYER_ALL_SENDER.toString() pluginMessageController.synchronize(player, true);
.replace("{player}", player.getName())); }
if (player.isOnline()) { sender.sendMessage(LocalizedMessage.UNMUTE_PLAYER_ALL_SENDER.toString().replace("{player}", player.getName()));
player.getPlayer().sendMessage(LocalizedMessage.UNMUTE_PLAYER_ALL_PLAYER.toString()); if (player.isOnline()) {
} else player.getPlayer().sendMessage(LocalizedMessage.UNMUTE_PLAYER_ALL_PLAYER.toString());
player.setModified(true); } else
return; player.setModified(true);
} else { return;
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); } else {
return; sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
} return;
} }
}
} }

View File

@ -6,7 +6,6 @@ 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.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory; import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@ -20,192 +19,189 @@ import venture.Aust1n46.chat.initiators.application.VentureChat;
import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.ChatChannel; import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.GuiSlot; import venture.Aust1n46.chat.model.GuiSlot;
import venture.Aust1n46.chat.model.PlayerCommand;
import venture.Aust1n46.chat.model.VentureChatPlayer; import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.service.ConfigService;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
import venture.Aust1n46.chat.utilities.FormatUtils; import venture.Aust1n46.chat.utilities.FormatUtils;
import venture.Aust1n46.chat.utilities.VersionHandler; import venture.Aust1n46.chat.utilities.VersionHandler;
public class VentureChatGui implements VentureCommand { public class VentureChatGui extends PlayerCommand {
@Inject @Inject
private VentureChat plugin; private VentureChat plugin;
@Inject @Inject
private VentureChatPlayerApiService playerApiService; private VentureChatPlayerApiService playerApiService;
@Inject @Inject
private ConfigService configService; private ConfigService configService;
@Override @Inject
public void execute(CommandSender sender, String command, String[] args) { public VentureChatGui(String name) {
if (!(sender instanceof Player)) { super(name);
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;
}
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender);
if (mcp.getPlayer().hasPermission("venturechat.gui")) {
VentureChatPlayer target = playerApiService.getMineverseChatPlayer(args[0]);
if (target == null && !args[0].equals("Discord")) {
mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString()
.replace("{args}", args[0]));
return;
}
if (configService.isChannel(args[1])) {
ChatChannel channel = configService.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(VentureChatPlayer mcp, VentureChatPlayer target, ChatChannel channel, int hash) { public void executeCommand(Player player, String command, String[] args) {
Inventory inv = Bukkit.createInventory(null, this.getSlots(), "VentureChat: " + target.getName() + " GUI"); if (args.length < 3) {
ItemStack close = null; player.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/venturechatgui").replace("{args}", "[player] [channel] [hashcode]"));
ItemStack skull = null; return;
if (VersionHandler.is1_7()) { }
close = new ItemStack(Material.BEDROCK); VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer(player);
} else { if (mcp.getPlayer().hasPermission("venturechat.gui")) {
close = new ItemStack(Material.BARRIER); VentureChatPlayer target = playerApiService.getMineverseChatPlayer(args[0]);
} if (target == null && !args[0].equals("Discord")) {
mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0]));
return;
}
if (configService.isChannel(args[1])) {
ChatChannel channel = configService.getChannel(args[1]);
final int hash;
try {
hash = Integer.parseInt(args[2]);
} catch (Exception e) {
player.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;
}
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(VentureChatPlayer mcp, VentureChatPlayer 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 : configService.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());
plugin.getServer().getConsoleSender().sendMessage(FormatUtils.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(FormatUtils.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 : configService.getGuiSlots()) {
mcp.getPlayer().openInventory(inv); if (!g.hasPermission() || mcp.getPlayer().hasPermission(g.getPermission())) {
} if (this.checkSlot(g.getSlot())) {
plugin.getServer().getConsoleSender().sendMessage(FormatUtils.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(FormatUtils.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(VentureChatPlayer 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(VentureChatPlayer 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 : configService.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");
plugin.getServer().getConsoleSender().sendMessage(FormatUtils.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(FormatUtils.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 : configService.getGuiSlots()) {
mcp.getPlayer().openInventory(inv); if (!g.hasPermission() || mcp.getPlayer().hasPermission(g.getPermission())) {
} if (this.checkSlot(g.getSlot())) {
plugin.getServer().getConsoleSender().sendMessage(FormatUtils.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(FormatUtils.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,58 +1,25 @@
package venture.Aust1n46.chat.controllers.commands; package venture.Aust1n46.chat.controllers.commands;
import venture.Aust1n46.chat.initiators.application.VentureChat;
import venture.Aust1n46.chat.localization.InternalMessage;
//import net.md_5.bungee.api.chat.ClickEvent;
//import net.md_5.bungee.api.chat.ComponentBuilder;
//import net.md_5.bungee.api.chat.HoverEvent;
//import net.md_5.bungee.api.chat.TextComponent;
//import net.minecraft.server.v1_15_R1.IChatBaseComponent;
//import net.minecraft.server.v1_15_R1.PacketPlayOutChat;
import venture.Aust1n46.chat.model.VentureCommand;
//import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
//import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer;
//import org.bukkit.entity.Player;
import com.google.inject.Inject; import com.google.inject.Inject;
public class Venturechat implements VentureCommand { import venture.Aust1n46.chat.initiators.application.VentureChat;
import venture.Aust1n46.chat.localization.InternalMessage;
import venture.Aust1n46.chat.model.UniversalCommand;
public class Venturechat extends UniversalCommand {
@Inject @Inject
private VentureChat plugin; private VentureChat plugin;
@Inject
public Venturechat(String name) {
super(name);
}
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public void executeCommand(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());
// if (sender instanceof Player && plugin.getConfig().getString("loglevel", "info").equals("debug")) {
// Player player = (Player) sender;
// String title = ChatColor.GOLD + " | " + ChatColor.BLUE.toString() + ChatColor.BOLD + "SpigotAPI chat message" + ChatColor.RESET + ChatColor.GOLD + " | ";
// String spaces = " ";
// TextComponent tcSpaces = new TextComponent(spaces);
// TextComponent message = new TextComponent(title);
// message.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Click here to rank up!").create()));
// message.setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "Sample SpigotAPI Click Event"));
// tcSpaces.addExtra(message);
// player.spigot().sendMessage(tcSpaces);
//
//// sendActionBar(player, "NMS ActionBar message");
// }
} }
// public static void sendActionBar(Player player, String message) {
// message= message.replaceAll("%player%", player.getDisplayName());
// message = ChatColor.translateAlternateColorCodes('&', message);
// CraftPlayer p = (CraftPlayer) player;
// IChatBaseComponent cbc = IChatBaseComponent.ChatSerializer.a("{\"text\": \"" + message + "\"}");
// PacketPlayOutChat ppoc = new PacketPlayOutChat(cbc);
// try {
// MineverseChat.posField.set(ppoc, MineverseChat.chatMessageType.getEnumConstants()[2]);
// }
// catch (Exception e) {
// e.printStackTrace();
// }
// p.getHandle().playerConnection.sendPacket(ppoc);
// }
} }

View File

@ -398,7 +398,7 @@ public class VentureChatProxyController {
out.writeUTF(spy); out.writeUTF(spy);
out.writeUTF(msg); out.writeUTF(msg);
source.getServers().forEach(serv -> { source.getServers().forEach(serv -> {
if(!send.isEmpty()) { if(!serv.isEmpty()) {
source.sendPluginMessage(serv.getName(), outstream.toByteArray()); source.sendPluginMessage(serv.getName(), outstream.toByteArray());
} }
}); });

View File

@ -1,17 +0,0 @@
package venture.Aust1n46.chat.model;
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;
}
}