Class Item_Recipy_Override
Package de.steev.bm.changes.interaction
+Package de.steev.bm.Interaction
-
-
@@ -63,11 +63,11 @@ loadScripts(document, 'script');
ClassDescription- +handles custom recipeshandles the replanting mechanic
de.steev.bm.changes.interaction Class Hierarchy +de.steev.bm.Interaction Class Hierarchy - + @@ -52,7 +52,7 @@ loadScripts(document, 'script');-Hierarchy For Package de.steev.bm.changes.interaction
+Hierarchy For Package de.steev.bm.Interaction
Package Hierarchies:- All Packages @@ -63,8 +63,8 @@ loadScripts(document, 'script');
- java.lang.Object
-
-
- de.steev.bm.changes.interaction.Item_Recipy_Override -
- de.steev.bm.changes.interaction.Replanting (implements org.bukkit.event.Listener) +
- de.steev.bm.Interaction.Item_Recipy_Override +
- de.steev.bm.Interaction.Replanting (implements org.bukkit.event.Listener)
-
Variable for how many player got to bed
-
- plugin - Variable in class de.steev.bm.changes.interaction.Item_Recipy_Override +
- plugin - Variable in class de.steev.bm.Interaction.Item_Recipy_Override
-
plugin reference
-
- plugin - Variable in class de.steev.bm.changes.interaction.Replanting +
- plugin - Variable in class de.steev.bm.Interaction.Replanting
-
plugin reference
diff --git a/Docs/index-files/index-11.html b/Docs/index-files/index-11.html
index a42a526..b76425f 100644
--- a/Docs/index-files/index-11.html
+++ b/Docs/index-files/index-11.html
@@ -57,23 +57,23 @@ loadScripts(document, 'script');
A B C D I K L M O P R S V W
- rec_item - Static variable in class de.steev.bm.changes.interaction.Item_Recipy_Override +
- rec_item - Static variable in class de.steev.bm.Interaction.Item_Recipy_Override
-
the recipe shape
-
- register_recipy(char[], Material[], String[]) - Static method in class de.steev.bm.changes.interaction.Item_Recipy_Override +
- register_recipy(char[], Material[], String[]) - Static method in class de.steev.bm.Interaction.Item_Recipy_Override
-
registers custom recipes
-
- replanting(Block, Location, Material[], int[]) - Static method in class de.steev.bm.changes.interaction.Replanting +
- replanting(Block, Location, Material[], int[]) - Static method in class de.steev.bm.Interaction.Replanting
-
handles the replanting mechanic in a better way
-
- Replanting - Class in de.steev.bm.changes.interaction +
- Replanting - Class in de.steev.bm.Interaction
-
handles the replanting mechanic
-
- Replanting(main) - Constructor for class de.steev.bm.changes.interaction.Replanting +
- Replanting(main) - Constructor for class de.steev.bm.Interaction.Replanting
-
constructor
diff --git a/Docs/index-files/index-4.html b/Docs/index-files/index-4.html
index 95dd269..d69710b 100644
--- a/Docs/index-files/index-4.html
+++ b/Docs/index-files/index-4.html
@@ -61,7 +61,7 @@ loadScripts(document, 'script');
- de.steev.bm.changes.env - package de.steev.bm.changes.env
- -
- de.steev.bm.changes.interaction - package de.steev.bm.changes.interaction +
- de.steev.bm.Interaction - package de.steev.bm.Interaction
- de.steev.bm.Commands - package de.steev.bm.Commands
- diff --git a/Docs/index-files/index-5.html b/Docs/index-files/index-5.html index 3341a32..f601f63 100644 --- a/Docs/index-files/index-5.html +++ b/Docs/index-files/index-5.html @@ -67,15 +67,15 @@ loadScripts(document, 'script');
-
returns if there is a thunderstorm
-
- item - Variable in class de.steev.bm.changes.interaction.Item_Recipy_Override +
- item - Variable in class de.steev.bm.Interaction.Item_Recipy_Override
-
the namepsace key
-
- Item_Recipy_Override - Class in de.steev.bm.changes.interaction +
- Item_Recipy_Override - Class in de.steev.bm.Interaction
-
handles custom recipes
-
- Item_Recipy_Override(main, String, Material, int) - Constructor for class de.steev.bm.changes.interaction.Item_Recipy_Override +
- Item_Recipy_Override(main, String, Material, int) - Constructor for class de.steev.bm.Interaction.Item_Recipy_Override
-
Overrides Vanilla Recipes
diff --git a/Docs/index.html b/Docs/index.html
index 0dffd70..b95c674 100644
--- a/Docs/index.html
+++ b/Docs/index.html
@@ -60,7 +60,7 @@ loadScripts(document, 'script');
- de.steev.bm,
- de.steev.bm.changes.env, -
- de.steev.bm.changes.interaction, +
- de.steev.bm.Interaction,
- de.steev.bm.Commands,
- de.steev.bm.crafting,
- de.steev.bm.events, @@ -77,7 +77,7 @@ loadScripts(document, 'script');
- de.steev.bm.mechanics.chunkloading.ChunkLoader (implements org.bukkit.event.Listener)
- de.steev.bm.crafting.CraftItem
- de.steev.bm.events.InteractEvent (implements org.bukkit.event.Listener) -
- de.steev.bm.changes.interaction.Item_Recipy_Override +
- de.steev.bm.Interaction.Item_Recipy_Override
- de.steev.bm.mechanics.autocrafting.ItemPipe
- de.steev.bm.events.KillEvent (implements org.bukkit.event.Listener)
- de.steev.bm.events.PlaceEvent @@ -90,7 +90,7 @@ loadScripts(document, 'script');
- de.steev.bm.changes.interaction.Replanting (implements org.bukkit.event.Listener) +
- de.steev.bm.Interaction.Replanting (implements org.bukkit.event.Listener)
- de.steev.bm.changes.env.weather
All Classes|All Packages|Constant Field Values|Deprecated APIR
-
-
1.20.1-R0.1-SNAPSHOT provided - -- org.xerial -sqlite-jdbc -3.42.0.0 -diff --git a/src/main/java/de/steev/bm/main.java b/src/main/java/de/steev/bm/BetterMinecraft.java similarity index 60% rename from src/main/java/de/steev/bm/main.java rename to src/main/java/de/steev/bm/BetterMinecraft.java index 7439dda..7a92030 100644 --- a/src/main/java/de/steev/bm/main.java +++ b/src/main/java/de/steev/bm/BetterMinecraft.java @@ -1,12 +1,12 @@ package de.steev.bm; -import de.steev.bm.changes.interaction.Item_Recipy_Override; -import de.steev.bm.events.BedEvent; -import de.steev.bm.events.InteractEvent; -import de.steev.bm.events.KillEvent; +import de.steev.bm.Commands.back; +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; @@ -20,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; @@ -28,42 +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.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.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"); } @@ -93,6 +85,13 @@ 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 this.getLogger().info(ChatColor.AQUA + "Ich geh dann mal :c"); diff --git a/src/main/java/de/steev/bm/Commands/back.java b/src/main/java/de/steev/bm/Commands/back.java index a863540..4a16be8 100644 --- a/src/main/java/de/steev/bm/Commands/back.java +++ b/src/main/java/de/steev/bm/Commands/back.java @@ -1,16 +1,32 @@ package de.steev.bm.Commands; +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; import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; public class back implements CommandExecutor { - // TODO save death coordinates in playerdata - // TODO grab them - // TODO ensure the position is safe - // TODO teleport player back + private GameManager gameManager; + + public back(GameManager gameManager) { + this.gameManager = gameManager; + } + @Override public boolean onCommand(CommandSender commandSender, Command command, String s, String[] strings) { + Player player = (Player) commandSender.getServer().getPlayer(commandSender.getName()); + Location lastDeath; + try { + lastDeath = this.gameManager.getPlugin().getPlayerDataConfig().getLocation(player.getUniqueId() + ".death"); + player.teleport(lastDeath); + 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!"); + } return false; } } diff --git a/src/main/java/de/steev/bm/changes/interaction/Death.java b/src/main/java/de/steev/bm/Interaction/Death.java similarity index 89% rename from src/main/java/de/steev/bm/changes/interaction/Death.java rename to src/main/java/de/steev/bm/Interaction/Death.java index 80637c3..3e0a257 100644 --- a/src/main/java/de/steev/bm/changes/interaction/Death.java +++ b/src/main/java/de/steev/bm/Interaction/Death.java @@ -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); diff --git a/src/main/java/de/steev/bm/changes/interaction/Item_Recipy_Override.java b/src/main/java/de/steev/bm/Interaction/Item_Recipy_Override.java similarity index 86% rename from src/main/java/de/steev/bm/changes/interaction/Item_Recipy_Override.java rename to src/main/java/de/steev/bm/Interaction/Item_Recipy_Override.java index a41d23e..6c0729b 100644 --- a/src/main/java/de/steev/bm/changes/interaction/Item_Recipy_Override.java +++ b/src/main/java/de/steev/bm/Interaction/Item_Recipy_Override.java @@ -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); diff --git a/src/main/java/de/steev/bm/changes/interaction/replanting.java b/src/main/java/de/steev/bm/Interaction/replanting.java similarity index 88% rename from src/main/java/de/steev/bm/changes/interaction/replanting.java rename to src/main/java/de/steev/bm/Interaction/replanting.java index 852ad2e..f73acc3 100644 --- a/src/main/java/de/steev/bm/changes/interaction/replanting.java +++ b/src/main/java/de/steev/bm/Interaction/replanting.java @@ -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; } diff --git a/src/main/java/de/steev/bm/Listener/BedListener.java b/src/main/java/de/steev/bm/Listener/BedListener.java new file mode 100644 index 0000000..adf6d9b --- /dev/null +++ b/src/main/java/de/steev/bm/Listener/BedListener.java @@ -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; + } + } + +} diff --git a/src/main/java/de/steev/bm/events/InteractEvent.java b/src/main/java/de/steev/bm/Listener/InteractListener.java similarity index 81% rename from src/main/java/de/steev/bm/events/InteractEvent.java rename to src/main/java/de/steev/bm/Listener/InteractListener.java index 702fa7d..8054c85 100644 --- a/src/main/java/de/steev/bm/events/InteractEvent.java +++ b/src/main/java/de/steev/bm/Listener/InteractListener.java @@ -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 diff --git a/src/main/java/de/steev/bm/Listener/KillListener.java b/src/main/java/de/steev/bm/Listener/KillListener.java new file mode 100644 index 0000000..ca01c18 --- /dev/null +++ b/src/main/java/de/steev/bm/Listener/KillListener.java @@ -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); + } + } + } +} diff --git a/src/main/java/de/steev/bm/Manager/GameManager.java b/src/main/java/de/steev/bm/Manager/GameManager.java new file mode 100644 index 0000000..2915b29 --- /dev/null +++ b/src/main/java/de/steev/bm/Manager/GameManager.java @@ -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; + } +} + diff --git a/src/main/java/de/steev/bm/Manager/PlayerManager.java b/src/main/java/de/steev/bm/Manager/PlayerManager.java new file mode 100644 index 0000000..0deda7f --- /dev/null +++ b/src/main/java/de/steev/bm/Manager/PlayerManager.java @@ -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); + } +} diff --git a/src/main/java/de/steev/bm/Manager/RecipyManager.java b/src/main/java/de/steev/bm/Manager/RecipyManager.java new file mode 100644 index 0000000..4622b28 --- /dev/null +++ b/src/main/java/de/steev/bm/Manager/RecipyManager.java @@ -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); + } +} diff --git a/src/main/java/de/steev/bm/changes/env/weather.java b/src/main/java/de/steev/bm/changes/env/weather.java deleted file mode 100644 index afce37a..0000000 --- a/src/main/java/de/steev/bm/changes/env/weather.java +++ /dev/null @@ -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(); - } - } - } -} diff --git a/src/main/java/de/steev/bm/events/BedEvent.java b/src/main/java/de/steev/bm/events/BedEvent.java deleted file mode 100644 index e52faf0..0000000 --- a/src/main/java/de/steev/bm/events/BedEvent.java +++ /dev/null @@ -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; - } - } -} \ No newline at end of file diff --git a/src/main/java/de/steev/bm/events/KillEvent.java b/src/main/java/de/steev/bm/events/KillEvent.java deleted file mode 100644 index 8604d58..0000000 --- a/src/main/java/de/steev/bm/events/KillEvent.java +++ /dev/null @@ -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); - } - } - } -} diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml new file mode 100644 index 0000000..6e61eb1 --- /dev/null +++ b/src/main/resources/plugin.yml @@ -0,0 +1,7 @@ +name: BetterMinecraft +main: de.steev.bm.main +version: 1.0 +api-version: 1.17 +commands: + back: + description: "teleports players back to their deathpoint" \ No newline at end of file