diff --git a/vCom.java b/vCom.java index f40c8cb81..1cc521410 100644 --- a/vCom.java +++ b/vCom.java @@ -272,10 +272,21 @@ private static HashMap hidden = new HashMap(); } } public static int party(Player player, String[] args){ - if(vUsers.getProfile(player).inParty()){ + if(vUsers.getProfile(player).inParty() && args.length > 1){ player.sendMessage(Colors.Red + "You are already in a party, use /pquit to leave it"); return EXIT_SUCCESS; } + if(vUsers.getProfile(player).inParty()){ + int x = 0; + String partymembers[] = null; + for(Player p : etc.getServer().getPlayerList()){ + if(vmc.inSameParty(player, p)){ + partymembers[x] = p.getName(); + x++; + } + } + player.sendMessage(Colors.Green + "Party Members: " + partymembers); + } if(args[0] != null) { vUsers.getProfile(player).setParty(args[0]); player.sendMessage(Colors.DarkPurple + "Party set to " + args[0]); @@ -338,25 +349,27 @@ private static HashMap hidden = new HashMap(); public static int freeze(Player player, String[] args){ if(player.canUseCommand("/freeze") && vConfig.getInstance().freeze()){ if (args.length < 1){ - vChat.gmsg(Colors.Rose + "Usage is /freeze [Player]"); + player.sendMessage(Colors.Rose + "Usage is /freeze [Player]"); return EXIT_SUCCESS; } Player other = etc.getServer().matchPlayer(args[0]); if (other == null) { - vChat.gmsg(Colors.Rose + "The player you specified could not be found"); + player.sendMessage(Colors.Rose + "The player you specified could not be found"); return EXIT_SUCCESS; } if(player != other && other.hasControlOver(player)){ - vChat.gmsg(Colors.Rose + "The player you specified has a higher rank than you"); + player.sendMessage(Colors.Rose + "The player you specified has a higher rank than you"); return EXIT_SUCCESS; } if(vConfig.getInstance().isFrozen(other.getName())){ vConfig.getInstance().removeFrozen(other.getName()); + if(!vUsers.getProfile(player).isSilent()) vChat.gmsg(player.getName() + Colors.Blue + " has unfrozen " + other.getName()); return EXIT_SUCCESS; } else { vConfig.getInstance().addFrozen(other.getName()); + if(!vUsers.getProfile(player).isSilent()) vChat.gmsg(player.getName() + Colors.Blue + " has frozen " + other.getName()); return EXIT_SUCCESS; } @@ -1234,6 +1247,19 @@ private static HashMap hidden = new HashMap(); for (Player p : etc.getServer().getPlayerList()) { if (!p.hasControlOver(player)) { p.teleportTo(player); + double x = player.getLocation().x; + double y = player.getLocation().y; + double z = player.getLocation().z; + String x2 = Double.toString(x); + String y2 = Double.toString(y); + String z2 = Double.toString(z); + String xyz = x2+","+y2+","+z2; + vUsers.getProfile(p).setTpback(xyz); + if(p.canUseCommand("/tpback")) + { + p.sendMessage(Colors.DarkPurple + "Your previous location has been stored"); + p.sendMessage(Colors.DarkPurple + "Use /tpback to return"); + } } } //Inform the user that the command has executed successfully @@ -1313,7 +1339,6 @@ private static HashMap hidden = new HashMap(); { //Make sure the user has access to the command if(!player.canUseCommand("/reload")) return EXIT_FAIL; - vConfig.getInstance().loadSettings(); return EXIT_FAIL; } diff --git a/vConfig.java b/vConfig.java index de62e3c75..cc6503218 100644 --- a/vConfig.java +++ b/vConfig.java @@ -18,7 +18,7 @@ public class vConfig { //The feature settings static boolean toggle = true, adminChat = false, - groupcoloredbrackets = false, + groupcoloredbrackets = false, partyChat = false, greentext = false, FFF = false, @@ -83,72 +83,72 @@ public class vConfig { try { writer = new FileWriter(location); writer.append("#This plugin is modular\r\n"); - writer.write("#Turn any features you don't want to false and they won't be running\r\n"); - writer.write("#If you edit this file and save it, then use /reload it will reload the settings\r\n"); - writer.write("#Chat Options\r\n"); - writer.write("#Group prefix colors apply to player brackets\r\n"); - writer.write("groupcoloredbrackets=true\r\n"); - writer.write("#Allows the use of color codes following ^ symbol\r\n"); - writer.write("ColoredChat=true\r\n"); - writer.write("#Require per player permission for quakecolors\r\n"); - writer.write("colorsrequirepermissions=false\r\n"); - writer.write("#use /coloruse to give players permission if this is enabled\r\n"); - writer.write("#Text following a > will be colored green to mimic quoting of popular internet message boards\r\n"); - writer.write("QuotesAreGreen=true\r\n"); - writer.write("#Turns any chat message starting with FFF automagically blood red\r\n"); - writer.write("FFF=true\r\n"); - writer.write("\r\n"); - writer.write("#Admin Settings\r\n"); - writer.write("#Enables or disables players spawning to their home location\r\n"); - writer.write("playerspawn=true\r\n"); - writer.write("#Enables or disables the admin only chat\r\n"); - writer.write("adminchat=true\r\n"); - writer.write("#Lets non admins use admin chat if they have the /adminchat command permission\r\n"); - writer.write("/adminchat=true\r\n"); - writer.write("#Enables overriding of regular /tp and /tphere to make it so you can only teleport to players with lower permissions, and only bring players of lower permissions to you\r\n"); - writer.write("/tp=true\r\n"); - writer.write("/tphere=true\r\n"); - writer.write("#Mass Tp uses the same concept, anyone with this command only brings those with lower permissions to themselves\r\n"); - writer.write("/masstp=true\r\n"); - writer.write("\r\n"); - writer.write("#Server Settings\r\n"); - writer.write("#Enables or Disables the following commands, give groups/users permissions to use these commands for them to work\r\n"); - writer.write("/fabulous=true\r\n"); - writer.write("/prefix=true\r\n"); - writer.write("/freeze=true\r\n"); - writer.write("/suffix=true\r\n"); - writer.write("/ignore=true\r\n"); - writer.write("/colors=true\r\n"); - writer.write("/whois=true\r\n"); - writer.write("/nick=true\r\n"); - writer.write("/who=true\r\n"); - writer.write("/promote=true\r\n"); - writer.write("/demote=true\r\n"); - writer.write("/say=true\r\n"); - writer.write("/rules=true\r\n"); - writer.write("/suicide=true\r\n"); - writer.write("/ezmodo=true\r\n"); - writer.write("#Global Messages\r\n"); - writer.write("#Enable or Disable sending announcements about sensitive commands to the entire server\r\n"); - writer.write("globalmessages=true\r\n"); - writer.write("#Adding player names to this list will have them start off in ezmodo\r\n"); - writer.write("ezModo=\r\n"); - writer.write("#Stop fire from spreading\r\n"); - writer.write("stopFire=false\r\n"); - writer.write("#Stop lava from spreading fire"); - writer.write("lavaspread=false"); - writer.write("#Blocks disabled from fire"); - writer.write("fireblocks="); - writer.write("\r\n"); - writer.write("#Organize your player ranks from lowest to highest.\r\n"); - writer.write("ranks=\r\n"); - writer.write("#Write the rules to be shown when /rules is used here, it works just like the MOTD does\r\n"); - writer.write("rules=Rules@#1: No griefing@#2: No griefing\r\n"); - writer.write("#The Random Death messages, seperate them by comma. All death messages start with the player name and a space.\r\n"); - writer.write("deathMessages=is no more,died horribly,went peacefully\r\n"); - writer.write("#Enable whether or not players can toggle party chat"); - writer.write("partychat=true"); - writer.write("hiddendistance=1024"); + writer.append("#Turn any features you don't want to false and they won't be running\r\n"); + writer.append("#If you edit this file and save it, then use /reload it will reload the settings\r\n"); + writer.append("#Chat Options\r\n"); + writer.append("#Group prefix colors apply to player brackets\r\n"); + writer.append("groupcoloredbrackets=true\r\n"); + writer.append("#Allows the use of color codes following ^ symbol\r\n"); + writer.append("ColoredChat=true\r\n"); + writer.append("#Require per player permission for quakecolors\r\n"); + writer.append("colorsrequirepermissions=false\r\n"); + writer.append("#use /coloruse to give players permission if this is enabled\r\n"); + writer.append("#Text following a > will be colored green to mimic quoting of popular internet message boards\r\n"); + writer.append("QuotesAreGreen=true\r\n"); + writer.append("#Turns any chat message starting with FFF automagically blood red\r\n"); + writer.append("FFF=true\r\n"); + writer.append("\r\n"); + writer.append("#Admin Settings\r\n"); + writer.append("#Enables or disables players spawning to their home location\r\n"); + writer.append("playerspawn=true\r\n"); + writer.append("#Enables or disables the admin only chat\r\n"); + writer.append("adminchat=true\r\n"); + writer.append("#Lets non admins use admin chat if they have the /adminchat command permission\r\n"); + writer.append("/adminchat=true\r\n"); + writer.append("#Enables overriding of regular /tp and /tphere to make it so you can only teleport to players with lower permissions, and only bring players of lower permissions to you\r\n"); + writer.append("/tp=true\r\n"); + writer.append("/tphere=true\r\n"); + writer.append("#Mass Tp uses the same concept, anyone with this command only brings those with lower permissions to themselves\r\n"); + writer.append("/masstp=true\r\n"); + writer.append("\r\n"); + writer.append("#Server Settings\r\n"); + writer.append("#Enables or Disables the following commands, give groups/users permissions to use these commands for them to work\r\n"); + writer.append("/fabulous=true\r\n"); + writer.append("/prefix=true\r\n"); + writer.append("/freeze=true\r\n"); + writer.append("/suffix=true\r\n"); + writer.append("/ignore=true\r\n"); + writer.append("/colors=true\r\n"); + writer.append("/whois=true\r\n"); + writer.append("/nick=true\r\n"); + writer.append("/who=true\r\n"); + writer.append("/promote=true\r\n"); + writer.append("/demote=true\r\n"); + writer.append("/say=true\r\n"); + writer.append("/rules=true\r\n"); + writer.append("/suicide=true\r\n"); + writer.append("/ezmodo=true\r\n"); + writer.append("#Global Messages\r\n"); + writer.append("#Enable or Disable sending announcements about sensitive commands to the entire server\r\n"); + writer.append("globalmessages=true\r\n"); + writer.append("#Adding player names to this list will have them start off in ezmodo\r\n"); + writer.append("ezModo=\r\n"); + writer.append("#Stop fire from spreading\r\n"); + writer.append("stopFire=false\r\n"); + writer.append("#Stop lava from spreading fire"); + writer.append("lavaspread=false"); + writer.append("#Blocks disabled from fire"); + writer.append("fireblocks="); + writer.append("\r\n"); + writer.append("#Organize your player ranks from lowest to highest.\r\n"); + writer.append("ranks=\r\n"); + writer.append("#Write the rules to be shown when /rules is used here, it works just like the MOTD does\r\n"); + writer.append("rules=Rules@#1: No griefing@#2: No griefing\r\n"); + writer.append("#The Random Death messages, seperate them by comma. All death messages start with the player name and a space.\r\n"); + writer.append("deathMessages=is no more,died horribly,went peacefully\r\n"); + writer.append("#Enable whether or not players can toggle party chat"); + writer.append("partychat=true"); + writer.append("hiddendistance=1024"); } catch (Exception e) { log.log(Level.SEVERE, "Exception while creating " + location, e); } finally { diff --git a/vListener.java b/vListener.java index f8446f819..2c6d29b62 100644 --- a/vListener.java +++ b/vListener.java @@ -15,12 +15,14 @@ public class vListener extends PluginListener { if(split.length > 1){ String args = " " + etc.combineSplit(1, split, " "); vChat.gmsg(server + " " + args); + log.log(Level.INFO, "[Server] " + args); return true; } return false; } if(split[0].equalsIgnoreCase("stop")) vChat.gmsg(server + " shutting down the server"); + log.log(Level.INFO, "[Server] " + "shutting down the server"); return false; } diff --git a/vmc.java b/vmc.java index b58306b10..4eb13aae7 100644 --- a/vmc.java +++ b/vmc.java @@ -1,4 +1,5 @@ import java.io.*; +import java.lang.String; import java.util.logging.Level; import java.util.logging.Logger; public class vmc { @@ -44,7 +45,8 @@ String location = "groups.txt"; String groups[] = player.getGroups(); String groupline[] = null; String prefix = Colors.White; - if(vConfig.getInstance().groupcoloredbrackets() && groups[0].toString().length() > 0){ + int x = 0; + if(vConfig.getInstance().groupcoloredbrackets()){ //Read the file properties = new PropertiesFile(location); try { @@ -53,6 +55,10 @@ String location = "groups.txt"; log.log(Level.SEVERE, "Exception while loading " + location, e); } //Grab the line with the same group as the player + for(String herp : groups){ + x++; + } + if(x > 0) groupline = properties.getString(groups[0]).split(":"); //Check if the prefix is null or not if(!groupline[0].isEmpty())