Many bug fixes and more configuration

This commit is contained in:
Travis Eggett
2012-05-29 23:14:05 -06:00
parent ec10159a2b
commit 872448d92a
38 changed files with 1297 additions and 658 deletions

View File

@@ -24,12 +24,12 @@ public class ChatListener implements Listener {
List<Entity> near = p.getNearbyEntities(radius, radius, radius);
event.setCancelled(true);
if(!(near.size()== 0)){
for(Entity e:near){
if(e instanceof Player){
p.sendMessage(msg);
((Player) e).sendMessage(msg);
p.sendMessage(msg);
for(Entity e:near){
if(e instanceof Player){
((Player) e).sendMessage(msg);
}
}
}
}else if(near.size()== 0){
p.sendMessage(msg);
p.sendMessage(ChatColor.YELLOW + "No one near!");
@@ -42,6 +42,7 @@ public class ChatListener implements Listener {
}
}
}else{
event.setCancelled(true);
plugin.getServer().broadcastMessage(msg);
}
}

View File

@@ -16,7 +16,7 @@ public class CommandBlock implements Listener {
public void CatchCommand(PlayerCommandPreprocessEvent event){
String cmd = event.getMessage();
Player p = event.getPlayer();
if(!cmd.contains("/ha") && plugin.Playing.contains(p)){
if(!cmd.contains("/ha") && plugin.Playing.contains(p) && plugin.canjoin== true){
event.setCancelled(true);
p.sendMessage(ChatColor.RED + "You are only allowed to use /ha commands!");
}

View File

@@ -1,7 +1,6 @@
package me.Travja.HungerArena;
import org.bukkit.ChatColor;
import org.bukkit.Effect;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.Server;
@@ -24,7 +23,7 @@ public class DeathListener implements Listener{
Player p = event.getPlayer();
if(plugin.Dead.contains(p)){
String[] Spawncoords = plugin.config.getString("Spawn_coords").split(",");
World spawnw = p.getWorld();
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]);
@@ -37,9 +36,20 @@ public class DeathListener implements Listener{
Player p = event.getEntity();
Server s = p.getServer();
String pname = p.getName();
String[] Spawncoords = plugin.config.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.Playing.contains(p)){
if(plugin.config.getString("Cannon_Death").equalsIgnoreCase("True")){
p.getWorld().playEffect(p.getLocation(), Effect.ZOMBIE_CHEW_WOODEN_DOOR, 0, 300);
double y = p.getLocation().getY();
double newy = y+200;
double x = p.getLocation().getX();
double z = p.getLocation().getZ();
Location strike = new Location(p.getWorld(), x, newy, z);
p.getWorld().strikeLightning(strike);
}
plugin.Dead.add(p);
plugin.Playing.remove(p);
@@ -56,21 +66,23 @@ public class DeathListener implements Listener{
String winnername = winner.getName();
s.broadcastMessage(ChatColor.GREEN + winnername + " is the victor of this Hunger Games!");
winner.getInventory().clear();
winner.teleport(Spawn);
winner.getInventory().setBoots(null);
winner.getInventory().setChestplate(null);
winner.getInventory().setHelmet(null);
winner.getInventory().setLeggings(null);
winner.getInventory().addItem(plugin.Reward);
}
plugin.Playing.clear();
for(Player spectator:plugin.Watching){
spectator.setAllowFlight(false);
spectator.teleport(Spawn);
for(Player online:plugin.getServer().getOnlinePlayers()){
online.showPlayer(spectator);
}
}
if(plugin.config.getString("Auto_Restart").equalsIgnoreCase("True")){
plugin.Dead.clear();
plugin.Playing.clear();
plugin.Quit.clear();
plugin.Watching.clear();
plugin.Frozen.clear();
@@ -90,21 +102,23 @@ public class DeathListener implements Listener{
String winnername = winner.getName();
s.broadcastMessage(ChatColor.GREEN + winnername + " is the victor of this Hunger Games!");
winner.getInventory().clear();
winner.teleport(Spawn);
winner.getInventory().setBoots(null);
winner.getInventory().setChestplate(null);
winner.getInventory().setHelmet(null);
winner.getInventory().setLeggings(null);
winner.getInventory().addItem(plugin.Reward);
}
plugin.Playing.clear();
for(Player spectator:plugin.Watching){
spectator.setAllowFlight(false);
spectator.teleport(Spawn);
for(Player online:plugin.getServer().getOnlinePlayers()){
online.showPlayer(spectator);
}
}
if(plugin.config.getString("Auto_Restart").equalsIgnoreCase("True")){
plugin.Dead.clear();
plugin.Playing.clear();
plugin.Quit.clear();
plugin.Watching.clear();
plugin.Frozen.clear();
@@ -121,21 +135,23 @@ public class DeathListener implements Listener{
String winnername = winner.getName();
s.broadcastMessage(ChatColor.GREEN + winnername + " is the victor of this Hunger Games!");
winner.getInventory().clear();
winner.teleport(Spawn);
winner.getInventory().setBoots(null);
winner.getInventory().setChestplate(null);
winner.getInventory().setHelmet(null);
winner.getInventory().setLeggings(null);
winner.getInventory().addItem(plugin.Reward);
}
plugin.Playing.clear();
for(Player spectator:plugin.Watching){
spectator.setAllowFlight(false);
spectator.teleport(Spawn);
for(Player online:plugin.getServer().getOnlinePlayers()){
online.showPlayer(spectator);
}
}
if(plugin.config.getString("Auto_Restart").equalsIgnoreCase("True")){
plugin.Dead.clear();
plugin.Playing.clear();
plugin.Quit.clear();
plugin.Watching.clear();
plugin.Frozen.clear();

File diff suppressed because it is too large Load Diff

View File

@@ -1,11 +1,13 @@
package me.Travja.HungerArena;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.block.SignChangeEvent;
import org.bukkit.event.player.PlayerInteractEvent;
public class Signs implements Listener {
@@ -21,21 +23,25 @@ public class Signs implements Listener {
if(b.getType()== Material.SIGN || b.getType()==Material.SIGN_POST || b.getType()==Material.WALL_SIGN){
org.bukkit.block.Sign sign = (org.bukkit.block.Sign) b.getState();
String[] lines = sign.getLines();
if(lines[0].equalsIgnoreCase("[HungerArena]")){
if(lines[1].equalsIgnoreCase("Join")){
p.performCommand("ha join");
}
if(lines[1].equalsIgnoreCase("Confirm")){
p.performCommand("ha confirm");
}
if(lines[1].equalsIgnoreCase("Leave")){
p.performCommand("ha leave");
if(lines[0].equalsIgnoreCase(ChatColor.BLUE + "[HungerArena]")){
if(lines[1].isEmpty()){
p.performCommand("ha");
}else{
p.performCommand("ha " + lines[1]);
}
}
if(lines[0].equalsIgnoreCase("[Sponsor]")){
p.performCommand("sponsor" + " " + lines[1] + " " + lines[2] + " " + lines[3]);
if(lines[0].equalsIgnoreCase(ChatColor.BLUE + "[Sponsor]")){
p.performCommand("sponsor " + lines[1] + " " + lines[2] + " " + lines[3]);
}
}
}
}
@EventHandler
public void Create(SignChangeEvent event){
String[] lines = event.getLines();
String top = lines[0];
if(top.equalsIgnoreCase("[HungerArena]") || top.equalsIgnoreCase("[Sponsor]")){
event.setLine(0, ChatColor.BLUE + top);
}
}
}

View File

@@ -19,45 +19,49 @@ public class SponsorCommands implements CommandExecutor {
Player p = (Player) sender;
String pname = p.getName();
if(cmd.getName().equalsIgnoreCase("Sponsor")){
if(!plugin.Playing.contains(p)){
if(args.length== 0){
p.sendMessage(ChatColor.RED + "You didn't specify a tribute!");
return false;
}
if(args.length== 1){
p.sendMessage(ChatColor.RED + "You didn't specify an item!");
}
if(args.length== 2){
p.sendMessage(ChatColor.RED + "You didn't specify an amount!");
}
if(args.length== 3){
Player target = Bukkit.getPlayer(args[0]);
if(args[1].equalsIgnoreCase("57") || args[1].equalsIgnoreCase("7")){
p.sendMessage(ChatColor.RED + "You can't sponsor that item!");
}else{
int ID = Integer.parseInt(args[1]);
int Amount = Integer.parseInt(args[2]);
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)){
p.sendMessage(ChatColor.RED + "That person isn't playing!");
}else{
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() + "!");
p.getInventory().removeItem(plugin.Cost);
}
}
if(p.hasPermission("HungerArena.Sponsor")){
if(!plugin.Playing.contains(p)){
if(args.length== 0){
p.sendMessage(ChatColor.RED + "You didn't specify a tribute!");
return false;
}
if(args.length== 1){
p.sendMessage(ChatColor.RED + "You didn't specify an item!");
}
if(args.length== 2){
p.sendMessage(ChatColor.RED + "You didn't specify an amount!");
}
if(args.length== 3){
Player target = Bukkit.getPlayer(args[0]);
if(args[1].equalsIgnoreCase("57") || args[1].equalsIgnoreCase("7")){
p.sendMessage(ChatColor.RED + "You can't sponsor that item!");
}else{
p.sendMessage(ChatColor.RED + "You don't have the necessary items to sponsor!");
int ID = Integer.parseInt(args[1]);
int Amount = Integer.parseInt(args[2]);
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)){
p.sendMessage(ChatColor.RED + "That person isn't playing!");
}else{
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() + "!");
p.getInventory().removeItem(plugin.Cost);
}
}
}else{
p.sendMessage(ChatColor.RED + "You don't have the necessary items to sponsor!");
}
}
}
}else{
p.sendMessage(ChatColor.RED + "You are playing, you can't sponsor yourself!");
}
}else{
p.sendMessage(ChatColor.RED + "You are playing, you can't sponsor yourself!");
p.sendMessage(ChatColor.RED + "You don't have permission!");
}
}
return false;