From fd13d206760fcc7041361ec5e566387d5fe68d19 Mon Sep 17 00:00:00 2001 From: zhangyuheng Date: Fri, 19 Apr 2024 16:57:51 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E4=BA=86=E6=88=98=E5=88=A9?= =?UTF-8?q?=E5=93=81=E5=80=8D=E7=8E=87=E6=8E=89=E8=90=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 -- pom.xml | 2 +- .../cn/lunadeer/essentialsd/ChairEvent.java | 13 ++--- .../cn/lunadeer/essentialsd/EssentialsD.java | 2 +- .../java/cn/lunadeer/essentialsd/Events.java | 34 ------------- .../essentialsd/commands/Inspect.java | 50 +++++++++++++++++++ .../recipes/InvisibleGlowItemFrame.java | 1 - .../essentialsd/utils/ConfigManager.java | 6 --- src/main/resources/config.yml | 3 -- src/main/resources/plugin.yml | 5 +- 10 files changed, 61 insertions(+), 58 deletions(-) create mode 100644 src/main/java/cn/lunadeer/essentialsd/commands/Inspect.java diff --git a/README.md b/README.md index 5ae9faa..97dd7c6 100644 --- a/README.md +++ b/README.md @@ -168,9 +168,6 @@ ForceLoadChunks: # 附魔瓶经验值倍率 ExpBottleRatio: 1.0 -# 战利品倍率 (当大于1时会自动阻止怪物拾东西避免刷物品) -LootTableRatio: 1 - # 强加载区块列表 ForceLoadChunks: # - world:0:0 diff --git a/pom.xml b/pom.xml index 52872c8..d1d6ced 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ cn.lunadeer EssentialsD - 1.15.12 + 1.17.0 jar EssentialsD diff --git a/src/main/java/cn/lunadeer/essentialsd/ChairEvent.java b/src/main/java/cn/lunadeer/essentialsd/ChairEvent.java index 46ff77d..744ee9b 100644 --- a/src/main/java/cn/lunadeer/essentialsd/ChairEvent.java +++ b/src/main/java/cn/lunadeer/essentialsd/ChairEvent.java @@ -2,25 +2,22 @@ package cn.lunadeer.essentialsd; import cn.lunadeer.essentialsd.utils.XLogger; import org.bukkit.Location; -import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; -import org.bukkit.block.data.type.Sign; import org.bukkit.block.data.type.Stairs; import org.bukkit.block.data.type.WallSign; -import org.bukkit.entity.*; +import org.bukkit.entity.ArmorStand; +import org.bukkit.entity.Entity; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; import org.bukkit.event.Event; -import org.bukkit.util.Vector; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.inventory.ItemStack; - -import java.util.ArrayList; -import java.util.List; +import org.bukkit.util.Vector; public class ChairEvent implements Listener { diff --git a/src/main/java/cn/lunadeer/essentialsd/EssentialsD.java b/src/main/java/cn/lunadeer/essentialsd/EssentialsD.java index e727bbd..650ae3c 100644 --- a/src/main/java/cn/lunadeer/essentialsd/EssentialsD.java +++ b/src/main/java/cn/lunadeer/essentialsd/EssentialsD.java @@ -5,7 +5,6 @@ import cn.lunadeer.essentialsd.recipes.*; import cn.lunadeer.essentialsd.utils.ConfigManager; import cn.lunadeer.essentialsd.utils.Scheduler; import cn.lunadeer.essentialsd.utils.XLogger; -import io.papermc.paper.threadedregions.scheduler.GlobalRegionScheduler; import org.bukkit.Bukkit; import org.bukkit.plugin.java.JavaPlugin; @@ -39,6 +38,7 @@ public final class EssentialsD extends JavaPlugin { Objects.requireNonNull(Bukkit.getPluginCommand("storm")).setExecutor(new Storm()); Objects.requireNonNull(Bukkit.getPluginCommand("enderchest")).setExecutor(new EnderChest()); Objects.requireNonNull(Bukkit.getPluginCommand("tpa")).setExecutor(new Teleport()); + Objects.requireNonNull(Bukkit.getPluginCommand("inspect")).setExecutor(new Inspect()); this.getServer().addRecipe(InvisibleItemFrame.getRecipe()); this.getServer().addRecipe(InvisibleGlowItemFrame.getRecipe()); diff --git a/src/main/java/cn/lunadeer/essentialsd/Events.java b/src/main/java/cn/lunadeer/essentialsd/Events.java index 7714233..3542fc6 100644 --- a/src/main/java/cn/lunadeer/essentialsd/Events.java +++ b/src/main/java/cn/lunadeer/essentialsd/Events.java @@ -5,7 +5,6 @@ import cn.lunadeer.essentialsd.recipes.Crowbar; import cn.lunadeer.essentialsd.recipes.InvisibleGlowItemFrame; import cn.lunadeer.essentialsd.recipes.InvisibleItemFrame; import cn.lunadeer.essentialsd.utils.Notification; -import cn.lunadeer.essentialsd.utils.XLogger; import org.bukkit.Material; import org.bukkit.NamespacedKey; import org.bukkit.block.Block; @@ -16,22 +15,18 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityDamageByEntityEvent; -import org.bukkit.event.entity.EntityDeathEvent; -import org.bukkit.event.entity.EntityPickupItemEvent; import org.bukkit.event.entity.ExpBottleEvent; import org.bukkit.event.hanging.HangingBreakByEntityEvent; import org.bukkit.event.hanging.HangingPlaceEvent; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.player.PlayerInteractEntityEvent; import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.event.world.LootGenerateEvent; import org.bukkit.inventory.EquipmentSlot; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.InventoryView; import org.bukkit.inventory.ItemStack; import org.bukkit.persistence.PersistentDataType; -import java.util.List; import java.util.Objects; public class Events implements Listener { @@ -197,33 +192,4 @@ public class Events implements Listener { } event.setExperience((int) (exp * EssentialsD.config.getExpBottleRatio())); } - - @EventHandler(priority = EventPriority.HIGHEST) - public void lootTableRation(EntityDeathEvent event) { - XLogger.debug("LootGenerateEvent"); - Integer ratio = EssentialsD.config.getLootTableRatio(); - if (ratio < 0) { - return; - } - XLogger.debug("ratio: " + ratio); - List loots = event.getDrops(); - for (ItemStack loot : loots) { - XLogger.debug("LootGenerateEvent: " + loot.getType().name()); - loot.setAmount(loot.getAmount() * ratio); - XLogger.debug("LootGenerateEvent: " + loot.getAmount()); - } - event.setDroppedExp(event.getDroppedExp() * ratio); - } - - @EventHandler(priority = EventPriority.HIGHEST) // prevent mob pick up item for duplication - public void mobPickUpItem(EntityPickupItemEvent event) { - if (!(event.getEntity() instanceof Mob)) { - return; - } - Integer ratio = EssentialsD.config.getLootTableRatio(); - if (ratio > 1) { - XLogger.debug("prevent mobPickUpItem"); - event.setCancelled(true); - } - } } diff --git a/src/main/java/cn/lunadeer/essentialsd/commands/Inspect.java b/src/main/java/cn/lunadeer/essentialsd/commands/Inspect.java new file mode 100644 index 0000000..77c7818 --- /dev/null +++ b/src/main/java/cn/lunadeer/essentialsd/commands/Inspect.java @@ -0,0 +1,50 @@ +package cn.lunadeer.essentialsd.commands; + +import cn.lunadeer.essentialsd.EssentialsD; +import cn.lunadeer.essentialsd.utils.Notification; +import cn.lunadeer.essentialsd.utils.XLogger; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.jetbrains.annotations.NotNull; + +import static cn.lunadeer.essentialsd.commands.Apis.opCommandGetPlayer; + +public class Inspect implements CommandExecutor { + /** + * Executes the given command, returning its success. + *
+ * If false is returned, then the "usage" plugin.yml entry for this command + * (if defined) will be sent to the player. + * + * @param sender Source of the command + * @param command Command which was executed + * @param label Alias of the command which was used + * @param args Passed command arguments + * @return true if a valid command, otherwise false + */ + @Override + public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { + if (!(sender instanceof Player)) { + Notification.error(sender, "只有玩家才能使用这个命令"); + return false; + } + Player op = (Player) sender; + if (!op.isOp()) { + XLogger.warn("玩家 " + op.getName() + " 试图使用检查命令"); + Notification.error(op, "你没有权限使用这个命令"); + return false; + } + EssentialsD.scheduler.global.run(EssentialsD.instance, (instance) -> { + Player target = opCommandGetPlayer(sender, args); + if (target == null) { + return; + } + Inventory inv = target.getInventory(); + op.openInventory(inv); + }); + return true; + } +} diff --git a/src/main/java/cn/lunadeer/essentialsd/recipes/InvisibleGlowItemFrame.java b/src/main/java/cn/lunadeer/essentialsd/recipes/InvisibleGlowItemFrame.java index f520d28..9148b1f 100644 --- a/src/main/java/cn/lunadeer/essentialsd/recipes/InvisibleGlowItemFrame.java +++ b/src/main/java/cn/lunadeer/essentialsd/recipes/InvisibleGlowItemFrame.java @@ -5,7 +5,6 @@ import net.kyori.adventure.text.Component; import org.bukkit.Material; import org.bukkit.NamespacedKey; import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.ShapedRecipe; import org.bukkit.inventory.ShapelessRecipe; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.persistence.PersistentDataType; diff --git a/src/main/java/cn/lunadeer/essentialsd/utils/ConfigManager.java b/src/main/java/cn/lunadeer/essentialsd/utils/ConfigManager.java index 77bfb5d..85c54a9 100644 --- a/src/main/java/cn/lunadeer/essentialsd/utils/ConfigManager.java +++ b/src/main/java/cn/lunadeer/essentialsd/utils/ConfigManager.java @@ -7,7 +7,6 @@ import org.bukkit.configuration.file.FileConfiguration; import java.util.Collection; import java.util.List; -import java.util.concurrent.atomic.AtomicInteger; public class ConfigManager { public ConfigManager(EssentialsD plugin) { @@ -28,7 +27,6 @@ public class ConfigManager { _tp_delay = _file.getInt("Teleport.Delay", 0); _tp_cool_down = _file.getInt("Teleport.CoolDown", 0); _tp_expire = _file.getInt("Teleport.Expire", 30); - _loot_table_ratio = _file.getInt("LootTableRatio", 1); _chair_enable = _file.getBoolean("Chair.Enable", true); _chair_max_width = _file.getInt("Chair.MaxWidth", 4); _chair_sign_check = _file.getBoolean("Chair.SignCheck", false); @@ -81,9 +79,6 @@ public class ConfigManager { return _tp_expire; } - public Integer getLootTableRatio() { - return _loot_table_ratio; - } public Boolean getChairEnable() { return _chair_enable; @@ -150,7 +145,6 @@ public class ConfigManager { private Integer _tp_expire; private Integer _tp_delay; private Integer _tp_cool_down; - private Integer _loot_table_ratio; private Boolean _chair_enable; private Integer _chair_max_width; private Boolean _chair_sign_check; diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index d4c63c2..a79a79d 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -1,9 +1,6 @@ # 附魔瓶经验值倍率 ExpBottleRatio: 1.0 -# 战利品倍率 (当大于1时会自动阻止怪物拾东西避免刷物品) -LootTableRatio: 1 - # 强加载区块列表 ForceLoadChunks: # - world:0:0 diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 51939d0..f27b8e8 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -54,4 +54,7 @@ commands: usage: /enderchest tpa: description: 发起传送请求 - usage: /tpa \ No newline at end of file + usage: /tpa + inspect: + description: 检查玩家背包 + usage: /inspect \ No newline at end of file