Initial commit
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
package de.craftix.skywars.commands;
|
||||
|
||||
import de.craftix.skywars.maneger.Gamemaneger;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class Addspawn implements CommandExecutor {
|
||||
|
||||
private int spawncount = 0;
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String s, String[] strings) {
|
||||
if (sender instanceof Player){
|
||||
if (sender.hasPermission("skywars.setup")){
|
||||
Player p = (Player)sender;
|
||||
Gamemaneger.saveSpawn(p.getLocation(), spawncount);
|
||||
spawncount++;
|
||||
p.sendMessage("§aDu hast den " + spawncount + ". Spawn gesetzt");
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package de.craftix.skywars.commands;
|
||||
|
||||
import de.craftix.skywars.maneger.Gamemaneger;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class Setlobby implements CommandExecutor {
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String s, String[] strings) {
|
||||
if (sender instanceof Player){
|
||||
if (sender.hasPermission("skywars.setup")){
|
||||
Player p = (Player)sender;
|
||||
Gamemaneger.saveLobby(p.getLocation());
|
||||
p.sendMessage("§aDu hast die Lobby gesetzt");
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package de.craftix.skywars.commands;
|
||||
|
||||
import de.craftix.skywars.maneger.Gamemaneger;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class Setspec implements CommandExecutor {
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String s, String[] strings) {
|
||||
if (sender instanceof Player){
|
||||
if (sender.hasPermission("skywars.setup")){
|
||||
Player p = (Player)sender;
|
||||
Gamemaneger.saveSpec(p.getLocation());
|
||||
p.sendMessage("§aDu hast den Spectatorspawn gesetzt");
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package de.craftix.skywars.commands;
|
||||
|
||||
import de.craftix.skywars.general.Main;
|
||||
import de.craftix.skywars.maneger.Gamemaneger;
|
||||
import de.craftix.skywars.maneger.Gamestates;
|
||||
import de.craftix.skywars.maneger.Timer;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class Start implements CommandExecutor {
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String s, String[] strings) {
|
||||
if (sender.hasPermission("skywars.start")){
|
||||
if (Main.state == Gamestates.LOBBY){
|
||||
if (Bukkit.getOnlinePlayers().size() >= 2){
|
||||
Timer.stop();
|
||||
Gamemaneger.inGame();
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
81
Plugins/Old/SkyWars/src/de/craftix/skywars/general/Main.java
Normal file
81
Plugins/Old/SkyWars/src/de/craftix/skywars/general/Main.java
Normal file
@@ -0,0 +1,81 @@
|
||||
package de.craftix.skywars.general;
|
||||
|
||||
import de.craftix.skywars.commands.Addspawn;
|
||||
import de.craftix.skywars.commands.Setlobby;
|
||||
import de.craftix.skywars.commands.Setspec;
|
||||
import de.craftix.skywars.commands.Start;
|
||||
import de.craftix.skywars.listener.*;
|
||||
import de.craftix.skywars.maneger.Chestmaneger;
|
||||
import de.craftix.skywars.maneger.Gamemaneger;
|
||||
import de.craftix.skywars.maneger.Gamestates;
|
||||
import de.craftix.skywars.maneger.Kitmaneger;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class Main extends JavaPlugin {
|
||||
|
||||
private static Main plugin;
|
||||
public static Gamestates state;
|
||||
|
||||
public static ArrayList<Chestmaneger> chests = new ArrayList<>();
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
plugin = this;
|
||||
Gamemaneger.lobby();
|
||||
if (checkIfConfigured()) Gamemaneger.spawnCount = this.getConfig().getInt("Spawn.Count");
|
||||
setKits();
|
||||
setChests();
|
||||
|
||||
//Listeners
|
||||
PluginManager pm = Bukkit.getPluginManager();
|
||||
pm.registerEvents(new onChestOpen(), this);
|
||||
pm.registerEvents(new onJoin(), this);
|
||||
pm.registerEvents(new onQuit(), this);
|
||||
pm.registerEvents(new onDeath(), this);
|
||||
pm.registerEvents(new onLobby(), this);
|
||||
pm.registerEvents(new onChestBreak(), this);
|
||||
|
||||
//Commands
|
||||
getCommand("setlobby").setExecutor(new Setlobby());
|
||||
getCommand("addspawn").setExecutor(new Addspawn());
|
||||
getCommand("setspec").setExecutor(new Setspec());
|
||||
getCommand("start").setExecutor(new Start());
|
||||
}
|
||||
|
||||
public static Main getPlugin() { return plugin; }
|
||||
|
||||
public static boolean checkIfConfigured(){
|
||||
if (!Main.getPlugin().getConfig().contains("Lobby.World")){
|
||||
Bukkit.broadcastMessage("§6/setlobby");
|
||||
Bukkit.broadcastMessage("§6/addspawn");
|
||||
Bukkit.broadcastMessage("§6/setspec");
|
||||
Bukkit.broadcastMessage("§6Restarte den Server");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void setKits(){
|
||||
//Starter Kit
|
||||
Kitmaneger sKit = new Kitmaneger("§aStarter Kit", new ItemStack(Material.WOOD_PICKAXE));
|
||||
sKit.setArmor(Material.LEATHER_BOOTS, Material.LEATHER_LEGGINGS, Material.LEATHER_CHESTPLATE, Material.LEATHER_HELMET);
|
||||
sKit.setItem(0, Material.STONE_SWORD, 1, Enchantment.DAMAGE_ALL, 3);
|
||||
sKit.setItem(1, Material.STONE_PICKAXE, 1);
|
||||
sKit.setItem(2, Material.STONE_AXE, 1);
|
||||
sKit.setItem(8, Material.COOKED_BEEF, 32);
|
||||
}
|
||||
|
||||
private void setChests(){
|
||||
//Example
|
||||
Chestmaneger exa = new Chestmaneger();
|
||||
exa.addItem(Material.STONE, 64, 0);
|
||||
exa.addItem(Material.PUMPKIN_PIE, 16, 0);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package de.craftix.skywars.listener;
|
||||
|
||||
import de.craftix.skywars.general.Main;
|
||||
import de.craftix.skywars.maneger.Gamestates;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.BlockBreakEvent;
|
||||
|
||||
public class onChestBreak implements Listener {
|
||||
|
||||
@EventHandler
|
||||
public void onChestBreakEvent(BlockBreakEvent event){
|
||||
if (Main.state != Gamestates.INGAME) return;
|
||||
if (event.getBlock().getType().equals(Material.CHEST)) event.setCancelled(true);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package de.craftix.skywars.listener;
|
||||
|
||||
import de.craftix.skywars.general.Main;
|
||||
import de.craftix.skywars.maneger.Chestmaneger;
|
||||
import de.craftix.skywars.maneger.Gamemaneger;
|
||||
import de.craftix.skywars.maneger.Gamestates;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Chest;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
|
||||
public class onChestOpen implements Listener {
|
||||
|
||||
@EventHandler
|
||||
public void onChestOpenEvent(PlayerInteractEvent event){
|
||||
if (Main.state != Gamestates.INGAME) return;
|
||||
if (event.getClickedBlock().getType() != Material.CHEST) return;
|
||||
if (!Gamemaneger.inGame.contains(event.getPlayer())) return;
|
||||
Chest chest = (Chest) event.getClickedBlock();
|
||||
if (Chestmaneger.getChest(event.getClickedBlock().getLocation()) != null){
|
||||
Chestmaneger chestmaneger = Chestmaneger.getChest(event.getClickedBlock().getLocation());
|
||||
chest = chestmaneger.getInv(chest);
|
||||
}else {
|
||||
Chestmaneger chestmaneger = Chestmaneger.getRandom();
|
||||
chestmaneger.loc = event.getClickedBlock().getLocation();
|
||||
Main.chests.add(chestmaneger);
|
||||
chest = chestmaneger.getInv(chest);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package de.craftix.skywars.listener;
|
||||
|
||||
import de.craftix.skywars.general.Main;
|
||||
import de.craftix.skywars.maneger.Gamemaneger;
|
||||
import de.craftix.skywars.maneger.Gamestates;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.PlayerDeathEvent;
|
||||
|
||||
public class onDeath implements Listener {
|
||||
|
||||
@EventHandler
|
||||
public void onDeathEvent(PlayerDeathEvent event) {
|
||||
event.setDeathMessage(null);
|
||||
if (Main.state != Gamestates.INGAME) return;
|
||||
if (!Gamemaneger.inGame.contains(event.getEntity())) return;
|
||||
event.setDeathMessage("§aDer Spieler §6" + event.getEntity().getName() + " §a ist gestorben");
|
||||
Gamemaneger.inGame.remove(event.getEntity());
|
||||
if (Gamemaneger.inGame.size() > 1){
|
||||
event.getEntity().setGameMode(GameMode.SPECTATOR);
|
||||
event.getEntity().teleport(Gamemaneger.getSpec());
|
||||
}
|
||||
if (Gamemaneger.inGame.size() <= 1){
|
||||
event.getEntity().teleport(Gamemaneger.getLobby());
|
||||
Gamemaneger.restart(Gamemaneger.inGame.get(0));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
package de.craftix.skywars.listener;
|
||||
|
||||
import de.craftix.skywars.general.Main;
|
||||
import de.craftix.skywars.maneger.*;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
public class onJoin implements Listener {
|
||||
|
||||
@EventHandler
|
||||
public void onJoinEvent(PlayerJoinEvent event){
|
||||
if (!Main.checkIfConfigured()) return;
|
||||
event.getPlayer().getInventory().clear();
|
||||
event.getPlayer().getInventory().setHelmet(null);
|
||||
event.getPlayer().getInventory().setLeggings(null);
|
||||
event.getPlayer().getInventory().setChestplate(null);
|
||||
event.getPlayer().getInventory().setBoots(null);
|
||||
if (Main.state != Gamestates.INGAME){
|
||||
if (Main.state == Gamestates.LOBBY && Gamemaneger.inGame.size() < Gamemaneger.spawnCount){
|
||||
Gamemaneger.inGame.add(event.getPlayer());
|
||||
event.getPlayer().teleport(Gamemaneger.getLobby());
|
||||
event.setJoinMessage("§a>> §6" + event.getPlayer().getName());
|
||||
ItemStack kits = new ItemStack(Material.CHEST);
|
||||
ItemMeta kitsMeta = kits.getItemMeta();
|
||||
kitsMeta.setDisplayName("§aKits");
|
||||
kits.setItemMeta(kitsMeta);
|
||||
event.getPlayer().getInventory().setItem(4, kits);
|
||||
event.getPlayer().setGameMode(GameMode.SURVIVAL);
|
||||
}else {
|
||||
event.setJoinMessage(null);
|
||||
event.getPlayer().kickPlayer("§cDie Runde ist voll!");
|
||||
}
|
||||
}else {
|
||||
event.setJoinMessage(null);
|
||||
Gamemaneger.specs.add(event.getPlayer());
|
||||
event.getPlayer().setGameMode(GameMode.SPECTATOR);
|
||||
}
|
||||
double ram = Gamemaneger.spawnCount;
|
||||
if (Gamemaneger.spawnCount % 2 == 1) ram += 1;
|
||||
double count = ram / 2;
|
||||
if (Gamemaneger.inGame.size() >= count) Timer.start(0, 60);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onKlick(PlayerInteractEvent event){
|
||||
if (Main.state != Gamestates.LOBBY) return;
|
||||
if (event.getItem() == null) return;
|
||||
if (event.getItem().getItemMeta().getDisplayName().equals("§aKits")) event.getPlayer().openInventory(Kitmaneger.getLobbyInv());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onInvKlick(InventoryClickEvent event){
|
||||
if (Main.state != Gamestates.LOBBY) return;
|
||||
if (event.getClickedInventory() == null) return;
|
||||
if (!event.getClickedInventory().getTitle().equals("§aKits")) return;
|
||||
Playerkits.addPlayer((Player) event.getWhoClicked(), event.getCurrentItem().getItemMeta().getDisplayName());
|
||||
event.getWhoClicked().sendMessage("§aDu hast das Kit " + event.getCurrentItem().getItemMeta().getDisplayName() + " §a ausgewählt");
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
package de.craftix.skywars.listener;
|
||||
|
||||
import de.craftix.skywars.general.Main;
|
||||
import de.craftix.skywars.maneger.Gamestates;
|
||||
import de.craftix.skywars.maneger.Timer;
|
||||
import org.bukkit.entity.Player;
|
||||
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.EntityDamageEvent;
|
||||
import org.bukkit.event.entity.FoodLevelChangeEvent;
|
||||
import org.bukkit.event.player.PlayerDropItemEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.event.weather.WeatherChangeEvent;
|
||||
|
||||
public class onLobby implements Listener {
|
||||
|
||||
@EventHandler
|
||||
public void onBreakEvent(BlockBreakEvent event){
|
||||
if (Main.state != Gamestates.INGAME) event.setCancelled(true);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onBuildEvent(BlockPlaceEvent event){
|
||||
if (Main.state != Gamestates.INGAME) event.setCancelled(true);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onFoodEvent(FoodLevelChangeEvent event){
|
||||
if (Main.state != Gamestates.INGAME) event.setFoodLevel(25);
|
||||
if (Main.state == Gamestates.INGAME && Timer.hunger == false) event.setFoodLevel(25);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onDamageEvent(EntityDamageEvent event){
|
||||
if (Main.state != Gamestates.INGAME) event.setCancelled(true);
|
||||
if (Main.state == Gamestates.INGAME && Timer.pvp == false) event.setCancelled(true);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onWeatherEvent(WeatherChangeEvent event){
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onInteractEvent(PlayerInteractEvent event){
|
||||
if (Main.state != Gamestates.INGAME) event.setCancelled(true);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onDropEvent(PlayerDropItemEvent event){
|
||||
if (Main.state != Gamestates.INGAME) event.setCancelled(true);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package de.craftix.skywars.listener;
|
||||
|
||||
import de.craftix.skywars.general.Main;
|
||||
import de.craftix.skywars.maneger.Gamemaneger;
|
||||
import de.craftix.skywars.maneger.Gamestates;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
|
||||
public class onQuit implements Listener {
|
||||
|
||||
@EventHandler
|
||||
public void onQuitEvent(PlayerQuitEvent event){
|
||||
event.setQuitMessage(null);
|
||||
if (Gamemaneger.inGame.contains(event.getPlayer())){
|
||||
event.setQuitMessage("§c<< §6" + event.getPlayer().getName());
|
||||
}
|
||||
Gamemaneger.inGame.remove(event.getPlayer());
|
||||
Gamemaneger.specs.remove(event.getPlayer());
|
||||
if (Gamemaneger.inGame.size() <= 1 && Main.state == Gamestates.INGAME) Gamemaneger.restart(Gamemaneger.inGame.get(0));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package de.craftix.skywars.maneger;
|
||||
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class ChestItem {
|
||||
|
||||
public ItemStack item;
|
||||
public int slot;
|
||||
|
||||
public ChestItem(int slot, ItemStack item){
|
||||
this.slot = slot;
|
||||
this.item = item;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
package de.craftix.skywars.maneger;
|
||||
|
||||
import de.craftix.skywars.general.Main;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Chest;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.lang.reflect.Array;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Random;
|
||||
|
||||
public class Chestmaneger {
|
||||
|
||||
public static ArrayList<Chestmaneger> chests = new ArrayList<>();
|
||||
|
||||
public static Chestmaneger getRandom(){
|
||||
Random rand = new Random();
|
||||
if (chests.size() <= 1) return chests.get(0);
|
||||
return chests.get(rand.nextInt(chests.size() - 1));
|
||||
}
|
||||
|
||||
public static Chestmaneger getChest(Location loc){
|
||||
for (Chestmaneger chest : Main.chests){
|
||||
if (chest.loc == loc) return chest;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public Location loc;
|
||||
private int itemCount = 0;
|
||||
private ArrayList<ChestItem> items = new ArrayList<>();
|
||||
|
||||
public Chestmaneger(){
|
||||
chests.add(this);
|
||||
}
|
||||
|
||||
public void addItem(Material mat, int count, int subID){
|
||||
if (itemCount >= 9*3) return;
|
||||
boolean isFree = false;
|
||||
int slot = 0;
|
||||
while (!isFree){
|
||||
Random rand = new Random();
|
||||
slot = rand.nextInt(26);
|
||||
//if (inv.getItem(slot) == null) isFree = true;
|
||||
isFree = true;
|
||||
for (ChestItem item : items){
|
||||
if (item.slot == slot) isFree = false;
|
||||
}
|
||||
}
|
||||
items.add(new ChestItem(slot, new ItemStack(mat, count, (short) subID)));
|
||||
itemCount++;
|
||||
}
|
||||
|
||||
public void addItem(Material mat, int count, int subID, Enchantment enc, int level){
|
||||
if (itemCount >= 9*3) return;
|
||||
boolean isFree = false;
|
||||
int slot = 0;
|
||||
while (!isFree){
|
||||
Random rand = new Random();
|
||||
slot = rand.nextInt(23);
|
||||
isFree = true;
|
||||
for (ChestItem item : items){
|
||||
if (item.slot == slot) isFree = false;
|
||||
}
|
||||
}
|
||||
ItemStack i = new ItemStack(mat, count, (short) subID);
|
||||
i.addEnchantment(enc, level);
|
||||
items.add(new ChestItem(slot, i));
|
||||
itemCount++;
|
||||
}
|
||||
|
||||
public Chest getInv(Chest chest){
|
||||
for (ChestItem item : items){
|
||||
chest.getInventory().setItem(item.slot, item.item);
|
||||
}
|
||||
return chest;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,113 @@
|
||||
package de.craftix.skywars.maneger;
|
||||
|
||||
import de.craftix.skywars.general.Main;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class Gamemaneger {
|
||||
|
||||
public static ArrayList<Player> inGame = new ArrayList<>();
|
||||
public static ArrayList<Player> specs = new ArrayList<>();
|
||||
public static int spawnCount = 0;
|
||||
|
||||
private static FileConfiguration config = Main.getPlugin().getConfig();
|
||||
|
||||
public static void saveLobby(Location loc){
|
||||
config.set("Lobby.World", loc.getWorld().getName());
|
||||
config.set("Lobby.X", loc.getX());
|
||||
config.set("Lobby.Y", loc.getY());
|
||||
config.set("Lobby.Z", loc.getZ());
|
||||
config.set("Lobby.Yaw", loc.getYaw());
|
||||
config.set("Lobby.Pitch", loc.getPitch());
|
||||
Main.getPlugin().saveConfig();
|
||||
}
|
||||
|
||||
public static void saveSpec(Location loc){
|
||||
config.set("Spec.World", loc.getWorld().getName());
|
||||
config.set("Spec.X", loc.getX());
|
||||
config.set("Spec.Y", loc.getY());
|
||||
config.set("Spec.Z", loc.getZ());
|
||||
config.set("Spec.Yaw", loc.getYaw());
|
||||
config.set("Spec.Pitch", loc.getPitch());
|
||||
Main.getPlugin().saveConfig();
|
||||
}
|
||||
|
||||
public static void saveSpawn(Location loc, int id){
|
||||
spawnCount++;
|
||||
config.set("Spawn.Count", spawnCount);
|
||||
config.set("Spawn." + id + ".World", loc.getWorld().getName());
|
||||
config.set("Spawn." + id + ".X", loc.getX());
|
||||
config.set("Spawn." + id + ".Y", loc.getY());
|
||||
config.set("Spawn." + id + ".Z", loc.getZ());
|
||||
config.set("Spawn." + id + ".Yaw", loc.getYaw());
|
||||
config.set("Spawn." + id + ".Pitch", loc.getPitch());
|
||||
Main.getPlugin().saveConfig();
|
||||
}
|
||||
|
||||
public static Location getLobby(){
|
||||
World world = Bukkit.getWorld(config.getString("Lobby.World"));
|
||||
double x = config.getDouble("Lobby.X");
|
||||
double y = config.getDouble("Lobby.Y");
|
||||
double z = config.getDouble("Lobby.Z");
|
||||
float yaw = (float) config.getDouble("Lobby.Yaw");
|
||||
float pitch = (float) config.getDouble("Lobby.Pitch");
|
||||
return new Location(world, x, y, z, yaw, pitch);
|
||||
}
|
||||
|
||||
public static Location getSpec(){
|
||||
World world = Bukkit.getWorld(config.getString("Lobby.Spec"));
|
||||
double x = config.getDouble("Spec.X");
|
||||
double y = config.getDouble("Spec.Y");
|
||||
double z = config.getDouble("Spec.Z");
|
||||
float yaw = (float) config.getDouble("Spec.Yaw");
|
||||
float pitch = (float) config.getDouble("Spec.Pitch");
|
||||
return new Location(world, x, y, z, yaw, pitch);
|
||||
}
|
||||
|
||||
public static Location getSpawn(int id){
|
||||
World world = Bukkit.getWorld(config.getString("Spawn." + id + ".World"));
|
||||
double x = config.getDouble("Spawn." + id + ".X");
|
||||
double y = config.getDouble("Spawn." + id + ".Y");
|
||||
double z = config.getDouble("Spawn." + id + ".Z");
|
||||
float yaw = (float) config.getDouble("Spawn." + id + ".Yaw");
|
||||
float pitch = (float) config.getDouble("Spawn." + id + ".Pitch");
|
||||
return new Location(world, x, y, z, yaw, pitch);
|
||||
}
|
||||
|
||||
public static void lobby(){
|
||||
Main.state = Gamestates.LOBBY;
|
||||
}
|
||||
|
||||
public static void inGame(){
|
||||
Main.state = Gamestates.INGAME;
|
||||
for (int i = 1; i <= inGame.size(); i++){
|
||||
Player p = inGame.get(i - 1);
|
||||
p.teleport(getSpawn(i));
|
||||
Kitmaneger kit = Playerkits.getKit(p);
|
||||
if (kit == null){
|
||||
Playerkits.addPlayer(p, "§aStarter Kit");
|
||||
kit = Playerkits.getKit(p);
|
||||
}
|
||||
kit.setInv(p);
|
||||
}
|
||||
Timer.start(2, 150);
|
||||
}
|
||||
|
||||
public static void restart(Player winner){
|
||||
Main.state = Gamestates.RESTART;
|
||||
Bukkit.broadcastMessage("§aHerzlichen Glückwunsch §6" + winner.getName() + " §a!");
|
||||
for (Player all : Bukkit.getOnlinePlayers()){
|
||||
all.teleport(getLobby());
|
||||
all.setGameMode(GameMode.SURVIVAL);
|
||||
}
|
||||
Timer.start(1, 15);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package de.craftix.skywars.maneger;
|
||||
|
||||
public enum Gamestates {
|
||||
LOBBY,
|
||||
INGAME,
|
||||
RESTART
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package de.craftix.skywars.maneger;
|
||||
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class Kititem{
|
||||
|
||||
public ItemStack item;
|
||||
public int slot;
|
||||
|
||||
public Kititem(ItemStack item, int slot){
|
||||
this.item = item;
|
||||
this.slot = slot;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
package de.craftix.skywars.maneger;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class Kitmaneger {
|
||||
public static ArrayList<Kitmaneger> kits = new ArrayList<>();
|
||||
|
||||
public static Kitmaneger getKit (String name){
|
||||
for (Kitmaneger kit : kits){
|
||||
if (kit.name == name) return kit;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static int getKitID(String name){
|
||||
for (Kitmaneger kit : kits){
|
||||
if (kit.name == name) return kits.indexOf(kit);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static Inventory getLobbyInv(){
|
||||
Inventory inv;
|
||||
if (kits.size() > 9*3){
|
||||
inv = Bukkit.createInventory(null, 9*6, "§aKits");
|
||||
}else{
|
||||
inv = Bukkit.createInventory(null, 9*3, "§aKits");
|
||||
}
|
||||
int slot = 0;
|
||||
for (Kitmaneger kit : kits){
|
||||
inv.setItem(slot, kit.item);
|
||||
slot++;
|
||||
}
|
||||
return inv;
|
||||
}
|
||||
|
||||
public String name;
|
||||
public ItemStack item;
|
||||
|
||||
public ItemStack boots;
|
||||
public ItemStack leggins;
|
||||
public ItemStack chestplate;
|
||||
public ItemStack helmet;
|
||||
|
||||
public ArrayList<Kititem> items = new ArrayList<>();
|
||||
|
||||
public Kitmaneger(String name, ItemStack item){
|
||||
kits.add(this);
|
||||
ItemMeta im = item.getItemMeta();
|
||||
im.setDisplayName(name);
|
||||
item.setItemMeta(im);
|
||||
this.name = name;
|
||||
this.item = item;
|
||||
}
|
||||
|
||||
public void setArmor(Material boots, Material leggins, Material chestplate, Material helmet){
|
||||
this.boots = new ItemStack(boots);
|
||||
this.leggins = new ItemStack(leggins);
|
||||
this.chestplate = new ItemStack(chestplate);
|
||||
this.helmet = new ItemStack(helmet);
|
||||
}
|
||||
|
||||
public void setItem(int slot, Material mat, int count){
|
||||
items.add(new Kititem(new ItemStack(mat, count), slot));
|
||||
}
|
||||
|
||||
public void setItem(int slot, Material mat, int count, int subID){
|
||||
items.add(new Kititem(new ItemStack(mat, count, (short) subID), slot));
|
||||
}
|
||||
|
||||
public void setItem(int slot, Material mat, int count, Enchantment enc, int level){
|
||||
ItemStack item = new ItemStack(mat, count);
|
||||
item.addEnchantment(enc, level);
|
||||
items.add(new Kititem(item, slot));
|
||||
}
|
||||
|
||||
public void setItem(int slot, Material mat, int count, int subID, Enchantment enc, int level){
|
||||
ItemStack item = new ItemStack(mat, count, (short) subID);
|
||||
item.addEnchantment(enc, level);
|
||||
items.add(new Kititem(item, slot));
|
||||
}
|
||||
|
||||
public void setInv(Player p){
|
||||
p.getInventory().clear();
|
||||
for (Kititem item : items){
|
||||
p.getInventory().setItem(item.slot, item.item);
|
||||
}
|
||||
p.getInventory().setBoots(boots);
|
||||
p.getInventory().setLeggings(leggins);
|
||||
p.getInventory().setChestplate(chestplate);
|
||||
p.getInventory().setHelmet(helmet);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
package de.craftix.skywars.maneger;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class Playerkits {
|
||||
|
||||
public static ArrayList<Playerkits> playerkits = new ArrayList<>();
|
||||
|
||||
public static Kitmaneger getKit(Player p){
|
||||
Playerkits pk = null;
|
||||
for (Playerkits k : playerkits){
|
||||
if (k.player == p) pk = k;
|
||||
}
|
||||
if (pk == null) return null;
|
||||
return Kitmaneger.getKit(pk.kit);
|
||||
}
|
||||
|
||||
public static void addPlayer(Player p, String kit){
|
||||
Playerkits pk = null;
|
||||
for (Playerkits k : playerkits){
|
||||
if (k.player == p) pk = k;
|
||||
}
|
||||
playerkits.remove(pk);
|
||||
playerkits.add(new Playerkits(p, kit));
|
||||
}
|
||||
|
||||
public String kit;
|
||||
public Player player;
|
||||
|
||||
public Playerkits(Player p, String kit){
|
||||
this.kit = kit;
|
||||
this.player = p;
|
||||
playerkits.add(this);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
package de.craftix.skywars.maneger;
|
||||
|
||||
import de.craftix.skywars.general.Main;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class Timer {
|
||||
|
||||
public static int seconds = 0;
|
||||
|
||||
public static boolean pvp = false;
|
||||
public static boolean hunger = false;
|
||||
|
||||
public static void start(int id, int time){
|
||||
seconds = time;
|
||||
if (id == 0){ //Lobby
|
||||
Bukkit.getScheduler().cancelAllTasks();
|
||||
Bukkit.getScheduler().scheduleSyncRepeatingTask(Main.getPlugin(), new Runnable() {
|
||||
int cache = seconds;
|
||||
public void run() {
|
||||
switch (cache){
|
||||
case 60: case 30: case 15: case 10: case 5: case 4: case 3: case 2: case 1:
|
||||
Bukkit.broadcastMessage("§aDie Runde startet in §6" + cache + " §aSekunden");
|
||||
break;
|
||||
}
|
||||
if (cache <= 0){
|
||||
Gamemaneger.inGame();
|
||||
Bukkit.getScheduler().cancelAllTasks();
|
||||
}
|
||||
cache--;
|
||||
}
|
||||
}, 0, 20);
|
||||
}
|
||||
if (id == 1){ //Restart
|
||||
Bukkit.getScheduler().cancelAllTasks();
|
||||
Bukkit.getScheduler().scheduleSyncRepeatingTask(Main.getPlugin(), new Runnable() {
|
||||
int cache = seconds;
|
||||
public void run() {
|
||||
switch (cache){
|
||||
case 15: case 10: case 5: case 4: case 3: case 2: case 1:
|
||||
Bukkit.broadcastMessage("§aDer Server stoppt in §6" + cache + " §aSekunden");
|
||||
break;
|
||||
}
|
||||
if (cache <= 0){
|
||||
for (Player all : Bukkit.getOnlinePlayers()) all.kickPlayer(null);
|
||||
Bukkit.getServer().shutdown();
|
||||
}
|
||||
cache--;
|
||||
}
|
||||
}, 0, 20);
|
||||
}
|
||||
if (id == 2){ //InGame
|
||||
Bukkit.getScheduler().cancelAllTasks();
|
||||
Bukkit.getScheduler().scheduleSyncRepeatingTask(Main.getPlugin(), new Runnable() {
|
||||
int cache = seconds;
|
||||
public void run() {
|
||||
switch (cache){
|
||||
case 150:
|
||||
Bukkit.broadcastMessage("§aDie Schutzzeit endet in §62:30 §aMinuten");
|
||||
break;
|
||||
|
||||
case 120:
|
||||
Bukkit.broadcastMessage("§aDie Schutzzeit endet in §62:00 §aMinuten");
|
||||
break;
|
||||
case 90:
|
||||
Bukkit.broadcastMessage("§aDie Schutzzeit endet in §61:30 §aMinuten");
|
||||
break;
|
||||
case 60: case 30: case 15: case 10: case 5: case 4: case 3: case 2: case 1:
|
||||
Bukkit.broadcastMessage("§aDie Schutzzeit endet in §6" + cache + " §aSekunden");
|
||||
break;
|
||||
}
|
||||
if (cache <= 0){
|
||||
go();
|
||||
Bukkit.getScheduler().cancelAllTasks();
|
||||
}
|
||||
cache--;
|
||||
}
|
||||
}, 0, 20);
|
||||
}
|
||||
}
|
||||
|
||||
public static void stop(){
|
||||
Bukkit.getScheduler().cancelAllTasks();
|
||||
}
|
||||
|
||||
private static void go(){
|
||||
pvp = true;
|
||||
hunger = true;
|
||||
Bukkit.broadcastMessage("§aDas Spiel beginnt!");
|
||||
}
|
||||
|
||||
}
|
||||
10
Plugins/Old/SkyWars/src/plugin.yml
Normal file
10
Plugins/Old/SkyWars/src/plugin.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
main: de.craftix.skywars.general.Main
|
||||
version: 1.8.8
|
||||
name: SkyWars
|
||||
author: Tube Craft
|
||||
|
||||
commands:
|
||||
setlobby:
|
||||
addspawn:
|
||||
setspec:
|
||||
start:
|
||||
Reference in New Issue
Block a user