mirror of
https://github.com/Aust1n46/VentureChat.git
synced 2025-05-24 03:12:45 +00:00
319 lines
14 KiB
Java
319 lines
14 KiB
Java
package mineverse.Aust1n46.chat.command.chat;
|
|
|
|
import org.bukkit.ChatColor;
|
|
import org.bukkit.command.CommandSender;
|
|
import org.bukkit.entity.Player;
|
|
|
|
import mineverse.Aust1n46.chat.MineverseChat;
|
|
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
|
|
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
|
|
import mineverse.Aust1n46.chat.channel.ChatChannelInfo;
|
|
import mineverse.Aust1n46.chat.command.MineverseCommand;
|
|
import mineverse.Aust1n46.chat.utilities.Format;
|
|
|
|
public class Party extends MineverseCommand {
|
|
private MineverseChat plugin;
|
|
private ChatChannelInfo cc = MineverseChat.ccInfo;
|
|
|
|
public Party(String name) {
|
|
super(name);
|
|
this.plugin = MineverseChat.getInstance();
|
|
}
|
|
|
|
@Override
|
|
public void execute(CommandSender sender, String command, String[] args) {
|
|
if(!(sender instanceof Player)) {
|
|
plugin.getServer().getConsoleSender().sendMessage(ChatColor.RED + "This command must be run by a player.");
|
|
return;
|
|
}
|
|
MineverseChatPlayer mcp = MineverseChatAPI.getMineverseChatPlayer((Player) sender);
|
|
if(!mcp.getPlayer().hasPermission("venturechat.party")) {
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!");
|
|
return;
|
|
}
|
|
try {
|
|
switch(args[0]) {
|
|
case "host": {
|
|
if(!mcp.getPlayer().hasPermission("venturechat.party.host")) {
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!");
|
|
return;
|
|
}
|
|
if(mcp.isHost()) {
|
|
mcp.setHost(false);
|
|
mcp.getPlayer().sendMessage(ChatColor.GREEN + "You are no longer hosting a party.");
|
|
for(MineverseChatPlayer player : MineverseChat.players) {
|
|
if(player.hasParty() && player.getParty().equals(mcp.getParty())) {
|
|
player.setParty(null);
|
|
if(player.isOnline()) player.getPlayer().sendMessage(ChatColor.RED + mcp.getName() + " is no longer hosting a party.");
|
|
else player.setModified(true);
|
|
}
|
|
}
|
|
mcp.setParty(null);
|
|
break;
|
|
}
|
|
mcp.setHost(true);
|
|
mcp.getPlayer().sendMessage(ChatColor.GREEN + "You are now hosting a party.");
|
|
mcp.setParty(mcp.getUUID());
|
|
break;
|
|
}
|
|
case "join": {
|
|
if(!mcp.getPlayer().hasPermission("venturechat.party.join")) {
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!");
|
|
return;
|
|
}
|
|
if(args.length > 1) {
|
|
MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[1]);
|
|
if(player != null) {
|
|
if(player.isHost()) {
|
|
if(!mcp.hasParty()) {
|
|
/*
|
|
* if(plugin.getMetadata(player,
|
|
* "MineverseChat.party.ban." + tp.getName(),
|
|
* plugin)) { player.sendMessage(ChatColor.RED +
|
|
* "You are banned from " + tp.getName() +
|
|
* "'s party."); break; }
|
|
*/
|
|
mcp.getPlayer().sendMessage(ChatColor.GREEN + "Joined " + player.getName() + "'s party.");
|
|
mcp.setParty(player.getUUID());
|
|
player.getPlayer().sendMessage(ChatColor.GREEN + mcp.getName() + " joined your party.");
|
|
break;
|
|
}
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "You are already in " + MineverseChatAPI.getMineverseChatPlayer(mcp.getParty()).getName() + "'s party.");
|
|
break;
|
|
}
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + player.getName() + " is not hosting a party.");
|
|
break;
|
|
}
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "Player: " + ChatColor.GOLD + args[1] + ChatColor.RED + " is not online.");
|
|
break;
|
|
}
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "Invalid command: /party join [player]");
|
|
break;
|
|
}
|
|
case "leave": {
|
|
if(!mcp.getPlayer().hasPermission("venturechat.party.leave")) {
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!");
|
|
return;
|
|
}
|
|
if(mcp.hasParty()) {
|
|
mcp.getPlayer().sendMessage(ChatColor.GREEN + "Leaving " + MineverseChatAPI.getMineverseChatPlayer(mcp.getParty()).getName() + "'s party.");
|
|
mcp.setParty(null);
|
|
if(mcp.isHost()) {
|
|
for(MineverseChatPlayer player : MineverseChat.players) {
|
|
if(player.hasParty() && player.getParty().equals(mcp.getUUID()) && !player.getName().equals(mcp.getName())) {
|
|
player.setParty(null);
|
|
if(player.isOnline()) player.getPlayer().sendMessage(ChatColor.RED + mcp.getName() + " is no longer hosting a party.");
|
|
else player.setModified(true);
|
|
}
|
|
}
|
|
}
|
|
mcp.setHost(false);
|
|
break;
|
|
}
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "You are not in a party.");
|
|
break;
|
|
}
|
|
case "kick": {
|
|
if(!mcp.getPlayer().hasPermission("venturechat.party.kick")) {
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!");
|
|
return;
|
|
}
|
|
if(mcp.isHost()) {
|
|
if(args.length > 1) {
|
|
MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[1]);
|
|
if(player != null) {
|
|
if(!player.getName().equals(mcp.getName())) {
|
|
if(player.hasParty() && player.getParty().equals(mcp.getUUID())) {
|
|
player.setParty(null);
|
|
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.");
|
|
break;
|
|
}
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "Player " + player.getName() + " is not in your party.");
|
|
break;
|
|
}
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "You cannot kick yourself.");
|
|
break;
|
|
}
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "Player: " + ChatColor.GOLD + args[1] + ChatColor.RED + " is not online.");
|
|
break;
|
|
}
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "Invalid command: /party kick [playername]");
|
|
break;
|
|
}
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "You are not hosting a party.");
|
|
break;
|
|
}
|
|
/*
|
|
* 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) {
|
|
* 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 +
|
|
* "Invalid command: /party unban [playername]"); break; }
|
|
* player.sendMessage(ChatColor.RED +
|
|
* "You are not hosting a party."); break; }
|
|
*/
|
|
case "info": {
|
|
if(!mcp.getPlayer().hasPermission("venturechat.party.info")) {
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!");
|
|
return;
|
|
}
|
|
if(mcp.hasParty() && !mcp.isHost()) {
|
|
mcp.getPlayer().sendMessage(ChatColor.GREEN + "You are in " + MineverseChatAPI.getMineverseChatPlayer(mcp.getParty()).getName() + "'s party.");
|
|
}
|
|
else if(mcp.isHost()) {
|
|
mcp.getPlayer().sendMessage(ChatColor.GREEN + "You are hosting a party.");
|
|
}
|
|
else {
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "You are not hosting a party and you are not in a party.");
|
|
}
|
|
if(mcp.isPartyChat()) {
|
|
mcp.getPlayer().sendMessage(ChatColor.GREEN + "Party chat on.");
|
|
break;
|
|
}
|
|
mcp.getPlayer().sendMessage(ChatColor.GREEN + "Party chat off.");
|
|
break;
|
|
}
|
|
case "chat": {
|
|
if(!mcp.getPlayer().hasPermission("venturechat.party.chat")) {
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!");
|
|
return;
|
|
}
|
|
if(mcp.isPartyChat()) {
|
|
mcp.setPartyChat(false);
|
|
mcp.getPlayer().sendMessage(ChatColor.GREEN + "Toggled party chat off.");
|
|
break;
|
|
}
|
|
if(mcp.hasConversation()) {
|
|
String tellChat = MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName();
|
|
mcp.setConversation(null);
|
|
for(MineverseChatPlayer p : MineverseChat.players) {
|
|
if(p.isOnline() && p.isSpy()) {
|
|
p.getPlayer().sendMessage(mcp.getName() + " is no longer in a private conversation with " + tellChat + ".");
|
|
}
|
|
}
|
|
mcp.getPlayer().sendMessage("You are no longer in private conversation with " + tellChat);
|
|
}
|
|
mcp.setPartyChat(true);
|
|
mcp.getPlayer().sendMessage(ChatColor.GREEN + "Toggled party chat on.");
|
|
break;
|
|
}
|
|
case "help": {
|
|
if(!mcp.getPlayer().hasPermission("venturechat.party.help")) {
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!");
|
|
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");
|
|
break;
|
|
}
|
|
case "members": {
|
|
if(!mcp.getPlayer().hasPermission("venturechat.party.members")) {
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!");
|
|
return;
|
|
}
|
|
if(args.length > 1) {
|
|
MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[1]);
|
|
if(player != null) {
|
|
if(player.isHost()) {
|
|
String members = "";
|
|
long linecount = plugin.getLineLength();
|
|
for(MineverseChatPlayer p : MineverseChat.players) {
|
|
if(p.getParty() != null && p.getParty().equals(player.getUUID())) {
|
|
if(members.length() + p.getName().length() > linecount) {
|
|
members += "\n";
|
|
linecount = linecount + plugin.getLineLength();
|
|
}
|
|
if(p.isOnline()) {
|
|
members += ChatColor.GREEN + p.getName() + ChatColor.WHITE + ", ";
|
|
}
|
|
else {
|
|
members += ChatColor.RED + p.getName() + ChatColor.WHITE + ", ";
|
|
}
|
|
}
|
|
}
|
|
if(members.length() > 2) {
|
|
members = members.substring(0, members.length() - 2);
|
|
}
|
|
mcp.getPlayer().sendMessage(ChatColor.GREEN + "Members in " + player.getName() + "'s party: " + members);
|
|
break;
|
|
}
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "Player " + player.getName() + " is not hosting a party.");
|
|
break;
|
|
}
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "Player: " + ChatColor.GOLD + args[1] + ChatColor.RED + " is not online.");
|
|
break;
|
|
}
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "Invalid command: /party members [player]");
|
|
break;
|
|
}
|
|
}
|
|
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(mcp.hasParty()) {
|
|
String msg = "";
|
|
String partyformat = "";
|
|
for(int x = 0; x < args.length; x++) {
|
|
if(args[x].length() > 0) msg += " " + args[x];
|
|
}
|
|
if(mcp.hasFilter()) {
|
|
msg = cc.FilterChat(msg);
|
|
}
|
|
if(mcp.getPlayer().hasPermission("venturechat.color")) {
|
|
msg = Format.FormatStringColor(msg);
|
|
}
|
|
if(mcp.getPlayer().hasPermission("venturechat.format")) {
|
|
msg = Format.FormatString(msg);
|
|
}
|
|
if(plugin.getConfig().getString("partyformat").equalsIgnoreCase("Default")) {
|
|
partyformat = ChatColor.GREEN + "[" + MineverseChatAPI.getMineverseChatPlayer(mcp.getParty()).getName() + "'s Party] " + mcp.getName() + ":" + msg;
|
|
}
|
|
else {
|
|
partyformat = Format.FormatStringAll(plugin.getConfig().getString("partyformat").replace("{host}", MineverseChatAPI.getMineverseChatPlayer(mcp.getParty()).getName()).replace("{player}", mcp.getName())) + msg;
|
|
}
|
|
for(MineverseChatPlayer p : MineverseChat.players) {
|
|
if(p.isOnline() && (p.getParty().equals(mcp.getParty()) || p.isSpy())) {
|
|
p.getPlayer().sendMessage(partyformat);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "You are not in a party.");
|
|
}
|
|
}
|
|
}
|
|
catch(Exception e) {
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "Invalid arguments, /party help");
|
|
}
|
|
return;
|
|
}
|
|
} |