Working party system, still need to fix party chat to not be jibberish though.

This commit is contained in:
nossr50 2010-12-30 12:18:38 -08:00
parent 2a1ff28af2
commit 42cb17db5b
6 changed files with 104 additions and 5 deletions

View File

@ -448,6 +448,20 @@ public class vMinecraftChat {
} }
return false; return false;
} }
public static boolean partyChat(Player player, String message){
if(vMinecraftUsers.getProfile(player).inParty()){
String partychat = Colors.Green + "(" + getName(player) + Colors.Green + ") ";
for (Player p: etc.getServer().getPlayerList()){
if (p != null){
if (vMinecraftUsers.getProfile(p).inParty() && (vMinecraftUsers.getProfile(p).getParty().equals(vMinecraftUsers.getProfile(player).getParty()))){
sendMessage(player, p, partychat + message);
}
}
}
return true;
}
return false;
}
//===================================================================== //=====================================================================
//Function: quote //Function: quote

View File

@ -53,6 +53,11 @@ public class vMinecraftCommands{
cl.register("/who", "who"); cl.register("/who", "who");
cl.register("/promote", "promote", "Promote a player one rank"); cl.register("/promote", "promote", "Promote a player one rank");
cl.register("/demote", "demote", "Demote a player one rank"); cl.register("/demote", "demote", "Demote a player one rank");
//Party
cl.register("/party", "party");
cl.register("/pquit", "partyquit");
cl.register("/p", "partychat");
//Movement //Movement
cl.register("/freeze", "freeze"); cl.register("/freeze", "freeze");
@ -179,6 +184,39 @@ public class vMinecraftCommands{
.globalmessages()); .globalmessages());
return EXIT_SUCCESS; return EXIT_SUCCESS;
} }
public static int partychat(Player player, String[] args){
if(vMinecraftUsers.getProfile(player).inParty()){
String message = args.toString();
vMinecraftChat.partyChat(player, message);
return EXIT_SUCCESS;
} else{
return EXIT_FAIL;
}
}
public static int party(Player player, String[] args){
if(vMinecraftUsers.getProfile(player).inParty()){
player.sendMessage(Colors.Red + "You are already in a party, use /pquit to leave it");
return EXIT_SUCCESS;
}
if(args[0] != null) {
vMinecraftUsers.getProfile(player).setParty(args[0]);
player.sendMessage(Colors.DarkPurple + "Party set to " + args[0]);
return EXIT_SUCCESS;
} else {
player.sendMessage(Colors.Red + "Correct usage is /party [partyname]");
return EXIT_SUCCESS;
}
}
public static int partyquit(Player player, String[] args){
if(vMinecraftUsers.getProfile(player).inParty()){
vMinecraftUsers.getProfile(player).removeParty();
player.sendMessage(Colors.LightGreen + "Party successfully removed");
return EXIT_SUCCESS;
} else {
player.sendMessage(Colors.Red + "You are not in a party");
return EXIT_SUCCESS;
}
}
public static int tpback(Player player, String[] args){ public static int tpback(Player player, String[] args){
if(player.canUseCommand("/tpback")){ if(player.canUseCommand("/tpback")){
String tpxyz = vMinecraftUsers.getProfile(player).getTpxyz(); String tpxyz = vMinecraftUsers.getProfile(player).getTpxyz();

View File

@ -162,10 +162,20 @@ public class vMinecraftListener extends PluginListener {
//Invincibility for EzModo players //Invincibility for EzModo players
if(defender.isPlayer()){ if(defender.isPlayer()){
Player dplayer = defender.getPlayer(); Player dplayer = defender.getPlayer();
if(vMinecraftSettings.getInstance().isEzModo(dplayer.getName())){ if(vMinecraftSettings.getInstance().isEzModo(dplayer.getName())){
return true; return true;
} }
if(attacker.isPlayer()){
Player aplayer = attacker.getPlayer();
if(vMinecraftUsers.getProfile(dplayer).inParty()){
if(vMinecraftParty.inSameParty(aplayer, dplayer)){
return true;
} else{
return false;
}
}
}
} }
return false; return false;
} }
} }

12
vMinecraftParty.java Normal file
View File

@ -0,0 +1,12 @@
import java.util.ArrayList;
public class vMinecraftParty {
//Check if two players are in the same party
public static boolean inSameParty(Player playera, Player playerb){
if(vMinecraftUsers.getProfile(playera).getParty().equals(vMinecraftUsers.getProfile(playerb).getParty())){
return true;
} else {
return false;
}
}
}

View File

@ -52,7 +52,8 @@ public class vMinecraftSettings {
//An array of players currently toggled for admin chat //An array of players currently toggled for admin chat
static ArrayList<String> adminChatList = new ArrayList<String>(); static ArrayList<String> adminChatList = new ArrayList<String>();
//An array of blocks that won't catch on fire //An array of blocks that won't catch on fire
static public ArrayList<Integer> fireblockan; static public ArrayList<Integer> fireblockan;
private PropertiesFile properties; private PropertiesFile properties;
String file = "vminecraft.properties"; String file = "vminecraft.properties";

View File

@ -153,6 +153,7 @@ class PlayerList
nickName, nickName,
tag, tag,
suffix, suffix,
party,
tpxyz; tpxyz;
private boolean dead; private boolean dead;
@ -183,6 +184,8 @@ class PlayerList
nickName = new String(); nickName = new String();
suffix = new String(); suffix = new String();
tpxyz = new String(); tpxyz = new String();
party = new String();
party = null;
defaultColor = 'f'; defaultColor = 'f';
ignoreList = new ArrayList<String>(); ignoreList = new ArrayList<String>();
aliasList = new commandList(); aliasList = new commandList();
@ -505,6 +508,27 @@ class PlayerList
nickName = newNick; nickName = newNick;
save(); save();
} }
//Store the player's party
public void setParty(String newParty)
{
party = newParty;
save();
}
//Retrieve the player's party
public String getParty() {return party;}
//Remove party
public void removeParty() {
party = null;
save();
}
//Retrieve whether or not the player is in a party
public boolean inParty() {
if(party != null){
return true;
} else {
return false;
}
}
//===================================================================== //=====================================================================
//Function: getNick //Function: getNick