initial commit

This commit is contained in:
steevLP 2021-08-07 21:03:48 +02:00 committed by GitHub
commit 1f1149b383
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 704 additions and 0 deletions

4
config.yml Normal file
View File

@ -0,0 +1,4 @@
spawn: unset
spectator: unset
endLoc: unset
time: 600

6
plugin.yml Normal file
View File

@ -0,0 +1,6 @@
name: TridentWar
main: de.steev.tridentwar.main
version: 0.1
api-version: 1.13
commands:
tw:

View File

@ -0,0 +1,146 @@
package de.steev.tridentwar;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class command implements CommandExecutor {
// TODO: add permissions to the commands
private main plugin;
public command(main plugin){ this.plugin = plugin; }
@Override
public boolean onCommand(CommandSender commandSender, Command command, String s, String[] args) {
Player player = (Player) commandSender;
if(args.length > 0){
switch (args[0].toLowerCase()){
default:
commandSender.sendMessage(ChatColor.AQUA + "Steev's Trident War: " + ChatColor.RED + " Dieser Befehl ist nicht bekannt bitte gib /tw help ein");
break;
case "help":
player.sendMessage("======================= " + ChatColor.AQUA + "Steev's Trident War" + " =======================\n" +
ChatColor.AQUA + ChatColor.BOLD + "help: " + ChatColor.RESET + "Listet dir eine Hilfe des plugins auf\n" +
ChatColor.AQUA + ChatColor.BOLD + "start: " + ChatColor.RESET + "Zum starten eines Trident Wars\n" +
ChatColor.AQUA + ChatColor.BOLD + "stop: " + ChatColor.RESET + "Zum stopen eines Trident Wars\n"+
ChatColor.AQUA + ChatColor.BOLD + "leave: " + ChatColor.RESET + "Verlässt den Trident War\n"+
ChatColor.AQUA + ChatColor.BOLD + "setSpawn: " + ChatColor.RESET + "Setzt den anfangspunkt für alle Spieler\n" +
ChatColor.AQUA + ChatColor.BOLD + "setSpectate: " + ChatColor.RESET + "Setzt den spawn für gestorbene Spieler\n" +
ChatColor.AQUA + ChatColor.BOLD + "setEndLocation: " + ChatColor.RESET + "Setzt den spawn für alle Spieler nach dem Trident War");
break;
case "start":
if(commandSender.hasPermission("tw.admin")){
// checks if more then 1 person is online
if(Bukkit.getServer().getOnlinePlayers().size() >= 2){
// ensures that no war already is active
if(!plugin.eventActive){
plugin.eventActive = true; // Tells the plugin there is a war ongoing
for(Player p : Bukkit.getServer().getOnlinePlayers()){
p.sendMessage(ChatColor.AQUA + "Steev's Trident War: " + ChatColor.RED + " Ein Trident War beginnt!");
p.sendTitle(ChatColor.GREEN + "Beginnt!", ChatColor.GOLD + "Der Trident War beginnt.", 1, 20, 1);
// Teleports players to Spawn
if(plugin.playerDataConfig.get("spectator") != null){
p.teleport(((Location) plugin.playerDataConfig.get("spectator")));
}
}
warcontroller.StartTridentWar(plugin);
} else {
commandSender.sendMessage(ChatColor.AQUA + "Steev's Trident War: " + ChatColor.RED + " Ein Trident War ist bereits im Gange");
}
} else {
commandSender.sendMessage(ChatColor.AQUA + "Steev's Trident War: " + ChatColor.RED + "Allein kanst du keinen Trident War starten");
}
} else {
commandSender.sendMessage(ChatColor.AQUA + "Steev's Trident War: " + ChatColor.RED + " dir fehlen die Rechte dazu");
}
break;
case "stop":
if(commandSender.hasPermission("tw.admin")){
if(plugin.eventActive){
plugin.eventActive = false;
for(Player p : Bukkit.getOnlinePlayers()){
p.sendMessage(ChatColor.AQUA + "Steev's Trident War: " + ChatColor.RED + " Der Trident War endet!");
p.sendTitle("Ende!", "Der Trident war Endet.", 1, 20, 1);
}
warcontroller.StopTridentWar(plugin);
} else {
commandSender.sendMessage(ChatColor.AQUA + "Steev's Trident War: " + ChatColor.RED + " es ist kein Trident im Gange");
}
} else {
commandSender.sendMessage(ChatColor.AQUA + "Steev's Trident War: " + ChatColor.RED + " dir fehlen die Rechte dazu");
}
break;
case "leave":
plugin.playerDataConfig.set(((Player) commandSender).getPlayer().getUniqueId() + "", null);
if(plugin.playerDataConfig.get("endLoc") != "unset"){
((Player) commandSender).getPlayer().teleport(((Location)plugin.playerDataConfig.get("endLoc")));
}
// Check if enough players are in for a trident war
if(plugin.playerDataConfig.getKeys(false).size() < 2){
warcontroller.StopTridentWar(plugin);
// Message and teleport everyone if not
for(Player p : Bukkit.getServer().getOnlinePlayers()){
if(plugin.playerDataConfig.getString(p.getUniqueId() + ".name") != null){
p.sendMessage(ChatColor.AQUA + "Steev's Trident War: " + ChatColor.RED + " Ein Trident War beginnt!");
p.sendTitle(ChatColor.RED + "Abgebrochen!", ChatColor.RED + "Zu wenig Spieler.", 1, 20, 1);
// Teleports players to Spawn
if(plugin.playerDataConfig.get("endLoc") != null){
p.teleport(((Location) plugin.playerDataConfig.get("endLoc")));
}
}
}
}
commandSender.sendMessage(ChatColor.AQUA + "Steev's Trident War: " + ChatColor.RED + "Du hast den Trident war verlassen");
break;
case "setspawn":
if(commandSender.hasPermission("tw.admin")){
if(args[1].toLowerCase() == "unset"){
plugin.config.set("spawn", "unset");
plugin.saveDefaultConfig();
} else {
plugin.config.set("spawn", player.getLocation());
plugin.saveDefaultConfig();
}
} else {
commandSender.sendMessage(ChatColor.AQUA + "Steev's Trident War: " + ChatColor.RED + " dir fehlen die Rechte dazu");
}
break;
case "setspectate":
if(commandSender.hasPermission("tw.admin")){
if(args[1].toLowerCase() == "unset"){
plugin.config.set("spectator", "unset");
plugin.saveDefaultConfig();
} else {
plugin.config.set("spectator", player.getLocation());
plugin.saveDefaultConfig();
}
} else {
commandSender.sendMessage(ChatColor.AQUA + "Steev's Trident War: " + ChatColor.RED + " dir fehlen die Rechte dazu");
}
break;
case "setendlocation":
if(commandSender.hasPermission("tw.admin")){
if(args[1].toLowerCase() == "unset"){
plugin.config.set("endLoc", "unset");
plugin.saveDefaultConfig();
} else {
plugin.config.set("endLoc", player.getLocation());
plugin.saveDefaultConfig();
}
} else {
commandSender.sendMessage(ChatColor.AQUA + "Steev's Trident War: " + ChatColor.RED + " dir fehlen die Rechte dazu");
}
break;
}
}
return false;
}
}

View File

@ -0,0 +1,15 @@
package de.steev.tridentwar.data;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
public class Items {
public static ItemStack trident(){
ItemStack trident = new ItemStack(Material.TRIDENT);
ItemMeta meta = trident.getItemMeta();
meta.setDisplayName("Kriegs Dreizack");
trident.setItemMeta(meta);
return trident;
}
}

View File

@ -0,0 +1,95 @@
package de.steev.tridentwar.events;
import de.steev.tridentwar.data.Items;
import de.steev.tridentwar.main;
import de.steev.tridentwar.warcontroller;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
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;
import org.bukkit.inventory.ItemStack;
import java.util.UUID;
public class PlayerConnectionEvents implements Listener {
private main plugin;
public PlayerConnectionEvents(main plugin){
this.plugin = plugin;
}
@EventHandler
public void onPlayerJoin(PlayerJoinEvent event){
if(plugin.eventActive) {
// Scans player inventory for tridents to prevent multiple tridents
for(ItemStack is : event.getPlayer().getInventory()) {
try {
if(is.getItemMeta().getDisplayName().contains("Kriegs Dreizack")){
return;
}
} catch (Exception e){
// nothing happens
}
}
// Gives player needed tools for war
event.getPlayer().getInventory().addItem(Items.trident());
// messages the player about ongoing round
event.getPlayer().sendMessage(ChatColor.AQUA + "Steev's Trident War: " + "Achtung hier herscht grade krieg");
// Add player to the game
plugin.playerDataConfig.set( event.getPlayer().getUniqueId() + ".life", 4 );
plugin.playerDataConfig.set( event.getPlayer().getUniqueId() + ".name", event.getPlayer().getDisplayName());
plugin.saveplayerdata();
} else {
for(ItemStack is : event.getPlayer().getInventory().getContents()){
try {
if(is.getItemMeta() != null){
if(is.getItemMeta().getDisplayName().contains("Kriegs Dreizack")){
// System.out.println( is.getItemMeta().getDisplayName().contains("Kriegs Dreizack"));
event.getPlayer().getInventory().remove(is);
}
}
} catch (Exception e){
// this wont be catched
}
}
}
}
@EventHandler
public void onPlayerLeave(PlayerQuitEvent event){
if(plugin.eventActive) {
// stops war when less then 2 players are online
if(Bukkit.getServer().getOnlinePlayers().size() < 2){
warcontroller.StopTridentWar(plugin);
// Message and teleport everyone if not
for(Player p : Bukkit.getServer().getOnlinePlayers()){
if(plugin.playerDataConfig.getString(p.getUniqueId() + ".name") != null){
p.sendMessage(ChatColor.AQUA + "Steev's Trident War: " + ChatColor.RED + " Ein Trident War beginnt!");
p.sendTitle(ChatColor.RED + "Abgebrochen!", ChatColor.RED + "Zu wenig Spieler.", 1, 20, 1);
// Teleports players to Spawn
if(plugin.playerDataConfig.get("endLoc") != null){
p.teleport(((Location) plugin.playerDataConfig.get("endLoc")));
}
}
}
}
// Removes player from game
UUID uuid = event.getPlayer().getUniqueId();
plugin.playerDataConfig.set( "" + uuid, null);
plugin.saveplayerdata();
}else{
return;
}
}
}

View File

@ -0,0 +1,44 @@
package de.steev.tridentwar.events;
import de.steev.tridentwar.main;
import org.bukkit.Material;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerDropItemEvent;
import org.bukkit.inventory.ItemStack;
public class itemDrop implements Listener {
private main plugin;
public itemDrop(main plugin){
this.plugin = plugin;
}
// deletes trident from player drops
@EventHandler
public void onItemDrop(PlayerDeathEvent event){
for(ItemStack item : event.getDrops()){
try {
if(item.getItemMeta().getDisplayName() == "Kriegs Dreizack"){
item.setType(Material.AIR);
}
} catch (Exception e){
// Nothing gets handled here
}
}
}
// Stops players from droping the war trident
@EventHandler
public void onItemDrop(PlayerDropItemEvent event){
if(plugin.eventActive){
if(plugin.playerDataConfig.get(event.getPlayer().getUniqueId() + ".name") != null){
event.setCancelled(true);
} else {
return;
}
}
}
}

View File

@ -0,0 +1,161 @@
package de.steev.tridentwar.events;
import de.steev.tridentwar.data.Items;
import de.steev.tridentwar.main;
import de.steev.tridentwar.warcontroller;
import net.md_5.bungee.api.ChatMessageType;
import net.md_5.bungee.api.chat.TextComponent;
import org.bukkit.*;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.entity.Trident;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.ProjectileHitEvent;
import org.bukkit.inventory.ItemStack;
import java.util.UUID;
public class onHit implements Listener {
private main plugin;
public onHit(main plugin){
this.plugin = plugin;
}
@EventHandler
public void onTridentHit(ProjectileHitEvent event){
if(plugin.eventActive){
try {
if(event.getEntity().getShooter() instanceof Player){
if(event.getEntityType() == EntityType.TRIDENT){
if(event.getHitEntity() instanceof Player){
if(plugin.playerDataConfig.getString(((Player)event.getHitEntity()).getUniqueId() + ".life") != null){
UUID uuid = ((Player)event.getHitEntity()).getUniqueId();
int life = plugin.playerDataConfig.getInt(uuid + ".life") - 1;
// Detects when trident hits a not player block
event.getEntity().remove();
// Gives Player a Trident
((Player) event.getEntity().getShooter()).getInventory().addItem(Items.trident());
// play a "Ding" sound on the attackers side at hit
if(life == 4) {
((Player)event.getEntity().getShooter()).playSound(((Player)event.getEntity().getShooter()).getLocation(), Sound.ENTITY_ARROW_HIT_PLAYER, 1f, 0.5f);
} else if(life == 3) {
((Player)event.getEntity().getShooter()).playSound(((Player)event.getEntity().getShooter()).getLocation(), Sound.ENTITY_ARROW_HIT_PLAYER, 1f, 1f);
} else if(life == 2) {
((Player)event.getEntity().getShooter()).playSound(((Player)event.getEntity().getShooter()).getLocation(), Sound.ENTITY_ARROW_HIT_PLAYER, 1f, 1.5f);
} else if(life == 1) {
((Player)event.getEntity().getShooter()).playSound(((Player)event.getEntity().getShooter()).getLocation(), Sound.ENTITY_ARROW_HIT_PLAYER, 1f, 2f);
}
// Runs sound when a player gets hit
((Player)event.getHitEntity()).playSound(((Player)event.getHitEntity()).getLocation(), Sound.ENTITY_PLAYER_DEATH, 1f, 1f);
// Subtracts life and spams the chat with debug messages
plugin.playerDataConfig.set( uuid + ".life", life);
((Player)event.getHitEntity()).sendMessage(ChatColor.AQUA + "Steev's Trident War: " + ChatColor.RED + " du wurdest getroffen und hast noch: " + ChatColor.BOLD + life + ChatColor.RESET + ChatColor.RED + " Leben");
if(life == 4) {
((Player)event.getHitEntity()).spigot().sendMessage(ChatMessageType.ACTION_BAR, new TextComponent(ChatColor.GREEN + "Leben: " + life));
} else if(life < 1) {
((Player)event.getHitEntity()).spigot().sendMessage(ChatMessageType.ACTION_BAR, new TextComponent(ChatColor.YELLOW + "Leben: " + life));
} else if(life <= 1) {
((Player)event.getHitEntity()).spigot().sendMessage(ChatMessageType.ACTION_BAR, new TextComponent(ChatColor.RED + "Leben: " + life));
}
plugin.saveplayerdata();
// Handles Death
if( life == 0){
// Deletes player from Database
plugin.playerDataConfig.set(uuid.toString(), null);
plugin.saveplayerdata();
// Messages Player about Death
((Player)event.getHitEntity()).playSound(((Player)event.getHitEntity()).getLocation(), Sound.ENTITY_ENDER_DRAGON_GROWL, 1f, 1f);
((Player)event.getHitEntity()).sendTitle(ChatColor.RED + "Ausgeschieden!", ChatColor.RED + "Du bist aus dem Trident War ausgeschieden", 1, 20, 1);
// Deletes trident of people who died
for(Trident t : ((Player)event.getHitEntity()).getWorld().getEntitiesByClass(Trident.class)){
for(String pd : plugin.playerDataConfig.getKeys(false)) {
if(((Player)t.getShooter()).getDisplayName() == plugin.playerDataConfig.getString(pd + ".name")){
return;
}
}
t.remove();
}
// Checks if only one is alive
Bukkit.getLogger().info(ChatColor.GRAY + "[" + ChatColor.YELLOW + ChatColor.BOLD + "DEBUG" + ChatColor.RESET + ChatColor.GRAY + "]: is alive: " + plugin.playerDataConfig.getKeys(false).size());
if(plugin.playerDataConfig.getKeys(false).size() <= 1){
if(plugin.playerDataConfig.getKeys(false).size() > 0){
for(String pd : plugin.playerDataConfig.getKeys(false)) {
for (Player p : Bukkit.getOnlinePlayers()) {
// Message players about the winner
p.playSound(p.getLocation(), Sound.ENTITY_VILLAGER_YES, 1f, 1f);
p.sendTitle(ChatColor.GREEN + "ENDE!",ChatColor.GOLD + plugin.playerDataConfig.getString(pd + ".name") +" Hat den Trident War gewonnen!");
}
// for security loop all players once more and remove all tridents with meeting criteria
for(ItemStack is : Bukkit.getServer().getPlayer(plugin.playerDataConfig.getString(pd + ".name")).getInventory()) {
try {
if(is.getItemMeta().getDisplayName().contains("Kriegs Dreizack")){
Bukkit.getServer().getPlayer(plugin.playerDataConfig.getString(pd + ".name")).getInventory().remove(is);
}
} catch (Exception e){
// nothing happens
}
}
// Remove trident entity
for(Trident t : ((Player)event.getHitEntity()).getWorld().getEntitiesByClass(Trident.class)){
t.remove();
}
}
// TODO: make endlocation lobby porting
warcontroller.StopTridentWar(plugin);
} else {
((Player)event.getHitEntity()).sendMessage(ChatColor.AQUA + "Steev's Trident War: " + ChatColor.RED + " es gibt keinen Sieger!");
warcontroller.StopTridentWar(plugin);
}
}
// Sends Player to Spawn
if(plugin.config.get("spectator") != "unset"){ ((Player)event.getHitEntity()).teleport(((Location)plugin.config.get("spectator"))); }
}
} else {
event.setCancelled(true);
return;
}
} else {
// Detects when trident hits a not player block
event.getEntity().remove();
// Gives Player a Trident
((Player) event.getEntity().getShooter()).getInventory().addItem(Items.trident());
}
}
}
} catch (Exception e){
// Nothing to print here
// this would only happen when no entity should be an entity
}
// disables damage
event.setCancelled(true);
} else {
return;
}
}
}

View File

@ -0,0 +1,52 @@
package de.steev.tridentwar.events;
import de.steev.tridentwar.data.Items;
import de.steev.tridentwar.main;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.ProjectileLaunchEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.scheduler.BukkitTask;
import java.util.HashMap;
import java.util.UUID;
public class onProjectileLaunch implements Listener {
private main plugin;
public HashMap<UUID, BukkitTask> tasks = new HashMap<UUID, BukkitTask>();
public onProjectileLaunch(main plugin){
this.plugin = plugin;
}
@EventHandler
public void onProjectileLaunch(ProjectileLaunchEvent event){
try {
tasks.get(((Player)event.getEntity().getShooter()).getUniqueId()).cancel();
} catch (Exception e){
// eigentlich sollte hier jetzt error handling passieren, aber .
}
BukkitTask task = Bukkit.getScheduler().runTaskLater(plugin, new Runnable() {
@Override
public void run() {
if(plugin.eventActive){
for(ItemStack is : ((Player)event.getEntity().getShooter()).getInventory()) {
try {
if(is.getItemMeta().getDisplayName().contains("Kriegs Dreizack")){
return;
}
} catch (Exception e){
// nothing happens
}
}
// When no trident was found give a new trident to the player
((Player)event.getEntity().getShooter()).getInventory().addItem(Items.trident());
}
}
},200);
tasks.put(((Player)event.getEntity().getShooter()).getUniqueId(), task);
}
}

View File

@ -0,0 +1,51 @@
package de.steev.tridentwar.events;
import de.steev.tridentwar.data.Items;
import de.steev.tridentwar.main;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerRespawnEvent;
import org.bukkit.inventory.ItemStack;
public class playerRespawn implements Listener {
private main plugin;
public playerRespawn(main plugin) {
this.plugin = plugin;
}
@EventHandler
public void onPlayerRespawn(PlayerRespawnEvent event){
Player p = event.getPlayer();
for(String pd : plugin.playerDataConfig.getKeys(false)){
if(plugin.playerDataConfig.getString(event.getPlayer().getUniqueId() + ".name") == p.getDisplayName()){
for(ItemStack is : p.getInventory()) {
try {
if(is.getItemMeta().getDisplayName().contains("Kriegs Dreizack")){
return;
}
} catch (Exception e){
// nothing happens
}
}
p.getInventory().addItem(Items.trident());
return;
}
}
// when a player respawns remove trident from inventory
for(ItemStack is : p.getInventory()) {
try {
if(is.getItemMeta().getDisplayName().contains("Kriegs Dreizack")){
p.getInventory().remove(is);
}
} catch (Exception e){
// nothing happens
}
}
}
}

View File

@ -0,0 +1,84 @@
package de.steev.tridentwar;
import de.steev.tridentwar.events.*;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;
import java.io.File;
import java.io.IOException;
public class main extends JavaPlugin implements Listener {
public static boolean eventActive = false;
public FileConfiguration config = this.getConfig();
public static int alive = 0;
// Custom Playerdata File
public static File playerdata;
public static FileConfiguration playerDataConfig;
public static final String playerdatafilename = "game.yml";
public void onEnable(){
this.getLogger().info(ChatColor.AQUA + "Steev's Trident War: " + ChatColor.YELLOW + " Plugin lädt");
// Registers Events
this.getLogger().info(ChatColor.AQUA + "Steev's Trident War: " + ChatColor.YELLOW + " Registriere Events");
this.getServer().getPluginManager().registerEvents(this, this);
this.getServer().getPluginManager().registerEvents(new onHit(this), this);
this.getServer().getPluginManager().registerEvents(new itemDrop(this), this);
this.getServer().getPluginManager().registerEvents(new onProjectileLaunch(this), this);
this.getServer().getPluginManager().registerEvents(new PlayerConnectionEvents(this), this);
this.getServer().getPluginManager().registerEvents(new playerRespawn(this), this);
// Registers Commands
this.getLogger().info(ChatColor.AQUA + "Steev's Trident War: " + ChatColor.YELLOW + " Lade Befehle");
this.getCommand("tw").setExecutor(new command(this));
/*
* ====================================================
* # Deletes old game.yml from previus plugin session #
* ====================================================
*/
// Writes a file with playername, uuid and playermods
playerdata = new File(this.getDataFolder(), playerdatafilename);
try{
// Check for already existing file
if(playerdata.exists()){
// Delete the file if it does exist
playerdata.delete();
this.getLogger().info(ChatColor.AQUA + "Steev's Trident War: " + ChatColor.YELLOW + " game.yml wird neu erstellt");
}
}catch (Exception e){
this.getLogger().warning("Error while creating File\n===================================================\n" + e);
}
playerDataConfig = YamlConfiguration.loadConfiguration(playerdata);
saveplayerdata();
saveDefaultConfig();
}
public void onDisable(){
this.getLogger().info(ChatColor.AQUA + "Steev's Trident War: " + ChatColor.YELLOW + " Plugin fährt runter");
}
/*
* ================================
* # File Handler #
* ================================
*/
/** Handles Player data */
public static void saveplayerdata(){
try {
playerDataConfig.save(playerdata);
} catch (IOException e) {
Bukkit.getLogger().warning("Unable to save " + playerdatafilename); // shouldn't really happen, but save throws the exception
}
}
}

View File

@ -0,0 +1,46 @@
package de.steev.tridentwar;
import de.steev.tridentwar.data.Items;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
public class warcontroller {
/** Handles Starting the Trident War */
public static void StartTridentWar(main plugin) {
// TODO: set everyone in adventure
plugin.alive = Bukkit.getOnlinePlayers().size();
// TODO: Create Bossbar with timer in it
for (Player p : Bukkit.getOnlinePlayers()) {
p.getInventory().addItem(Items.trident());
plugin.playerDataConfig.set(p.getUniqueId() + ".life", 4);
plugin.playerDataConfig.set(p.getUniqueId() + ".name", p.getDisplayName());
}
plugin.saveplayerdata();
}
/** Handles stoping a trident war */
public static void StopTridentWar(main plugin) {
// TODO set everyone to default gamemode
plugin.alive = 0;
plugin.eventActive = false;
for (Player p : Bukkit.getOnlinePlayers()) {
for(ItemStack is : p.getInventory().getContents()){
try {
if(is.getItemMeta() != null){
if(is.getItemMeta().getDisplayName().contains("Kriegs Dreizack")){
p.getInventory().remove(is);
}
}
} catch (Exception e){
// this wont be catched
}
}
plugin.playerDataConfig.set(p.getUniqueId() + "", null);
}
plugin.saveplayerdata();
}
}