First commit.

This commit is contained in:
YoshiGenius 2012-07-15 09:01:41 +10:00
commit 2445281be8
68 changed files with 2956 additions and 0 deletions

8
.classpath Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="lib" path="C:/Documents and Settings/TJ/Desktop/iConomy.jar"/>
<classpathentry kind="lib" path="C:/Documents and Settings/TJ/Desktop/bukkit-1.2.5-R4.1-20120615.060142-9.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

17
.project Normal file
View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>HungerArena</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

1
README Normal file
View File

@ -0,0 +1 @@
Hello World!

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

35
pom.xml Normal file
View File

@ -0,0 +1,35 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>me.Travja.HungerArena</groupId>
<artifactId>HungerArena</artifactId>
<version>0.5</version>
<packaging>jar</packaging>
<name>HungerArena</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.bukkit</groupId>
<artifactId>craftbukkit</artifactId>
<version>1.2.5-R4.0</version>
</dependency>
<dependency>
<groupId>net.milkbowl</groupId>
<artifactId>vault</artifactId>
<version>1.2.16</version>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,289 @@
package me.Travja.HungerArena;
import java.util.List;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockBurnEvent;
import org.bukkit.event.block.BlockFadeEvent;
import org.bukkit.event.block.BlockFormEvent;
import org.bukkit.event.block.BlockGrowEvent;
import org.bukkit.event.block.BlockPhysicsEvent;
import org.bukkit.event.block.BlockPistonExtendEvent;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.block.LeavesDecayEvent;
import org.bukkit.event.entity.EntityExplodeEvent;
import org.bukkit.event.player.PlayerBucketEmptyEvent;
import org.bukkit.event.player.PlayerBucketFillEvent;
public class BlockStorage implements Listener {
public Main plugin;
public BlockStorage(Main m) {
this.plugin = m;
}
/*@EventHandler
public void creeperExplosion(EntityExplodeEvent event){
if(plugin.canjoin== true){
for(Block b:event.blockList()){
String w = b.getWorld().getName();
int x = b.getX();
int y = b.getY();
int z = b.getZ();
int d = b.getTypeId();
String coords = w + "," + x + "," + y + "," + z + "," + d;
System.out.println("Explode: " + coords);
List<String> blocks = plugin.config.getStringList("Blocks_Destroyed");
blocks.add(coords);
plugin.config.set("Blocks_Destroyed", blocks);
plugin.saveConfig();
}
}
}
@EventHandler
public void burningBlocks(BlockBurnEvent event){
if(plugin.canjoin== true){
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();
String coords = w + "," + x + "," + y + "," + z + "," + d;
System.out.println("Burn: " + coords);
List<String> blocks = plugin.config.getStringList("Blocks_Destroyed");
blocks.add(coords);
plugin.config.set("Blocks_Destroyed", blocks);
plugin.saveConfig();
}
}
@EventHandler
public void leafDecay(LeavesDecayEvent event){
if(plugin.canjoin== true){
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();
String coords = w + "," + x + "," + y + "," + z + "," + d;
System.out.println("Decay: " + coords);
List<String> blocks = plugin.config.getStringList("Blocks_Destroyed");
blocks.add(coords);
plugin.config.set("Blocks_Destroyed", blocks);
plugin.saveConfig();
}
}
@EventHandler
public void blockPlace(BlockPlaceEvent event){
if(plugin.canjoin== true){
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();
String coords = w + "," + x + "," + y + "," + z + "," + d;
if(!(d== 51) && !(d==12){
System.out.println("Place: " + coords);
List<String> blocks = plugin.config.getStringList("Blocks_Placed");
blocks.add(coords);
plugin.config.set("Blocks_Placed", blocks);
plugin.saveConfig();
}
Location location = b.getLocation();
if (b.getType() == Material.SAND || b.getType() == Material.GRAVEL) {
if (location.getBlock().getRelative(BlockFace.DOWN).getType() == Material.AIR) {
int i = 0;
for (i = location.getBlockY(); i > -1; i --) {
location = new Location(location.getWorld(), location.getBlockX(), i, location.getBlockZ());
if (location.getBlock().getType() != Material.AIR && location.getBlock().getType() != Material.WATER && location.getBlock().getType() != Material.LAVA) {
break;
}
event.getPlayer().sendMessage("Block will land at: " + location);
System.out.println("Sand Place: " + coords);
List<String> blocks = plugin.config.getStringList("Blocks_Destroyed");
blocks.add(coords);
plugin.config.set("Blocks_Destroyed", blocks);
plugin.saveConfig();
}
}
}
}
}
@EventHandler
public void bucketEmpty(PlayerBucketEmptyEvent event){
if(plugin.canjoin== true){
Block clicked = event.getBlockClicked();
BlockFace face = event.getBlockFace();
Block b = clicked.getRelative(face);
String w = b.getWorld().getName();
int x = b.getX();
int y = b.getY();
int z = b.getZ();
int d = b.getTypeId();
String coords = w + "," + x + "," + y + "," + z + "," + d;
System.out.println("Bucket Empty: " + coords);
List<String> blocks = plugin.config.getStringList("Blocks_Placed");
blocks.add(coords);
plugin.config.set("Blocks_Destroyed", blocks);
plugin.saveConfig();
}
}
@EventHandler
public void bucketFill(PlayerBucketFillEvent event){
if(plugin.canjoin== true){
Block b = event.getBlockClicked();
String w = b.getWorld().getName();
int x = b.getX();
int y = b.getY();
int z = b.getZ();
int d = b.getTypeId();
String coords = w + "," + x + "," + y + "," + z + "," + d;
System.out.println("Bucket Fill: " + coords);
List<String> blocks = plugin.config.getStringList("Blocks_Destroyed");
blocks.add(coords);
plugin.config.set("Blocks_Destroyed", blocks);
plugin.saveConfig();
}
}
@EventHandler
public void blockBreak(BlockBreakEvent event){
if(plugin.canjoin== true){
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();
String coords = w + "," + x + "," + y + "," + z + "," + d;
System.out.println("Break: " + coords);
List<String> blocks = plugin.config.getStringList("Blocks_Destroyed");
blocks.add(coords);
plugin.config.set("Blocks_Destroyed", blocks);
plugin.saveConfig();
}
}
@EventHandler
public void blockMelt(BlockFadeEvent event){
if(plugin.canjoin== true){
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();
String coords = w + "," + x + "," + y + "," + z + "," + d;
System.out.println("Fade: " + coords);
List<String> blocks = plugin.config.getStringList("Blocks_Destroyed");
blocks.add(coords);
plugin.config.set("Blocks_Destroyed", blocks);
plugin.saveConfig();
}
}
@EventHandler
public void blockGrow(BlockGrowEvent event){
if(plugin.canjoin== true){
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();
String coords = w + "," + x + "," + y + "," + z + "," + d;
System.out.println("Grow: " + coords);
List<String> blocks = plugin.config.getStringList("Blocks_Placed");
blocks.add(coords);
plugin.config.set("Blocks_Destroyed", blocks);
plugin.saveConfig();
}
}
@EventHandler
public void blockForm(BlockFormEvent event){
if(plugin.canjoin== true){
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();
String coords = w + "," + x + "," + y + "," + z + "," + d;
System.out.println("Snowfall: " + coords);
List<String> blocks = plugin.config.getStringList("Blocks_Placed");
blocks.add(coords);
plugin.config.set("Blocks_Destroyed", blocks);
plugin.saveConfig();
}
}
@EventHandler
public void pistonPush(BlockPistonExtendEvent event){
if(plugin.canjoin== true){
for(Block b:event.getBlocks()){
String w = b.getWorld().getName();
int x = b.getX();
int y = b.getY();
int z = b.getZ();
int d = b.getTypeId();
String coords = w + "," + x + "," + y + "," + z + "," + d;
System.out.println("Piston: " + coords);
List<String> blocks = plugin.config.getStringList("Blocks_Destroyed");
blocks.add(coords);
plugin.config.set("Blocks_Destroyed", blocks);
plugin.saveConfig();
}
}
}
@EventHandler
public void onChange(BlockPhysicsEvent event){
Block block = event.getBlock();
Material changed = event.getChangedType();
if (block.getType() == Material.LAVA){
if (changed == Material.LAVA){
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();
String coords = w + "," + x + "," + y + "," + z + "," + d;
System.out.println("Lava Change: " + coords);
List<String> blocks = plugin.config.getStringList("Blocks_Placed");
blocks.add(coords);
plugin.config.set("Blocks_Destroyed", blocks);
plugin.saveConfig();
}else if(changed == Material.WATER){
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();
String coords = w + "," + x + "," + y + "," + z + "," + d;
System.out.println("Water Change: " + coords);
List<String> blocks = plugin.config.getStringList("Blocks_Placed");
blocks.add(coords);
plugin.config.set("Blocks_Destroyed", blocks);
plugin.saveConfig();
}
}else if (block.getType() == Material.SAND || block.getType() == Material.GRAVEL) {
if (changed == Material.AIR) {
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();
String coords = w + "," + x + "," + y + "," + z + "," + d;
System.out.println("Sand/Gravel Fall: " + coords);
List<String> blocks = plugin.config.getStringList("Blocks_Placed");
blocks.add(coords);
plugin.config.set("Blocks_Destroyed", blocks);
plugin.saveConfig();
}
}
}*/
}

View File

@ -0,0 +1,25 @@
package me.Travja.HungerArena;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
public class Blocks implements Listener {
public Main plugin;
public Blocks(Main m) {
this.plugin = m;
}
@EventHandler
public void BreakBlock(BlockBreakEvent event){
Player p = event.getPlayer();
String pname = p.getDisplayName();
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!");
}
}
}
}

View File

@ -0,0 +1,51 @@
package me.Travja.HungerArena;
import java.util.List;
import org.bukkit.ChatColor;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerChatEvent;
public class ChatListener implements Listener {
public Main plugin;
public ChatListener(Main m) {
this.plugin = m;
}
@EventHandler
public void TributeChat(PlayerChatEvent event){
Player p = event.getPlayer();
String pname = p.getName();
if(plugin.Playing.contains(pname)){
String msg = "<" + ChatColor.RED + "[Tribute] " + ChatColor.WHITE + p.getName() + ">" + " " + event.getMessage();
if(plugin.config.getString("ChatClose").equalsIgnoreCase("True")){
double radius = plugin.config.getDouble("ChatClose_Radius");
List<Entity> near = p.getNearbyEntities(radius, radius, radius);
event.setCancelled(true);
if(!(near.size()== 0)){
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!");
}else if(!(near.size()== 0)){
for(Entity en:near){
if(!(en instanceof Player)){
p.sendMessage(msg);
p.sendMessage(ChatColor.YELLOW + "No one near!");
}
}
}
}else{
event.setCancelled(true);
plugin.getServer().broadcastMessage(msg);
}
}
}
}

View File

@ -0,0 +1,81 @@
package me.Travja.HungerArena;
import java.util.List;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.Chest;
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.BlockBreakEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.ItemStack;
public class Chests implements Listener {
public Main plugin;
public Chests(Main m) {
this.plugin = m;
}
@EventHandler
public void ChestSaves(PlayerInteractEvent event){
Block block = event.getClickedBlock();
Player p = event.getPlayer();
if(p.getItemInHand().getType()== Material.BLAZE_ROD && event.getAction() == Action.LEFT_CLICK_BLOCK){
if(block.getState() instanceof Chest){
if(p.hasPermission("HungerArena.Chest.Store")){
ItemStack[] itemsinchest = ((Chest) block.getState()).getInventory().getContents();
int blockx = block.getX();
int blocky = block.getY();
int blockz = block.getZ();
String blockw = block.getWorld().getName().toString();
if(!plugin.getConfig().contains("Storage." + blockx + "," + blocky + "," + blockz + ".Location.X")){
plugin.getConfig().addDefault("Storage." + blockx + "," + blocky + "," + blockz + ".Location.X", blockx);
plugin.getConfig().addDefault("Storage." + blockx + "," + blocky + "," + blockz + ".Location.Y", blocky);
plugin.getConfig().addDefault("Storage." + blockx + "," + blocky + "," + blockz + ".Location.Z",blockz);
plugin.getConfig().addDefault("Storage." + blockx + "," + blocky + "," + blockz + ".Location.W", blockw);
plugin.getConfig().addDefault("Storage." + blockx + "," + blocky + "," + blockz + ".ItemsInStorage", itemsinchest);
}else{
plugin.getConfig().set("Storage." + blockx + "," + blocky+ "," + blockz + ".Location.X",blockx);
plugin.getConfig().set("Storage." + blockx + "," + blocky + "," + blockz + ".Location.Y", blocky);
plugin.getConfig().set("Storage." + blockx + "," + blocky + "," + blockz + ".Location.Z", blockz);
plugin.getConfig().set("Storage." + blockx + "," + blocky + "," + blockz + ".Location.W", blockw);
plugin.getConfig().set("Storage." + blockx + "," + blocky + "," + blockz + ".ItemsInStorage", itemsinchest);
}
List<String> list2 = plugin.getConfig().getStringList("StorageXYZ");
list2.add(blockx + "," + blocky + "," + blockz);
plugin.getConfig().set("StorageXYZ", list2);
plugin.getConfig().options().copyDefaults(true);
plugin.saveConfig();
p.sendMessage(ChatColor.GREEN + "Chest Stored!");
}else{
p.sendMessage(ChatColor.RED + "You don't have permission to store chests!");
}
}
}
}
@EventHandler
public void onBlockBreak(BlockBreakEvent event) {
Player p = event.getPlayer();
Block block = event.getBlock();
Location blocklocation = event.getBlock().getLocation();
if (block.getState() instanceof Chest && !plugin.Playing.contains(p.getDisplayName())) {
int blockx = blocklocation.getBlockX();
int blocky = blocklocation.getBlockY();
int blockz = blocklocation.getBlockZ();
if (plugin.getConfig().getStringList("StorageXYZ").contains(blockx + "," + blocky + "," + blockz)) {
if(p.hasPermission("HungerArena.Chest.Break")){
List<String> list2 = plugin.getConfig().getStringList("StorageXYZ");
list2.remove(blockx + "," + blocky + "," + blockz);
plugin.getConfig().set("StorageXYZ", list2);
plugin.getConfig().options().copyDefaults(true);
plugin.saveConfig();
p.sendMessage("Chest Removed!");
}
}
}
}
}

View File

@ -0,0 +1,27 @@
package me.Travja.HungerArena;
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.PlayerCommandPreprocessEvent;
public class CommandBlock implements Listener {
public Main plugin;
public CommandBlock(Main m) {
this.plugin = m;
}
@EventHandler(priority = EventPriority.HIGHEST)
public void CatchCommand(PlayerCommandPreprocessEvent event){
String cmd = event.getMessage();
Player p = event.getPlayer();
String pname = p.getName();
if(!cmd.contains("/ha") && plugin.Playing.contains(pname) && plugin.canjoin== true){
if(!p.hasPermission("HungerArena.UseCommands")){
event.setCancelled(true);
p.sendMessage(ChatColor.RED + "You are only allowed to use /ha commands!");
}
}
}
}

View File

@ -0,0 +1,166 @@
package me.Travja.HungerArena;
import org.bukkit.*;
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;
public class DeathListener implements Listener{
public Main plugin;
public DeathListener(Main m){
this.plugin = m;
}
public FileConfiguration config;
int i = 0;
@EventHandler
public void onPlayerRespawn(PlayerRespawnEvent event){
Player p = event.getPlayer();
String pname = p.getName();
if(plugin.Dead.contains(pname)){
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);
event.setRespawnLocation(Spawn);
}
}
@EventHandler
public void onPlayerDeath(PlayerDeathEvent event){
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(pname)){
if(plugin.config.getString("Cannon_Death").equalsIgnoreCase("True")){
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(pname);
plugin.Playing.remove(pname);
String leftmsg = ChatColor.BLUE + "There are now " + plugin.Playing.size() + " tributes left!";
if(p.getKiller() instanceof Player){
if(p.getKiller().getItemInHand().getType().getId()== 0){
Player killer = p.getKiller();
String killername = killer.getName();
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
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.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();
//Show spectators
if(!plugin.Watching.isEmpty()){
String s1 = plugin.Watching.get(i++);
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");
}
}
}else{
Player killer = p.getKiller();
String killername = killer.getName();
Material weapon = killer.getItemInHand().getType();
String msg = ChatColor.LIGHT_PURPLE + "**BOOM** Tribute " + pname + " was killed by tribute " + killername + " with a(n) " + weapon;
event.setDeathMessage("");
s.broadcastMessage(msg);
s.broadcastMessage(leftmsg);
if(plugin.Playing.size()== 1 && plugin.canjoin== true){
//Announce winner
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.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();
//Show spectators
if(!plugin.Watching.isEmpty()){
String s1 = plugin.Watching.get(i++);
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");
}
}
}
}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
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.teleport(Spawn);
winner.getInventory().setBoots(null);
winner.getInventory().setChestplate(null);
winner.getInventory().setHelmet(null);
winner.getInventory().setLeggings(null);
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
if(!plugin.Watching.isEmpty()){
String s1 = plugin.Watching.get(i++);
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");
}
}
}
}
}
}

View File

@ -0,0 +1,21 @@
package me.Travja.HungerArena;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent;
public class FreezeListener implements Listener {
public Main plugin;
public FreezeListener(Main m) {
this.plugin = m;
}
@EventHandler
public void onPlayerMove(PlayerMoveEvent event){
Player p = event.getPlayer();
String pname = p.getName();
if(plugin.Frozen.contains(pname) && plugin.config.getString("Frozen_Teleport").equalsIgnoreCase("True")){
event.setCancelled(true);
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,110 @@
package me.Travja.HungerArena;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
public class JoinAndQuitListener implements Listener {
public Main plugin;
public JoinAndQuitListener(Main m) {
this.plugin = m;
}
int i = 0;
@EventHandler
public void onPlayerJoin(PlayerJoinEvent event){
final Player p = event.getPlayer();
String pname = p.getName();
if(!plugin.Watching.isEmpty()){
String s = plugin.Watching.get(i++);
Player spectator = plugin.getServer().getPlayerExact(s);
p.hidePlayer(spectator);
}
if(plugin.Out.contains(pname)){
plugin.Playing.add(pname);
plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable(){
public void run(){
p.sendMessage(ChatColor.AQUA + "You have saved yourself from being ejected from the arena!");
}
}, 40L);
plugin.Out.remove(pname);
}
if(plugin.Quit.contains(pname) || plugin.Dead.contains(pname)){
String[] Spawncoords = plugin.config.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);
plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable(){
public void run(){
p.teleport(Spawn);
p.sendMessage(ChatColor.RED + "You have been teleported to spawn because you quit/forfeited!");
}
}, 40L);
}
}
@EventHandler
public void onPlayerQuit(PlayerQuitEvent event){
final Player p = event.getPlayer();
final String pname = p.getName();
String[] Spawncoords = plugin.config.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
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
if(!plugin.Watching.isEmpty()){
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");
}
}
}
}else{
plugin.Quit.add(pname);
plugin.Out.remove(pname);
}
}
}, 1200L);
}
}

View File

@ -0,0 +1,96 @@
package me.Travja.HungerArena;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.logging.Logger;
import net.milkbowl.vault.economy.Economy;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandExecutor;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.event.Listener;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin{
static final Logger log = Logger.getLogger("Minecraft");
public ArrayList<String> Playing = new ArrayList<String>();
public ArrayList<String> Ready = new ArrayList<String>();
public ArrayList<String> Dead = new ArrayList<String>();
public ArrayList<String> Quit = new ArrayList<String>();
public ArrayList<String> Out = new ArrayList<String>();
public ArrayList<String> Watching = new ArrayList<String>();
public ArrayList<String> NeedConfirm = new ArrayList<String>();
public HashSet<String> Frozen = new HashSet<String>();
public Listener DeathListener = new DeathListener(this);
public Listener SpectatorListener = new SpectatorListener(this);
public Listener FreezeListener = new FreezeListener(this);
public Listener JoinAndQuitListener = new JoinAndQuitListener(this);
public Listener ChatListener = new ChatListener(this);
public Listener Chests = new Chests(this);
public Listener PvP = new PvP(this);
public Listener Blocks = new Blocks(this);
public Listener CommandBlock = new CommandBlock(this);
public Listener Signs = new Signs(this);
public Listener BlockStorage = new BlockStorage(this);
public Listener WinGames = new WinGamesListener(this);
public CommandExecutor HaCommands = new HaCommands(this);
public CommandExecutor SponsorCommands = new SponsorCommands(this);
public CommandExecutor SpawnsCommand = new SpawnsCommand(this);
public boolean canjoin;
public boolean exists;
public FileConfiguration config = getConfig();
public ItemStack Reward;
public ItemStack Cost;
public boolean vault = false;
public Economy econ = null;
public void onEnable(){
log.info("[HungerArena] enabled v" + getDescription().getVersion());
config.options().copyDefaults(true);
this.saveDefaultConfig();
getServer().getPluginManager().registerEvents(DeathListener, this);
getServer().getPluginManager().registerEvents(SpectatorListener, this);
getServer().getPluginManager().registerEvents(FreezeListener, this);
getServer().getPluginManager().registerEvents(JoinAndQuitListener, this);
getServer().getPluginManager().registerEvents(ChatListener, this);
getServer().getPluginManager().registerEvents(Chests, this);
getServer().getPluginManager().registerEvents(PvP, this);
getServer().getPluginManager().registerEvents(Blocks, this);
getServer().getPluginManager().registerEvents(CommandBlock, this);
getServer().getPluginManager().registerEvents(Signs, this);
getServer().getPluginManager().registerEvents(BlockStorage, this);
getServer().getPluginManager().registerEvents(WinGames, this);
getCommand("Ha").setExecutor(HaCommands);
getCommand("Sponsor").setExecutor(SponsorCommands);
getCommand("Startpoint").setExecutor(SpawnsCommand);
if (setupEconomy()) {
log.info(ChatColor.AQUA + "[HungerArena] Found Vault! Hooking in for economy!");
vault = true;
}
if (config.getBoolean("Economy_Support", 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.");
}
}
Reward = new ItemStack(config.getInt("Reward.ID"), config.getInt("Reward.Amount"));
Cost = new ItemStack(config.getInt("Sponsor_Cost.ID"), config.getInt("Sponsor_Cost.Amount"));
}
public void onDisable(){
log.info("[HungerArena] disabled v" + getDescription().getVersion());
}
public boolean setupEconomy() {
if (getServer().getPluginManager().getPlugin("Vault") == null) {
return false;
}
RegisteredServiceProvider<Economy> rsp = getServer().getServicesManager().getRegistration(Economy.class);
if (rsp == null) {
return false;
}
econ = rsp.getProvider();
return econ != null;
}
}

View File

@ -0,0 +1,27 @@
package me.Travja.HungerArena;
import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList;
import org.bukkit.event.player.PlayerEvent;
/**
*
* @author YoshiGenius
*/
public class PlayerWinGamesEvent extends PlayerEvent {
private static final HandlerList handlers = new HandlerList();
public PlayerWinGamesEvent(final Player p) {
super(p);
}
public HandlerList getHandlers() {
return handlers;
}
public static HandlerList getHandlerList() {
return handlers;
}
}

View File

@ -0,0 +1,24 @@
package me.Travja.HungerArena;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
public class PvP implements Listener {
public Main plugin;
public PvP(Main m) {
this.plugin = m;
}
@EventHandler
public void PlayerPvP(EntityDamageByEntityEvent event){
Entity p = event.getEntity();
if(p instanceof Player){
String pname = ((Player) p).getName();
if(plugin.Playing.contains(pname) && plugin.canjoin== false){
event.setCancelled(true);
}
}
}
}

View File

@ -0,0 +1,47 @@
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 {
public Main plugin;
public Signs(Main m) {
this.plugin = m;
}
@EventHandler
public void Sign(PlayerInteractEvent event){
Player p = event.getPlayer();
Block b = event.getClickedBlock();
if(event.getAction()== Action.RIGHT_CLICK_BLOCK){
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(ChatColor.BLUE + "[HungerArena]")){
if(lines[1].isEmpty()){
p.performCommand("ha");
}else{
p.performCommand("ha " + lines[1]);
}
}
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

@ -0,0 +1,243 @@
package me.Travja.HungerArena;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class SpawnsCommand implements CommandExecutor {
public Main plugin;
public SpawnsCommand(Main m) {
this.plugin = m;
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
Player p = (Player) sender;
if(cmd.getName().equalsIgnoreCase("StartPoint")){
if(p.hasPermission("HungerArena.StartPoint")){
if(args[0].equalsIgnoreCase("1")){
double x = p.getLocation().getX();
double y = p.getLocation().getY();
double z = p.getLocation().getZ();
String w = p.getWorld().getName();
plugin.config.set("Tribute_one_spawn", x + "," + y + "," + z + "," + w);
plugin.saveConfig();
p.sendMessage(ChatColor.AQUA + "You have set the spawn location of Tribute one!");
}
if(args[0].equalsIgnoreCase("2")){
double x = p.getLocation().getX();
double y = p.getLocation().getY();
double z = p.getLocation().getZ();
String w = p.getWorld().getName();
plugin.config.set("Tribute_two_spawn", x + "," + y + "," + z + "," + w);
plugin.saveConfig();
p.sendMessage(ChatColor.AQUA + "You have set the spawn location of Tribute two!");
}
if(args[0].equalsIgnoreCase("3")){
double x = p.getLocation().getX();
double y = p.getLocation().getY();
double z = p.getLocation().getZ();
String w = p.getWorld().getName();
plugin.config.set("Tribute_three_spawn", x + "," + y + "," + z + "," + w);
plugin.saveConfig();
p.sendMessage(ChatColor.AQUA + "You have set the spawn location of Tribute three!");
}
if(args[0].equalsIgnoreCase("4")){
double x = p.getLocation().getX();
double y = p.getLocation().getY();
double z = p.getLocation().getZ();
String w = p.getWorld().getName();
plugin.config.set("Tribute_four_spawn", x + "," + y + "," + z + "," + w);
plugin.saveConfig();
p.sendMessage(ChatColor.AQUA + "You have set the spawn location of Tribute four!");
}
if(args[0].equalsIgnoreCase("5")){
double x = p.getLocation().getX();
double y = p.getLocation().getY();
double z = p.getLocation().getZ();
String w = p.getWorld().getName();
plugin.config.set("Tribute_five_spawn", x + "," + y + "," + z + "," + w);
plugin.saveConfig();
p.sendMessage(ChatColor.AQUA + "You have set the spawn location of Tribute five!");
}
if(args[0].equalsIgnoreCase("6")){
double x = p.getLocation().getX();
double y = p.getLocation().getY();
double z = p.getLocation().getZ();
String w = p.getWorld().getName();
plugin.config.set("Tribute_six_spawn", x + "," + y + "," + z + "," + w);
plugin.saveConfig();
p.sendMessage(ChatColor.AQUA + "You have set the spawn location of Tribute six!");
}
if(args[0].equalsIgnoreCase("7")){
double x = p.getLocation().getX();
double y = p.getLocation().getY();
double z = p.getLocation().getZ();
String w = p.getWorld().getName();
plugin.config.set("Tribute_seven_spawn", x + "," + y + "," + z + "," + w);
plugin.saveConfig();
p.sendMessage(ChatColor.AQUA + "You have set the spawn location of Tribute seven!");
}
if(args[0].equalsIgnoreCase("8")){
double x = p.getLocation().getX();
double y = p.getLocation().getY();
double z = p.getLocation().getZ();
String w = p.getWorld().getName();
plugin.config.set("Tribute_eight_spawn", x + "," + y + "," + z + "," + w);
plugin.saveConfig();
p.sendMessage(ChatColor.AQUA + "You have set the spawn location of Tribute eight!");
}
if(args[0].equalsIgnoreCase("9")){
double x = p.getLocation().getX();
double y = p.getLocation().getY();
double z = p.getLocation().getZ();
String w = p.getWorld().getName();
plugin.config.set("Tribute_nine_spawn", x + "," + y + "," + z + "," + w);
plugin.saveConfig();
p.sendMessage(ChatColor.AQUA + "You have set the spawn location of Tribute nine!");
}
if(args[0].equalsIgnoreCase("10")){
double x = p.getLocation().getX();
double y = p.getLocation().getY();
double z = p.getLocation().getZ();
String w = p.getWorld().getName();
plugin.config.set("Tribute_ten_spawn", x + "," + y + "," + z + "," + w);
plugin.saveConfig();
p.sendMessage(ChatColor.AQUA + "You have set the spawn location of Tribute ten!");
}
if(args[0].equalsIgnoreCase("11")){
double x = p.getLocation().getX();
double y = p.getLocation().getY();
double z = p.getLocation().getZ();
String w = p.getWorld().getName();
plugin.config.set("Tribute_eleven_spawn", x + "," + y + "," + z + "," + w);
plugin.saveConfig();
p.sendMessage(ChatColor.AQUA + "You have set the spawn location of Tribute eleven!");
}
if(args[0].equalsIgnoreCase("12")){
double x = p.getLocation().getX();
double y = p.getLocation().getY();
double z = p.getLocation().getZ();
String w = p.getWorld().getName();
plugin.config.set("Tribute_twelve_spawn", x + "," + y + "," + z + "," + w);
plugin.saveConfig();
p.sendMessage(ChatColor.AQUA + "You have set the spawn location of Tribute twelve!");
}
if(args[0].equalsIgnoreCase("13")){
double x = p.getLocation().getX();
double y = p.getLocation().getY();
double z = p.getLocation().getZ();
String w = p.getWorld().getName();
plugin.config.set("Tribute_thirteen_spawn", x + "," + y + "," + z + "," + w);
plugin.saveConfig();
p.sendMessage(ChatColor.AQUA + "You have set the spawn location of Tribute thirteen!");
}
if(args[0].equalsIgnoreCase("14")){
double x = p.getLocation().getX();
double y = p.getLocation().getY();
double z = p.getLocation().getZ();
String w = p.getWorld().getName();
plugin.config.set("Tribute_fourteen_spawn", x + "," + y + "," + z + "," + w);
plugin.saveConfig();
p.sendMessage(ChatColor.AQUA + "You have set the spawn location of Tribute fourteen!");
}
if(args[0].equalsIgnoreCase("15")){
double x = p.getLocation().getX();
double y = p.getLocation().getY();
double z = p.getLocation().getZ();
String w = p.getWorld().getName();
plugin.config.set("Tribute_fifteen_spawn", x + "," + y + "," + z + "," + w);
plugin.saveConfig();
p.sendMessage(ChatColor.AQUA + "You have set the spawn location of Tribute fifteen!");
}
if(args[0].equalsIgnoreCase("16")){
double x = p.getLocation().getX();
double y = p.getLocation().getY();
double z = p.getLocation().getZ();
String w = p.getWorld().getName();
plugin.config.set("Tribute_sixteen_spawn", x + "," + y + "," + z + "," + w);
plugin.saveConfig();
p.sendMessage(ChatColor.AQUA + "You have set the spawn location of Tribute sixteen!");
}
if(args[0].equalsIgnoreCase("17")){
double x = p.getLocation().getX();
double y = p.getLocation().getY();
double z = p.getLocation().getZ();
String w = p.getWorld().getName();
plugin.config.set("Tribute_seventeen_spawn", x + "," + y + "," + z + "," + w);
plugin.saveConfig();
p.sendMessage(ChatColor.AQUA + "You have set the spawn location of Tribute seventeen!");
}
if(args[0].equalsIgnoreCase("18")){
double x = p.getLocation().getX();
double y = p.getLocation().getY();
double z = p.getLocation().getZ();
String w = p.getWorld().getName();
plugin.config.set("Tribute_eighteen_spawn", x + "," + y + "," + z + "," + w);
plugin.saveConfig();
p.sendMessage(ChatColor.AQUA + "You have set the spawn location of Tribute eighteen!");
}
if(args[0].equalsIgnoreCase("19")){
double x = p.getLocation().getX();
double y = p.getLocation().getY();
double z = p.getLocation().getZ();
String w = p.getWorld().getName();
plugin.config.set("Tribute_nineteen_spawn", x + "," + y + "," + z + "," + w);
plugin.saveConfig();
p.sendMessage(ChatColor.AQUA + "You have set the spawn location of Tribute nineteen!");
}
if(args[0].equalsIgnoreCase("20")){
double x = p.getLocation().getX();
double y = p.getLocation().getY();
double z = p.getLocation().getZ();
String w = p.getWorld().getName();
plugin.config.set("Tribute_twenty_spawn", x + "," + y + "," + z + "," + w);
plugin.saveConfig();
p.sendMessage(ChatColor.AQUA + "You have set the spawn location of Tribute twenty!");
}
if(args[0].equalsIgnoreCase("21")){
double x = p.getLocation().getX();
double y = p.getLocation().getY();
double z = p.getLocation().getZ();
String w = p.getWorld().getName();
plugin.config.set("Tribute_twentyone_spawn", x + "," + y + "," + z + "," + w);
plugin.saveConfig();
p.sendMessage(ChatColor.AQUA + "You have set the spawn location of Tribute twentyone!");
}
if(args[0].equalsIgnoreCase("22")){
double x = p.getLocation().getX();
double y = p.getLocation().getY();
double z = p.getLocation().getZ();
String w = p.getWorld().getName();
plugin.config.set("Tribute_twentytwo_spawn", x + "," + y + "," + z + "," + w);
plugin.saveConfig();
p.sendMessage(ChatColor.AQUA + "You have set the spawn location of Tribute twentytwo!");
}
if(args[0].equalsIgnoreCase("23")){
double x = p.getLocation().getX();
double y = p.getLocation().getY();
double z = p.getLocation().getZ();
String w = p.getWorld().getName();
plugin.config.set("Tribute_twentythree_spawn", x + "," + y + "," + z + "," + w);
plugin.saveConfig();
p.sendMessage(ChatColor.AQUA + "You have set the spawn location of Tribute twentythree!");
}
if(args[0].equalsIgnoreCase("24")){
double x = p.getLocation().getX();
double y = p.getLocation().getY();
double z = p.getLocation().getZ();
String w = p.getWorld().getName();
plugin.config.set("Tribute_twentyfour_spawn", x + "," + y + "," + z + "," + w);
plugin.saveConfig();
p.sendMessage(ChatColor.AQUA + "You have set the spawn location of Tribute twentyfour!");
}
}else{
p.sendMessage(ChatColor.RED + "You don't have permission!");
}
}
return false;
}
}

View File

@ -0,0 +1,122 @@
package me.Travja.HungerArena;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.entity.Projectile;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityTargetEvent;
import org.bukkit.event.player.*;
public class SpectatorListener implements Listener {
public Main plugin;
public SpectatorListener(Main m){
this.plugin = m;
}
@EventHandler
public void SpectatorDrops(PlayerDropItemEvent event){
Player p = event.getPlayer();
String pname = p.getName();
if(plugin.Watching.contains(pname)){
event.setCancelled(true);
p.sendMessage(ChatColor.RED + "You are spectating, you can't interfere with the game!");
}
}
@EventHandler
public void SpectatorInteractions(PlayerInteractEvent event){
Player p = event.getPlayer();
String pname = p.getName();
if(plugin.Watching.contains(pname)){
event.setCancelled(true);
p.sendMessage(ChatColor.RED + "You are spectating, you can't interfere with the game!");
}
}
@EventHandler
public void SpectatorItems(PlayerPickupItemEvent event){
Player p = event.getPlayer();
String pname = p.getName();
if(plugin.Watching.contains(pname)){
event.setCancelled(true);
p.sendMessage(ChatColor.RED + "You are spectating, you can't interfere with the game!");
}
}
@EventHandler
public void SpectatorPvP(EntityDamageByEntityEvent event){
Entity offense = event.getDamager();
if(offense instanceof Player){
Player Attacker = (Player) event.getDamager();
String attackerName = Attacker.getName();
if(plugin.Watching.contains(attackerName)){
event.setCancelled(true);
Attacker.sendMessage(ChatColor.RED + "You are spectating, you can't interfere with the game!");
}
}else if(event.getDamager() instanceof Projectile){
Projectile arrow = (Projectile) offense;
if(arrow.getShooter() instanceof Player){
Player BowMan = (Player) arrow.getShooter();
String bowManName = BowMan.getName();
if(plugin.Watching.contains(bowManName)){
event.setCancelled(true);
BowMan.sendMessage(ChatColor.RED + "You are spectating, you can't interfere with the game!");
}
}
}
}
@EventHandler
public void SpectatorBlockBreak(BlockBreakEvent event){
Player p = event.getPlayer();
String pname = p.getName();
if(plugin.Watching.contains(pname)){
event.setCancelled(true);
p.sendMessage(ChatColor.RED + "You are spectating, you can't interfere with the game!");
}
}
@EventHandler
public void SpectatorBlockPlace(BlockPlaceEvent event){
Player p = event.getPlayer();
String pname = p.getName();
if(plugin.Watching.contains(pname)){
event.setCancelled(true);
p.sendMessage(ChatColor.RED + "You are spectating, you can't interfere with the game!");
}
}
@EventHandler
public void SpectatorQuit(PlayerQuitEvent event){
Player p = event.getPlayer();
String pname = p.getName();
if(plugin.Watching.contains(pname)){
plugin.Watching.remove(pname);
String[] Spawncoords = plugin.config.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);
p.teleport(Spawn);
}
}
@EventHandler
public void MobNerf(EntityTargetEvent event){
Entity target = event.getTarget();
Entity le = event.getEntity();
if (le instanceof Player) {
return;
}
if(target instanceof Player){
String targetName = ((Player) target).getName();
if(plugin.Watching.contains(targetName)){
event.setTarget(null);
}
}
}
}

View File

@ -0,0 +1,102 @@
package me.Travja.HungerArena;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
public class SponsorCommands implements CommandExecutor {
public Main plugin;
public SponsorCommands(Main m) {
this.plugin = m;
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
if(cmd.getName().equalsIgnoreCase("Sponsor")){
if(sender instanceof Player){
Player p = (Player) sender;
String pname = p.getName();
String epname = p.getName();
if(p.hasPermission("HungerArena.Sponsor")){
if(!plugin.Playing.contains(epname)){
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.getServer().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.getName())){
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 don't have permission!");
}
}else if(sender instanceof ConsoleCommandSender){
if(args.length== 0){
sender.sendMessage(ChatColor.RED + "You didn't specify a tribute!");
return false;
}
if(args.length== 1){
sender.sendMessage(ChatColor.RED + "You didn't specify an item!");
}
if(args.length== 2){
sender.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")){
sender.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(!plugin.Playing.contains(target.getName())){
sender.sendMessage(ChatColor.RED + "That person isn't playing!");
}else{
sender.sendMessage(ChatColor.RED + "You can't sponsor yourself!");
target.sendMessage(ChatColor.AQUA + "You have been Sponsored!");
target.getInventory().addItem(sponsoritem);
sender.sendMessage("You have sponsored " + target.getName() + "!");
}
}
}
}
}
return false;
}
}

View File

@ -0,0 +1,23 @@
package me.Travja.HungerArena;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
/**
*
* @author YoshiGenius
*/
public class WinGamesListener implements Listener {
public Main plugin;
public WinGamesListener(Main m) {
this.plugin = m;
}
@EventHandler
public void onWin(PlayerWinGamesEvent evt) {
Player p = evt.getPlayer();
}
}

View File

@ -0,0 +1,63 @@
# default config.yml
# Message to display when the games start
Start_Message: '&bLet The Games Begin!'
# If the games should automatically restart at the end
Auto_Restart: 'false'
# If it should automatically start the countdown on warping
Auto_Start: 'false'
# If tributes need to type /ha confirm to join
Need_Confirm: 'true'
# What the reward for winning is
Reward:
ID: 264
Amount: 10
# What sponsors have to pay to sponsor tributes
Sponsor_Cost:
ID: 264
Amount: 1
# Whether or not the countdown will start upon warping.
Countdown: 'true'
Spawn_coords: 100,100,100,world
# If players will only talk to close players of the whole server
ChatClose: 'true'
# How close the players have to be to talk to them
ChatClose_Radius: 10
# Whether or not players can break blocks while playing
Protected_Arena: 'true'
# Whether or not players will be frozen when they are teleported to their positions
Frozen_Teleport: 'true'
# Whether or not thunder will sound upon a players death
Cannon_Death: 'true'
Tribute_one_spawn: 100,100,100
Tribute_two_spawn: 100,100,100
Tribute_three_spawn: 100,100,100
Tribute_four_spawn: 100,100,100
Tribute_five_spawn: 100,100,100
Tribute_six_spawn: 100,100,100
Tribute_seven_spawn: 100,100,100
Tribute_eight_spawn: 100,100,100
Tribute_nine_spawn: 100,100,100
Tribute_ten_spawn: 100,100,100
Tribute_eleven_spawn: 100,100,100
Tribute_twelve_spawn: 100,100,100
Tribute_thirteen_spawn: 100,100,100
Tribute_fourteen_spawn: 100,100,100
Tribute_fifteen_spawn: 100,100,100
Tribute_sixteen_spawn: 100,100,100
Tribute_seventeen_spawn: 100,100,100
Tribute_eighteen_spawn: 100,100,100
Tribute_nineteen_spawn: 100,100,100
Tribute_twenty_spawn: 100,100,100
Tribute_twentyone_spawn: 100,100,100
Tribute_twentytwo_spawn: 100,100,100
Tribute_twentythree_spawn: 100,100,100
Tribute_twentyfour_spawn: 100,100,100
# If /ha setspawn has been run
Spawn_set: 'false'
# True means give money to winner, false means don't.
Economy_Support: 'false'
# How much money to give the winner.
Economy_Reward:
Amount: 100
# Leave this. :)
Blocks_Destroyed:

View File

@ -0,0 +1,11 @@
name: HungerArena
main: me.Travja.HungerArena.Main
version: 1.3alpha
description: A lightweight and powerful plugin to help with playing The Hunger Games!
commands:
Ha:
description: Base command for HungerArena!
StartPoint:
description: Set the starting points for tributes.
Sponsor:
description: Sponsor a tribute.