Archived
Private
Public Access
1
0

Initial commit

This commit is contained in:
2022-09-04 12:45:01 +02:00
commit f4a01d6a69
11601 changed files with 4206660 additions and 0 deletions

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View 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);
}
}

View File

@@ -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);
}
}

View File

@@ -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);
}
}
}

View File

@@ -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));
}
}
}

View File

@@ -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);
}
}

View File

@@ -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);
}
}

View File

@@ -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));
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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);
}
}

View File

@@ -0,0 +1,7 @@
package de.craftix.skywars.maneger;
public enum Gamestates {
LOBBY,
INGAME,
RESTART
}

View File

@@ -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;
}
}

View File

@@ -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);
}
}

View File

@@ -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);
}
}

View File

@@ -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!");
}
}

View 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: