mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-29 16:46:46 +01:00
My top secret project.
This commit is contained in:
parent
4ea776da45
commit
980d8fb374
48
mcMMO/com/bukkit/nossr50/mcMMO/mcBlockListener.java
Normal file
48
mcMMO/com/bukkit/nossr50/mcMMO/mcBlockListener.java
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
package com.bukkit.nossr50.mcMMO;
|
||||||
|
|
||||||
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.block.BlockDamageEvent;
|
||||||
|
import org.bukkit.event.block.BlockListener;
|
||||||
|
|
||||||
|
public class mcBlockListener extends BlockListener {
|
||||||
|
private final mcMMO plugin;
|
||||||
|
|
||||||
|
public mcBlockListener(final mcMMO plugin) {
|
||||||
|
this.plugin = plugin;
|
||||||
|
}
|
||||||
|
//put all Block related code here
|
||||||
|
public void onBlockDamage(BlockDamageEvent event) {
|
||||||
|
//STARTED(0), DIGGING(1), BROKEN(3), STOPPED(2);
|
||||||
|
Player player = event.getPlayer();
|
||||||
|
Block block = event.getBlock();
|
||||||
|
int dmg = event.getDamageLevel().getLevel();
|
||||||
|
if(dmg == 3){
|
||||||
|
mcUsers.getProfile(player).addgather(1);
|
||||||
|
//GOLD ORE = 14
|
||||||
|
//DIAMOND ORE = 56
|
||||||
|
//REDSTONE = 73 && 74
|
||||||
|
|
||||||
|
if(block.getTypeId() == 1){
|
||||||
|
int t = player.getItemInHand().getTypeId();
|
||||||
|
int q;
|
||||||
|
//If stone tools
|
||||||
|
if(t == 272 || t == 273 || t == 274 || t == 275){
|
||||||
|
q = 3;
|
||||||
|
//If iron tools
|
||||||
|
} else if (t == 256 || t == 257 || t == 258 || t == 267){
|
||||||
|
q = 2;
|
||||||
|
//If wooden tools
|
||||||
|
} else if (t == 268 || t == 269 || t == 270 || t == 271){
|
||||||
|
q = 4;
|
||||||
|
//If Diamond tools
|
||||||
|
} else if (t == 276 || t == 277 || t == 278 || t == 279){
|
||||||
|
q = 1;
|
||||||
|
} else {
|
||||||
|
q = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
35
mcMMO/com/bukkit/nossr50/mcMMO/mcConfig.java
Normal file
35
mcMMO/com/bukkit/nossr50/mcMMO/mcConfig.java
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
package com.bukkit.nossr50.mcMMO;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
public class mcConfig {
|
||||||
|
private static volatile mcConfig instance;
|
||||||
|
static ArrayList<String> adminChatList = new ArrayList<String>();
|
||||||
|
static ArrayList<String> partyChatList = new ArrayList<String>();
|
||||||
|
public boolean isAdminToggled(String playerName) {return adminChatList.contains(playerName);}
|
||||||
|
public boolean isPartyToggled(String playerName) {return partyChatList.contains(playerName);}
|
||||||
|
public void removePartyToggled(String playerName) {partyChatList.remove(partyChatList.indexOf(playerName));}
|
||||||
|
public void removeAdminToggled(String playerName) {adminChatList.remove(adminChatList.indexOf(playerName));}
|
||||||
|
public void addPartyToggled(String playerName) {partyChatList.add(playerName);}
|
||||||
|
public void addAdminToggled(String playerName) {adminChatList.add(playerName);}
|
||||||
|
public static mcConfig getInstance() {
|
||||||
|
if (instance == null) {
|
||||||
|
instance = new mcConfig();
|
||||||
|
}
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
public void toggleAdminChat(String playerName){
|
||||||
|
if(isAdminToggled(playerName)){
|
||||||
|
removeAdminToggled(playerName);
|
||||||
|
} else {
|
||||||
|
addAdminToggled(playerName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void togglePartyChat(String playerName){
|
||||||
|
if(isPartyToggled(playerName)){
|
||||||
|
removePartyToggled(playerName);
|
||||||
|
} else {
|
||||||
|
addPartyToggled(playerName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
65
mcMMO/com/bukkit/nossr50/mcMMO/mcEntityListener.java
Normal file
65
mcMMO/com/bukkit/nossr50/mcMMO/mcEntityListener.java
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
package com.bukkit.nossr50.mcMMO;
|
||||||
|
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.entity.Entity;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||||
|
import org.bukkit.event.entity.EntityDamageEvent;
|
||||||
|
import org.bukkit.event.entity.EntityDeathEvent;
|
||||||
|
import org.bukkit.event.entity.EntityListener;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
public class mcEntityListener extends EntityListener {
|
||||||
|
private final mcMMO plugin;
|
||||||
|
|
||||||
|
public mcEntityListener(final mcMMO plugin) {
|
||||||
|
this.plugin = plugin;
|
||||||
|
}
|
||||||
|
public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
|
||||||
|
Entity x = event.getEntity(); //Defender
|
||||||
|
Entity y = event.getDamager(); //Attacker
|
||||||
|
//If attacker is player...
|
||||||
|
if(y instanceof Player){
|
||||||
|
Player attacker = (Player)y;
|
||||||
|
//If defender is player
|
||||||
|
if(x instanceof Player){
|
||||||
|
Player defender = (Player)x;
|
||||||
|
if(mcUsers.getProfile(defender).getParty().equals(mcUsers.getProfile(attacker).getParty())){
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void onEntityDamage(EntityDamageEvent event) {
|
||||||
|
//Thanks to TimberJaw for sharing his source code!
|
||||||
|
Entity x = event.getEntity();
|
||||||
|
if(x instanceof Player){
|
||||||
|
Player player = (Player)x;
|
||||||
|
if((player.getHealth() - event.getDamage()) <= 0){
|
||||||
|
Location deathLoc = player.getLocation();
|
||||||
|
ItemStack[] items = player.getInventory().getContents();
|
||||||
|
for(int i = 0; i < items.length; i++)
|
||||||
|
{
|
||||||
|
ItemStack is = items[i];
|
||||||
|
if(is != null && is.getAmount() > 0)
|
||||||
|
{
|
||||||
|
player.getWorld().dropItemNaturally(deathLoc, is);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
player.setHealth(20);
|
||||||
|
player.teleportTo(mcUsers.getProfile(player).getMySpawn(player));
|
||||||
|
for(Player derp : plugin.getServer().getOnlinePlayers()){
|
||||||
|
derp.sendMessage(ChatColor.GRAY+player.getName() + " has died.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public boolean isPlayer(Entity entity){
|
||||||
|
if (entity instanceof Player) {
|
||||||
|
return true;
|
||||||
|
} else{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
46
mcMMO/com/bukkit/nossr50/mcMMO/mcMMO.java
Normal file
46
mcMMO/com/bukkit/nossr50/mcMMO/mcMMO.java
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
package com.bukkit.nossr50.mcMMO;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import org.bukkit.event.player.*;
|
||||||
|
import org.bukkit.Server;
|
||||||
|
import org.bukkit.event.Event.Priority;
|
||||||
|
import org.bukkit.event.Event;
|
||||||
|
import org.bukkit.plugin.PluginDescriptionFile;
|
||||||
|
import org.bukkit.plugin.PluginLoader;
|
||||||
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
import org.bukkit.plugin.PluginManager;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
|
||||||
|
public class mcMMO extends JavaPlugin {
|
||||||
|
private final mcPlayerListener playerListener = new mcPlayerListener(this);
|
||||||
|
private final mcBlockListener blockListener = new mcBlockListener(this);
|
||||||
|
private final mcEntityListener entityListener = new mcEntityListener(this);
|
||||||
|
private final HashMap<Player, Boolean> debugees = new HashMap<Player, Boolean>();
|
||||||
|
private final String name = "mcMMO";
|
||||||
|
|
||||||
|
public mcMMO(PluginLoader pluginLoader, Server instance, PluginDescriptionFile desc, File folder, File plugin, ClassLoader cLoader) {
|
||||||
|
super(pluginLoader, instance, desc, folder, plugin, cLoader);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onEnable() {
|
||||||
|
mcUsers.getInstance().loadUsers();
|
||||||
|
PluginManager pm = getServer().getPluginManager();
|
||||||
|
pm.registerEvent(Event.Type.PLAYER_JOIN, playerListener, Priority.Normal, this);
|
||||||
|
pm.registerEvent(Event.Type.PLAYER_DROP_ITEM, playerListener, Priority.Normal, this);
|
||||||
|
pm.registerEvent(Event.Type.PLAYER_QUIT, playerListener, Priority.Normal, this);
|
||||||
|
pm.registerEvent(Event.Type.PLAYER_COMMAND, playerListener, Priority.Normal, this);
|
||||||
|
pm.registerEvent(Event.Type.BLOCK_DAMAGED, blockListener, Priority.Normal, this);
|
||||||
|
pm.registerEvent(Event.Type.PLAYER_CHAT, playerListener, Priority.Monitor, this);
|
||||||
|
pm.registerEvent(Event.Type.ENTITY_DAMAGEDBY_ENTITY, entityListener, Priority.Normal, this);
|
||||||
|
pm.registerEvent(Event.Type.ENTITY_DEATH, entityListener, Priority.Normal, this);
|
||||||
|
//Displays a message when plugin is loaded
|
||||||
|
PluginDescriptionFile pdfFile = this.getDescription();
|
||||||
|
System.out.println( pdfFile.getName() + " version " + pdfFile.getVersion() + " is enabled!" );
|
||||||
|
}
|
||||||
|
public void onDisable() {
|
||||||
|
System.out.println("mcMMO disabled.");
|
||||||
|
}
|
||||||
|
}
|
181
mcMMO/com/bukkit/nossr50/mcMMO/mcPlayerListener.java
Normal file
181
mcMMO/com/bukkit/nossr50/mcMMO/mcPlayerListener.java
Normal file
@ -0,0 +1,181 @@
|
|||||||
|
package com.bukkit.nossr50.mcMMO;
|
||||||
|
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.player.PlayerChatEvent;
|
||||||
|
import org.bukkit.event.player.PlayerEvent;
|
||||||
|
import org.bukkit.event.player.PlayerListener;
|
||||||
|
|
||||||
|
public class mcPlayerListener extends PlayerListener {
|
||||||
|
public Location spawn = null;
|
||||||
|
private static mcMMO plugin;
|
||||||
|
|
||||||
|
public mcPlayerListener(mcMMO instance) {
|
||||||
|
plugin = instance;
|
||||||
|
}
|
||||||
|
public void onPlayerJoin(PlayerEvent event) {
|
||||||
|
Player player = event.getPlayer();
|
||||||
|
mcUsers.addUser(player);
|
||||||
|
player.sendMessage(ChatColor.GREEN+"Welcome to /v/ - Minecraft");
|
||||||
|
player.sendMessage(ChatColor.GREEN+"Steam Group: vminecraft");
|
||||||
|
player.sendMessage(ChatColor.AQUA + "This server is running mcMMO type /stats for your information");
|
||||||
|
player.sendMessage(ChatColor.GREEN + "Use "+ChatColor.YELLOW+"/party "+ChatColor.WHITE+"to create/join parties.");
|
||||||
|
player.sendMessage(ChatColor.GREEN + "Use "+ChatColor.YELLOW+"/p"+ChatColor.WHITE+" to toggle party chat");
|
||||||
|
player.sendMessage("Set your spawn with "+ChatColor.YELLOW+"/setmyspawn"+ChatColor.WHITE+", Travel to it with /myspawn");
|
||||||
|
player.sendMessage(ChatColor.RED+"WARNING: "+ChatColor.DARK_GRAY+ "Using /myspawn will clear your inventory!");
|
||||||
|
}
|
||||||
|
public void onPlayerCommand(PlayerChatEvent event) {
|
||||||
|
Player player = event.getPlayer();
|
||||||
|
String[] split = event.getMessage().split(" ");
|
||||||
|
String playerName = player.getName();
|
||||||
|
//mcMMO command
|
||||||
|
if(split[0].equalsIgnoreCase("/whereis")){
|
||||||
|
if(!player.isOp())
|
||||||
|
return;
|
||||||
|
if(split.length == 1){
|
||||||
|
player.sendMessage("Usage is /whereis [player]");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for(Player derp : plugin.getServer().getOnlinePlayers()){
|
||||||
|
if(derp.getName().toLowerCase().equals(split[2].toLowerCase())){
|
||||||
|
Location loc = derp.getLocation();
|
||||||
|
player.sendMessage("Player " + derp.getName() + " Coordinates");
|
||||||
|
player.sendMessage("X: " + String(loc.getX()));
|
||||||
|
player.sendMessage("Y: " + String(loc.getY()));
|
||||||
|
player.sendMessage("Z: " + String(loc.getZ()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(split[0].equalsIgnoreCase("/setmyspawn")){
|
||||||
|
double x = player.getLocation().getX();
|
||||||
|
double y = player.getLocation().getY();
|
||||||
|
double z = player.getLocation().getZ();
|
||||||
|
mcUsers.getProfile(player).setMySpawn(x, y, z);
|
||||||
|
player.sendMessage(ChatColor.DARK_AQUA + "Myspawn has been set to your current location.");
|
||||||
|
}
|
||||||
|
if(player.isOp() && split[0].equalsIgnoreCase("/setspawn")){
|
||||||
|
spawn = event.getPlayer().getLocation();
|
||||||
|
player.sendMessage("Spawn set to current location");
|
||||||
|
}
|
||||||
|
if(split[0].equalsIgnoreCase("/stats")){
|
||||||
|
event.setCancelled(true);
|
||||||
|
player.sendMessage(ChatColor.DARK_GREEN + "mcMMO stats");
|
||||||
|
player.sendMessage(ChatColor.DARK_GREEN + "Gathering Skill: " + mcUsers.getProfile(player).getgather());
|
||||||
|
player.sendMessage(ChatColor.GRAY + "Increases as you gather materials from the world");
|
||||||
|
player.sendMessage(ChatColor.GRAY + "Effect: Increases chance to gather more than one of a rare material");
|
||||||
|
}
|
||||||
|
//Party command
|
||||||
|
if(split[0].equalsIgnoreCase("/party")){
|
||||||
|
event.setCancelled(true);
|
||||||
|
if(split.length == 1){
|
||||||
|
player.sendMessage("Proper usage is /party <name> or 'q' to quit");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(split[1].equals("q") && mcUsers.getProfile(player).inParty()){
|
||||||
|
mcUsers.getProfile(player).removeParty();
|
||||||
|
informPartyMembersQuit(player);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
mcUsers.getProfile(player).setParty(split[1]);
|
||||||
|
player.sendMessage("Joined Party: " + split[1]);
|
||||||
|
informPartyMembers(player);
|
||||||
|
}
|
||||||
|
if(split[0].equalsIgnoreCase("/p")){
|
||||||
|
if(mcConfig.getInstance().isAdminToggled(player.getName()))
|
||||||
|
mcConfig.getInstance().toggleAdminChat(playerName);
|
||||||
|
mcConfig.getInstance().togglePartyChat(playerName);
|
||||||
|
if(mcConfig.getInstance().isPartyToggled(playerName)){
|
||||||
|
player.sendMessage(ChatColor.GREEN + "Party Chat Toggled On");
|
||||||
|
} else {
|
||||||
|
player.sendMessage(ChatColor.GREEN + "Party Chat Toggled " + ChatColor.RED + "Off");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(split[0].equalsIgnoreCase("/a") && player.isOp()){
|
||||||
|
if(mcConfig.getInstance().isPartyToggled(player.getName()))
|
||||||
|
mcConfig.getInstance().togglePartyChat(playerName);
|
||||||
|
mcConfig.getInstance().toggleAdminChat(playerName);
|
||||||
|
if(mcConfig.getInstance().isAdminToggled(playerName)){
|
||||||
|
player.sendMessage(ChatColor.AQUA + "Admin chat toggled " + ChatColor.GREEN + "On");
|
||||||
|
} else {
|
||||||
|
player.sendMessage(ChatColor.AQUA + "Admin chat toggled " + ChatColor.RED + "Off");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(split[0].equalsIgnoreCase("/myspawn")){
|
||||||
|
player.getInventory().clear();
|
||||||
|
player.setHealth(20);
|
||||||
|
player.teleportTo(mcUsers.getProfile(player).getMySpawn(player));
|
||||||
|
player.sendMessage("Inventory cleared & health restored");
|
||||||
|
}
|
||||||
|
if(split[0].equalsIgnoreCase("/spawn")){
|
||||||
|
if(spawn != null){
|
||||||
|
player.teleportTo(spawn);
|
||||||
|
player.sendMessage("Welcome to spawn, home of the dumbfucks");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
player.sendMessage("Spawn isn't configured. Have an OP set it with /setspawn");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private String String(double x) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
public void onPlayerChat(PlayerChatEvent event) {
|
||||||
|
Player player = event.getPlayer();
|
||||||
|
String[] split = event.getMessage().split(" ");
|
||||||
|
String x = ChatColor.GREEN + "(" + ChatColor.WHITE + player.getName() + ChatColor.GREEN + ") ";
|
||||||
|
String y = ChatColor.AQUA + "{" + ChatColor.WHITE + player.getName() + ChatColor.AQUA + "} ";
|
||||||
|
if(mcConfig.getInstance().isPartyToggled(player.getName())){
|
||||||
|
event.setCancelled(true);
|
||||||
|
for(Player herp : plugin.getServer().getOnlinePlayers()){
|
||||||
|
if(mcUsers.getProfile(herp).inParty()){
|
||||||
|
if(inSameParty(herp, player)){
|
||||||
|
herp.sendMessage(x+event.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(player.isOp() && mcConfig.getInstance().isAdminToggled(player.getName())){
|
||||||
|
event.setCancelled(true);
|
||||||
|
for(Player herp : plugin.getServer().getOnlinePlayers()){
|
||||||
|
if(herp.isOp()){
|
||||||
|
herp.sendMessage(y+event.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(player.isOp()){
|
||||||
|
event.setCancelled(true);
|
||||||
|
for(Player derp : plugin.getServer().getOnlinePlayers()){
|
||||||
|
String z = ChatColor.RED + "<" + ChatColor.WHITE + player.getName() + ChatColor.RED + "> "+ChatColor.WHITE;
|
||||||
|
derp.sendMessage(z+event.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static void informPartyMembers(Player player){
|
||||||
|
int x = 0;
|
||||||
|
for(Player p : plugin.getServer().getOnlinePlayers()){
|
||||||
|
if(inSameParty(player, p) && !p.getName().equals(player.getName())){
|
||||||
|
p.sendMessage(player.getName() + ChatColor.GREEN + " has joined your party");
|
||||||
|
x++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static void informPartyMembersQuit(Player player){
|
||||||
|
int x = 0;
|
||||||
|
for(Player p : plugin.getServer().getOnlinePlayers()){
|
||||||
|
if(inSameParty(player, p) && !p.getName().equals(player.getName())){
|
||||||
|
p.sendMessage(player.getName() + ChatColor.GREEN + " has left your party");
|
||||||
|
x++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static boolean inSameParty(Player playera, Player playerb){
|
||||||
|
if(mcUsers.getProfile(playera).getParty().equals(mcUsers.getProfile(playerb).getParty())){
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
374
mcMMO/com/bukkit/nossr50/mcMMO/mcUsers.java
Normal file
374
mcMMO/com/bukkit/nossr50/mcMMO/mcUsers.java
Normal file
@ -0,0 +1,374 @@
|
|||||||
|
package com.bukkit.nossr50.mcMMO;
|
||||||
|
|
||||||
|
import java.io.*;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Properties;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.entity.*;
|
||||||
|
|
||||||
|
public class mcUsers {
|
||||||
|
private static volatile mcUsers instance;
|
||||||
|
protected static final Logger log = Logger.getLogger("Minecraft");
|
||||||
|
String location = "mcMMO.users";
|
||||||
|
public static PlayerList players = new PlayerList();
|
||||||
|
private Properties properties = new Properties();
|
||||||
|
|
||||||
|
//To load
|
||||||
|
public void load() throws IOException {
|
||||||
|
properties.load(new FileInputStream(location));
|
||||||
|
}
|
||||||
|
//To save
|
||||||
|
public void save() {
|
||||||
|
try {
|
||||||
|
properties.store(new FileOutputStream(location), null);
|
||||||
|
}catch(IOException ex) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void loadUsers(){
|
||||||
|
File theDir = new File(location);
|
||||||
|
if(!theDir.exists()){
|
||||||
|
//properties = new PropertiesFile(location);
|
||||||
|
FileWriter writer = null;
|
||||||
|
try {
|
||||||
|
writer = new FileWriter(location);
|
||||||
|
writer.write("#Storage place for user information\r\n");
|
||||||
|
writer.write("#username:nickname:suffix:tag:ignore,list,names:alias,commands,here\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(location);
|
||||||
|
try {
|
||||||
|
load();
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.log(Level.SEVERE, "Exception while loading " + location, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//=====================================================================
|
||||||
|
//Function: addUser
|
||||||
|
//Input: Player player: The player to create a profile for
|
||||||
|
//Output: none
|
||||||
|
//Use: Loads the profile for the specified player
|
||||||
|
//=====================================================================
|
||||||
|
public static void addUser(Player player){
|
||||||
|
players.addPlayer(player);
|
||||||
|
}
|
||||||
|
|
||||||
|
//=====================================================================
|
||||||
|
//Function: removeUser
|
||||||
|
//Input: Player player: The player to stop following
|
||||||
|
//Output: none
|
||||||
|
//Use: Creates the player profile
|
||||||
|
//=====================================================================
|
||||||
|
public static void removeUser(Player player){
|
||||||
|
players.removePlayer(player);
|
||||||
|
}
|
||||||
|
|
||||||
|
//=====================================================================
|
||||||
|
//Function: getProfile
|
||||||
|
//Input: Player player: The player to find the profile for
|
||||||
|
//Output: PlayerList.PlayerProfile: The profile
|
||||||
|
//Use: Gets the player profile
|
||||||
|
//=====================================================================
|
||||||
|
public static PlayerList.PlayerProfile getProfile(Player player){
|
||||||
|
return players.findProfile(player);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static mcUsers getInstance() {
|
||||||
|
if (instance == null) {
|
||||||
|
instance = new mcUsers();
|
||||||
|
}
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
public static void getRow(){
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
class PlayerList
|
||||||
|
{
|
||||||
|
protected static final Logger log = Logger.getLogger("Minecraft");
|
||||||
|
ArrayList<PlayerProfile> players;
|
||||||
|
|
||||||
|
//=====================================================================
|
||||||
|
//Function: PlayerList
|
||||||
|
//Input: Player player: The player to create a profile object for
|
||||||
|
//Output: none
|
||||||
|
//Use: Initializes the ArrayList
|
||||||
|
//=====================================================================
|
||||||
|
public PlayerList() { players = new ArrayList<PlayerProfile>(); }
|
||||||
|
|
||||||
|
//=====================================================================
|
||||||
|
//Function: addPlayer
|
||||||
|
//Input: Player player: The player to add
|
||||||
|
//Output: None
|
||||||
|
//Use: Add a profile of the specified player
|
||||||
|
//=====================================================================
|
||||||
|
public void addPlayer(Player player)
|
||||||
|
{
|
||||||
|
players.add(new PlayerProfile(player));
|
||||||
|
}
|
||||||
|
|
||||||
|
//=====================================================================
|
||||||
|
//Function: removePlayer
|
||||||
|
//Input: Player player: The player to remove
|
||||||
|
//Output: None
|
||||||
|
//Use: Remove the profile of the specified player
|
||||||
|
//=====================================================================
|
||||||
|
public void removePlayer(Player player)
|
||||||
|
{
|
||||||
|
players.remove(findProfile(player));
|
||||||
|
}
|
||||||
|
|
||||||
|
//=====================================================================
|
||||||
|
//Function: findProfile
|
||||||
|
//Input: Player player: The player to find's profile
|
||||||
|
//Output: PlayerProfile: The profile of the specified player
|
||||||
|
//Use: Get the profile for the specified player
|
||||||
|
//=====================================================================
|
||||||
|
public PlayerProfile findProfile(Player player)
|
||||||
|
{
|
||||||
|
for(PlayerProfile ply : players)
|
||||||
|
{
|
||||||
|
if(ply.isPlayer(player))
|
||||||
|
return ply;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
class PlayerProfile
|
||||||
|
{
|
||||||
|
protected final Logger log = Logger.getLogger("Minecraft");
|
||||||
|
private String playerName, gather, party, myspawn;
|
||||||
|
private boolean dead;
|
||||||
|
char defaultColor;
|
||||||
|
|
||||||
|
String location = "mcMMO.users";
|
||||||
|
|
||||||
|
|
||||||
|
//=====================================================================
|
||||||
|
//Function: PlayerProfile
|
||||||
|
//Input: Player player: The player to create a profile object for
|
||||||
|
//Output: none
|
||||||
|
//Use: Loads settings for the player or creates them if they don't
|
||||||
|
// exist.
|
||||||
|
//=====================================================================
|
||||||
|
public PlayerProfile(Player player)
|
||||||
|
{
|
||||||
|
//Declare things
|
||||||
|
playerName = player.getName();
|
||||||
|
party = new String();
|
||||||
|
myspawn = new String();
|
||||||
|
gather = new String();
|
||||||
|
party = null;
|
||||||
|
dead = false;
|
||||||
|
|
||||||
|
//Try to load the player and if they aren't found, append them
|
||||||
|
if(!load())
|
||||||
|
addPlayer();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean load()
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
//Open the user file
|
||||||
|
FileReader file = new FileReader(location);
|
||||||
|
BufferedReader in = new BufferedReader(file);
|
||||||
|
String line = "";
|
||||||
|
while((line = in.readLine()) != null)
|
||||||
|
{
|
||||||
|
//Find if the line contains the player we want.
|
||||||
|
String[] character = line.split(":");
|
||||||
|
if(!character[0].equals(playerName)){continue;}
|
||||||
|
|
||||||
|
//Get gather
|
||||||
|
if(character.length > 1)
|
||||||
|
gather = character[1];
|
||||||
|
if(character.length > 2){
|
||||||
|
myspawn = character[2];
|
||||||
|
}
|
||||||
|
in.close();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
in.close();
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.log(Level.SEVERE, "Exception while reading "
|
||||||
|
+ location + " (Are you sure you formatted it correctly?)", e);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//=====================================================================
|
||||||
|
// Function: save
|
||||||
|
// Input: none
|
||||||
|
// Output: None
|
||||||
|
// Use: Writes current values of PlayerProfile to disk
|
||||||
|
// Call this function to save current values
|
||||||
|
//=====================================================================
|
||||||
|
public void save()
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
//Open the file
|
||||||
|
FileReader file = new FileReader(location);
|
||||||
|
BufferedReader in = new BufferedReader(file);
|
||||||
|
StringBuilder writer = new StringBuilder();
|
||||||
|
String line = "";
|
||||||
|
|
||||||
|
//While not at the end of the file
|
||||||
|
while((line = in.readLine()) != null)
|
||||||
|
{
|
||||||
|
//Read the line in and copy it to the output it's not the player
|
||||||
|
//we want to edit
|
||||||
|
if(!line.split(":")[0].equalsIgnoreCase(playerName))
|
||||||
|
{
|
||||||
|
writer.append(line).append("\r\n");
|
||||||
|
|
||||||
|
//Otherwise write the new player information
|
||||||
|
} else {
|
||||||
|
writer.append(playerName + ":");
|
||||||
|
writer.append(gather + ":");
|
||||||
|
writer.append(myspawn + ":");
|
||||||
|
writer.append("\r\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
in.close();
|
||||||
|
//Write the new file
|
||||||
|
FileWriter out = new FileWriter(location);
|
||||||
|
out.write(writer.toString());
|
||||||
|
out.close();
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.log(Level.SEVERE, "Exception while writing to " + location + " (Are you sure you formatted it correctly?)", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void addPlayer()
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
//Open the file to write the player
|
||||||
|
FileWriter file = new FileWriter(location, true);
|
||||||
|
BufferedWriter out = new BufferedWriter(file);
|
||||||
|
|
||||||
|
//Add the player to the end
|
||||||
|
out.append(playerName + ":");
|
||||||
|
out.append(gather + ":");
|
||||||
|
out.append(myspawn+":");
|
||||||
|
//Add more in the same format as the line above
|
||||||
|
|
||||||
|
out.newLine();
|
||||||
|
out.close();
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.log(Level.SEVERE, "Exception while writing to " + location + " (Are you sure you formatted it correctly?)", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//=====================================================================
|
||||||
|
//Function: isPlayer
|
||||||
|
//Input: None
|
||||||
|
//Output: Player: The player this profile belongs to
|
||||||
|
//Use: Finds if this profile belongs to a specified player
|
||||||
|
//=====================================================================
|
||||||
|
public boolean isPlayer(Player player)
|
||||||
|
{
|
||||||
|
return player.getName().equals(playerName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addgather(int newgather)
|
||||||
|
{
|
||||||
|
int x = 0;
|
||||||
|
if(isInt(gather)){
|
||||||
|
x = Integer.parseInt(gather);
|
||||||
|
}
|
||||||
|
x += newgather;
|
||||||
|
gather = String.valueOf(x);
|
||||||
|
save();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isInt(String string){
|
||||||
|
try {
|
||||||
|
int x = Integer.parseInt(gather);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch(NumberFormatException nFE) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Returns player gather
|
||||||
|
public String getgather() { return gather; }
|
||||||
|
|
||||||
|
//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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Save a users spawn location
|
||||||
|
public void setMySpawn(double x, double y, double z){
|
||||||
|
myspawn = x+","+y+","+z;
|
||||||
|
save();
|
||||||
|
}
|
||||||
|
public String getX(){
|
||||||
|
String[] split = myspawn.split(",");
|
||||||
|
String x = split[0];
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
public String getY(){
|
||||||
|
String[] split = myspawn.split(",");
|
||||||
|
String y = split[1];
|
||||||
|
return y;
|
||||||
|
}
|
||||||
|
public String getZ(){
|
||||||
|
String[] split = myspawn.split(",");
|
||||||
|
String z = split[2];
|
||||||
|
return z;
|
||||||
|
}
|
||||||
|
public void setDead(boolean x){
|
||||||
|
dead = x;
|
||||||
|
save();
|
||||||
|
}
|
||||||
|
public boolean isDead(){
|
||||||
|
return dead;
|
||||||
|
}
|
||||||
|
public Location getMySpawn(Player player){
|
||||||
|
Location loc = player.getLocation();
|
||||||
|
loc.setX(Double.parseDouble(mcUsers.getProfile(player).getX()));
|
||||||
|
loc.setY(Double.parseDouble(mcUsers.getProfile(player).getY()));
|
||||||
|
loc.setZ(Double.parseDouble(mcUsers.getProfile(player).getZ()));
|
||||||
|
loc.setYaw(0);
|
||||||
|
loc.setPitch(0);
|
||||||
|
return loc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
3
mcMMO/plugin.yml
Normal file
3
mcMMO/plugin.yml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
name: mcMMO
|
||||||
|
main: com.bukkit.nossr50.mcMMO.mcMMO
|
||||||
|
version: alpha
|
Loading…
Reference in New Issue
Block a user