First commit.
This commit is contained in:
commit
2445281be8
8
.classpath
Normal file
8
.classpath
Normal 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
17
.project
Normal 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>
|
BIN
bin/me/Travja/HungerArena/BlockStorage.class
Normal file
BIN
bin/me/Travja/HungerArena/BlockStorage.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/Blocks.class
Normal file
BIN
bin/me/Travja/HungerArena/Blocks.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/ChatListener.class
Normal file
BIN
bin/me/Travja/HungerArena/ChatListener.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/Chests.class
Normal file
BIN
bin/me/Travja/HungerArena/Chests.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/CommandBlock.class
Normal file
BIN
bin/me/Travja/HungerArena/CommandBlock.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/DeathListener.class
Normal file
BIN
bin/me/Travja/HungerArena/DeathListener.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/FreezeListener.class
Normal file
BIN
bin/me/Travja/HungerArena/FreezeListener.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/HaCommands$1.class
Normal file
BIN
bin/me/Travja/HungerArena/HaCommands$1.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/HaCommands$10.class
Normal file
BIN
bin/me/Travja/HungerArena/HaCommands$10.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/HaCommands$11.class
Normal file
BIN
bin/me/Travja/HungerArena/HaCommands$11.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/HaCommands$12.class
Normal file
BIN
bin/me/Travja/HungerArena/HaCommands$12.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/HaCommands$13.class
Normal file
BIN
bin/me/Travja/HungerArena/HaCommands$13.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/HaCommands$14.class
Normal file
BIN
bin/me/Travja/HungerArena/HaCommands$14.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/HaCommands$15.class
Normal file
BIN
bin/me/Travja/HungerArena/HaCommands$15.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/HaCommands$16.class
Normal file
BIN
bin/me/Travja/HungerArena/HaCommands$16.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/HaCommands$17.class
Normal file
BIN
bin/me/Travja/HungerArena/HaCommands$17.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/HaCommands$18.class
Normal file
BIN
bin/me/Travja/HungerArena/HaCommands$18.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/HaCommands$19.class
Normal file
BIN
bin/me/Travja/HungerArena/HaCommands$19.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/HaCommands$2.class
Normal file
BIN
bin/me/Travja/HungerArena/HaCommands$2.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/HaCommands$20.class
Normal file
BIN
bin/me/Travja/HungerArena/HaCommands$20.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/HaCommands$21.class
Normal file
BIN
bin/me/Travja/HungerArena/HaCommands$21.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/HaCommands$22.class
Normal file
BIN
bin/me/Travja/HungerArena/HaCommands$22.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/HaCommands$23.class
Normal file
BIN
bin/me/Travja/HungerArena/HaCommands$23.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/HaCommands$24.class
Normal file
BIN
bin/me/Travja/HungerArena/HaCommands$24.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/HaCommands$25.class
Normal file
BIN
bin/me/Travja/HungerArena/HaCommands$25.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/HaCommands$26.class
Normal file
BIN
bin/me/Travja/HungerArena/HaCommands$26.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/HaCommands$3.class
Normal file
BIN
bin/me/Travja/HungerArena/HaCommands$3.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/HaCommands$4.class
Normal file
BIN
bin/me/Travja/HungerArena/HaCommands$4.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/HaCommands$5.class
Normal file
BIN
bin/me/Travja/HungerArena/HaCommands$5.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/HaCommands$6.class
Normal file
BIN
bin/me/Travja/HungerArena/HaCommands$6.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/HaCommands$7.class
Normal file
BIN
bin/me/Travja/HungerArena/HaCommands$7.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/HaCommands$8.class
Normal file
BIN
bin/me/Travja/HungerArena/HaCommands$8.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/HaCommands$9.class
Normal file
BIN
bin/me/Travja/HungerArena/HaCommands$9.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/HaCommands.class
Normal file
BIN
bin/me/Travja/HungerArena/HaCommands.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/JoinAndQuitListener$1.class
Normal file
BIN
bin/me/Travja/HungerArena/JoinAndQuitListener$1.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/JoinAndQuitListener$2.class
Normal file
BIN
bin/me/Travja/HungerArena/JoinAndQuitListener$2.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/JoinAndQuitListener$3.class
Normal file
BIN
bin/me/Travja/HungerArena/JoinAndQuitListener$3.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/JoinAndQuitListener.class
Normal file
BIN
bin/me/Travja/HungerArena/JoinAndQuitListener.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/Main.class
Normal file
BIN
bin/me/Travja/HungerArena/Main.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/PvP.class
Normal file
BIN
bin/me/Travja/HungerArena/PvP.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/Signs.class
Normal file
BIN
bin/me/Travja/HungerArena/Signs.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/SpawnsCommand.class
Normal file
BIN
bin/me/Travja/HungerArena/SpawnsCommand.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/SpectatorListener$1.class
Normal file
BIN
bin/me/Travja/HungerArena/SpectatorListener$1.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/SpectatorListener.class
Normal file
BIN
bin/me/Travja/HungerArena/SpectatorListener.class
Normal file
Binary file not shown.
BIN
bin/me/Travja/HungerArena/SponsorCommands.class
Normal file
BIN
bin/me/Travja/HungerArena/SponsorCommands.class
Normal file
Binary file not shown.
35
pom.xml
Normal file
35
pom.xml
Normal 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>
|
289
src/main/java/me/Travja/HungerArena/BlockStorage.java
Normal file
289
src/main/java/me/Travja/HungerArena/BlockStorage.java
Normal 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();
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
25
src/main/java/me/Travja/HungerArena/Blocks.java
Normal file
25
src/main/java/me/Travja/HungerArena/Blocks.java
Normal 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!");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
51
src/main/java/me/Travja/HungerArena/ChatListener.java
Normal file
51
src/main/java/me/Travja/HungerArena/ChatListener.java
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
81
src/main/java/me/Travja/HungerArena/Chests.java
Normal file
81
src/main/java/me/Travja/HungerArena/Chests.java
Normal 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!");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
27
src/main/java/me/Travja/HungerArena/CommandBlock.java
Normal file
27
src/main/java/me/Travja/HungerArena/CommandBlock.java
Normal 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!");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
166
src/main/java/me/Travja/HungerArena/DeathListener.java
Normal file
166
src/main/java/me/Travja/HungerArena/DeathListener.java
Normal 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");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
21
src/main/java/me/Travja/HungerArena/FreezeListener.java
Normal file
21
src/main/java/me/Travja/HungerArena/FreezeListener.java
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
1367
src/main/java/me/Travja/HungerArena/HaCommands.java
Normal file
1367
src/main/java/me/Travja/HungerArena/HaCommands.java
Normal file
File diff suppressed because it is too large
Load Diff
110
src/main/java/me/Travja/HungerArena/JoinAndQuitListener.java
Normal file
110
src/main/java/me/Travja/HungerArena/JoinAndQuitListener.java
Normal 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);
|
||||
}
|
||||
}
|
96
src/main/java/me/Travja/HungerArena/Main.java
Normal file
96
src/main/java/me/Travja/HungerArena/Main.java
Normal 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;
|
||||
}
|
||||
}
|
27
src/main/java/me/Travja/HungerArena/PlayerWinGamesEvent.java
Normal file
27
src/main/java/me/Travja/HungerArena/PlayerWinGamesEvent.java
Normal 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;
|
||||
}
|
||||
|
||||
}
|
24
src/main/java/me/Travja/HungerArena/PvP.java
Normal file
24
src/main/java/me/Travja/HungerArena/PvP.java
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
47
src/main/java/me/Travja/HungerArena/Signs.java
Normal file
47
src/main/java/me/Travja/HungerArena/Signs.java
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
243
src/main/java/me/Travja/HungerArena/SpawnsCommand.java
Normal file
243
src/main/java/me/Travja/HungerArena/SpawnsCommand.java
Normal 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;
|
||||
}
|
||||
|
||||
}
|
122
src/main/java/me/Travja/HungerArena/SpectatorListener.java
Normal file
122
src/main/java/me/Travja/HungerArena/SpectatorListener.java
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
102
src/main/java/me/Travja/HungerArena/SponsorCommands.java
Normal file
102
src/main/java/me/Travja/HungerArena/SponsorCommands.java
Normal 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;
|
||||
}
|
||||
}
|
23
src/main/java/me/Travja/HungerArena/WinGamesListener.java
Normal file
23
src/main/java/me/Travja/HungerArena/WinGamesListener.java
Normal 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();
|
||||
}
|
||||
|
||||
}
|
63
src/main/resources/config.yml
Normal file
63
src/main/resources/config.yml
Normal 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:
|
11
src/main/resources/plugin.yml
Normal file
11
src/main/resources/plugin.yml
Normal 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.
|
Loading…
x
Reference in New Issue
Block a user