16 Commits

Author SHA1 Message Date
14fd38ccaf Merge pull request 'bugfix/remove_anvill_costcap' (#83) from bugfix/remove_anvill_costcap into Testing
All checks were successful
Build and Release Minecraft Plugin / build-and-release (push) Successful in 1m48s
Reviewed-on: #83
2025-12-07 16:36:42 +01:00
116dcc1a0e bugfix 🪱 fixed that cost override would not affect anvill 2025-12-07 16:35:54 +01:00
1ff91018a6 bugfix 🪱 fixed possible bug that features may be activated even when config says they should not; improved loggin; properly added anvill event listener; replaced deprecated AnvillInventory with new AnvilView 2025-12-07 16:06:38 +01:00
16800135f0 Merge pull request 'src/main/java/de/steev/bm/Listener/PrepareAnvilListener.java aktualisiert' (#82) from bugfix/remove_anvill_costcap into Testing
Some checks failed
Build and Release Minecraft Plugin / build-and-release (push) Failing after 1m59s
Reviewed-on: #82
2025-12-03 14:30:27 +01:00
5eb08e1859 src/main/java/de/steev/bm/Listener/PrepareAnvilListener.java aktualisiert 2025-12-03 14:30:11 +01:00
ad3b275214 Merge pull request 'added eventlistener to plugin instance' (#81) from bugfix/remove_anvill_costcap into Testing
Some checks failed
Build and Release Minecraft Plugin / build-and-release (push) Failing after 2m0s
Reviewed-on: #81
2025-12-03 14:21:28 +01:00
6c2a56a179 added eventlistener to plugin instance 2025-12-03 14:20:41 +01:00
1a00dacdc2 Merge pull request 'bugfix/remove_anvill_costcap' (#76) from bugfix/remove_anvill_costcap into Testing
All checks were successful
Build and Release Minecraft Plugin / build-and-release (push) Successful in 2m28s
Reviewed-on: #76
2025-12-02 21:26:49 +01:00
725a964c79 bugfix 🪱 fixed missing symbol error 2025-12-02 21:23:27 +01:00
bb5d6c0b7f bugfix 🪱 readded lost getter function for playerDataConfig 2025-12-02 21:16:05 +01:00
868286d462 Merge pull request 'bugfix/remove_anvill_costcap' (#73) from bugfix/remove_anvill_costcap into Testing
Some checks failed
Build and Release Minecraft Plugin / build-and-release (push) Failing after 50s
Reviewed-on: #73
2025-12-02 21:11:00 +01:00
117d53024b Merge branch 'Testing' into bugfix/remove_anvill_costcap 2025-12-02 21:10:38 +01:00
adff0d6c72 resolved merge conflict
Some checks failed
Build and Release Minecraft Plugin / build-and-release (push) Has been cancelled
2025-12-02 21:09:32 +01:00
e29591bb7b removed cost cap from anvill 2025-12-02 21:08:03 +01:00
2879109f59 .gitea/workflows/test.yml aktualisiert 2024-12-27 04:26:14 +01:00
50477bbace .gitea/workflows/release.yml aktualisiert 2024-12-27 04:25:10 +01:00
10 changed files with 99 additions and 9 deletions

View File

@@ -3,11 +3,10 @@ name: Build and Release Minecraft Plugin
on: on:
push: push:
branches: branches:
- testing - Resting
jobs: jobs:
build-and-release: build-and-release:
runs-on: self-hosted
steps: steps:
# Repository auschecken # Repository auschecken
@@ -58,4 +57,4 @@ jobs:
tag_name: ${{ env.PLUGIN_VERSION }} tag_name: ${{ env.PLUGIN_VERSION }}
release_name: Release ${{ env.PLUGIN_VERSION }} release_name: Release ${{ env.PLUGIN_VERSION }}
draft: false draft: false
prerelease: true prerelease: false

View File

@@ -4,11 +4,13 @@ import de.steev.bm.Commands.back;
import de.steev.bm.Listener.BedListener; import de.steev.bm.Listener.BedListener;
import de.steev.bm.Listener.InteractListener; import de.steev.bm.Listener.InteractListener;
import de.steev.bm.Listener.KillListener; import de.steev.bm.Listener.KillListener;
import de.steev.bm.Listener.PrepareAnvilListener;
import de.steev.bm.Manager.GameManager; import de.steev.bm.Manager.GameManager;
import de.steev.bm.utils.Config; import de.steev.bm.utils.Config;
import de.steev.bm.utils.exceptions.ConfigEntryExceptions; import de.steev.bm.utils.exceptions.ConfigEntryExceptions;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
@@ -40,11 +42,12 @@ public class BetterMinecraft extends JavaPlugin implements Listener {
// Registers Events // Registers Events
this.getLogger().info(prefix + ChatColor.WHITE + "Load Events"); this.getLogger().info(prefix + ChatColor.WHITE + "Load Events");
this.getServer().getPluginManager().registerEvents(new BedListener(this.gameManager), this); this.getServer().getPluginManager().registerEvents(new BedListener(this.gameManager), this);
this.getServer().getPluginManager().registerEvents(new KillListener(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(new InteractListener(this.gameManager), this);
this.getServer().getPluginManager().registerEvents(new PrepareAnvilListener(this.gameManager), this);
this.getServer().getPluginManager().registerEvents(this, this); this.getServer().getPluginManager().registerEvents(this, this);
Objects.requireNonNull(this.getCommand("back")).setExecutor(new back(this.gameManager)); Objects.requireNonNull(this.getCommand("back")).setExecutor(new back(this.gameManager));
// PlayerData // PlayerData
@@ -88,4 +91,8 @@ public class BetterMinecraft extends JavaPlugin implements Listener {
// Even more Messaging // Even more Messaging
this.getLogger().info(ChatColor.AQUA + "Ich geh dann mal :c"); this.getLogger().info(ChatColor.AQUA + "Ich geh dann mal :c");
} }
public FileConfiguration getPlayerDataConfig() {
return this.playerData.getConfig();
}
} }

View File

@@ -0,0 +1,29 @@
package de.steev.bm.Interaction;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.inventory.meta.Repairable;
public class AnvilCalculator {
public static int getRepairCost(ItemStack item) {
if (item == null || item.getType().isAir()) return 0;
ItemMeta meta = item.getItemMeta();
if (meta instanceof Repairable) {
Repairable r = (Repairable) meta;
return r.getRepairCost(); // default 0 wenn nicht gesetzt
}
return 0;
}
public static ItemStack setRepairCost(ItemStack item, int cost) {
if (item == null || item.getType().isAir()) return item;
ItemMeta meta = item.getItemMeta();
if (meta instanceof Repairable) {
Repairable r = (Repairable) meta;
r.setRepairCost(cost);
item.setItemMeta(meta);
}
return item;
}
}

View File

@@ -8,12 +8,14 @@ import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerBedEnterEvent; import org.bukkit.event.player.PlayerBedEnterEvent;
import org.bukkit.event.player.PlayerBedLeaveEvent; import org.bukkit.event.player.PlayerBedLeaveEvent;
import static de.steev.bm.utils.Constants.prefix;
public class BedListener implements Listener { public class BedListener implements Listener {
private GameManager gameManager; private GameManager gameManager;
public BedListener(GameManager gameManager) { public BedListener(GameManager gameManager) {
gameManager.getPlugin().getLogger().info("Bed Listener Registered"); gameManager.getPlugin().getLogger().info(prefix + "Bed Listener Registered");
this.gameManager = gameManager; this.gameManager = gameManager;
} }

View File

@@ -11,11 +11,13 @@ import org.bukkit.event.Listener;
import org.bukkit.event.block.Action; import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerInteractEvent;
import static de.steev.bm.utils.Constants.prefix;
public class InteractListener implements Listener { public class InteractListener implements Listener {
private GameManager gameManager; private GameManager gameManager;
public InteractListener(GameManager gameManager){ public InteractListener(GameManager gameManager){
gameManager.getPlugin().getLogger().info("Initializing Interaction Listener"); gameManager.getPlugin().getLogger().info(prefix + "Initializing Interaction Listener");
this.gameManager = gameManager; this.gameManager = gameManager;
} }

View File

@@ -11,12 +11,14 @@ import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDeathEvent; import org.bukkit.event.entity.EntityDeathEvent;
import java.util.UUID; import java.util.UUID;
import static de.steev.bm.utils.Constants.prefix;
public class KillListener implements Listener { public class KillListener implements Listener {
private GameManager gameManager; private GameManager gameManager;
public KillListener(GameManager gameManager) { public KillListener(GameManager gameManager) {
gameManager.getPlugin().getLogger().info("Mob Death events Registered"); gameManager.getPlugin().getLogger().info(prefix + "Mob Death events Registered");
this.gameManager = gameManager; this.gameManager = gameManager;
} }
@@ -32,7 +34,7 @@ public class KillListener implements Listener {
if(event.getEntity() instanceof Player && this.gameManager.getConfigManager().GetBool("back_command")){ if(event.getEntity() instanceof Player && this.gameManager.getConfigManager().GetBool("back_command")){
Location death = ((Player) event.getEntity()).getPlayer().getLocation(); Location death = ((Player) event.getEntity()).getPlayer().getLocation();
UUID uuid = ((Player) event.getEntity()).getPlayer().getUniqueId(); UUID uuid = ((Player) event.getEntity()).getPlayer().getUniqueId();
this.gameManager.getPlugin().getPlayerDataConfig().set("" + uuid + ".death", death); this.gameManager.getPlugin().getPlayerDataConfig().set(uuid + ".death", death);
} else if(event.getEntity() instanceof Animals) { } else if(event.getEntity() instanceof Animals) {
if(event.getEntity().toString() == "CraftPig" && this.gameManager.getConfigManager().GetBool("custom_drops")){ if(event.getEntity().toString() == "CraftPig" && this.gameManager.getConfigManager().GetBool("custom_drops")){
amounts = new int[]{ 2,2 }; amounts = new int[]{ 2,2 };

View File

@@ -0,0 +1,32 @@
package de.steev.bm.Listener;
import de.steev.bm.BetterMinecraft;
import de.steev.bm.Manager.GameManager;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.PrepareAnvilEvent;
import org.bukkit.inventory.AnvilInventory;
import org.bukkit.inventory.view.AnvilView;
import static de.steev.bm.utils.Constants.prefix;
public class PrepareAnvilListener implements Listener {
private GameManager gameManager;
public PrepareAnvilListener(GameManager gameManager) {
gameManager.getPlugin().getLogger().info(prefix + "initializing Anvil CostCap fix");
this.gameManager = gameManager;
}
@EventHandler
public void onPrepare(PrepareAnvilEvent event) {
if (this.gameManager.getConfigManager().GetBool("anvil_fix")) {
AnvilView inv = event.getView();
this.gameManager.getPlugin().getLogger().info(prefix + "repaircost:" + inv.getRepairCost());
inv.setMaximumRepairCost(Integer.MAX_VALUE);
inv.getPlayer().sendMessage("repair cost: " + inv.getRepairCost());
inv.setRepairCost(inv.getRepairCost());
}
}
}

View File

@@ -0,0 +1,17 @@
# sets minimum players in bed to 50% of the server instead of requiring all players to be in bed
improved_bed: true
# fixes anvil cost beeing to expensive after 40 level
anvil_fix: true
# adds additional drops to some mobds
custom_drops: true
# adds custom crafting recipes
custom_recipes: true
# enables forge like replanting
replanting: true
# enables /back command
back_command: true

View File

@@ -1,6 +1,6 @@
name: BetterMinecraft name: BetterMinecraft
main: de.steev.bm.BetterMinecraft main: de.steev.bm.BetterMinecraft
version: 1.2.2 version: 1.2.2-b2
api-version: 1.21 api-version: 1.21
commands: commands:
back: back: