Adding block whitelist/blacklist
This commit is contained in:
@@ -10,6 +10,7 @@ import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.BlockBreakEvent;
|
||||
import org.bukkit.event.block.BlockBurnEvent;
|
||||
@@ -24,127 +25,96 @@ public class BlockStorage implements Listener {
|
||||
public BlockStorage(Main m) {
|
||||
this.plugin = m;
|
||||
}
|
||||
@EventHandler
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void BlockBreak(BlockBreakEvent event){
|
||||
Block b = event.getBlock();
|
||||
Player p = event.getPlayer();
|
||||
String pname = p.getName();
|
||||
if(plugin.Playing.contains(pname)){
|
||||
if(plugin.config.getString("Protected_Arena").equalsIgnoreCase("True")){
|
||||
event.setCancelled(true);
|
||||
p.sendMessage(ChatColor.RED + "You can't break blocks when you're playing!");
|
||||
}
|
||||
if(plugin.canjoin){
|
||||
if(plugin.config.getStringList("worlds").isEmpty() || (!plugin.config.getStringList("worlds").isEmpty() && plugin.config.getStringList("worlds").contains(p.getWorld().getName()))){
|
||||
String w = b.getWorld().getName();
|
||||
int x = b.getX();
|
||||
int y = b.getY();
|
||||
int z = b.getZ();
|
||||
int d = b.getTypeId();
|
||||
byte m = b.getData();
|
||||
String coords = w + "," + x + "," + y + "," + z + "," + d + "," + m;
|
||||
List<String> blocks = plugin.data.getStringList("Blocks_Destroyed");
|
||||
if(!plugin.data.getStringList("Blocks_Placed").contains(w + "," + x + "," + y + "," + z)){
|
||||
blocks.add(coords);
|
||||
plugin.data.set("Blocks_Destroyed", blocks);
|
||||
plugin.saveData();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@EventHandler
|
||||
public void Explosion(EntityExplodeEvent event){
|
||||
List<Block> blocksd = event.blockList();
|
||||
Entity e = event.getEntity();
|
||||
if(plugin.canjoin){
|
||||
if(plugin.config.getStringList("worlds").isEmpty() || (!plugin.config.getStringList("worlds").isEmpty() && plugin.config.getStringList("worlds").contains(event.getEntity().getWorld().getName()))){
|
||||
if(e.getType()== EntityType.PRIMED_TNT){
|
||||
if(!plugin.data.getStringList("Blocks_Placed").contains(e.getLocation().getWorld() + "," + e.getLocation().getX() + "," + e.getLocation().getY() + "," + e.getLocation().getZ()) /*|| !plugin.data.getStringList("Blocks_Destroyed").contains(e.getLocation().getWorld() + "," + e.getLocation().getX() + "," + e.getLocation().getY() + "," + e.getLocation().getZ())*/){
|
||||
List<String> blocks = plugin.data.getStringList("Blocks_Destroyed");
|
||||
blocks.add(e.getLocation().getWorld().getName() + "," + e.getLocation().getX() + "," + e.getLocation().getY() + "," + e.getLocation().getZ() + ",46" + ",0");
|
||||
plugin.data.set("Blocks_Destroyed", blocks);
|
||||
plugin.saveData();
|
||||
plugin.getServer().broadcastMessage("TNT blew up!");
|
||||
}
|
||||
}
|
||||
for(Block b:blocksd){
|
||||
String w = event.getEntity().getWorld().getName();
|
||||
int x = b.getX();
|
||||
int y = b.getY();
|
||||
int z = b.getZ();
|
||||
int d = b.getTypeId();
|
||||
byte m = b.getData();
|
||||
String coords = w + "," + x + "," + y + "," + z + "," + d + "," + m;
|
||||
List<String> blocks = plugin.data.getStringList("Blocks_Destroyed");
|
||||
if(!plugin.data.getStringList("Blocks_Placed").contains(w + "," + x + "," + y + "," + z) || !plugin.data.getStringList("Blocks_Destroyed").contains(w + "," + x + "," + y + "," + z)){
|
||||
blocks.add(coords);
|
||||
plugin.data.set("Blocks_Destroyed", blocks);
|
||||
plugin.saveData();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@EventHandler
|
||||
public void burningBlocks(BlockBurnEvent event){
|
||||
Block b = event.getBlock();
|
||||
if(plugin.canjoin== true){
|
||||
if(plugin.config.getStringList("worlds").isEmpty() || (!plugin.config.getStringList("worlds").isEmpty() && plugin.config.getStringList("worlds").contains(b.getWorld().getName()))){
|
||||
String w = b.getWorld().getName();
|
||||
int x = b.getX();
|
||||
int y = b.getY();
|
||||
int z = b.getZ();
|
||||
int d = b.getTypeId();
|
||||
byte m = b.getData();
|
||||
String coords = w + "," + x + "," + y + "," + z + "," + d + "," + m;
|
||||
List<String> blocks = plugin.data.getStringList("Blocks_Destroyed");
|
||||
if(!plugin.data.getStringList("Blocks_Placed").contains(w + "," + x + "," + y + "," + z)){
|
||||
blocks.add(coords);
|
||||
plugin.data.set("Blocks_Destroyed", blocks);
|
||||
plugin.saveData();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@EventHandler
|
||||
public void blockPlace(BlockPlaceEvent event){
|
||||
Block b = event.getBlock();
|
||||
Player p = event.getPlayer();
|
||||
if(plugin.Playing.contains(p.getName())){
|
||||
if(plugin.canjoin){
|
||||
if(plugin.config.getStringList("worlds").isEmpty() || (!plugin.config.getStringList("worlds").isEmpty() && plugin.config.getStringList("worlds").contains(b.getWorld().getName()))){
|
||||
//TODO
|
||||
if((b.getType()== Material.SAND || b.getType()== Material.GRAVEL) && (b.getRelative(BlockFace.DOWN).getType()== Material.AIR || b.getRelative(BlockFace.DOWN).getType()== Material.WATER || b.getRelative(BlockFace.DOWN).getType()== Material.LAVA)){
|
||||
int n = b.getY() -1;
|
||||
while(b.getWorld().getBlockAt(b.getX(), n, b.getZ()).getType()== Material.AIR || b.getWorld().getBlockAt(b.getX(), n, b.getZ()).getType()== Material.WATER || b.getWorld().getBlockAt(b.getX(), n, b.getZ()).getType()== Material.LAVA){
|
||||
n = n -1;
|
||||
event.getPlayer().sendMessage(b.getWorld().getBlockAt(b.getX(), n, b.getZ()).getType().toString().toLowerCase());
|
||||
if(b.getWorld().getBlockAt(b.getX(), n, b.getZ()).getType()!= Material.AIR || b.getWorld().getBlockAt(b.getX(), n, b.getZ()).getType()!= Material.WATER || b.getWorld().getBlockAt(b.getX(), n, b.getZ()).getType()!= Material.LAVA){
|
||||
int l = n +1;
|
||||
Block br = b.getWorld().getBlockAt(b.getX(), l, b.getZ());
|
||||
String w = br.getWorld().getName();
|
||||
int x = br.getX();
|
||||
int y = br.getY();
|
||||
int z = br.getZ();
|
||||
String coords = w + "," + x + "," + y + "," + z;
|
||||
p.sendMessage(ChatColor.GREEN + "Sand/Gravel will land at " + coords);
|
||||
List<String> blocks = plugin.data.getStringList("Blocks_Placed");
|
||||
blocks.add(coords);
|
||||
plugin.data.set("Blocks_Placed", blocks);
|
||||
plugin.saveData();
|
||||
}
|
||||
if(!event.isCancelled()){
|
||||
if(plugin.Playing.contains(pname)){
|
||||
if(plugin.config.getString("Protected_Arena").equalsIgnoreCase("True")){
|
||||
if(!plugin.management.getStringList("blocks.blacklist").isEmpty() && plugin.management.getStringList("blocks.blacklist").contains(b.getData())){
|
||||
event.setCancelled(true);
|
||||
p.sendMessage(ChatColor.RED + "That is an illegal block!");
|
||||
}else if(!plugin.management.getStringList("blocks.whitelist").isEmpty() && !plugin.management.getStringList("blocks.whitelist").contains(b.getData())){
|
||||
if(!plugin.management.getStringList("blocks.blacklist").isEmpty() && !plugin.management.getStringList("blocks.blacklist").contains(b.getData())){
|
||||
event.setCancelled(true);
|
||||
p.sendMessage(ChatColor.RED + "That is an illegal block!");
|
||||
}
|
||||
}else if(!plugin.management.getStringList("blocks.blacklist").isEmpty() && !plugin.management.getStringList("blocks.blacklist").contains(b.getData())){
|
||||
if(!plugin.management.getStringList("blocks.whitelist").isEmpty() && !plugin.management.getStringList("blocks.whitelist").contains(b.getData())){
|
||||
event.setCancelled(true);
|
||||
p.sendMessage(ChatColor.RED + "That is an illegal block!");
|
||||
}
|
||||
}else{
|
||||
if(b.getType()!= Material.SAND || b.getType()!= Material.GRAVEL){
|
||||
event.setCancelled(true);
|
||||
p.sendMessage(ChatColor.RED + "That is an illegal block!");
|
||||
}
|
||||
|
||||
}
|
||||
if(plugin.canjoin){
|
||||
if(plugin.config.getStringList("worlds").isEmpty() || (!plugin.config.getStringList("worlds").isEmpty() && plugin.config.getStringList("worlds").contains(p.getWorld().getName()))){
|
||||
if(!plugin.management.getStringList("blocks.blacklist").isEmpty() && plugin.management.getStringList("blocks.blacklist").contains(b.getData())){
|
||||
event.setCancelled(true);
|
||||
p.sendMessage(ChatColor.RED + "That is an illegal block!");
|
||||
}else if(!plugin.management.getStringList("blocks.whitelist").isEmpty() && !plugin.management.getStringList("blocks.whitelist").contains(b.getData())){
|
||||
if(!plugin.management.getStringList("blocks.blacklist").isEmpty() && !plugin.management.getStringList("blocks.blacklist").contains(b.getData())){
|
||||
event.setCancelled(true);
|
||||
p.sendMessage(ChatColor.RED + "That is an illegal block!");
|
||||
}
|
||||
}else if(!plugin.management.getStringList("blocks.blacklist").isEmpty() && !plugin.management.getStringList("blocks.blacklist").contains(b.getData())){
|
||||
if(!plugin.management.getStringList("blocks.whitelist").isEmpty() && !plugin.management.getStringList("blocks.whitelist").contains(b.getData())){
|
||||
event.setCancelled(true);
|
||||
p.sendMessage(ChatColor.RED + "That is an illegal block!");
|
||||
}
|
||||
}else{
|
||||
String w = b.getWorld().getName();
|
||||
int x = b.getX();
|
||||
int y = b.getY();
|
||||
int z = b.getZ();
|
||||
String coords = w + "," + x + "," + y + "," + z;
|
||||
List<String> blocks = plugin.data.getStringList("Blocks_Placed");
|
||||
int d = b.getTypeId();
|
||||
byte m = b.getData();
|
||||
String coords = w + "," + x + "," + y + "," + z + "," + d + "," + m;
|
||||
List<String> blocks = plugin.data.getStringList("Blocks_Destroyed");
|
||||
if(!plugin.data.getStringList("Blocks_Placed").contains(w + "," + x + "," + y + "," + z)){
|
||||
blocks.add(coords);
|
||||
plugin.data.set("Blocks_Destroyed", blocks);
|
||||
plugin.saveData();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void Explosion(EntityExplodeEvent event){
|
||||
List<Block> blocksd = event.blockList();
|
||||
Entity e = event.getEntity();
|
||||
if(!event.isCancelled()){
|
||||
if(plugin.canjoin){
|
||||
if(plugin.config.getStringList("worlds").isEmpty() || (!plugin.config.getStringList("worlds").isEmpty() && plugin.config.getStringList("worlds").contains(event.getEntity().getWorld().getName()))){
|
||||
if(e.getType()== EntityType.PRIMED_TNT){
|
||||
if(!plugin.data.getStringList("Blocks_Placed").contains(e.getLocation().getWorld() + "," + e.getLocation().getX() + "," + e.getLocation().getY() + "," + e.getLocation().getZ()) /*|| !plugin.data.getStringList("Blocks_Destroyed").contains(e.getLocation().getWorld() + "," + e.getLocation().getX() + "," + e.getLocation().getY() + "," + e.getLocation().getZ())*/){
|
||||
List<String> blocks = plugin.data.getStringList("Blocks_Destroyed");
|
||||
blocks.add(e.getLocation().getWorld().getName() + "," + e.getLocation().getX() + "," + e.getLocation().getY() + "," + e.getLocation().getZ() + ",46" + ",0");
|
||||
plugin.data.set("Blocks_Destroyed", blocks);
|
||||
plugin.saveData();
|
||||
plugin.getServer().broadcastMessage("TNT blew up!");
|
||||
}
|
||||
}
|
||||
for(Block b:blocksd){
|
||||
String w = event.getEntity().getWorld().getName();
|
||||
int x = b.getX();
|
||||
int y = b.getY();
|
||||
int z = b.getZ();
|
||||
int d = b.getTypeId();
|
||||
byte m = b.getData();
|
||||
String coords = w + "," + x + "," + y + "," + z + "," + d + "," + m;
|
||||
List<String> blocks = plugin.data.getStringList("Blocks_Destroyed");
|
||||
if(!plugin.data.getStringList("Blocks_Placed").contains(w + "," + x + "," + y + "," + z) || !plugin.data.getStringList("Blocks_Destroyed").contains(w + "," + x + "," + y + "," + z)){
|
||||
blocks.add(coords);
|
||||
plugin.data.set("Blocks_Placed", blocks);
|
||||
plugin.data.set("Blocks_Destroyed", blocks);
|
||||
plugin.saveData();
|
||||
}
|
||||
}
|
||||
@@ -152,31 +122,12 @@ public class BlockStorage implements Listener {
|
||||
}
|
||||
}
|
||||
}
|
||||
@EventHandler
|
||||
public void bucketEmpty(PlayerBucketEmptyEvent event){
|
||||
if(plugin.canjoin){
|
||||
if(plugin.Playing.contains(event.getPlayer().getName())){
|
||||
if(plugin.config.getStringList("worlds").isEmpty() || (!plugin.config.getStringList("worlds").isEmpty() && plugin.config.getStringList("worlds").contains(event.getPlayer().getWorld().getName()))){
|
||||
Block b = event.getBlockClicked().getRelative(event.getBlockFace());
|
||||
String w = b.getWorld().getName();
|
||||
int x = b.getX();
|
||||
int y = b.getY();
|
||||
int z = b.getZ();
|
||||
String coords = w + "," + x + "," + y + "," + z;
|
||||
List<String> blocks = plugin.data.getStringList("Blocks_Placed");
|
||||
blocks.add(coords);
|
||||
plugin.data.set("Blocks_Placed", blocks);
|
||||
plugin.saveData();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@EventHandler
|
||||
public void bucketFill(PlayerBucketFillEvent event){
|
||||
if(plugin.canjoin){
|
||||
if(plugin.Playing.contains(event.getPlayer().getName())){
|
||||
if(plugin.config.getStringList("worlds").isEmpty() || (!plugin.config.getStringList("worlds").isEmpty() && plugin.config.getStringList("worlds").contains(event.getPlayer().getWorld().getName()))){
|
||||
Block b = event.getBlockClicked().getRelative(event.getBlockFace());
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void burningBlocks(BlockBurnEvent event){
|
||||
Block b = event.getBlock();
|
||||
if(!event.isCancelled()){
|
||||
if(plugin.canjoin){
|
||||
if(plugin.config.getStringList("worlds").isEmpty() || (!plugin.config.getStringList("worlds").isEmpty() && plugin.config.getStringList("worlds").contains(b.getWorld().getName()))){
|
||||
String w = b.getWorld().getName();
|
||||
int x = b.getX();
|
||||
int y = b.getY();
|
||||
@@ -194,23 +145,117 @@ public class BlockStorage implements Listener {
|
||||
}
|
||||
}
|
||||
}
|
||||
@EventHandler
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void blockPlace(BlockPlaceEvent event){
|
||||
Block b = event.getBlock();
|
||||
Player p = event.getPlayer();
|
||||
if(!event.isCancelled()){
|
||||
if(plugin.Playing.contains(p.getName())){
|
||||
if(plugin.canjoin){
|
||||
if(plugin.config.getStringList("worlds").isEmpty() || (!plugin.config.getStringList("worlds").isEmpty() && plugin.config.getStringList("worlds").contains(b.getWorld().getName()))){
|
||||
if((b.getType()== Material.SAND || b.getType()== Material.GRAVEL) && (b.getRelative(BlockFace.DOWN).getType()== Material.AIR || b.getRelative(BlockFace.DOWN).getType()== Material.WATER || b.getRelative(BlockFace.DOWN).getType()== Material.LAVA)){
|
||||
int n = b.getY() -1;
|
||||
while(b.getWorld().getBlockAt(b.getX(), n, b.getZ()).getType()== Material.AIR || b.getWorld().getBlockAt(b.getX(), n, b.getZ()).getType()== Material.WATER || b.getWorld().getBlockAt(b.getX(), n, b.getZ()).getType()== Material.LAVA){
|
||||
n = n -1;
|
||||
event.getPlayer().sendMessage(b.getWorld().getBlockAt(b.getX(), n, b.getZ()).getType().toString().toLowerCase());
|
||||
if(b.getWorld().getBlockAt(b.getX(), n, b.getZ()).getType()!= Material.AIR || b.getWorld().getBlockAt(b.getX(), n, b.getZ()).getType()!= Material.WATER || b.getWorld().getBlockAt(b.getX(), n, b.getZ()).getType()!= Material.LAVA){
|
||||
int l = n +1;
|
||||
Block br = b.getWorld().getBlockAt(b.getX(), l, b.getZ());
|
||||
String w = br.getWorld().getName();
|
||||
int x = br.getX();
|
||||
int y = br.getY();
|
||||
int z = br.getZ();
|
||||
String coords = w + "," + x + "," + y + "," + z;
|
||||
p.sendMessage(ChatColor.GREEN + "Sand/Gravel will land at " + coords);
|
||||
List<String> blocks = plugin.data.getStringList("Blocks_Placed");
|
||||
blocks.add(coords);
|
||||
plugin.data.set("Blocks_Placed", blocks);
|
||||
plugin.saveData();
|
||||
}
|
||||
}
|
||||
}else{
|
||||
if(b.getType()!= Material.SAND || b.getType()!= Material.GRAVEL){
|
||||
String w = b.getWorld().getName();
|
||||
int x = b.getX();
|
||||
int y = b.getY();
|
||||
int z = b.getZ();
|
||||
String coords = w + "," + x + "," + y + "," + z;
|
||||
List<String> blocks = plugin.data.getStringList("Blocks_Placed");
|
||||
blocks.add(coords);
|
||||
plugin.data.set("Blocks_Placed", blocks);
|
||||
plugin.saveData();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void bucketEmpty(PlayerBucketEmptyEvent event){
|
||||
if(!event.isCancelled()){
|
||||
if(plugin.canjoin){
|
||||
if(plugin.Playing.contains(event.getPlayer().getName())){
|
||||
if(plugin.config.getStringList("worlds").isEmpty() || (!plugin.config.getStringList("worlds").isEmpty() && plugin.config.getStringList("worlds").contains(event.getPlayer().getWorld().getName()))){
|
||||
Block b = event.getBlockClicked().getRelative(event.getBlockFace());
|
||||
String w = b.getWorld().getName();
|
||||
int x = b.getX();
|
||||
int y = b.getY();
|
||||
int z = b.getZ();
|
||||
String coords = w + "," + x + "," + y + "," + z;
|
||||
List<String> blocks = plugin.data.getStringList("Blocks_Placed");
|
||||
blocks.add(coords);
|
||||
plugin.data.set("Blocks_Placed", blocks);
|
||||
plugin.saveData();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void bucketFill(PlayerBucketFillEvent event){
|
||||
if(!event.isCancelled()){
|
||||
if(plugin.canjoin){
|
||||
if(plugin.Playing.contains(event.getPlayer().getName())){
|
||||
if(plugin.config.getStringList("worlds").isEmpty() || (!plugin.config.getStringList("worlds").isEmpty() && plugin.config.getStringList("worlds").contains(event.getPlayer().getWorld().getName()))){
|
||||
Block b = event.getBlockClicked().getRelative(event.getBlockFace());
|
||||
String w = b.getWorld().getName();
|
||||
int x = b.getX();
|
||||
int y = b.getY();
|
||||
int z = b.getZ();
|
||||
int d = b.getTypeId();
|
||||
byte m = b.getData();
|
||||
String coords = w + "," + x + "," + y + "," + z + "," + d + "," + m;
|
||||
List<String> blocks = plugin.data.getStringList("Blocks_Destroyed");
|
||||
if(!plugin.data.getStringList("Blocks_Placed").contains(w + "," + x + "," + y + "," + z)){
|
||||
blocks.add(coords);
|
||||
plugin.data.set("Blocks_Destroyed", blocks);
|
||||
plugin.saveData();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void blockMelt(BlockFadeEvent event){
|
||||
if(plugin.canjoin){
|
||||
if(plugin.config.getStringList("worlds").isEmpty() || (!plugin.config.getStringList("worlds").isEmpty() && plugin.config.getStringList("worlds").contains(event.getBlock().getWorld().getName()))){
|
||||
Block b = event.getBlock();
|
||||
String w = b.getWorld().getName();
|
||||
int x = b.getX();
|
||||
int y = b.getY();
|
||||
int z = b.getZ();
|
||||
int d = b.getTypeId();
|
||||
byte m = b.getData();
|
||||
String coords = w + "," + x + "," + y + "," + z + "," + d + "," + m;
|
||||
List<String> blocks = plugin.data.getStringList("Blocks_Destroyed");
|
||||
if(!plugin.data.getStringList("Blocks_Placed").contains(w + "," + x + "," + y + "," + z)){
|
||||
blocks.add(coords);
|
||||
plugin.data.set("Blocks_Destroyed", blocks);
|
||||
plugin.saveData();
|
||||
if(!event.isCancelled()){
|
||||
if(plugin.canjoin){
|
||||
if(plugin.config.getStringList("worlds").isEmpty() || (!plugin.config.getStringList("worlds").isEmpty() && plugin.config.getStringList("worlds").contains(event.getBlock().getWorld().getName()))){
|
||||
Block b = event.getBlock();
|
||||
String w = b.getWorld().getName();
|
||||
int x = b.getX();
|
||||
int y = b.getY();
|
||||
int z = b.getZ();
|
||||
int d = b.getTypeId();
|
||||
byte m = b.getData();
|
||||
String coords = w + "," + x + "," + y + "," + z + "," + d + "," + m;
|
||||
List<String> blocks = plugin.data.getStringList("Blocks_Destroyed");
|
||||
if(!plugin.data.getStringList("Blocks_Placed").contains(w + "," + x + "," + y + "," + z)){
|
||||
blocks.add(coords);
|
||||
plugin.data.set("Blocks_Destroyed", blocks);
|
||||
plugin.saveData();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -12,36 +12,42 @@ public class CommandBlock implements Listener {
|
||||
public CommandBlock(Main m) {
|
||||
this.plugin = m;
|
||||
}
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void CatchCommand(PlayerCommandPreprocessEvent event){
|
||||
String cmd = event.getMessage();
|
||||
Player p = event.getPlayer();
|
||||
String pname = p.getName();
|
||||
if(plugin.Playing.contains(pname)){
|
||||
if(plugin.Playing.contains(pname) || plugin.Watching.contains(pname)){
|
||||
if(!p.hasPermission("HungerArena.UseCommands")){
|
||||
for(String whitelist: plugin.management.getStringList("commands.whitelist")){
|
||||
if(!cmd.toLowerCase().contains(whitelist.toLowerCase()) && !cmd.toLowerCase().contains("/ha")){
|
||||
event.setCancelled(true);
|
||||
p.sendMessage(ChatColor.RED + "You are only allowed to perform the following commands:");
|
||||
p.sendMessage(ChatColor.AQUA + whitelist);
|
||||
p.sendMessage(ChatColor.AQUA + "/ha");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha close");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha help");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha join");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha kick [Player]");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha leave");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha list");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha open");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha ready");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha refill");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha reload");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha restart");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha rlist");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha setspawn");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha start");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha watch");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha warpall");
|
||||
if(!plugin.management.getStringList("commands.whitelist").isEmpty() && !cmd.toLowerCase().contains("/ha")){
|
||||
for(String whitelist: plugin.management.getStringList("commands.whitelist")){
|
||||
if(!cmd.toLowerCase().contains(whitelist.toLowerCase()) && !cmd.toLowerCase().contains("/ha")){
|
||||
event.setCancelled(true);
|
||||
p.sendMessage(ChatColor.RED + "You are only allowed to perform the following commands:");
|
||||
p.sendMessage(ChatColor.AQUA + whitelist);
|
||||
p.sendMessage(ChatColor.AQUA + "/ha");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha close");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha help");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha join");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha kick [Player]");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha leave");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha list");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha open");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha ready");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha refill");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha reload");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha restart");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha rlist");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha setspawn");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha start");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha tp");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha watch");
|
||||
p.sendMessage(ChatColor.AQUA + "/ha warpall");
|
||||
}
|
||||
}
|
||||
}else if(!cmd.toLowerCase().contains("/ha")){
|
||||
event.setCancelled(true);
|
||||
p.sendMessage(ChatColor.RED + "You are only allowed to perform /ha commands!");
|
||||
}
|
||||
}else if(!cmd.toLowerCase().contains("/ha")){
|
||||
if(cmd.toLowerCase().contains("/spawn")){
|
||||
@@ -51,6 +57,21 @@ public class CommandBlock implements Listener {
|
||||
}
|
||||
}else if(cmd.toLowerCase().equals("/back") && plugin.Dead.contains(pname) && plugin.canjoin== true){
|
||||
plugin.Tele.add(p);
|
||||
}else if(!plugin.Playing.contains(pname) || !plugin.Watching.contains(pname)){
|
||||
if(cmd.contains("/tp") || cmd.contains("/tpa") || cmd.contains("/tpo")){
|
||||
String[] args = cmd.split(" ");
|
||||
if(args.length == 3){
|
||||
if(plugin.Playing.contains(plugin.getServer().getPlayer(args[1]).getName()) || plugin.Playing.contains(plugin.getServer().getPlayer(args[2]).getName())){
|
||||
event.setCancelled(true);
|
||||
p.sendMessage(ChatColor.RED + "You can't teleport to tributes unless you've run /ha watch!");
|
||||
}
|
||||
}else if(args.length == 2){
|
||||
if(plugin.Playing.contains(plugin.getServer().getPlayer(args[1]).getName())){
|
||||
event.setCancelled(true);
|
||||
p.sendMessage(ChatColor.RED + "You can't teleport to tributes unless you've run /ha watch!");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,14 +1,17 @@
|
||||
package me.Travja.HungerArena;
|
||||
|
||||
import org.bukkit.*;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.PlayerDeathEvent;
|
||||
import org.bukkit.event.player.PlayerRespawnEvent;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
public class DeathListener implements Listener{
|
||||
public Main plugin;
|
||||
@@ -42,12 +45,6 @@ public class DeathListener implements Listener{
|
||||
String pname = p.getName();
|
||||
int players = plugin.Playing.size()-1;
|
||||
String leftmsg = ChatColor.BLUE + "There are now " + players + " tributes left!";
|
||||
String[] Spawncoords = plugin.spawns.getString("Spawn_coords").split(",");
|
||||
World spawnw = plugin.getServer().getWorld(Spawncoords[3]);
|
||||
double spawnx = Double.parseDouble(Spawncoords[0]);
|
||||
double spawny = Double.parseDouble(Spawncoords[1]);
|
||||
double spawnz = Double.parseDouble(Spawncoords[2]);
|
||||
Location Spawn = new Location(spawnw, spawnx, spawny, spawnz);
|
||||
if(plugin.Frozen.contains(pname) && plugin.Playing.contains(pname)){
|
||||
if(plugin.config.getString("Cannon_Death").equalsIgnoreCase("True")){
|
||||
double y = p.getLocation().getY();
|
||||
@@ -63,44 +60,7 @@ public class DeathListener implements Listener{
|
||||
plugin.Playing.remove(pname);
|
||||
plugin.Dead.add(pname);
|
||||
s.broadcastMessage(leftmsg);
|
||||
if(plugin.Playing.size()== 1 && plugin.canjoin== false){
|
||||
//Announce winner
|
||||
for(i = 0; i < plugin.Playing.size(); i++){
|
||||
String winnername = plugin.Playing.get(i++);
|
||||
Player winner = plugin.getServer().getPlayerExact(winnername);
|
||||
String winnername2 = winner.getName();
|
||||
plugin.getServer().broadcastMessage(ChatColor.GREEN + winnername2 + " is the victor of this Hunger Games!");
|
||||
winner.getInventory().clear();
|
||||
winner.getInventory().setBoots(null);
|
||||
winner.getInventory().setChestplate(null);
|
||||
winner.getInventory().setHelmet(null);
|
||||
winner.getInventory().setLeggings(null);
|
||||
for(PotionEffect pe: winner.getActivePotionEffects()){
|
||||
PotionEffectType potion = pe.getType();
|
||||
winner.removePotionEffect(potion);
|
||||
}
|
||||
winner.teleport(Spawn);
|
||||
winner.getInventory().addItem(plugin.Reward);
|
||||
plugin.Playing.clear();
|
||||
}
|
||||
//Show spectators
|
||||
for(String s1: plugin.Watching){
|
||||
Player spectator = plugin.getServer().getPlayerExact(s1);
|
||||
spectator.setAllowFlight(false);
|
||||
spectator.teleport(Spawn);
|
||||
for(Player online:plugin.getServer().getOnlinePlayers()){
|
||||
online.showPlayer(spectator);
|
||||
}
|
||||
}
|
||||
if(plugin.config.getString("Auto_Restart").equalsIgnoreCase("True")){
|
||||
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable(){
|
||||
public void run(){
|
||||
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "ha restart");
|
||||
|
||||
}
|
||||
}, 220L);
|
||||
}
|
||||
}
|
||||
plugin.winner();
|
||||
}else if(plugin.Playing.contains(pname)){
|
||||
if(plugin.config.getString("Cannon_Death").equalsIgnoreCase("True")){
|
||||
double y = p.getLocation().getY();
|
||||
@@ -119,39 +79,7 @@ public class DeathListener implements Listener{
|
||||
event.setDeathMessage("");
|
||||
s.broadcastMessage(ChatColor.LIGHT_PURPLE + "**BOOM** Tribute " + pname + " was killed by tribute " + killername + " with their FIST!");
|
||||
s.broadcastMessage(leftmsg);
|
||||
if(plugin.Playing.size()== 1 && plugin.canjoin== true){
|
||||
//Announce winner
|
||||
for(i = 0; i < plugin.Playing.size(); i++){
|
||||
String winnername = plugin.Playing.get(i++);
|
||||
Player winner = plugin.getServer().getPlayerExact(winnername);
|
||||
String winnername2 = winner.getName();
|
||||
plugin.getServer().broadcastMessage(ChatColor.GREEN + winnername2 + " is the victor of this Hunger Games!");
|
||||
winner.getInventory().clear();
|
||||
winner.getInventory().setBoots(null);
|
||||
winner.getInventory().setChestplate(null);
|
||||
winner.getInventory().setHelmet(null);
|
||||
winner.getInventory().setLeggings(null);
|
||||
for(PotionEffect pe: winner.getActivePotionEffects()){
|
||||
PotionEffectType potion = pe.getType();
|
||||
winner.removePotionEffect(potion);
|
||||
}
|
||||
winner.teleport(Spawn);
|
||||
winner.getInventory().addItem(plugin.Reward);
|
||||
}
|
||||
plugin.Playing.clear();
|
||||
//Show spectators
|
||||
for(String s1: plugin.Watching){
|
||||
Player spectator = plugin.getServer().getPlayerExact(s1);
|
||||
spectator.setAllowFlight(false);
|
||||
spectator.teleport(Spawn);
|
||||
for(Player online:plugin.getServer().getOnlinePlayers()){
|
||||
online.showPlayer(spectator);
|
||||
}
|
||||
}
|
||||
if(plugin.config.getString("Auto_Restart").equalsIgnoreCase("True")){
|
||||
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "ha restart");
|
||||
}
|
||||
}
|
||||
plugin.winner();
|
||||
}else{
|
||||
Player killer = p.getKiller();
|
||||
String killername = killer.getName();
|
||||
@@ -160,81 +88,13 @@ public class DeathListener implements Listener{
|
||||
event.setDeathMessage("");
|
||||
s.broadcastMessage(msg);
|
||||
s.broadcastMessage(leftmsg);
|
||||
if(plugin.Playing.size()== 1 && plugin.canjoin== true){
|
||||
//Announce winner
|
||||
for(i = 0; i < plugin.Playing.size(); i++){
|
||||
String winnername = plugin.Playing.get(i++);
|
||||
Player winner = plugin.getServer().getPlayerExact(winnername);
|
||||
String winnername2 = winner.getName();
|
||||
plugin.getServer().broadcastMessage(ChatColor.GREEN + winnername2 + " is the victor of this Hunger Games!");
|
||||
winner.getInventory().clear();
|
||||
winner.getInventory().setBoots(null);
|
||||
winner.getInventory().setChestplate(null);
|
||||
winner.getInventory().setHelmet(null);
|
||||
winner.getInventory().setLeggings(null);
|
||||
for(PotionEffect pe: winner.getActivePotionEffects()){
|
||||
PotionEffectType potion = pe.getType();
|
||||
winner.removePotionEffect(potion);
|
||||
}
|
||||
winner.teleport(Spawn);
|
||||
winner.getInventory().addItem(plugin.Reward);
|
||||
}
|
||||
plugin.Playing.clear();
|
||||
//Show spectators
|
||||
for(String s1: plugin.Watching){
|
||||
Player spectator = plugin.getServer().getPlayerExact(s1);
|
||||
spectator.setAllowFlight(false);
|
||||
spectator.teleport(Spawn);
|
||||
for(Player online:plugin.getServer().getOnlinePlayers()){
|
||||
online.showPlayer(spectator);
|
||||
}
|
||||
}
|
||||
if(plugin.config.getString("Auto_Restart").equalsIgnoreCase("True")){
|
||||
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "ha restart");
|
||||
}
|
||||
}
|
||||
plugin.winner();
|
||||
}
|
||||
}else{
|
||||
event.setDeathMessage("");
|
||||
s.broadcastMessage(ChatColor.LIGHT_PURPLE + pname + " died of natural causes!");
|
||||
s.broadcastMessage(leftmsg);
|
||||
if(plugin.Playing.size()== 1 && plugin.canjoin== true){
|
||||
//Announce winner
|
||||
for(i = 0; i < plugin.Playing.size(); i++){
|
||||
String winnername = plugin.Playing.get(i++);
|
||||
Player winner = plugin.getServer().getPlayerExact(winnername);
|
||||
String winnername2 = winner.getName();
|
||||
plugin.getServer().broadcastMessage(ChatColor.GREEN + winnername2 + " is the victor of this Hunger Games!");
|
||||
winner.getInventory().clear();
|
||||
winner.getInventory().setBoots(null);
|
||||
winner.getInventory().setChestplate(null);
|
||||
winner.getInventory().setHelmet(null);
|
||||
winner.getInventory().setLeggings(null);
|
||||
for(PotionEffect pe: winner.getActivePotionEffects()){
|
||||
PotionEffectType potion = pe.getType();
|
||||
winner.removePotionEffect(potion);
|
||||
}
|
||||
winner.teleport(Spawn);
|
||||
winner.getInventory().addItem(plugin.Reward);
|
||||
}
|
||||
// Create the event here
|
||||
//PlayerWinGamesEvent winevent = new PlayerWinGamesEvent(winner);
|
||||
// Call the event
|
||||
//Bukkit.getServer().getPluginManager().callEvent(winevent);
|
||||
plugin.Playing.clear();
|
||||
//Show spectators
|
||||
for(String s1: plugin.Watching){
|
||||
Player spectator = plugin.getServer().getPlayerExact(s1);
|
||||
spectator.setAllowFlight(false);
|
||||
spectator.teleport(Spawn);
|
||||
for(Player online:plugin.getServer().getOnlinePlayers()){
|
||||
online.showPlayer(spectator);
|
||||
}
|
||||
}
|
||||
if(plugin.config.getString("Auto_Restart").equalsIgnoreCase("True")){
|
||||
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "ha restart");
|
||||
}
|
||||
}
|
||||
plugin.winner();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -83,6 +83,7 @@ public class HaCommands implements CommandExecutor {
|
||||
sender.sendMessage(c + "/ha restart - Makes it so dead tributes can join again!");
|
||||
sender.sendMessage(c + "/ha rlist - See who's ready!");
|
||||
sender.sendMessage(c + "/ha setspawn - Sets the spawn for dead tributes!");
|
||||
sender.sendMessage(c + "/ha tp [player] - Teleports you to a tribute!");
|
||||
sender.sendMessage(c + "/ha start - Unfreezes tributes allowing them to fight!");
|
||||
sender.sendMessage(c + "/ha watch - Lets you watch the tributes!");
|
||||
sender.sendMessage(c + "/ha warpall - Warps all tribute into position!");
|
||||
@@ -92,7 +93,7 @@ public class HaCommands implements CommandExecutor {
|
||||
}else if((plugin.restricted && plugin.worlds.contains(p.getWorld().getName())) || !plugin.restricted){
|
||||
//////////////////////////////////////// LISTING ///////////////////////////////////////////////
|
||||
if(args[0].equalsIgnoreCase("List")){
|
||||
if(p.hasPermission("HungerArena.GameMaker")){
|
||||
if(p.hasPermission("HungerArena.GameMaker") || plugin.Watching.contains(pname)){
|
||||
sender.sendMessage(ChatColor.AQUA + "-----People Playing-----");
|
||||
if(!plugin.Playing.isEmpty()){
|
||||
for(String playernames: plugin.Playing){
|
||||
@@ -103,6 +104,16 @@ public class HaCommands implements CommandExecutor {
|
||||
p.sendMessage(ChatColor.GRAY + "No one is playing!");
|
||||
}
|
||||
p.sendMessage(ChatColor.AQUA + "----------------------");
|
||||
}else if(p.hasPermission("HungerArena.List")){
|
||||
sender.sendMessage(ChatColor.AQUA + "-----People Playing-----");
|
||||
if(!plugin.Playing.isEmpty()){
|
||||
for(String playernames: plugin.Playing){
|
||||
sender.sendMessage(ChatColor.GREEN + playernames);
|
||||
}
|
||||
}else if(plugin.Playing.isEmpty()){
|
||||
p.sendMessage(ChatColor.GRAY + "No one is playing!");
|
||||
}
|
||||
p.sendMessage(ChatColor.AQUA + "----------------------");
|
||||
}else{
|
||||
p.sendMessage(ChatColor.RED + "You don't have permission!");
|
||||
}
|
||||
@@ -140,14 +151,130 @@ public class HaCommands implements CommandExecutor {
|
||||
}else if(plugin.NeedConfirm.contains(pname)){
|
||||
p.sendMessage(ChatColor.RED + "You need to do /ha confirm");
|
||||
}else if(plugin.config.getString("Need_Confirm").equalsIgnoreCase("true")){
|
||||
plugin.NeedConfirm.add(pname);
|
||||
p.sendMessage(ChatColor.GOLD + "You're inventory will be cleared! Type /ha confirm to procede");
|
||||
if(plugin.vault){
|
||||
if(plugin.config.getBoolean("EntryFee.enabled") && plugin.config.getBoolean("EntryFee.eco")){
|
||||
if(!(plugin.econ.getBalance(pname) < plugin.config.getDouble("EntryFee.cost"))){
|
||||
i = 0;
|
||||
for(ItemStack fee: plugin.Fee){
|
||||
int total = plugin.Fee.size();
|
||||
if(p.getInventory().contains(fee)){
|
||||
i = i+1;
|
||||
if(total == i){
|
||||
plugin.NeedConfirm.add(pname);
|
||||
p.sendMessage(ChatColor.GOLD + "You're inventory will be cleared! Type /ha confirm to procede");
|
||||
}
|
||||
}
|
||||
}
|
||||
if(plugin.Fee.size() > i){
|
||||
p.sendMessage(ChatColor.RED + "You are missing some items and can't join the games...");
|
||||
}
|
||||
}else{
|
||||
p.sendMessage(ChatColor.RED + "You don't have enough money to join!");
|
||||
}
|
||||
}else if(plugin.config.getBoolean("EntryFee.enabled") && !plugin.config.getBoolean("EntryFee.eco")){
|
||||
i = 0;
|
||||
for(ItemStack fee: plugin.Fee){
|
||||
int total = plugin.Fee.size();
|
||||
if(p.getInventory().contains(fee)){
|
||||
i = i+1;
|
||||
if(total == i){
|
||||
plugin.NeedConfirm.add(pname);
|
||||
p.sendMessage(ChatColor.GOLD + "You're inventory will be cleared! Type /ha confirm to procede");
|
||||
}
|
||||
}
|
||||
}
|
||||
if(plugin.Fee.size() > i){
|
||||
p.sendMessage(ChatColor.RED + "You are missing some items and can't join the games...");
|
||||
}
|
||||
}else if(!plugin.config.getBoolean("EntryFee.enabled") && plugin.config.getBoolean("EntryFee.eco")){
|
||||
if(!(plugin.econ.getBalance(pname) < plugin.config.getDouble("EntryFee.cost"))){
|
||||
plugin.NeedConfirm.add(pname);
|
||||
p.sendMessage(ChatColor.GOLD + "You're inventory will be cleared! Type /ha confirm to procede");
|
||||
}else{
|
||||
p.sendMessage(ChatColor.RED + "You don't have enough money to join!");
|
||||
}
|
||||
}
|
||||
}else{
|
||||
plugin.NeedConfirm.add(pname);
|
||||
p.sendMessage(ChatColor.GOLD + "You're inventory will be cleared! Type /ha confirm to procede");
|
||||
}
|
||||
}else if(plugin.config.getString("Need_Confirm").equalsIgnoreCase("false")){
|
||||
if(plugin.vault){
|
||||
if(plugin.config.getBoolean("EntryFee.enabled") && plugin.config.getBoolean("EntryFee.eco")){
|
||||
if(!(plugin.econ.getBalance(pname) < plugin.config.getDouble("EntryFee.cost"))){
|
||||
i = 0;
|
||||
for(ItemStack fee: plugin.Fee){
|
||||
int total = plugin.Fee.size();
|
||||
if(p.getInventory().contains(fee)){
|
||||
i = i+1;
|
||||
if(total == i){
|
||||
plugin.econ.withdrawPlayer(pname, plugin.config.getDouble("EntryFee.cost"));
|
||||
plugin.Playing.add(pname);
|
||||
clearInv(p);
|
||||
p.sendMessage(ChatColor.GOLD + "Do /ha ready to vote to start the games!");
|
||||
plugin.getServer().broadcastMessage(ChatColor.AQUA + pname + " has Joined the Game!");
|
||||
if(plugin.Playing.size()== 24){
|
||||
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "ha warpall");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(plugin.Fee.size() > i){
|
||||
p.sendMessage(ChatColor.RED + "You are missing some items and can't join the games...");
|
||||
}
|
||||
}else{
|
||||
p.sendMessage(ChatColor.RED + "You don't have enough money to join!");
|
||||
}
|
||||
}else if(plugin.config.getBoolean("EntryFee.enabled") && !plugin.config.getBoolean("EntryFee.eco")){
|
||||
i = 0;
|
||||
for(ItemStack fee: plugin.Fee){
|
||||
int total = plugin.Fee.size();
|
||||
if(p.getInventory().contains(fee)){
|
||||
i = i+1;
|
||||
if(total == i){
|
||||
plugin.Playing.add(pname);
|
||||
clearInv(p);
|
||||
p.sendMessage(ChatColor.GOLD + "Do /ha ready to vote to start the games!");
|
||||
plugin.getServer().broadcastMessage(ChatColor.AQUA + pname + " has Joined the Game!");
|
||||
if(plugin.Playing.size()== 24){
|
||||
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "ha warpall");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(plugin.Fee.size() > i){
|
||||
p.sendMessage(ChatColor.RED + "You are missing some items and can't join the games...");
|
||||
}
|
||||
}else if(!plugin.config.getBoolean("EntryFee.enabled") && plugin.config.getBoolean("EntryFee.eco")){
|
||||
if(!(plugin.econ.getBalance(pname) < plugin.config.getDouble("EntryFee.cost"))){
|
||||
plugin.econ.withdrawPlayer(pname, plugin.config.getDouble("EntryFee.cost"));
|
||||
plugin.Playing.add(pname);
|
||||
p.sendMessage(ChatColor.GREEN + "Do /ha ready to vote to start the games!");
|
||||
clearInv(p);
|
||||
plugin.getServer().broadcastMessage(ChatColor.AQUA + pname + " has Joined the Game!");
|
||||
if(plugin.Playing.size()== 24){
|
||||
p.performCommand("ha warpall");
|
||||
}
|
||||
}else{
|
||||
p.sendMessage(ChatColor.RED + "You don't have enough money to join!");
|
||||
}
|
||||
}else{
|
||||
plugin.Playing.add(pname);
|
||||
p.sendMessage(ChatColor.GREEN + "Do /ha ready to vote to start the games!");
|
||||
clearInv(p);
|
||||
plugin.getServer().broadcastMessage(ChatColor.AQUA + pname + " has Joined the Game!");
|
||||
if(plugin.Playing.size()== 24){
|
||||
p.performCommand("ha warpall");
|
||||
}
|
||||
}
|
||||
}
|
||||
}else{
|
||||
plugin.Playing.add(pname);
|
||||
p.sendMessage(ChatColor.GREEN + "Do /ha ready to vote to start the games!");
|
||||
clearInv(p);
|
||||
plugin.getServer().broadcastMessage(ChatColor.AQUA + pname + " has Joined the Game!");
|
||||
if(plugin.Playing.size()== 24){
|
||||
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "ha warpall");
|
||||
p.performCommand("ha warpall");
|
||||
}
|
||||
}
|
||||
}else{
|
||||
@@ -155,13 +282,76 @@ public class HaCommands implements CommandExecutor {
|
||||
}
|
||||
}else if(args[0].equalsIgnoreCase("Confirm")){
|
||||
if(plugin.NeedConfirm.contains(pname)){
|
||||
plugin.Playing.add(pname);
|
||||
plugin.NeedConfirm.remove(pname);
|
||||
p.sendMessage(ChatColor.GREEN + "Do /ha ready to vote to start the games!");
|
||||
clearInv(p);
|
||||
plugin.getServer().broadcastMessage(ChatColor.AQUA + pname + " has Joined the Game!");
|
||||
if(plugin.Playing.size()== 24){
|
||||
p.performCommand("ha warpall");
|
||||
if(plugin.config.getBoolean("EntryFee.enabled") && plugin.config.getBoolean("EntryFee.eco")){
|
||||
if(!(plugin.econ.getBalance(pname) < plugin.config.getDouble("EntryFee.cost"))){
|
||||
i = 0;
|
||||
for(ItemStack fee: plugin.Fee){
|
||||
int total = plugin.Fee.size();
|
||||
if(p.getInventory().contains(fee)){
|
||||
i = i+1;
|
||||
if(total == i){
|
||||
plugin.econ.withdrawPlayer(pname, plugin.config.getDouble("EntryFee.cost"));
|
||||
plugin.Playing.add(pname);
|
||||
plugin.NeedConfirm.remove(pname);
|
||||
p.sendMessage(ChatColor.GREEN + "Do /ha ready to vote to start the games!");
|
||||
clearInv(p);
|
||||
plugin.getServer().broadcastMessage(ChatColor.AQUA + pname + " has Joined the Game!");
|
||||
if(plugin.Playing.size()== 24){
|
||||
p.performCommand("ha warpall");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(plugin.Fee.size() > i){
|
||||
p.sendMessage(ChatColor.RED + "You are missing some items and can't join the games...");
|
||||
}
|
||||
}else{
|
||||
p.sendMessage(ChatColor.RED + "You don't have enough money to join!");
|
||||
}
|
||||
}else if(plugin.config.getBoolean("EntryFee.enabled") && !plugin.config.getBoolean("EntryFee.eco")){
|
||||
i = 0;
|
||||
for(ItemStack fee: plugin.Fee){
|
||||
int total = plugin.Fee.size();
|
||||
if(p.getInventory().contains(fee)){
|
||||
i = i+1;
|
||||
if(total == i){
|
||||
plugin.Playing.add(pname);
|
||||
plugin.NeedConfirm.remove(pname);
|
||||
p.sendMessage(ChatColor.GREEN + "Do /ha ready to vote to start the games!");
|
||||
clearInv(p);
|
||||
plugin.getServer().broadcastMessage(ChatColor.AQUA + pname + " has Joined the Game!");
|
||||
if(plugin.Playing.size()== 24){
|
||||
p.performCommand("ha warpall");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(plugin.Fee.size() > i){
|
||||
p.sendMessage(ChatColor.RED + "You are missing some items and can't join the games...");
|
||||
}
|
||||
}else if(!plugin.config.getBoolean("EntryFee.enabled") && plugin.config.getBoolean("EntryFee.eco")){
|
||||
if(!(plugin.econ.getBalance(pname) < plugin.config.getDouble("EntryFee.cost"))){
|
||||
plugin.econ.withdrawPlayer(pname, plugin.config.getDouble("EntryFee.cost"));
|
||||
plugin.Playing.add(pname);
|
||||
plugin.NeedConfirm.remove(pname);
|
||||
p.sendMessage(ChatColor.GREEN + "Do /ha ready to vote to start the games!");
|
||||
clearInv(p);
|
||||
plugin.getServer().broadcastMessage(ChatColor.AQUA + pname + " has Joined the Game!");
|
||||
if(plugin.Playing.size()== 24){
|
||||
p.performCommand("ha warpall");
|
||||
}
|
||||
}else{
|
||||
p.sendMessage(ChatColor.RED + "You don't have enough money to join!");
|
||||
}
|
||||
}else{
|
||||
plugin.Playing.add(pname);
|
||||
plugin.NeedConfirm.remove(pname);
|
||||
p.sendMessage(ChatColor.GREEN + "Do /ha ready to vote to start the games!");
|
||||
clearInv(p);
|
||||
plugin.getServer().broadcastMessage(ChatColor.AQUA + pname + " has Joined the Game!");
|
||||
if(plugin.Playing.size()== 24){
|
||||
p.performCommand("ha warpall");
|
||||
}
|
||||
}
|
||||
}
|
||||
}else if(args[0].equalsIgnoreCase("Ready")){
|
||||
@@ -192,6 +382,7 @@ public class HaCommands implements CommandExecutor {
|
||||
if(plugin.Frozen.contains(pname)){
|
||||
plugin.Frozen.remove(pname);
|
||||
}
|
||||
plugin.winner();
|
||||
}else{
|
||||
plugin.Playing.remove(pname);
|
||||
plugin.Quit.add(pname);
|
||||
@@ -202,35 +393,9 @@ public class HaCommands implements CommandExecutor {
|
||||
if(plugin.Frozen.contains(pname)){
|
||||
plugin.Frozen.remove(pname);
|
||||
}
|
||||
if(plugin.Playing.size()== 1){
|
||||
//Announce the Winner
|
||||
for(i = 0; i < plugin.Playing.size(); i++){
|
||||
String winnername = plugin.Playing.get(i++);
|
||||
Player winner = plugin.getServer().getPlayerExact(winnername);
|
||||
String winnername2 = winner.getName();
|
||||
plugin.getServer().broadcastMessage(ChatColor.GREEN + winnername2 + " is the victor of this Hunger Games!");
|
||||
clearInv(winner);
|
||||
winner.teleport(Spawn);
|
||||
winner.getInventory().addItem(plugin.Reward);
|
||||
Bukkit.getServer().getPluginManager().callEvent(new PlayerWinGamesEvent(winner));
|
||||
}
|
||||
plugin.Playing.clear();
|
||||
//Show spectators
|
||||
for(i = 0; i < plugin.Watching.size(); i++){
|
||||
String s = plugin.Watching.get(i++);
|
||||
Player spectator = plugin.getServer().getPlayerExact(s);
|
||||
spectator.setAllowFlight(false);
|
||||
spectator.teleport(Spawn);
|
||||
for(Player online:plugin.getServer().getOnlinePlayers()){
|
||||
online.showPlayer(spectator);
|
||||
}
|
||||
}
|
||||
if(plugin.config.getString("Auto_Restart").equalsIgnoreCase("True")){
|
||||
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "ha restart");
|
||||
}
|
||||
}
|
||||
}
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////// SPECTATOR RELATED //////////////////////////////////
|
||||
}else if(args[0].equalsIgnoreCase("Watch")){
|
||||
if(sender.hasPermission("HungerArena.Watch")){
|
||||
if(!plugin.Watching.contains(pname) && !plugin.Playing.contains(pname) && plugin.canjoin== true){
|
||||
@@ -256,6 +421,19 @@ public class HaCommands implements CommandExecutor {
|
||||
}else{
|
||||
p.sendMessage(ChatColor.RED + "You don't have permission!");
|
||||
}
|
||||
}else if(args[0].equalsIgnoreCase("tp")){
|
||||
if(plugin.Watching.contains(pname)){
|
||||
if(plugin.Playing.contains(plugin.getServer().getPlayer(args[1]).getName())){
|
||||
Player target = plugin.getServer().getPlayerExact(args[1]);
|
||||
p.teleport(target);
|
||||
p.sendMessage(ChatColor.AQUA + "You've been teleported to " + target.getName());
|
||||
}else{
|
||||
p.sendMessage(ChatColor.RED + "That person isn't in game!");
|
||||
}
|
||||
}else{
|
||||
p.sendMessage(ChatColor.RED + "You have to be spectating to teleport to tributes!");
|
||||
}
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
}else if(args[0].equalsIgnoreCase("Kick")){
|
||||
if (args.length != 2) {
|
||||
return false;
|
||||
@@ -268,31 +446,7 @@ public class HaCommands implements CommandExecutor {
|
||||
clearInv(target);
|
||||
target.teleport(Spawn);
|
||||
plugin.Quit.add(target.getName());
|
||||
if(plugin.Playing.size()== 1 && plugin.canjoin== true){
|
||||
//Announce winner
|
||||
for(i = 0; i < plugin.Playing.size(); i++){
|
||||
String winnername = plugin.Playing.get(i++);
|
||||
Player winner = plugin.getServer().getPlayerExact(winnername);
|
||||
String winnername2 = winner.getName();
|
||||
plugin.getServer().broadcastMessage(ChatColor.GREEN + winnername2 + " is the victor of this Hunger Games!");
|
||||
clearInv(winner);
|
||||
winner.teleport(Spawn);
|
||||
winner.getInventory().addItem(plugin.Reward);
|
||||
plugin.Playing.clear();
|
||||
}
|
||||
//Show spectators
|
||||
for(String s1: plugin.Watching){
|
||||
Player spectator = plugin.getServer().getPlayerExact(s1);
|
||||
spectator.setAllowFlight(false);
|
||||
spectator.teleport(Spawn);
|
||||
for(Player online:plugin.getServer().getOnlinePlayers()){
|
||||
online.showPlayer(spectator);
|
||||
}
|
||||
}
|
||||
if(plugin.config.getString("Auto_Restart").equalsIgnoreCase("True")){
|
||||
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "ha restart");
|
||||
}
|
||||
}
|
||||
plugin.winner();
|
||||
}else{
|
||||
sender.sendMessage(ChatColor.RED + "That player isn't in the game!");
|
||||
}
|
||||
@@ -547,6 +701,7 @@ public class HaCommands implements CommandExecutor {
|
||||
sender.sendMessage(c + "/ha rlist - See who's ready!");
|
||||
sender.sendMessage(c + "/ha setspawn - Sets the spawn for dead tributes!");
|
||||
sender.sendMessage(c + "/ha start - Unfreezes tributes allowing them to fight!");
|
||||
sender.sendMessage(c + "/ha tp [player] - Teleports you to a tribute!");
|
||||
sender.sendMessage(c + "/ha watch - Lets you watch the tributes!");
|
||||
sender.sendMessage(c + "/ha warpall - Warps all tribute into position!");
|
||||
sender.sendMessage(ChatColor.GREEN + "----------------------");
|
||||
@@ -583,31 +738,7 @@ public class HaCommands implements CommandExecutor {
|
||||
clearInv(target);
|
||||
target.teleport(Spawn);
|
||||
plugin.Quit.add(target.getName());
|
||||
if(plugin.Playing.size()== 1 && plugin.canjoin== true){
|
||||
//Announce winner
|
||||
for(i = 0; i < plugin.Playing.size(); i++){
|
||||
String winnername = plugin.Playing.get(i++);
|
||||
Player winner = plugin.getServer().getPlayerExact(winnername);
|
||||
String winnername2 = winner.getName();
|
||||
plugin.getServer().broadcastMessage(ChatColor.GREEN + winnername2 + " is the victor of this Hunger Games!");
|
||||
clearInv(winner);
|
||||
winner.teleport(Spawn);
|
||||
winner.getInventory().addItem(plugin.Reward);
|
||||
plugin.Playing.clear();
|
||||
}
|
||||
//Show spectators
|
||||
for(String s1: plugin.Watching){
|
||||
Player spectator = plugin.getServer().getPlayerExact(s1);
|
||||
spectator.setAllowFlight(false);
|
||||
spectator.teleport(Spawn);
|
||||
for(Player online:plugin.getServer().getOnlinePlayers()){
|
||||
online.showPlayer(spectator);
|
||||
}
|
||||
}
|
||||
if(plugin.config.getString("Auto_Restart").equalsIgnoreCase("True")){
|
||||
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "ha restart");
|
||||
}
|
||||
}
|
||||
plugin.winner();
|
||||
}else{
|
||||
sender.sendMessage(ChatColor.RED + "That player isn't in the game!");
|
||||
}
|
||||
|
@@ -79,57 +79,19 @@ public class JoinAndQuitListener implements Listener {
|
||||
p.teleport(Spawn);
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerQuit(PlayerQuitEvent event){
|
||||
final Player p = event.getPlayer();
|
||||
final String pname = p.getName();
|
||||
String[] Spawncoords = plugin.spawns.getString("Spawn_coords").split(",");
|
||||
String w = Spawncoords[3];
|
||||
World spawnw = plugin.getServer().getWorld(w);
|
||||
double spawnx = Double.parseDouble(Spawncoords[0]);
|
||||
double spawny = Double.parseDouble(Spawncoords[1]);
|
||||
double spawnz = Double.parseDouble(Spawncoords[2]);
|
||||
final Location Spawn = new Location(spawnw, spawnx, spawny, spawnz);
|
||||
if(plugin.Playing.contains(pname)){
|
||||
plugin.Out.add(pname);
|
||||
plugin.Playing.remove(pname);
|
||||
plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable(){
|
||||
public void run(){
|
||||
if(plugin.Out.contains(pname)){
|
||||
if(plugin.canjoin== true){
|
||||
plugin.Quit.add(pname);
|
||||
plugin.Out.remove(pname);
|
||||
if(plugin.Playing.size()== 1){
|
||||
//Announce Winner
|
||||
for(i = 0; i < plugin.Playing.size(); i++){
|
||||
String winnername = plugin.Playing.get(i++);
|
||||
Player winner = plugin.getServer().getPlayerExact(winnername);
|
||||
String winnername2 = winner.getName();
|
||||
p.getServer().broadcastMessage(ChatColor.GREEN + winnername2 + " is the victor of this Hunger Games!");
|
||||
winner.getInventory().clear();
|
||||
winner.getInventory().setBoots(null);
|
||||
winner.getInventory().setChestplate(null);
|
||||
winner.getInventory().setHelmet(null);
|
||||
winner.getInventory().setLeggings(null);
|
||||
winner.getInventory().addItem(plugin.Reward);
|
||||
PlayerWinGamesEvent evt = new PlayerWinGamesEvent(winner);
|
||||
Bukkit.getServer().getPluginManager().callEvent(evt);
|
||||
}
|
||||
//Make spectators visible
|
||||
for(String s: plugin.Watching){
|
||||
Player spectator = plugin.getServer().getPlayerExact(s);
|
||||
spectator.setAllowFlight(false);
|
||||
spectator.teleport(Spawn);
|
||||
for(Player online:plugin.getServer().getOnlinePlayers()){
|
||||
online.showPlayer(spectator);
|
||||
}
|
||||
}
|
||||
if(plugin.config.getString("Auto_Restart").equalsIgnoreCase("True")){
|
||||
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "ha restart");
|
||||
}
|
||||
}
|
||||
}
|
||||
plugin.winner();
|
||||
}else{
|
||||
plugin.Quit.add(pname);
|
||||
}
|
||||
|
@@ -11,6 +11,7 @@ import java.util.logging.Logger;
|
||||
|
||||
import net.milkbowl.vault.economy.Economy;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
@@ -22,6 +23,8 @@ import org.bukkit.event.Listener;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.plugin.RegisteredServiceProvider;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
public class Main extends JavaPlugin{
|
||||
static final Logger log = Logger.getLogger("Minecraft");
|
||||
@@ -63,10 +66,13 @@ public class Main extends JavaPlugin{
|
||||
public File dataFile = null;
|
||||
public File managementFile = null;
|
||||
public FileConfiguration management = null;
|
||||
public ItemStack Reward;
|
||||
public ItemStack Cost;
|
||||
public ArrayList<ItemStack> Reward = new ArrayList<ItemStack>();
|
||||
public ArrayList<ItemStack> Cost = new ArrayList<ItemStack>();
|
||||
public ArrayList<ItemStack> Fee = new ArrayList<ItemStack>();
|
||||
public boolean vault = false;
|
||||
public boolean eco = false;
|
||||
public Economy econ = null;
|
||||
int i = 0;
|
||||
public void onEnable(){
|
||||
config = this.getConfig();
|
||||
config.options().copyDefaults(true);
|
||||
@@ -110,27 +116,44 @@ public class Main extends JavaPlugin{
|
||||
}
|
||||
System.out.println("[HungerArena] Loaded " + location.size() + " tribute spawns!");
|
||||
if (setupEconomy()) {
|
||||
log.info(ChatColor.AQUA + "[HungerArena] Found Vault! Hooking in for economy!");
|
||||
log.info("[HungerArena] Found Vault! Hooking in for economy!");
|
||||
}
|
||||
if (config.getDouble("config.version") != 1.3) {
|
||||
config.set("config.version", 1.3);
|
||||
config.set("eco.enabled", false);
|
||||
config.set("eco.reward", 100);
|
||||
config.set("rewardEco.enabled", false);
|
||||
config.set("rewardEco.reward", 100);
|
||||
}
|
||||
if (config.getBoolean("eco.enabled", true)) {
|
||||
if (config.getBoolean("rewardEco.enabled", true) || config.getBoolean("sponsorEco.enabled", true) || config.getBoolean("EntryFee.eco", true)) {
|
||||
if (vault == true) {
|
||||
log.info(ChatColor.AQUA + "Economy hook deployed.");
|
||||
} else {
|
||||
log.info(ChatColor.RED + "You want economy support... yet you don't have Vault. Sorry, can't give you it.");
|
||||
log.info("Economy hook deployed.");
|
||||
eco = true;
|
||||
}else{
|
||||
log.info("You want economy support... yet you either don't have Vault or don't have an economy plugin. Sorry, can't give you it.");
|
||||
}
|
||||
}
|
||||
if (config.getBoolean("eco.enabled", false)) {
|
||||
if (!eco) {
|
||||
if (vault == true) {
|
||||
log.info(ChatColor.GREEN + "We see that you have Vault on your server. To set economy support to true, enable it in the config.");
|
||||
}
|
||||
}
|
||||
Reward = new ItemStack(config.getInt("Reward.ID"), config.getInt("Reward.Amount"));
|
||||
Cost = new ItemStack(config.getInt("Sponsor_Cost.ID"), config.getInt("Sponsor_Cost.Amount"));
|
||||
try{
|
||||
for(String rewards: config.getStringList("Reward")){
|
||||
String[] rinfo = rewards.split(",");
|
||||
Reward.add(new ItemStack(Integer.parseInt(rinfo[0]), Integer.parseInt(rinfo[1])));
|
||||
}
|
||||
for(String scost: config.getStringList("Sponsor_Cost")){
|
||||
String[] sinfo = scost.split(",");
|
||||
Cost.add(new ItemStack(Integer.parseInt(sinfo[0]), Integer.parseInt(sinfo[1])));
|
||||
}
|
||||
if(config.getBoolean("EntryFee.enabled")){
|
||||
for(String fee: config.getStringList("EntryFee.fee")){
|
||||
String[] finfo = fee.split(",");
|
||||
Fee.add(new ItemStack(Integer.parseInt(finfo[0]), Integer.parseInt(finfo[1])));
|
||||
}
|
||||
}
|
||||
}catch(Exception e){
|
||||
log.warning("Could not add a reward/sponsor/entry cost! One of the rewards/costs is not a number!");
|
||||
}
|
||||
worlds = config.getStringList("worlds");
|
||||
if(worlds.isEmpty()){
|
||||
restricted = false;
|
||||
@@ -242,4 +265,57 @@ public class Main extends JavaPlugin{
|
||||
this.getLogger().log(Level.SEVERE, "Could not save config to " + managementFile, ex);
|
||||
}
|
||||
}
|
||||
public void winner(){
|
||||
String[] Spawncoords = spawns.getString("Spawn_coords").split(",");
|
||||
World spawnw = getServer().getWorld(Spawncoords[3]);
|
||||
double spawnx = Double.parseDouble(Spawncoords[0]);
|
||||
double spawny = Double.parseDouble(Spawncoords[1]);
|
||||
double spawnz = Double.parseDouble(Spawncoords[2]);
|
||||
Location Spawn = new Location(spawnw, spawnx, spawny, spawnz);
|
||||
if(Playing.size()== 1 && canjoin== false){
|
||||
//Announce winner
|
||||
for(i = 0; i < Playing.size(); i++){
|
||||
String winnername = Playing.get(i++);
|
||||
Player winner = getServer().getPlayerExact(winnername);
|
||||
String winnername2 = winner.getName();
|
||||
getServer().broadcastMessage(ChatColor.GREEN + winnername2 + " is the victor of this Hunger Games!");
|
||||
winner.getInventory().clear();
|
||||
winner.getInventory().setBoots(null);
|
||||
winner.getInventory().setChestplate(null);
|
||||
winner.getInventory().setHelmet(null);
|
||||
winner.getInventory().setLeggings(null);
|
||||
for(PotionEffect pe: winner.getActivePotionEffects()){
|
||||
PotionEffectType potion = pe.getType();
|
||||
winner.removePotionEffect(potion);
|
||||
}
|
||||
Tele.add(winner);
|
||||
winner.teleport(Spawn);
|
||||
if(!config.getBoolean("rewardEco.enabled")){
|
||||
for(ItemStack Rewards: Reward){
|
||||
winner.getInventory().addItem(Rewards);
|
||||
}
|
||||
}else{
|
||||
econ.depositPlayer(winner.getName(), config.getDouble("eco.reward"));
|
||||
}
|
||||
Playing.clear();
|
||||
}
|
||||
//Show spectators
|
||||
for(String s1: Watching){
|
||||
Player spectator = getServer().getPlayerExact(s1);
|
||||
spectator.setAllowFlight(false);
|
||||
spectator.teleport(Spawn);
|
||||
for(Player online:getServer().getOnlinePlayers()){
|
||||
online.showPlayer(spectator);
|
||||
}
|
||||
}
|
||||
if(config.getString("Auto_Restart").equalsIgnoreCase("True")){
|
||||
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
|
||||
public void run(){
|
||||
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "ha restart");
|
||||
|
||||
}
|
||||
}, 220L);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -19,6 +19,7 @@ public class SponsorCommands implements CommandExecutor {
|
||||
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
|
||||
if(cmd.getName().equalsIgnoreCase("Sponsor")){
|
||||
if(sender instanceof Player){
|
||||
int i = 0;
|
||||
Player p = (Player) sender;
|
||||
String pname = p.getName();
|
||||
String epname = p.getName();
|
||||
@@ -36,36 +37,57 @@ public class SponsorCommands implements CommandExecutor {
|
||||
}
|
||||
if(args.length== 3){
|
||||
Player target = Bukkit.getServer().getPlayer(args[0]);
|
||||
try{
|
||||
int ID = Integer.parseInt(args[1]);
|
||||
int Amount = Integer.parseInt(args[2]);
|
||||
if((!plugin.management.getStringList("sponsors.blacklist").isEmpty() && !plugin.management.getStringList("sponsors.blacklist").contains(ID)) || plugin.management.getStringList("sponsors.blacklist").isEmpty()){
|
||||
ItemStack sponsoritem = new ItemStack(ID, Amount);
|
||||
if(p.getInventory().contains(plugin.config.getInt("Sponsor_Cost.ID"), plugin.config.getInt("Sponsor_Cost.Amount")*Amount)){
|
||||
if(!plugin.Playing.contains(target.getName())){
|
||||
p.sendMessage(ChatColor.RED + "That person isn't playing!");
|
||||
if(!plugin.Playing.contains(target.getName())){
|
||||
p.sendMessage(ChatColor.RED + "That person isn't playing!");
|
||||
}else{
|
||||
try{
|
||||
int ID = Integer.parseInt(args[1]);
|
||||
int Amount = Integer.parseInt(args[2]);
|
||||
if((!plugin.management.getStringList("sponsors.blacklist").isEmpty() && !plugin.management.getStringList("sponsors.blacklist").contains(ID)) || plugin.management.getStringList("sponsors.blacklist").isEmpty()){
|
||||
ItemStack sponsoritem = new ItemStack(ID, Amount);
|
||||
if(!plugin.config.getBoolean("sponsorEco.enabled")){
|
||||
for(ItemStack Costs: plugin.Cost){
|
||||
if(p.getInventory().contains(Costs)){
|
||||
i = i+1;
|
||||
if(plugin.Cost.size() == i){
|
||||
if(args[0].equalsIgnoreCase(pname)){
|
||||
p.sendMessage(ChatColor.RED + "You can't sponsor yourself!");
|
||||
}else{
|
||||
target.sendMessage(ChatColor.AQUA + "You have been Sponsored!");
|
||||
target.getInventory().addItem(sponsoritem);
|
||||
p.sendMessage("You have sponsored " + target.getName() + "!");
|
||||
for(ItemStack aCosts: plugin.Cost){
|
||||
p.getInventory().removeItem(aCosts);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(plugin.Cost.size() > i){
|
||||
p.sendMessage(ChatColor.RED + "You don't have the necessary items to sponsor!");
|
||||
}
|
||||
}else{
|
||||
if(args[0].equalsIgnoreCase(pname)){
|
||||
p.sendMessage(ChatColor.RED + "You can't sponsor yourself!");
|
||||
}else{
|
||||
}else if(!(plugin.econ.getBalance(pname) < plugin.config.getDouble("sponsorEco.cost"))){
|
||||
target.sendMessage(ChatColor.AQUA + "You have been Sponsored!");
|
||||
target.getInventory().addItem(sponsoritem);
|
||||
p.sendMessage("You have sponsored " + target.getName() + "!");
|
||||
p.getInventory().removeItem(plugin.Cost);
|
||||
plugin.econ.withdrawPlayer(pname, plugin.config.getDouble("sponsorEco.cost"));
|
||||
}else{
|
||||
p.sendMessage(ChatColor.RED + "You don't have enough money to do that!");
|
||||
}
|
||||
}
|
||||
}else{
|
||||
p.sendMessage(ChatColor.RED + "You don't have the necessary items to sponsor!");
|
||||
}
|
||||
}else{
|
||||
p.sendMessage(ChatColor.RED + "You can't sponsor that item!");
|
||||
p.sendMessage(ChatColor.GREEN + "Other items you can't sponsor are:");
|
||||
for(String blacklist: plugin.management.getStringList("sponsors.blacklist")){
|
||||
p.sendMessage(ChatColor.AQUA + blacklist);
|
||||
p.sendMessage(ChatColor.RED + "You can't sponsor that item!");
|
||||
p.sendMessage(ChatColor.GREEN + "Other items you can't sponsor are:");
|
||||
for(String blacklist: plugin.management.getStringList("sponsors.blacklist")){
|
||||
p.sendMessage(ChatColor.AQUA + blacklist);
|
||||
}
|
||||
}
|
||||
}catch(Exception e){
|
||||
p.sendMessage(ChatColor.RED + "Something went wrong there... Make sure that you do like this /sponsor [name] [number] [number]");
|
||||
}
|
||||
}catch(Exception e){
|
||||
p.sendMessage(ChatColor.RED + "Something went wrong there... Make sure that you do like this /sponsor [name] [number] [number]");
|
||||
}
|
||||
}
|
||||
}else{
|
||||
|
@@ -5,6 +5,7 @@ import java.util.List;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||
|
||||
@@ -14,7 +15,7 @@ public class TeleportListener implements Listener {
|
||||
public TeleportListener(Main m) {
|
||||
this.plugin = m;
|
||||
}
|
||||
@EventHandler
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onTP(PlayerTeleportEvent event){
|
||||
Player p = event.getPlayer();
|
||||
List<String> worlds = plugin.config.getStringList("worlds");
|
||||
@@ -22,6 +23,11 @@ public class TeleportListener implements Listener {
|
||||
event.setCancelled(true);
|
||||
p.sendMessage(ChatColor.RED + "You are a dead tribute... How are you supposed to get back into the arena....");
|
||||
plugin.Tele.remove(p);
|
||||
}else if(plugin.Tele.contains(p)){
|
||||
if(event.isCancelled()){
|
||||
event.setCancelled(false);
|
||||
plugin.Tele.remove(p);
|
||||
}
|
||||
}
|
||||
}
|
||||
/*@EventHandler Unwanted right now...
|
||||
|
Reference in New Issue
Block a user