Merge branch 'master' of github.com:nossr50/vminecraft-plugin

This commit is contained in:
nossr50 2010-12-07 20:04:57 -08:00
commit 908456cf84
8 changed files with 309 additions and 761 deletions

View File

@ -1,134 +0,0 @@
//Contains all the java methods for vminecraft
public class other {
public static other gmsg;
public static other gmsg(String msg){
for (Player p : etc.getServer().getPlayerList()) {
if (p != null) {
p.sendMessage(msg);
}
}
return gmsg;
}
public static boolean lengthCheck(String str)
{
int length = 0;
for(int x = 0; x<str.length(); x++)
{
if("i;,.:|!".indexOf(str.charAt(x)) != -1)
{
length+=2;
}
else if("l'".indexOf(str.charAt(x)) != -1)
{
length+=3;
}
else if("tI[]".indexOf(str.charAt(x)) != -1)
{
length+=4;
}
else if("kf{}<>\"*()".indexOf(str.charAt(x)) != -1)
{
length+=5;
}
else if("hequcbrownxjmpsvazydgTHEQUCKBROWNFXJMPSVLAZYDG1234567890#\\/?$%-=_+&".indexOf(str.charAt(x)) != -1)
{
length+=6;
}
else if("@~".indexOf(str.charAt(x)) != -1)
{
length+=7;
}
else if(str.charAt(x)==' ')
{
length+=4;
}
}
if(length<=316)
{
return true;
} else { return false; }
}
public static String colorChange(char colour)
{
String color = "";
switch(colour)
{
case '0':
color = Colors.Black;
break;
case '1':
color = Colors.Navy;
break;
case '2':
color = Colors.Green;
break;
case '3':
color = Colors.Blue;
break;
case '4':
color = Colors.Red;
break;
case '5':
color = Colors.Purple;
break;
case '6':
color = Colors.Gold;
break;
case '7':
color = Colors.LightGray;
break;
case '8':
color = Colors.Gray;
break;
case '9':
color = Colors.DarkPurple;
break;
case 'a':
color = Colors.LightGreen;
break;
case 'b':
color = Colors.LightBlue;
break;
case 'c':
color = Colors.Rose;
break;
case 'd':
color = Colors.LightPurple;
break;
case 'e':
color = Colors.Yellow;
break;
case 'f':
color = Colors.White;
break;
case 'A':
color = Colors.LightGreen;
break;
case 'B':
color = Colors.LightBlue;
break;
case 'C':
color = Colors.Rose;
break;
case 'D':
color = Colors.LightPurple;
break;
case 'E':
color = Colors.Yellow;
break;
case 'F':
color = Colors.White;
break;
default:
color = Colors.White;
break;
}
return color;
}
}

View File

@ -1,126 +0,0 @@
import java.io.*;
import java.util.logging.Level;
import java.util.logging.Logger;
public class settings {
private final static Object syncLock = new Object();
protected static final Logger log = Logger.getLogger("Minecraft");
private static volatile settings instance;
static boolean toggle = true;
private boolean adminChat = false;
private boolean greentext = false;
private boolean FFF = false;
private boolean quakeColors = false;
private boolean cmdFabulous = false;
private boolean cmdPromote = false;
private boolean cmdDemote = false;
private boolean cmdWhoIs = false;
private boolean cmdRules = false;
private boolean cmdMasstp = false;
private boolean cmdTp = false;
private boolean cmdTphere = false;
private boolean globalmessages = false;
private boolean cmdSay = false;
private PropertiesFile properties;
String file = "vminecraft.properties";
public String rules[] = null;
public void loadSettings()
{
File theDir = new File("vminecraft.properties");
if(!theDir.exists())
{
String location = "vminecraft.properties";
properties = new PropertiesFile("vminecraft.properties");
FileWriter writer = null;
try {
writer = new FileWriter(location);
writer.write("#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("greentext=true\r\n");
writer.write("quakeColors=true\r\n");
writer.write("cmdTphere=true\r\n");
writer.write("cmdFabulous=true\r\n");
writer.write("cmdWhoIs=true\r\n");
writer.write("cmdPromote=true\r\n");
writer.write("cmdDemote=true\r\n");
writer.write("cmdMasstp=true\r\n");
writer.write("cmdSay=true\r\n");
writer.write("cmdTp=true\r\n");
writer.write("cmdRules=true\r\n");
writer.write("globalmessages=true\r\n");
writer.write("FFF=true\r\n");
writer.write("adminchat=true\r\n");
writer.write("rules=Rules@#1: No griefing@#2: No griefing\r\n");
} catch (Exception e) {
log.log(Level.SEVERE, "Exception while creating " + location, e);
} finally {
try {
if (writer != null) {
writer.close();
}
} catch (IOException e) {
log.log(Level.SEVERE, "Exception while closing writer for " + location, e);
}
}
} else {
properties = new PropertiesFile("vminecraft.properties");
properties.load();
}
try {
adminChat = properties.getBoolean("adminchat",true);
greentext = properties.getBoolean("greentext",true);
FFF = properties.getBoolean("FFF",true);
quakeColors = properties.getBoolean("quakeColors",true);
cmdFabulous = properties.getBoolean("cmdFabulous",true);
cmdPromote = properties.getBoolean("cmdPromote",true);
cmdDemote = properties.getBoolean("cmdDemote",true);
cmdWhoIs = properties.getBoolean("cmdWhoIs",true);
cmdRules = properties.getBoolean("cmdRules",true);
cmdTp = properties.getBoolean("cmdTp",true);
cmdMasstp = properties.getBoolean("cmdMasstp",true);
cmdTphere = properties.getBoolean("cmdTphere",true);
globalmessages = properties.getBoolean("globalmessages",true);
cmdSay = properties.getBoolean("cmdSay",true);
rules = properties.getString("rules", "").split("@");
log.log(Level.INFO, "vminecraft plugin successfully loaded");
}
catch (Exception e)
{
log.log(Level.SEVERE, "vminecraft Error: ERROR LOADING PROPERTIES FILE");
}
}
public boolean adminchat() {return adminChat;}
public boolean greentext() {return greentext;}
public boolean FFF() {return FFF;}
public boolean quakeColors() {return quakeColors;}
public boolean cmdFabulous() {return cmdFabulous;}
public boolean cmdPromote() {return cmdPromote;}
public boolean cmdDemote() {return cmdDemote;}
public boolean cmdWhoIs() {return cmdWhoIs;}
public boolean cmdTp() {return cmdTp;}
public boolean cmdTphere() {return cmdTphere;}
public boolean cmdSay() {return cmdSay;}
public boolean cmdRules() {return cmdRules;}
public boolean globalmessages() {return globalmessages;}
public boolean cmdMasstp() {return cmdMasstp;}
public static settings getInstance() {
if (instance == null) {
instance = new settings();
}
return instance;
}
//Will return the rules
public String[] getRules() {
return rules;
}
}

View File

@ -9,6 +9,7 @@ import java.util.logging.Logger;
//===================================================================== //=====================================================================
public class vMinecraftChat { public class vMinecraftChat {
protected static final Logger log = Logger.getLogger("Minecraft"); protected static final Logger log = Logger.getLogger("Minecraft");
protected static final int lineLength = 312;
//===================================================================== //=====================================================================
//Function: gmsg //Function: gmsg
@ -60,12 +61,12 @@ public class vMinecraftChat {
//Loop through the words finding their length and increasing //Loop through the words finding their length and increasing
//j, the end point for the sub string //j, the end point for the sub string
while(len <= 316 && !split.isEmpty()) while(split.get(0) != null && len <= lineLength && !split.isEmpty())
{ {
int wordLength = msgLength(split.get(0)) + 4; int wordLength = msgLength(split.get(0)) + 4;
//If a word is too long for a line //If a word is too long for a line
if(wordLength > 316) if(wordLength > lineLength)
{ {
String[] tempArray = wordCut(len, split.remove(0)); String[] tempArray = wordCut(len, split.remove(0));
words.add(tempArray[0]); words.add(tempArray[0]);
@ -74,7 +75,7 @@ public class vMinecraftChat {
//If the word is not too long to fit //If the word is not too long to fit
len += wordLength; len += wordLength;
if( len < 316) if( len < lineLength)
words.add(split.remove(0)); words.add(split.remove(0));
} }
//Merge them and add them to the output array. //Merge them and add them to the output array.
@ -118,7 +119,7 @@ public class vMinecraftChat {
//and their following color codes //and their following color codes
String[] output = new String[2]; String[] output = new String[2];
int x = 0; int x = 0;
while(length < 316 && x < str.length()) while(length < lineLength && x < str.length())
{ {
int len = charLength(str.charAt(x)); int len = charLength(str.charAt(x));
if( len > 0) if( len > 0)
@ -140,15 +141,15 @@ public class vMinecraftChat {
//===================================================================== //=====================================================================
private static int charLength(char x) private static int charLength(char x)
{ {
if("i;,.:|!".indexOf(x) != -1) if("i.:,;|!".indexOf(x) != -1)
return 2; return 2;
else if("l'".indexOf(x) != -1) else if("l'".indexOf(x) != -1)
return 3; return 3;
else if("tI[]".indexOf(x) != -1) else if("tI[]".indexOf(x) != -1)
return 4; return 4;
else if("kf{}<>\"*()".indexOf(x) != -1) else if("fk{}<>\"*()".indexOf(x) != -1)
return 5; return 5;
else if("hequcbrownxjmpsvazydgTHEQUCKBROWNFXJMPSVLAZYDG1234567890#\\/?$%-=_+&".indexOf(x) != -1) else if("abcdeghjmnopqrsuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ1234567890\\/#?$%-=_+&^".indexOf(x) != -1)
return 6; return 6;
else if("@~".indexOf(x) != -1) else if("@~".indexOf(x) != -1)
return 7; return 7;

View File

@ -44,10 +44,15 @@ public class vMinecraftCommands{
cl.register("/a", "adminChatToggle", "toggle admin chat for every message"); cl.register("/a", "adminChatToggle", "toggle admin chat for every message");
cl.register("/modify", "modifySplit"); cl.register("/modify", "modifySplit");
cl.register("/me", "me"); cl.register("/me", "me");
cl.register("/msg", "message");
cl.register("/reply", "reply");
cl.registerAlias("/playerlist", "/who"); cl.registerAlias("/playerlist", "/who");
cl.registerAlias("/r", "/reply");
cl.registerAlias("/w", "/msg");
cl.registerAlias("/wrists", "/suicide"); cl.registerAlias("/wrists", "/suicide");
cl.registerAlias("/ci", "/clearinventory"); cl.registerAlias("/ci", "/clearinventory");
} }
//===================================================================== //=====================================================================
//Function: me (/me) //Function: me (/me)
//Input: Player player: The player using the command //Input: Player player: The player using the command
@ -61,6 +66,65 @@ public class vMinecraftCommands{
vMinecraftChat.emote(player, str); vMinecraftChat.emote(player, str);
return EXIT_SUCCESS; return EXIT_SUCCESS;
} }
//=====================================================================
//Function: message (/msg, /w, /whisper)
//Input: Player player: The player using the command
//Output: int: Exit Code
//Use: Send a message to a player
//=====================================================================
public static int message(Player player, String[] args)
{
String msg = etc.combineSplit(1, args, " ");
Player toPlayer = etc.getServer().matchPlayer(args[0]);
if (args.length < 1) {
return EXIT_FAIL;
} else if (toPlayer != null) {
//Send the message to the targeted player and the sender
vMinecraftChat.sendMessage(player, toPlayer,
Colors.LightGreen + "[" + Colors.White + "From:"
+ vMinecraftChat.getName(player) + Colors.LightGreen + "]" + msg);
vMinecraftChat.sendMessage(player, player,
Colors.LightGreen + "[" + Colors.White + "To:"
+ vMinecraftChat.getName(toPlayer) + Colors.LightGreen + "]" + msg);
//Set the last massager for each player
vMinecraftUsers.players.findProfile(player).setMessage(toPlayer);
vMinecraftUsers.players.findProfile(toPlayer).setMessage(player);
} else {
vMinecraftChat.sendMessage(player, player, Colors.Red
+ "No player by the name of " + args[0] + " could be found.");
}
return EXIT_SUCCESS;
}
//=====================================================================
//Function: reply (/r, /reply)
//Input: Player player: The player using the command
//Output: int: Exit Code
//Use: Send a message to a player
//=====================================================================
public static int reply(Player player, String[] args)
{
Player toPlayer = vMinecraftUsers.players.findProfile(player).getMessage();
if (toPlayer != null) {
String msg = etc.combineSplit(1, args, " ");
//Send the message to the targeted player and the sender
vMinecraftChat.sendMessage(player, toPlayer,
Colors.LightGreen + "[" + Colors.White + "From:"
+ vMinecraftChat.getName(player) + Colors.LightGreen + "] " + msg);
vMinecraftChat.sendMessage(player, player,
Colors.LightGreen + "[" + Colors.White + "To:"
+ vMinecraftChat.getName(toPlayer) + Colors.LightGreen + "] " + msg);
//Set the last messager for each player
vMinecraftUsers.players.findProfile(player).setMessage(toPlayer);
vMinecraftUsers.players.findProfile(toPlayer).setMessage(player);
} else {
vMinecraftChat.sendMessage(player, player,
Colors.Red + "That person is no longer logged in.");
}
return EXIT_SUCCESS;
}
//===================================================================== //=====================================================================
//Function: adminChatToggle (/a) //Function: adminChatToggle (/a)
@ -522,7 +586,7 @@ public class vMinecraftCommands{
{ {
//Exploit fix for people giving themselves commands //Exploit fix for people giving themselves commands
if(args[1].equals("commands")) if(args[1].equals("commands"))
return EXIT_FAIL; return EXIT_SUCCESS;
return EXIT_CONTINUE; return EXIT_CONTINUE;
} }

150
vMinecraftListener.java Normal file
View File

@ -0,0 +1,150 @@
import java.util.logging.Level;
import java.util.logging.Logger;
//=====================================================================
//Class: vMinecraftListener
//Use: The listener to catch incoming chat and commands
//Author: nossr50, TrapAlice, cerevisiae
//=====================================================================
public class vMinecraftListener extends PluginListener {
public int damagetype;
protected static final Logger log = Logger.getLogger("Minecraft");
//=====================================================================
//Function: disable
//Input: None
//Output: None
//Use: Disables vMinecraft, but why would you want to do that? ;)
//=====================================================================
public void disable() {
log.log(Level.INFO, "vMinecraft disabled");
}
//=====================================================================
//Function: onChat
//Input: Player player: The player calling the command
// String message: The message to color
//Output: boolean: If the user has access to the command
// and it is enabled
//Use: Checks for quote, rage, and colors
//=====================================================================
public boolean onChat(Player player, String message){
//Quote (Greentext)
if (message.startsWith("@") ||
vMinecraftSettings.getInstance().isAdminToggled(player.getName()))
return vMinecraftChat.adminChat(player, message);
else if (message.startsWith(">"))
return vMinecraftChat.quote(player, message);
//Rage (FFF)
else if (message.startsWith("FFF"))
return vMinecraftChat.rage(player, message);
//Send through quakeColors otherwise
else
return vMinecraftChat.quakeColors(player, message);
}
//=====================================================================
//Function: onCommand
//Input: Player player: The player calling the command
// String[] split: The arguments
//Output: boolean: If the user has access to the command
// and it is enabled
//Use: Checks for exploits and runs the commands
//=====================================================================
public boolean onCommand(Player player, String[] split) {
//Copy the arguments into their own array.
String[] args = new String[split.length - 1];
System.arraycopy(split, 1, args, 0, args.length);
//Return the results of the command
int exitCode = vMinecraftCommands.cl.call(split[0], player, args);
if(exitCode == 0)
return false;
else if(exitCode == 1)
return true;
else
return false;
}
//=====================================================================
//Function: onHealthChange
//Input: Player player: The player calling the command
// int oldValue: The old health value;
// int newValue: The new health value
//Output: boolean: If the user has access to the command
// and it is enabled
//Use: Checks for exploits and runs the commands
//=====================================================================
public boolean onHealthChange(Player player,int oldValue,int newValue){
if (vMinecraftSettings.getInstance().isEzModo(player.getName())) {
return oldValue > newValue;
}
return false;
}
public void onLogin(Player player){
vMinecraftUsers.addUser(player);
}
public boolean onDamage(PluginLoader.DamageType type, BaseEntity attacker, BaseEntity defender, int amount) {
if(defender.isPlayer()){
Player player = (Player)defender;
if (attacker.isPlayer()) {
Player pAttacker = (Player)attacker;
if(player.getHealth() < 1){
vMinecraftChat.gmsg(player, pAttacker.getName() + " has murdered " + player.getName());
}
}
if (player.getHealth() < 1 && !attacker.isPlayer()) {
if (type == type.CREEPER_EXPLOSION) {
damagetype = 1; //Creeper
} else if(type == type.FALL){
damagetype = 2; //Fall
} else if(type == type.FIRE){
damagetype = 3; //Fire going to make it share with firetick since its similar
} else if (type == type.FIRE_TICK){
damagetype = 4; //Firetick
} else if (type == type.LAVA){
damagetype = 5; //Lava
} else if (type == type.WATER){
damagetype = 6; //Water
}
//This should trigger the player death message
} else if (player.getHealth() < 1 && attacker.isPlayer()){
damagetype = 7; //Player
}
if(damagetype == 1){
vMinecraftChat.gmsg(player,player.getName() + Colors.Red + " was blown to bits by a creeper");
damagetype = 0;
} else if (damagetype == 2) {
vMinecraftChat.gmsg(player,player.getName() + Colors.Red + " fell to death!");
damagetype = 0;
} else if (damagetype ==3){
vMinecraftChat.gmsg(player, player.getName() + Colors.Red + " was incinerated");
damagetype = 0;
} else if (damagetype == 4){
vMinecraftChat.gmsg(player, Colors.Red + " Stop drop and roll, not scream, run, and burn " + player.getName());
damagetype = 0;
} else if (damagetype == 5){
vMinecraftChat.gmsg(player, Colors.Red + player.getName() + " drowned in lava");
damagetype = 0;
} else if (damagetype == 6){
vMinecraftChat.gmsg(player, Colors.Blue + player.getName() + " should've attended that swimming class");
damagetype = 0;
} else if (damagetype == 7){
Player pAttacker = (Player)attacker;
vMinecraftChat.gmsg(player, pAttacker.getName() + " has murdered " + player.getName());
damagetype = 0;
}
else {
vMinecraftChat.gmsg(player, Colors.Gray + player.getName() + " " + vMinecraftSettings.randomDeathMsg());
}
}
return false;
}
}

View File

@ -11,7 +11,7 @@ public class vMinecraftUsers {
private PropertiesFile properties; private PropertiesFile properties;
String location = "vminecraftusers.txt"; String location = "vminecraftusers.txt";
ArrayList<PlayerList> players = new ArrayList<PlayerList>(); public static PlayerList players = new PlayerList();
public void loadUsers(){ public void loadUsers(){
@ -143,11 +143,11 @@ class PlayerList
//Output: PlayerProfile: The profile of the specified player //Output: PlayerProfile: The profile of the specified player
//Use: Get the profile for the specified player //Use: Get the profile for the specified player
//===================================================================== //=====================================================================
private PlayerProfile findProfile(Player player) public PlayerProfile findProfile(Player player)
{ {
for(PlayerProfile ply : players) for(PlayerProfile ply : players)
{ {
if(ply.getPlayer().equals(player)) if(ply.isPlayer(player))
return ply; return ply;
} }
return null; return null;
@ -161,10 +161,11 @@ class PlayerList
class PlayerProfile class PlayerProfile
{ {
protected final Logger log = Logger.getLogger("Minecraft"); protected final Logger log = Logger.getLogger("Minecraft");
private Player playerName; private String playerName,
private String nickName; lastMessage,
private String tag; nickName,
private String suffix; tag,
suffix;
private ArrayList<Player> ignoreList; private ArrayList<Player> ignoreList;
private commandList aliasList; private commandList aliasList;
@ -181,13 +182,14 @@ class PlayerList
//===================================================================== //=====================================================================
public PlayerProfile(Player player) public PlayerProfile(Player player)
{ {
//Declare things //Declare things
ignoreList = new ArrayList<Player>();
aliasList = new commandList();
nickName = new String(); nickName = new String();
tag = new String(); tag = new String();
suffix = new String(); suffix = new String();
ignoreList = new ArrayList<Player>();
aliasList = new commandList();
String location = "vminecraftusers.txt"; String location = "vminecraftusers.txt";
//Try to apply what we can //Try to apply what we can
try { try {
Scanner scanner = new Scanner(new File(location)); Scanner scanner = new Scanner(new File(location));
@ -197,43 +199,55 @@ class PlayerList
continue; continue;
} }
String[] split = line.split(":"); String[] split = line.split(":");
if (!split[0].equalsIgnoreCase(player.getName())) {
continue; //If the player name is equal to the name in the list
} if (split.length > 0 && split[0].equalsIgnoreCase(player.getName())) {
nickName = (split[1].split(",").toString());
//Get the tag from the 1st split
if (split.length >= 4) { nickName = (split[1].split(",").toString());
tag = (split[3]);
} //Get the tag from the 2nd split
suffix = split[2];
//Add all the ignored people to the player's ignore list
if (split.length >= 5) { //Get the tag from the 3rd split
for(String name : split[4].split(",")) if (split.length >= 4) {
ignoreList.add(etc.getServer().getPlayer(name)); tag = (split[3]);
} }
if (split.length >= 6) {
//Loop through all the aliases //Add all the ignored people to the player's ignore list
for(String alias : split[5].split(",")) if (split.length >= 5) {
{ for(String name : split[4].split(","))
//Break apart the two parts of the alias ignoreList.add(etc.getServer().getPlayer(name));
String[] parts = alias.split("@"); }
if(parts.length > 1)
{ //Get the alias list, from the 5th split
//Get the arguments for the alias if there are any if (split.length >= 6) {
String[] command = parts[1].split(" "); //Loop through all the aliases
String[] args = null; for(String alias : split[5].split(","))
if(command.length > 1) {
System.arraycopy(command, 1, args, 0, command.length - 2); //Break apart the two parts of the alias
String[] parts = alias.split("@");
//Register the alias to the player's aliasList if(parts.length > 1)
aliasList.registerAlias(parts[0], command[0], args); {
} //Get the arguments for the alias if there are any
} String[] command = parts[1].split(" ");
String[] args = null;
if(command.length > 1)
System.arraycopy(command, 1, args,
0, command.length - 2);
//Register the alias to the player's aliasList
aliasList.registerAlias(parts[0], command[0], args);
}
}
}
break;
} }
} }
scanner.close(); scanner.close();
} catch (Exception e) { } catch (Exception e) {
log.log(Level.SEVERE, "Exception while reading " + location + " (Are you sure you formatted it correctly?)", e); log.log(Level.SEVERE, "Exception while reading "
+ location + " (Are you sure you formatted it correctly?)", e);
} }
} }
@ -255,7 +269,7 @@ class PlayerList
continue; continue;
} }
String[] split = line.split(":"); String[] split = line.split(":");
if (!split[0].equalsIgnoreCase(playerName.toString())) { if (!split[0].equalsIgnoreCase(playerName)) {
continue; continue;
} }
bw.write(playerName + ":" + nickName + ":" + suffix + ":" + tag + ":" + ignoreList + ":" + aliasList); bw.write(playerName + ":" + nickName + ":" + suffix + ":" + tag + ":" + ignoreList + ":" + aliasList);
@ -267,14 +281,16 @@ class PlayerList
} }
} }
//===================================================================== //=====================================================================
//Function: getPlayer //Function: isPlayer
//Input: None //Input: None
//Output: Player: The player this profile belongs to //Output: Player: The player this profile belongs to
//Use: Finds if the specified player is in the ignore list //Use: Finds if this profile belongs to a specified player
//===================================================================== //=====================================================================
public Player getPlayer(){return playerName;} public boolean isPlayer(Player player)
{
return player.getName().equals(playerName);
}
//===================================================================== //=====================================================================
//Function: isIgnored //Function: isIgnored
@ -369,6 +385,28 @@ class PlayerList
//Use: Gets a player tag //Use: Gets a player tag
//===================================================================== //=====================================================================
public String getTag() { return tag; } public String getTag() { return tag; }
//=====================================================================
//Function: setMessage
//Input: String newName: The name of the player they last messaged
// or recieved a message from.
//Output: None
//Use: Sets a player tag
//=====================================================================
public void setMessage(Player newName){ lastMessage = newName.getName(); }
//=====================================================================
//Function: getMessage
//Input: None
//Output: String: The player name
//Use: Gets the name of the player they last messaged or recieved
// a message from.
//=====================================================================
public Player getMessage()
{
return etc.getServer().matchPlayer(lastMessage);
}
} }
} }

View File

@ -1,418 +0,0 @@
//Vminecraft plugin by nossr50 & TrapAlice
import java.util.logging.Level;
import java.util.logging.Logger;
public class vminecraftListener extends PluginListener {
protected static final Logger log = Logger.getLogger("Minecraft");
public void disable() {
log.log(Level.INFO, "vminecraft disabled");
}
private ArrayList<String> ezmodo = new ArrayList<String>(); //An array of players currently in ezmodo
public void enable() {
settings.getInstance().loadSettings(); //Load the settings files
log.log(Level.INFO, "vminecraft enabled");
}
public void onPlayerMove () {
if (ezmodo.contains(player.getName())){
if (player.getHealth() < 30)
{
player.setHealth(30);
}
}
}
public boolean onChat(Player player, String message){
String temp2 = "<" + player.getColor() + player.getName() + Colors.White +"> "; //Copies the formatting of id.java
String adminchat = Colors.DarkPurple + "{" + player.getColor() + player.getName() + Colors.DarkPurple +"}" + Colors.White + " "; //Special formatting for adminchat
String message2 = ""; //Used for greentext and FFF
String check = temp2+message; //Calculates how long your message will be including your name in the equation, this prevents minecraft clients from crashing when a color code is inserted after a linebreak
if (settings.getInstance().adminchat()&&message.startsWith("@") && (player.isAdmin() || player.canUseCommand("/adminchat"))) {
for (Player p : etc.getServer().getPlayerList()) {
String blaa = "";
if (p != null) {
if (p.isAdmin() || (p.canUseCommand("/adminchat"))) {
for ( int x = 1; x< message.length(); x++) {
blaa+=message.charAt(x);
}
if (p.isAdmin() || (p.canUseCommand("/adminchat"))){
if (p != null) {
p.sendMessage(adminchat+blaa);
}
}
}
}
}
log.log(Level.INFO, "@"+temp2+message); //So you can read adminchat from the server console
return true;
}
//Greentext
if (settings.getInstance().greentext()&&message.startsWith(">")) {
log.log(Level.INFO, "<"+player.getName()+"> "+message);
message = Colors.LightGreen + message;
message2 = temp2 + message;
other.gmsg(message2);
return true;
}
//FFF
if (settings.getInstance().FFF()&&message.startsWith("FFF")) {
log.log(Level.INFO, "<"+player.getName()+"> "+message);
message = Colors.Red + message;
message2 = temp2 + message;
other.gmsg(message2);
return true;
}
//QuakeColors
if(settings.getInstance().quakeColors()&&message.length()>2 && other.lengthCheck(check)) {
String temp = "";
for(int x = 0; x< message.length(); x++)
{
if(message.charAt(x)=='^'&&x!=message.length()-1)
{
temp+=other.colorChange(message.charAt(x+1));
x+=1;
}
else{
temp+=message.charAt(x);
}
}
log.log(Level.INFO, "<"+player.getName()+"> "+message);
message = temp2 + temp + " ";
for (Player p : etc.getServer().getPlayerList()) {
if (p != null) {
other.gmsg(message);
return true;
}
}
}
return false;
}
public boolean onCommand(Player player, String[] split) {
if(!player.canUseCommand(split[0])) {
return false;
}
if(settings.getInstance().cmdMasstp() && split[0].equalsIgnoreCase("/masstp")) {
for (Player p : etc.getServer().getPlayerList()) {
if (!p.hasControlOver(player)) {
p.teleportTo(player);
}
}
player.sendMessage(Colors.Blue+"Summoning successful.");
}
//ezmodo
if (split[0].equals("/ezmodo")) {
if (ezmodo.contains(player.getName())) {
player.sendMessage(Colors.Red + "ezmodo = off");
ezmodo.remove(ezmodo.indexOf(player.getName()));
} else {
player.sendMessage(Colors.LightBlue + "eh- maji? ezmodo!?");
player.sendMessage(Colors.Rose + "kimo-i");
player.sendMessage(Colors.LightBlue + "Easy Mode ga yurusareru no wa shougakusei made dayo ne");
player.sendMessage(Colors.Red + "**Laughter**");
ezmodo.add(player.getName());
player.setHealth(30);
}
return true;
}
//Replacement for /tp
if(settings.getInstance().cmdTp() && split[0].equalsIgnoreCase("/tp")) {
{
if (split.length < 2) {
player.sendMessage(Colors.Rose + "Correct usage is: /tp [player]");
return true;
}
Player playerTarget = etc.getServer().matchPlayer(split[1]);
if (player.getName().equalsIgnoreCase(split[1])) {
player.sendMessage(Colors.Rose + "You're already here!");
return true;
}
if (!player.hasControlOver(playerTarget)) {
player.sendMessage(Colors.Red + "That player has higher permissions than you.");
return true;
}
if (playerTarget != null) {
log.log(Level.INFO, player.getName() + " teleported to " + playerTarget.getName());
player.teleportTo(playerTarget);
return true;
} else {
player.sendMessage(Colors.Rose + "Can't find user " + split[1] + ".");
return true;
}
}
}
//Replacement for /tphere
if (settings.getInstance().cmdTphere() && (split[0].equalsIgnoreCase("/tphere") || split[0].equalsIgnoreCase("/s"))) {
if (split.length < 2) {
player.sendMessage(Colors.Rose + "Correct usage is: /tphere [player]");
return true;
}
Player playerTarget = etc.getServer().matchPlayer(split[1]);
if (!player.hasControlOver(playerTarget)) {
player.sendMessage(Colors.Red + "That player has higher permissions than you.");
return true;
}
if (player.getName().equalsIgnoreCase(split[1])) {
player.sendMessage(Colors.Rose + "Wow look at that! You teleported yourself to yourself!");
return true;
}
if (playerTarget != null) {
log.log(Level.INFO, player.getName() + " teleported " + player.getName() + " to their self.");
playerTarget.teleportTo(player);
} else {
player.sendMessage(Colors.Rose + "Can't find user " + split[1] + ".");
}
}
//Global messages that should only parse when a command can be successful
if(settings.getInstance().globalmessages() && split[0].equalsIgnoreCase("/kick")) {
Player playerTarget = etc.getServer().matchPlayer(split[1]);
if (playerTarget != null && !playerTarget.hasControlOver(player)) {
other.gmsg(player.getColor()+player.getName()+Colors.Blue+" has kicked "+Colors.Red+playerTarget.getColor()+playerTarget.getName());
}
}
if(settings.getInstance().globalmessages() && split[0].equalsIgnoreCase("/ban")) {
Player playerTarget = etc.getServer().matchPlayer(split[1]);
if (playerTarget != null && !playerTarget.hasControlOver(player)) {
other.gmsg(player.getColor()+player.getName()+Colors.Blue+" has banned "+Colors.Red+playerTarget.getColor()+playerTarget.getName());
}
}
if(settings.getInstance().globalmessages() && split[0].equalsIgnoreCase("/ipban")) {
Player playerTarget = etc.getServer().matchPlayer(split[1]);
if (playerTarget != null && !playerTarget.hasControlOver(player)) {
other.gmsg(player.getColor()+player.getName()+Colors.Blue+" has IP banned "+Colors.Red+playerTarget.getColor()+playerTarget.getName());
}
}
if(settings.getInstance().globalmessages() && split[0].equalsIgnoreCase("/time")) {
if (split.length <= 2) {
other.gmsg(Colors.Blue+"Time changes thanks to "+player.getColor()+player.getName());
return false;
}
}
//Should only reload vminecraft settings if the player is able to use /reload
if(split[0].equalsIgnoreCase("/reload") && player.canUseCommand("/reload")) {
settings.getInstance().loadSettings();
return false;
}
//Rules
if(settings.getInstance().cmdRules() && split[0].equalsIgnoreCase("/rules")) {
for (String str : settings.getInstance().getRules()) {
player.sendMessage(Colors.Blue+str);
}
return true;
}
//Fabulous
if(split[0].equalsIgnoreCase("/fabulous") && settings.getInstance().cmdFabulous()) {
if (split.length == 1) {return false;}
String temp = "";
String str = "";
str = etc.combineSplit(1, split, " ");
String temp2 = "<" + player.getName() + "> "+str;
String[] rainbow = new String[] {Colors.Red, Colors.Rose, Colors.Yellow, Colors.Green, Colors.Blue, Colors.LightPurple, Colors.Purple};
int counter=0;
if(other.lengthCheck(temp2))
{
log.log(Level.INFO, player.getName()+" fabulously said \""+ str+"\"");
for(int x=0; x<str.length(); x++)
{
temp+=rainbow[counter]+str.charAt(x);
counter++;
if(str.charAt(x)==' ') { counter--;}
if(counter==-1){counter = 6; }
if(counter==7){counter = 0; }
}
str = temp+" ";
String message = "<" + player.getColor() + player.getName() + Colors.White + "> " + str;
other.gmsg(message);
return true;
} else {
player.sendMessage(Colors.Rose + "Message is too long");
}
return true;
}
/*
//Promote
if (settings.getInstance().cmdPromote() && split[0].equalsIgnoreCase("/promote")) {
if(split.length != 2)
{
player.sendMessage(Colors.Rose + "Usage is /promote [Player]");
}
Player playerTarget = null;
if(split.length==2){
for( Player p : etc.getServer().getPlayerList())
{
if (p.getName().equalsIgnoreCase(split[1]))
{
playerTarget = p;
}
}
if( playerTarget!=null)
{
String playerTargetGroup[] = playerTarget.getGroups();
String playerGroup[] = player.getGroups();
player.sendMessage("Debug data:");
player.sendMessage("PlayerTarget: "+playerTargetGroup[0]);
player.sendMessage("Player: "+playerGroup[0]);
if(playerTargetGroup[0].equals("admins"))
{
player.sendMessage(Colors.Rose + "You can not promote " + split[1] + " any higher.");
}
if(playerTargetGroup[0].equals("mods") && (playerGroup[0].equals("owner")))
{
playerTarget.setGroups(ranks.Admins);
etc.getInstance().getDataSource().modifyPlayer(playerTarget);
String message = Colors.Yellow + split[1] + " was promoted to" + Colors.Rose + " Admin";
other.gmsg(message);
}
else if (playerTargetGroup[0].equals("trusted") && (playerGroup[0].equals("admins") || playerGroup[0].equals("owner")))
{
playerTarget.setGroups(ranks.Mods);
playerTargetGroup[0]="Mods";
etc.getInstance().getDataSource().modifyPlayer(playerTarget);
String message = Colors.Yellow + split[1] + " was promoted to" + Colors.DarkPurple + " Mod";
other.gmsg(message);
}
else if (playerTargetGroup[0].equals("default") && (playerGroup[0].equals("mods") || playerGroup[0].equals("admins") || player.isInGroup("owner")))
{
playerTarget.setGroups(ranks.Trusted);
etc.getInstance().getDataSource().modifyPlayer(playerTarget);
String message = Colors.Yellow + split[1] + " was promoted to" + Colors.LightGreen + " Trusted";
other.gmsg(message);
}
return true;
}
else{
player.sendMessage(Colors.Rose + "Player not found");
}
log.log(Level.INFO, "Command used by " + player + " " + split[0] +" "+split[1]+" ");
}
}
//Demote
if (settings.getInstance().cmdPromote() && split[0].equalsIgnoreCase("/promote"))
{
if(split.length != 2)
{
player.sendMessage(Colors.Rose + "Usage is /demote [Player]");
}
Player playerTarget = null;
for( Player p : etc.getServer().getPlayerList())
{
if (p.getName().equalsIgnoreCase(split[1]))
{
playerTarget = p;
}
}
if( playerTarget!=null)
{
if(playerTarget.isInGroup("admins") && (player.isInGroup("superadmins")))
{
playerTarget.setGroups(ranks.Mods);
etc.getInstance().getDataSource().modifyPlayer(playerTarget);
String message = Colors.Yellow + split[1] + " was demoted to" + Colors.DarkPurple + " Mod";
other.gmsg(message);
}
if(playerTarget.isInGroup("mods") && (player.isInGroup("admins") || player.isInGroup("superadmins")))
{
playerTarget.setGroups(ranks.Trusted);
etc.getInstance().getDataSource().modifyPlayer(playerTarget);
String message = Colors.Yellow + split[1] + " was demoted to" + Colors.LightGreen + " Trusted";
other.gmsg(message);
}
else if (playerTarget.isInGroup("trusted") && (player.isInGroup("mods") || player.isInGroup("superadmins") || player.isInGroup("admins")))
{
playerTarget.setGroups(ranks.Def);
etc.getInstance().getDataSource().modifyPlayer(playerTarget);
String message = Colors.Yellow + split[1] + " was demoted to" + Colors.White + " Default";
other.gmsg(message);
}
else if (playerTarget.isInGroup("default") && (player.isInGroup("mods") || player.isInGroup("admins") || player.isInGroup("superadmins")))
{
player.sendMessage(Colors.Rose + "You can not demote " + split[1] + " any lower.");
}
}
else{
player.sendMessage(Colors.Rose + "Player not found");
}
log.log(Level.INFO, "Command used by " + player + " " + split[0] +" "+split[1]+" ");
return true;
}
*
*/
//Whois will display info about a player
if (settings.getInstance().cmdWhoIs() && split[0].equalsIgnoreCase("/whois")) {
if (split.length < 2) {
player.sendMessage(Colors.Rose + "Usage is /whois [player]");
}
String admin ="";
String ignore ="";
String IP = "";
Player playerTarget = null;
for( Player p : etc.getServer().getPlayerList())
{
if (p.getName().equalsIgnoreCase(split[1]))
{
playerTarget = p;
}
}
if (playerTarget != null){
IP = playerTarget.getIP();
if (playerTarget.canIgnoreRestrictions()) {
ignore = "True";
} else {
ignore ="False";
}
if (playerTarget.canIgnoreRestrictions()) {
admin = "True";
} else {
admin = "False";
}
//Displaying the information
player.sendMessage(Colors.Blue + "Whois results for "+split[1]+".");
//Group
for (String group : playerTarget.getGroups()) {
player.sendMessage(Colors.Blue + "Groups: "+group);
}
//Admin
player.sendMessage(Colors.Blue+"Admin: "+admin);
//IP
player.sendMessage(Colors.Blue+"IP: "+IP);
//Restrictions
player.sendMessage(Colors.Blue+"Can ignore restrictions: "+ignore);
} else {
player.sendMessage(Colors.Rose+"Player not found.");
}
return true;
}
//Say
if (settings.getInstance().cmdSay() && (split[0].equalsIgnoreCase("/say"))) {
String sayan;
sayan = etc.combineSplit(1, split, " ");
other.gmsg(Colors.Yellow+sayan);
}
//Should this be included?
else {
return false;
}
//Needs to be included
return true;
}
}

View File

@ -1,27 +0,0 @@
/**
* vminecraft Plugin
* @author Robert, TrapAlice
*/
//This is how we setup the listener
public class vminecraftPlugin extends Plugin {
static final vminecraftListener listener = new vminecraftListener();
public void enable() {
//If we had commands we would add them here.
etc.getInstance().addCommand("/masstp", "Teleports those with lower permissions to you");
etc.getInstance().addCommand("/rules", "Displays the rules");
etc.getInstance().addCommand("/fabulous", "makes text SUUUPER");
etc.getInstance().addCommand("/whois", "/whois [user]");
settings.getInstance().loadSettings(); //Hopefully this will make the plugin load right away
}
public void disable() {
//And remove the commands here.
}
public void initialize() {
//Here we add the hook we're going to use. In this case it's the arm swing event.
etc.getLoader().addListener(PluginLoader.Hook.CHAT, listener, this, PluginListener.Priority.MEDIUM);
etc.getLoader().addListener(PluginLoader.Hook.COMMAND, listener, this, PluginListener.Priority.HIGH);
}
}