moved code to new structure
This commit is contained in:
@ -1,14 +1,12 @@
|
||||
package de.steev.bm;
|
||||
|
||||
import de.steev.bm.Commands.back;
|
||||
import de.steev.bm.changes.interaction.Item_Recipy_Override;
|
||||
import de.steev.bm.events.BedEvent;
|
||||
import de.steev.bm.events.DeathEvent;
|
||||
import de.steev.bm.events.InteractEvent;
|
||||
import de.steev.bm.events.KillEvent;
|
||||
import de.steev.bm.Listener.BedListener;
|
||||
import de.steev.bm.Listener.InteractListener;
|
||||
import de.steev.bm.Listener.KillListener;
|
||||
import de.steev.bm.Manager.GameManager;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
@ -22,7 +20,7 @@ import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.UUID;
|
||||
|
||||
public class main extends JavaPlugin implements Listener {
|
||||
public class BetterMinecraft extends JavaPlugin implements Listener {
|
||||
|
||||
// Global Variables that might come helpfull later
|
||||
public int playerInBed = 0;
|
||||
@ -30,45 +28,34 @@ public class main extends JavaPlugin implements Listener {
|
||||
String version = "1.2";
|
||||
|
||||
// Custom Playerdata File
|
||||
public File playerdata;
|
||||
public FileConfiguration playerDataConfig;
|
||||
public final String playerdatafilename = "playerdata.yml";
|
||||
private File playerdata;
|
||||
private FileConfiguration playerDataConfig;
|
||||
private final String playerdatafilename = "playerdata.yml";
|
||||
private static String prefix = ChatColor.GRAY + "[" + ChatColor.AQUA + "BetterMinecraft" + ChatColor.GRAY + "]";
|
||||
|
||||
private GameManager gameManager;
|
||||
|
||||
// Handles initialisation
|
||||
public void onEnable() {
|
||||
// Messaging
|
||||
this.getLogger().info(ChatColor.AQUA + "Plugin Startet");
|
||||
this.getLogger().info(prefix + ChatColor.WHITE + "Plugin Startet");
|
||||
this.getLogger().info(prefix + ChatColor.WHITE + "Initializing Gamemanager");
|
||||
gameManager = new GameManager(this);
|
||||
|
||||
// Registers Events
|
||||
this.getLogger().info(ChatColor.AQUA + "Lade Events");
|
||||
this.getServer().getPluginManager().registerEvents(new BedEvent(this), this);
|
||||
this.getServer().getPluginManager().registerEvents(new KillEvent(this), this);
|
||||
this.getServer().getPluginManager().registerEvents(new InteractEvent(this), this);
|
||||
this.getServer().getPluginManager().registerEvents(new DeathEvent(this), this);
|
||||
this.getLogger().info(prefix + ChatColor.WHITE + "Lade Events");
|
||||
this.getServer().getPluginManager().registerEvents(new BedListener(this.gameManager), this);
|
||||
this.getServer().getPluginManager().registerEvents(new KillListener(this.gameManager), this);
|
||||
this.getServer().getPluginManager().registerEvents(new InteractListener(this.gameManager), this);
|
||||
this.getServer().getPluginManager().registerEvents(this, this);
|
||||
|
||||
this.getCommand("back").setExecutor(new back(this));
|
||||
this.getCommand("back").setExecutor(new back(this.gameManager));
|
||||
|
||||
// PlayerData
|
||||
playerdata = new File(this.getDataFolder(), playerdatafilename);
|
||||
playerDataConfig = YamlConfiguration.loadConfiguration(playerdata);
|
||||
saveplayerdata();
|
||||
|
||||
// More Messaging
|
||||
this.getLogger().info(ChatColor.AQUA + "Erstelle Rezepte");
|
||||
|
||||
Item_Recipy_Override Saddle = new Item_Recipy_Override(this, "Saddle", Material.SADDLE, 1);
|
||||
char[] s_ing = { 'L', 'S', 'I' };
|
||||
String[] s_rec = { "LLL", "LSL", " I " };
|
||||
Material[] s_mat = { Material.LEATHER, Material.STRING, Material.IRON_NUGGET };
|
||||
Saddle.register_recipy(s_ing, s_mat, s_rec);
|
||||
|
||||
Item_Recipy_Override Wool = new Item_Recipy_Override(this, "String", Material.STRING, 8);
|
||||
char[] w_ing = { 'W', 'F', };
|
||||
String[] w_rec = { " W ", "WFW", " W " };
|
||||
Material[] w_mat = { Material.WHITE_WOOL, Material.FLINT };
|
||||
Wool.register_recipy(w_ing, w_mat, w_rec);
|
||||
|
||||
// More Messaging
|
||||
this.getLogger().info(ChatColor.AQUA + "Ich bin Fertig :D");
|
||||
}
|
||||
@ -101,6 +88,9 @@ public class main extends JavaPlugin implements Listener {
|
||||
public FileConfiguration getPlayerDataConfig(){
|
||||
return this.playerDataConfig;
|
||||
}
|
||||
public static String LoggerPrefix(){
|
||||
return prefix;
|
||||
}
|
||||
|
||||
public void onDisable() {
|
||||
// Even more Messaging
|
@ -1,6 +1,7 @@
|
||||
package de.steev.bm.Commands;
|
||||
|
||||
import de.steev.bm.main;
|
||||
import de.steev.bm.BetterMinecraft;
|
||||
import de.steev.bm.Manager.GameManager;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
@ -8,10 +9,10 @@ import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class back implements CommandExecutor {
|
||||
main plugin;
|
||||
private GameManager gameManager;
|
||||
|
||||
public back(main plugin) {
|
||||
this.plugin = plugin;
|
||||
public back(GameManager gameManager) {
|
||||
this.gameManager = gameManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -19,9 +20,9 @@ public class back implements CommandExecutor {
|
||||
Player player = (Player) commandSender.getServer().getPlayer(commandSender.getName());
|
||||
Location lastDeath;
|
||||
try {
|
||||
lastDeath = plugin.playerDataConfig.getLocation(player.getUniqueId() + ".death");
|
||||
lastDeath = this.gameManager.getPlugin().getPlayerDataConfig().getLocation(player.getUniqueId() + ".death");
|
||||
player.teleport(lastDeath);
|
||||
plugin.playerDataConfig.set(player.getUniqueId() + ".death", null);
|
||||
this.gameManager.getPlugin().getPlayerDataConfig().set(player.getUniqueId() + ".death", null);
|
||||
commandSender.sendMessage("Du wurdest Teleportiert. Dein todespunkt ist nun entfernt worden.");
|
||||
} catch (Exception ex) {
|
||||
commandSender.sendMessage("Tot nicht gefunden!");
|
||||
|
@ -1,6 +1,6 @@
|
||||
package de.steev.bm.changes.interaction;
|
||||
package de.steev.bm.Interaction;
|
||||
|
||||
import de.steev.bm.main;
|
||||
import de.steev.bm.BetterMinecraft;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.event.entity.EntityDeathEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
@ -14,7 +14,7 @@ public class Death {
|
||||
* @param drops the dropping items
|
||||
* @param plugin plugin reference
|
||||
*/
|
||||
public static void onAnimalDeath(int[] amount, Material[] drops, main plugin, EntityDeathEvent event){
|
||||
public static void onAnimalDeath(int[] amount, Material[] drops, BetterMinecraft plugin, EntityDeathEvent event){
|
||||
|
||||
// Random Drop amount generation DO NOT TOUCH!!!!
|
||||
int i1_amnt = ThreadLocalRandom.current().nextInt(1, amount[0] + 1);
|
@ -1,6 +1,6 @@
|
||||
package de.steev.bm.changes.interaction;
|
||||
package de.steev.bm.Interaction;
|
||||
|
||||
import de.steev.bm.main;
|
||||
import de.steev.bm.BetterMinecraft;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.NamespacedKey;
|
||||
@ -9,7 +9,7 @@ import org.bukkit.inventory.ShapedRecipe;
|
||||
|
||||
public class Item_Recipy_Override {
|
||||
|
||||
main plugin;
|
||||
BetterMinecraft plugin;
|
||||
NamespacedKey item;
|
||||
static ShapedRecipe rec_item;
|
||||
|
||||
@ -20,7 +20,7 @@ public class Item_Recipy_Override {
|
||||
* @param result the dropping item
|
||||
* @param amount the droprate
|
||||
*/
|
||||
public Item_Recipy_Override(main plugin, String Item, Material result, int amount){
|
||||
public Item_Recipy_Override(BetterMinecraft plugin, String Item, Material result, int amount){
|
||||
this.plugin = plugin;
|
||||
item = new NamespacedKey(plugin, Item);
|
||||
ItemStack itemStack = new ItemStack(result);
|
@ -1,22 +1,21 @@
|
||||
package de.steev.bm.changes.interaction;
|
||||
package de.steev.bm.Interaction;
|
||||
|
||||
import de.steev.bm.main;
|
||||
import de.steev.bm.BetterMinecraft;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.data.Ageable;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class replanting {
|
||||
|
||||
private main plugin;
|
||||
private BetterMinecraft plugin;
|
||||
|
||||
/**
|
||||
* event constructor
|
||||
* @param plugin plugin instance
|
||||
*/
|
||||
public replanting(main plugin) {
|
||||
public replanting(BetterMinecraft plugin) {
|
||||
plugin.getLogger().info("replanting handler Registered");
|
||||
this.plugin = plugin;
|
||||
}
|
53
src/main/java/de/steev/bm/Listener/BedListener.java
Normal file
53
src/main/java/de/steev/bm/Listener/BedListener.java
Normal file
@ -0,0 +1,53 @@
|
||||
package de.steev.bm.Listener;
|
||||
|
||||
import de.steev.bm.BetterMinecraft;
|
||||
import de.steev.bm.Manager.GameManager;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerBedEnterEvent;
|
||||
import org.bukkit.event.player.PlayerBedLeaveEvent;
|
||||
|
||||
public class BedListener implements Listener {
|
||||
|
||||
private GameManager gameManager;
|
||||
|
||||
public BedListener(GameManager gameManager) {
|
||||
gameManager.getPlugin().getLogger().info("Bed Listener Registered");
|
||||
this.gameManager = gameManager;
|
||||
}
|
||||
|
||||
@EventHandler // Adding to the Player Variable
|
||||
public void onPlayerBedEnter(PlayerBedEnterEvent event) {
|
||||
final World world = event.getPlayer().getWorld();
|
||||
if(world.getTime() >= 13000 || world.getThunderDuration() > 0) {
|
||||
this.gameManager.getPlugin().playerInBed++;
|
||||
// Checks if enough Players (currentSleeping >= OnlinePlayerAmount/2) are Sleeping
|
||||
if(this.gameManager.getPlugin().playerInBed >= (int)this.gameManager.getPlugin().getServer().getOnlinePlayers().size()/2) {
|
||||
// Delayed Task for detecting useless entries
|
||||
Bukkit.getScheduler().scheduleSyncDelayedTask(this.gameManager.getPlugin(), new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if(gameManager.getPlugin().playerInBed >= (int)gameManager.getPlugin().getServer().getOnlinePlayers().size()/2) {
|
||||
world.setTime(0);
|
||||
world.setWeatherDuration(7 * 24000);
|
||||
}
|
||||
}
|
||||
}, 20L);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler // Subtracting to the Player Variable
|
||||
public void onPlayerBedLeave(PlayerBedLeaveEvent event) {
|
||||
// Subtraction from the PlayerInBed variable
|
||||
if(this.gameManager.getPlugin().playerInBed > 0) {
|
||||
this.gameManager.getPlugin().playerInBed--;
|
||||
// Failsafe to prevent integer underflow
|
||||
}else if(this.gameManager.getPlugin().playerInBed > 0) {
|
||||
this.gameManager.getPlugin().playerInBed = 0;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -1,7 +1,8 @@
|
||||
package de.steev.bm.events;
|
||||
package de.steev.bm.Listener;
|
||||
|
||||
import de.steev.bm.changes.interaction.replanting;
|
||||
import de.steev.bm.main;
|
||||
import de.steev.bm.BetterMinecraft;
|
||||
import de.steev.bm.Interaction.replanting;
|
||||
import de.steev.bm.Manager.GameManager;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
@ -10,12 +11,12 @@ import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.Action;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
|
||||
public class InteractEvent implements Listener {
|
||||
public class InteractListener implements Listener {
|
||||
private GameManager gameManager;
|
||||
|
||||
private main plugin;
|
||||
|
||||
public InteractEvent(main plugin){
|
||||
this.plugin = plugin;
|
||||
public InteractListener(GameManager gameManager){
|
||||
gameManager.getPlugin().getLogger().info("Initializing Interaction Listener");
|
||||
this.gameManager = gameManager;
|
||||
}
|
||||
|
||||
@EventHandler
|
44
src/main/java/de/steev/bm/Listener/KillListener.java
Normal file
44
src/main/java/de/steev/bm/Listener/KillListener.java
Normal file
@ -0,0 +1,44 @@
|
||||
package de.steev.bm.Listener;
|
||||
|
||||
import de.steev.bm.Manager.GameManager;
|
||||
import de.steev.bm.Interaction.Death;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Animals;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityDeathEvent;
|
||||
import java.util.UUID;
|
||||
|
||||
public class KillListener implements Listener {
|
||||
|
||||
private GameManager gameManager;
|
||||
|
||||
public KillListener(GameManager gameManager) {
|
||||
gameManager.getPlugin().getLogger().info("Mob Death events Registered");
|
||||
this.gameManager = gameManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements drops on death and can handle other deaths
|
||||
* @param event the parsed event on any death
|
||||
*/
|
||||
@EventHandler
|
||||
public void onEntityDeath(EntityDeathEvent event) {
|
||||
int[] amounts;
|
||||
Material[] drops;
|
||||
|
||||
if(event.getEntity() instanceof Player){
|
||||
Location death = ((Player) event.getEntity()).getPlayer().getLocation();
|
||||
UUID uuid = ((Player) event.getEntity()).getPlayer().getUniqueId();
|
||||
this.gameManager.getPlugin().getPlayerDataConfig().set("" + uuid + ".death", death);
|
||||
} else if(event.getEntity() instanceof Animals) {
|
||||
if(event.getEntity().toString() == "CraftPig"){
|
||||
amounts = new int[]{ 2,2 };
|
||||
drops = new Material[]{Material.LEATHER, Material.PORKCHOP};
|
||||
Death.onAnimalDeath(amounts, drops, this.gameManager.getPlugin(), event);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
57
src/main/java/de/steev/bm/Manager/GameManager.java
Normal file
57
src/main/java/de/steev/bm/Manager/GameManager.java
Normal file
@ -0,0 +1,57 @@
|
||||
package de.steev.bm.Manager;
|
||||
|
||||
import de.steev.bm.BetterMinecraft;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
/**
|
||||
* Gamemanager controlls the plugins game logic
|
||||
*/
|
||||
public class GameManager {
|
||||
|
||||
private BetterMinecraft plugin;
|
||||
private RecipyManager recipyManager;
|
||||
private PlayerManager playerManager;
|
||||
|
||||
/**
|
||||
* initilizes the Gamemanager and all systems beneath it
|
||||
* @param plugin the plugin reference
|
||||
*/
|
||||
public GameManager(BetterMinecraft plugin) {
|
||||
plugin.getLogger().info("Initializing Gamemanager");
|
||||
this.plugin = plugin;
|
||||
|
||||
this.plugin.getLogger().info("Moving logger to internal plugin reference");
|
||||
this.plugin.getLogger().info("Initilizing other managers");
|
||||
|
||||
this.recipyManager = new RecipyManager(this);
|
||||
this.playerManager = new PlayerManager(this);
|
||||
|
||||
this.plugin.getLogger().info("registring Recipies");
|
||||
this.plugin.getLogger().info("saddle");
|
||||
char[] s_ing = { 'L', 'S', 'I' };
|
||||
String[] s_rec = { "LLL", "LSL", " I " };
|
||||
Material[] s_mat = { Material.LEATHER, Material.STRING, Material.IRON_NUGGET };
|
||||
this.recipyManager.RegisterNew(s_ing, s_mat, s_rec, 1, Material.SADDLE, "Saddle");
|
||||
|
||||
this.plugin.getLogger().info("String");
|
||||
char[] w_ing = { 'W', 'F', };
|
||||
String[] w_rec = { " W ", "WFW", " W " };
|
||||
Material[] w_mat = { Material.WHITE_WOOL, Material.FLINT };
|
||||
this.recipyManager.RegisterNew(w_ing, w_mat, w_rec, 1, Material.STRING, "String");
|
||||
|
||||
}
|
||||
|
||||
public BetterMinecraft getPlugin(){
|
||||
return plugin;
|
||||
}
|
||||
|
||||
public RecipyManager getRecipyManager() {
|
||||
return recipyManager;
|
||||
}
|
||||
|
||||
public PlayerManager getPlayerManager() {
|
||||
return playerManager;
|
||||
}
|
||||
}
|
||||
|
41
src/main/java/de/steev/bm/Manager/PlayerManager.java
Normal file
41
src/main/java/de/steev/bm/Manager/PlayerManager.java
Normal file
@ -0,0 +1,41 @@
|
||||
package de.steev.bm.Manager;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.awt.*;
|
||||
|
||||
/**
|
||||
* houses all functions controlling players
|
||||
*/
|
||||
public class PlayerManager {
|
||||
|
||||
private GameManager gameManager;
|
||||
|
||||
/**
|
||||
* initilizes a player manager
|
||||
* @param gameManager the Gamemanager reference
|
||||
*/
|
||||
public PlayerManager(GameManager gameManager) {
|
||||
this.gameManager = gameManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* teleports a player to a location
|
||||
* @param player the wanted player
|
||||
* @param loc the wanted location
|
||||
*/
|
||||
public void teleportPlayer(Player player, Location loc) {
|
||||
player.teleport(loc);
|
||||
}
|
||||
|
||||
/**
|
||||
* gives a player a given itemstack
|
||||
* @param player the players reference
|
||||
* @param itemStack the items the player should receive
|
||||
*/
|
||||
public void givePlayerItems(Player player, ItemStack itemStack){
|
||||
player.getInventory().addItem(itemStack);
|
||||
}
|
||||
}
|
41
src/main/java/de/steev/bm/Manager/RecipyManager.java
Normal file
41
src/main/java/de/steev/bm/Manager/RecipyManager.java
Normal file
@ -0,0 +1,41 @@
|
||||
package de.steev.bm.Manager;
|
||||
|
||||
import de.steev.bm.BetterMinecraft;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.ShapedRecipe;
|
||||
|
||||
public class RecipyManager{
|
||||
|
||||
private GameManager gameManager;
|
||||
|
||||
public RecipyManager(GameManager gameManager) {
|
||||
this.gameManager = gameManager;
|
||||
}
|
||||
|
||||
public void RegisterNew(char[] ing, Material[] mat, String[] rec, int amount, Material result, String Item){
|
||||
|
||||
BetterMinecraft plugin;
|
||||
NamespacedKey item;
|
||||
ShapedRecipe rec_item;
|
||||
|
||||
item = new NamespacedKey(this.gameManager.getPlugin(), Item);
|
||||
ItemStack itemStack = new ItemStack(result);
|
||||
itemStack.setAmount(amount);
|
||||
|
||||
rec_item = new ShapedRecipe(item, itemStack);
|
||||
|
||||
//Recipe shapes
|
||||
rec_item.shape(rec[0], rec[1], rec[2]);
|
||||
|
||||
for(int i = 0; i < ing.length; i++) {
|
||||
// Material Definitions
|
||||
rec_item.setIngredient(ing[i], mat[i]);
|
||||
}
|
||||
|
||||
// Add recipes to Server
|
||||
Bukkit.addRecipe(rec_item);
|
||||
}
|
||||
}
|
@ -1,22 +0,0 @@
|
||||
package de.steev.bm.changes.env;
|
||||
|
||||
import org.bukkit.World;
|
||||
|
||||
public class weather {
|
||||
|
||||
static long lastThunder = 0;
|
||||
long delay = 24000;
|
||||
private static boolean isThunder(World world) {
|
||||
return world.getThunderDuration() > 0;
|
||||
}
|
||||
|
||||
public static void changeWeather(World world) {
|
||||
if(isThunder(world)) {
|
||||
if(lastThunder + 24000 > world.getFullTime()) {
|
||||
world.setClearWeatherDuration(1000);
|
||||
}else {
|
||||
lastThunder = world.getFullTime();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,52 +0,0 @@
|
||||
package de.steev.bm.events;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerBedEnterEvent;
|
||||
import org.bukkit.event.player.PlayerBedLeaveEvent;
|
||||
|
||||
import de.steev.bm.main;
|
||||
|
||||
public class BedEvent implements Listener {
|
||||
|
||||
private main plugin;
|
||||
|
||||
public BedEvent(main plugin) {
|
||||
plugin.getLogger().info("Bed events Registered");
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@EventHandler // Adding to the Player Variable
|
||||
public void onPlayerBedEnter(PlayerBedEnterEvent event) {
|
||||
final World world = event.getPlayer().getWorld();
|
||||
if(world.getTime() >= 13000 || world.getThunderDuration() > 0) {
|
||||
plugin.playerInBed++;
|
||||
// Checks if enough Players (currentSleeping >= OnlinePlayerAmount/2) are Sleeping
|
||||
if(plugin.playerInBed >= (int)plugin.getServer().getOnlinePlayers().size()/2) {
|
||||
// Delayed Task for detecting useless entries
|
||||
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if(plugin.playerInBed >= (int)plugin.getServer().getOnlinePlayers().size()/2) {
|
||||
world.setTime(0);
|
||||
world.setWeatherDuration(7 * 24000);
|
||||
}
|
||||
}
|
||||
}, 20L);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler // Subtracting to the Player Variable
|
||||
public void onPlayerBedLeave(PlayerBedLeaveEvent event) {
|
||||
// Subtraction from the PlayerInBed variable
|
||||
if(plugin.playerInBed > 0) {
|
||||
plugin.playerInBed--;
|
||||
// Failsafe to prevent integer underflow
|
||||
}else if(plugin.playerInBed > 0) {
|
||||
plugin.playerInBed = 0;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
package de.steev.bm.events;
|
||||
|
||||
import de.steev.bm.main;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.PlayerDeathEvent;
|
||||
|
||||
public class DeathEvent implements Listener {
|
||||
|
||||
private main plugin;
|
||||
|
||||
public DeathEvent(main plugin) {
|
||||
plugin.getLogger().info("Death events Registered");
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void OnPlayerDeath(PlayerDeathEvent e) {
|
||||
Player player = (Player) e.getEntity();
|
||||
|
||||
Location loc = player.getLocation();
|
||||
this.plugin.playerDataConfig.set(player.getUniqueId() + ".death", loc);
|
||||
}
|
||||
}
|
@ -1,47 +0,0 @@
|
||||
package de.steev.bm.events;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Animals;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityDeathEvent;
|
||||
|
||||
import de.steev.bm.main;
|
||||
import de.steev.bm.changes.interaction.Death;
|
||||
|
||||
public class KillEvent implements Listener{
|
||||
private main plugin;
|
||||
|
||||
public KillEvent(main plugin) {
|
||||
plugin.getLogger().info("Mob Death events Registered");
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements drops on death and can handle other deaths
|
||||
* @param event the parsed event on any death
|
||||
*/
|
||||
@EventHandler
|
||||
public void onEntityDeath(EntityDeathEvent event) {
|
||||
int[] amounts;
|
||||
Material[] drops;
|
||||
|
||||
if(event.getEntity() instanceof Player){
|
||||
Location death = ((Player) event.getEntity()).getPlayer().getLocation();
|
||||
UUID uuid = ((Player) event.getEntity()).getPlayer().getUniqueId();
|
||||
plugin.playerDataConfig.set("" + uuid + ".death", death);
|
||||
} else if(event.getEntity() instanceof Animals) {
|
||||
|
||||
|
||||
if(event.getEntity().toString() == "CraftPig"){
|
||||
amounts = new int[]{ 2,2 };
|
||||
drops = new Material[]{Material.LEATHER, Material.PORKCHOP};
|
||||
Death.onAnimalDeath(amounts, drops, plugin, event);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user