diff --git a/pom.xml b/pom.xml
index 36c80f6..5df5e24 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
com.frontleaves
ChainMining
- 1.2-SNAPSHOT
+ 1.3-SNAPSHOT
jar
chainMining
diff --git a/src/main/java/com/frontleaves/chainmining/ChainMining.java b/src/main/java/com/frontleaves/chainmining/ChainMining.java
index 5b7001f..73d00d0 100644
--- a/src/main/java/com/frontleaves/chainmining/ChainMining.java
+++ b/src/main/java/com/frontleaves/chainmining/ChainMining.java
@@ -2,6 +2,7 @@ package com.frontleaves.chainmining;
import com.frontleaves.chainmining.commands.ChangeToUse;
import com.frontleaves.chainmining.commands.PluginMenu;
+import com.frontleaves.chainmining.listeners.AutoListener;
import com.frontleaves.chainmining.listeners.CutTreeListener;
import com.frontleaves.chainmining.listeners.MineralsListener;
import com.frontleaves.chainmining.listeners.PlayerJoinServerListener;
@@ -15,9 +16,11 @@ import java.util.Objects;
*/
public final class ChainMining extends JavaPlugin {
- public static String prefix = "§8[§bFYCM§8]";
+ public static final String PREFIX = "§8[§bFYCM§8]§r";
+ public static final String VERSION = "v1.3-SNAPSHOT";
- public static HashMap> playerList = new HashMap<>();
+ public static HashMap>> playerList = new HashMap<>();
+ public static HashMap> playerData = new HashMap<>();
@Override
public void onEnable() {
@@ -28,6 +31,7 @@ public final class ChainMining extends JavaPlugin {
getServer().getPluginManager().registerEvents(new PlayerJoinServerListener(), this);
getServer().getPluginManager().registerEvents(new MineralsListener(), this);
getServer().getPluginManager().registerEvents(new CutTreeListener(), this);
+ getServer().getPluginManager().registerEvents(new AutoListener(), this);
// Plugin startup logic
getLogger().info("插件启动成功");
}
diff --git a/src/main/java/com/frontleaves/chainmining/commands/ChangeToUse.java b/src/main/java/com/frontleaves/chainmining/commands/ChangeToUse.java
index 336ffcd..4db3c7d 100644
--- a/src/main/java/com/frontleaves/chainmining/commands/ChangeToUse.java
+++ b/src/main/java/com/frontleaves/chainmining/commands/ChangeToUse.java
@@ -1,15 +1,17 @@
package com.frontleaves.chainmining.commands;
import com.frontleaves.chainmining.ChainMining;
-import org.bukkit.command.Command;
-import org.bukkit.command.CommandExecutor;
-import org.bukkit.command.CommandSender;
+import org.bukkit.command.*;
import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.ArrayList;
+import java.util.List;
/**
* @author 锋楪技术(深圳)有限公司
*/
-public class ChangeToUse implements CommandExecutor {
+public class ChangeToUse implements CommandExecutor, TabExecutor, TabCompleter {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if ("fykg".equalsIgnoreCase(command.getName())) {
@@ -18,57 +20,144 @@ public class ChangeToUse implements CommandExecutor {
case "cm":
switch (args[1]) {
case "on":
- ChainMining.playerList.get(sender.getName()).put("chainMining", true);
- sender.sendMessage(ChainMining.prefix + "§6 连锁挖矿设置为§2开启");
+ ChainMining.playerData.get(sender.getName()).put("chainMining", true);
+ ChainMining.playerData.get(sender.getName()).put("auto", false);
+ ChainMining.playerData.get(sender.getName()).put("road", false);
+ sender.sendMessage(ChainMining.PREFIX + "§6 连锁挖矿设置为§2开启");
break;
case "off":
- ChainMining.playerList.get(sender.getName()).put("chainMining", false);
- sender.sendMessage(ChainMining.prefix + "§6 连锁挖矿设置为§c关闭");
+ ChainMining.playerData.get(sender.getName()).put("chainMining", false);
+ ChainMining.playerData.get(sender.getName()).put("auto", false);
+ ChainMining.playerData.get(sender.getName()).put("road", false);
+ sender.sendMessage(ChainMining.PREFIX + "§6 连锁挖矿设置为§c关闭");
break;
case "toggle":
- if (ChainMining.playerList.get(sender.getName()).get("chainMining")) {
- ChainMining.playerList.get(sender.getName()).put("chainMining", false);
- sender.sendMessage(ChainMining.prefix + "§6 连锁挖矿切换为§c关闭");
+ if (ChainMining.playerData.get(sender.getName()).get("chainMining")) {
+ ChainMining.playerData.get(sender.getName()).put("chainMining", false);
+ ChainMining.playerData.get(sender.getName()).put("auto", false);
+ ChainMining.playerData.get(sender.getName()).put("road", false);
+ sender.sendMessage(ChainMining.PREFIX + "§6 连锁挖矿切换为§c关闭");
} else {
- ChainMining.playerList.get(sender.getName()).put("chainMining", true);
- sender.sendMessage(ChainMining.prefix + "§6 连锁挖矿切换为§2开启");
+ ChainMining.playerData.get(sender.getName()).put("chainMining", true);
+ ChainMining.playerData.get(sender.getName()).put("auto", false);
+ ChainMining.playerData.get(sender.getName()).put("road", false);
+ sender.sendMessage(ChainMining.PREFIX + "§6 连锁挖矿切换为§2开启");
}
break;
default:
- sender.sendMessage(ChainMining.prefix + "§c 参数错误");
+ sender.sendMessage(ChainMining.PREFIX + "§c 参数错误");
break;
}
break;
case "tr":
switch (args[1]) {
case "on":
- ChainMining.playerList.get(sender.getName()).put("tree", true);
- sender.sendMessage(ChainMining.prefix + "§6 快速砍树设置为§2开启");
+ ChainMining.playerData.get(sender.getName()).put("tree", true);
+ ChainMining.playerData.get(sender.getName()).put("auto", false);
+ ChainMining.playerData.get(sender.getName()).put("road", false);
+ sender.sendMessage(ChainMining.PREFIX + "§6 快速砍树设置为§2开启");
break;
case "off":
- ChainMining.playerList.get(sender.getName()).put("tree", false);
- sender.sendMessage(ChainMining.prefix + "§6 快速砍树设置为§c关闭");
+ ChainMining.playerData.get(sender.getName()).put("tree", false);
+ ChainMining.playerData.get(sender.getName()).put("auto", false);
+ ChainMining.playerData.get(sender.getName()).put("road", false);
+ sender.sendMessage(ChainMining.PREFIX + "§6 快速砍树设置为§c关闭");
break;
case "toggle":
- if (ChainMining.playerList.get(sender.getName()).get("tree")) {
- ChainMining.playerList.get(sender.getName()).put("tree", false);
- sender.sendMessage(ChainMining.prefix + "§6 快速砍树切换为§c关闭");
+ if (ChainMining.playerData.get(sender.getName()).get("tree")) {
+ ChainMining.playerData.get(sender.getName()).put("tree", false);
+ ChainMining.playerData.get(sender.getName()).put("auto", false);
+ ChainMining.playerData.get(sender.getName()).put("road", false);
+ sender.sendMessage(ChainMining.PREFIX + "§6 快速砍树切换为§c关闭");
} else {
- ChainMining.playerList.get(sender.getName()).put("tree", true);
- sender.sendMessage(ChainMining.prefix + "§6 快速砍树切换为§2开启");
+ ChainMining.playerData.get(sender.getName()).put("tree", true);
+ ChainMining.playerData.get(sender.getName()).put("auto", false);
+ ChainMining.playerData.get(sender.getName()).put("road", false);
+ sender.sendMessage(ChainMining.PREFIX + "§6 快速砍树切换为§2开启");
}
break;
default:
- sender.sendMessage(ChainMining.prefix + "§c 参数错误");
+ sender.sendMessage(ChainMining.PREFIX + "§c 参数错误");
break;
}
break;
+ case "auto":
+ case "set":
+ // 执行操作
+ ChainMining.playerData.get(sender.getName()).put("auto", true);
+ ChainMining.playerData.get(sender.getName()).put("tree", false);
+ ChainMining.playerData.get(sender.getName()).put("chainMining", false);
+ ChainMining.playerData.get(sender.getName()).put("road", false);
+ // 设置范围
+ if ("auto".equals(args[0])) {
+ ChainMining.playerList.get(sender.getName()).get("typeAuto").put("length", 2);
+ ChainMining.playerList.get(sender.getName()).get("typeAuto").put("width", 2);
+ ChainMining.playerList.get(sender.getName()).get("typeAuto").put("height", 1);
+ sender.sendMessage(ChainMining.PREFIX + "§6 快速破坏已开启§e(其他破坏方式已关闭)");
+ } else {
+ boolean returnInfo = false;
+ if (!args[1].isEmpty() && Integer.parseInt(args[1]) >= 1 && Integer.parseInt(args[1]) <= 5) {
+ ChainMining.playerList.get(sender.getName()).get("typeAuto").put("length", Integer.valueOf(args[1]));
+ } else {
+ ChainMining.playerList.get(sender.getName()).get("typeAuto").put("length", 1);
+ returnInfo = true;
+ }
+ if (!args[2].isEmpty() && Integer.parseInt(args[2]) >= 1 && Integer.parseInt(args[2]) <= 5) {
+ ChainMining.playerList.get(sender.getName()).get("typeAuto").put("height", Integer.valueOf(args[1]));
+ } else {
+ ChainMining.playerList.get(sender.getName()).get("typeAuto").put("height", 1);
+ returnInfo = true;
+ }
+ if (!args[3].isEmpty() && Integer.parseInt(args[3]) >= 1 && Integer.parseInt(args[3]) <= 5) {
+ ChainMining.playerList.get(sender.getName()).get("typeAuto").put("width", Integer.valueOf(args[1]));
+ } else {
+ ChainMining.playerList.get(sender.getName()).get("typeAuto").put("width", 1);
+ returnInfo = true;
+ }
+ sender.sendMessage(ChainMining.PREFIX + "§6 自定义快速破坏已开启§e(其他破坏方式已关闭)");
+ if (returnInfo) {
+ sender.sendMessage(ChainMining.PREFIX + "§c 未补全或值小于 1 部分已默认设置为 1 ,最大不可超过 5");
+ }
+ }
+ break;
+ case "road":
+ // 执行操作
+ ChainMining.playerData.get(sender.getName()).put("road", true);
+ ChainMining.playerData.get(sender.getName()).put("auto", false);
+ ChainMining.playerData.get(sender.getName()).put("tree", false);
+ ChainMining.playerData.get(sender.getName()).put("chainMining", false);
+ sender.sendMessage(ChainMining.PREFIX + "§6 道路模式已开启§e(其他破坏方式已关闭)");
+ break;
default:
- sender.sendMessage(ChainMining.prefix + "§c 参数不正确");
+ sender.sendMessage(ChainMining.PREFIX + "§c 参数不正确");
break;
}
}
}
return true;
}
+
+ @Nullable
+ @Override
+ public List onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
+ List tab = new ArrayList<>();
+ if (args.length == 1) {
+ tab.add("cm");
+ tab.add("tr");
+ tab.add("auto");
+ tab.add("road");
+ tab.add("set");
+ } else if (args.length == 2 && ("cm".equals(args[0]) || "tr".equals(args[0]))) {
+ tab.add("on");
+ tab.add("off");
+ tab.add("toggle");
+ } else if (args.length == 2 && "set".equals(args[0])) {
+ tab.add("x");
+ } else if (args.length == 3 && "set".equals(args[0])) {
+ tab.add("y");
+ } else if (args.length == 4 && "set".equals(args[0])) {
+ tab.add("z");
+ }
+ return tab;
+ }
}
diff --git a/src/main/java/com/frontleaves/chainmining/commands/PluginMenu.java b/src/main/java/com/frontleaves/chainmining/commands/PluginMenu.java
index e2e9490..a95f3b5 100644
--- a/src/main/java/com/frontleaves/chainmining/commands/PluginMenu.java
+++ b/src/main/java/com/frontleaves/chainmining/commands/PluginMenu.java
@@ -1,15 +1,17 @@
package com.frontleaves.chainmining.commands;
import com.frontleaves.chainmining.ChainMining;
-import org.bukkit.command.Command;
-import org.bukkit.command.CommandExecutor;
-import org.bukkit.command.CommandSender;
+import org.bukkit.command.*;
import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.ArrayList;
+import java.util.List;
/**
* @author 锋楪技术(深圳)有限公司
*/
-public class PluginMenu implements CommandExecutor {
+public class PluginMenu implements CommandExecutor, TabExecutor, TabCompleter {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
@@ -19,7 +21,7 @@ public class PluginMenu implements CommandExecutor {
sender.sendMessage("§2连锁挖矿 §aChainMining");
sender.sendMessage("§1作者:§3锋楪技术§8[§9筱锋xiao_lfeng§8]");
sender.sendMessage("§6使用方法:§e/fycm help");
- sender.sendMessage("§c当前版本:§4v1.2-SNAPSHOT");
+ sender.sendMessage("§c当前版本:§4" + ChainMining.VERSION);
sender.sendMessage("§7§l§m=]========§2§l 连锁挖矿§a§lChainMining§7§l§m ========[=");
} else {
if ("help".equals(args[0])) {
@@ -74,7 +76,7 @@ public class PluginMenu implements CommandExecutor {
sender.sendMessage("§7§l§m=]========§2§l 连锁挖矿§a§lChainMining§7§l§m ========[=");
sender.sendMessage("§31 §8/ §32");
} else {
- sender.sendMessage(ChainMining.prefix + "§c 超出页面");
+ sender.sendMessage(ChainMining.PREFIX + "§c 超出页面");
}
}
break;
@@ -84,22 +86,33 @@ public class PluginMenu implements CommandExecutor {
sender.sendMessage("§7§l§m=]========§2§l 连锁挖矿§a§lChainMining§7§l§m ========[=");
break;
default:
- sender.sendMessage(ChainMining.prefix + "§c 参数错误,输入 /fycm 查看指令帮助");
+ sender.sendMessage(ChainMining.PREFIX + "§c 参数错误,输入 /fycm 查看指令帮助");
break;
}
}
} else if ("status".equals(args[0])) {
sender.sendMessage("§7§l§m=]========§2§l 连锁挖矿§a§lChainMining§7§l§m ========[=");
- sender.sendMessage("§6连锁挖矿:§3" + ChainMining.playerList.get(sender.getName()).get("chainMining"));
- sender.sendMessage("§6快速砍树:§3" + ChainMining.playerList.get(sender.getName()).get("tree"));
- sender.sendMessage("§6全局操作:§3" + ChainMining.playerList.get(sender.getName()).get("auto"));
- sender.sendMessage("§6开路模式:§3" + ChainMining.playerList.get(sender.getName()).get("road"));
+ sender.sendMessage("§6连锁挖矿:§3" + ChainMining.playerData.get(sender.getName()).get("chainMining"));
+ sender.sendMessage("§6快速砍树:§3" + ChainMining.playerData.get(sender.getName()).get("tree"));
+ sender.sendMessage("§6全局操作:§3" + ChainMining.playerData.get(sender.getName()).get("auto"));
+ sender.sendMessage("§6开路模式:§3" + ChainMining.playerData.get(sender.getName()).get("road"));
sender.sendMessage("§7§l§m=]========§2§l 连锁挖矿§a§lChainMining§7§l§m ========[=");
} else {
- sender.sendMessage(ChainMining.prefix + "§c 输入 /fycm 查看指令帮助");
+ sender.sendMessage(ChainMining.PREFIX + "§c 输入 /fycm 查看指令帮助");
}
}
}
return true;
}
+
+ @Nullable
+ @Override
+ public List onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
+ List tab = new ArrayList<>();
+ if (args.length == 1) {
+ tab.add("help");
+ tab.add("status");
+ }
+ return tab;
+ }
}
diff --git a/src/main/java/com/frontleaves/chainmining/listeners/AutoListener.java b/src/main/java/com/frontleaves/chainmining/listeners/AutoListener.java
new file mode 100644
index 0000000..c8e604b
--- /dev/null
+++ b/src/main/java/com/frontleaves/chainmining/listeners/AutoListener.java
@@ -0,0 +1,123 @@
+package com.frontleaves.chainmining.listeners;
+
+import com.frontleaves.chainmining.ChainMining;
+import org.bukkit.GameMode;
+import org.bukkit.Location;
+import org.bukkit.Material;
+import org.bukkit.Sound;
+import org.bukkit.block.Block;
+import org.bukkit.block.BlockFace;
+import org.bukkit.entity.ExperienceOrb;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
+import org.bukkit.event.block.BlockBreakEvent;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.meta.Damageable;
+import org.jetbrains.annotations.NotNull;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Objects;
+
+/**
+ * @author 锋楪技术(深圳)有限公司
+ */
+public class AutoListener implements Listener {
+
+ private static Material thisBreak;
+ private static int maxDurability;
+ private static int damage;
+ private static int blockNumber;
+ private static ItemStack playerMainHandTool;
+ private Location breakLocation;
+ // 获取方向配置
+ private int getX;
+ private int getY;
+ private int getZ;
+ private int relativeDistanceX;
+ private int relativeDistanceY;
+ private int relativeDistanceZ;
+
+ @EventHandler
+ public void autoBreakBlockEvent(BlockBreakEvent blockBreakEvent) {
+ // 检查玩家的操作是否被打开
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("auto")) {
+ // 检查玩家的游戏模式
+ if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
+ // 检查玩家是否蹲下
+ if (blockBreakEvent.getPlayer().isSneaking()) {
+ // 检查玩家当前是否可以破坏物品
+ ItemStack getPlayerHandItem = blockBreakEvent.getPlayer().getInventory().getItemInMainHand();
+ Collection getCollection = blockBreakEvent.getBlock().getDrops(getPlayerHandItem);
+ // 如果凋落物不为空
+ if (!getCollection.isEmpty()) {
+ // 前置准备
+ playerMainHandTool = blockBreakEvent.getPlayer().getInventory().getItemInMainHand();
+ Damageable getPlayerMindHandItem = (Damageable) playerMainHandTool.getItemMeta();
+ thisBreak = blockBreakEvent.getBlock().getType();
+ blockNumber = 0;
+ int expToDrop = blockBreakEvent.getExpToDrop();
+ breakLocation = blockBreakEvent.getBlock().getLocation();
+ HashMap getAutoMap = ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("typeAuto");
+ getX = getAutoMap.get("length");
+ getY = getAutoMap.get("height");
+ getZ = getAutoMap.get("width");
+ // 检查玩家手中物品有无耐久
+ if (getPlayerMindHandItem != null && getPlayerMindHandItem.hasDamage()) {
+ maxDurability = blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getType().getMaxDurability();
+ damage = getPlayerMindHandItem.getDamage();
+ }
+ // 执行破坏操作
+ directionOfOperation(blockBreakEvent.getBlock());
+ // 后置操作
+ if (getPlayerMindHandItem != null && getPlayerMindHandItem.hasDamage()) {
+ // 最大耐久检查
+ if (maxDurability - damage - blockNumber <= 0) {
+ if (blockNumber == 0) {
+ blockBreakEvent.setCancelled(true);
+ }
+ blockBreakEvent.getPlayer().getInventory().setItemInMainHand(new ItemStack(Material.AIR));
+ blockBreakEvent.getPlayer().playSound(blockBreakEvent.getPlayer().getLocation(), Sound.ENTITY_ITEM_BREAK, 1.0f, 1.0f);
+ } else {
+ getPlayerMindHandItem.setDamage(damage + blockNumber);
+ blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerMindHandItem);
+ Location location = blockBreakEvent.getBlock().getLocation();
+ if (expToDrop > 0) {
+ ExperienceOrb experienceOrb = Objects.requireNonNull(location.getWorld()).spawn(location, ExperienceOrb.class);
+ experienceOrb.setExperience(expToDrop * blockNumber);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ private void directionOfOperation(Block getBlock) {
+ for (BlockFace blockFace : BlockFace.values()) {
+ Block blocker = getBlock.getRelative(blockFace);
+ repetitiveStatement(blocker);
+ }
+ }
+
+ private void repetitiveStatement(@NotNull Block getBlock) {
+ while (getBlock.getType() == thisBreak) {
+ if (maxDurability - damage - blockNumber > 0) {
+ relativeDistanceX = Math.abs(breakLocation.getBlockX() - getBlock.getLocation().getBlockX());
+ relativeDistanceY = Math.abs(breakLocation.getBlockY() - getBlock.getLocation().getBlockY());
+ relativeDistanceZ = Math.abs(breakLocation.getBlockZ() - getBlock.getLocation().getBlockZ());
+ // 具体执行操作
+ if (relativeDistanceX <= getX && relativeDistanceY <= getY && relativeDistanceZ <= getZ) {
+ getBlock.breakNaturally(playerMainHandTool);
+ blockNumber++;
+ directionOfOperation(getBlock);
+ } else {
+ break;
+ }
+ } else {
+ break;
+ }
+ }
+ }
+}
diff --git a/src/main/java/com/frontleaves/chainmining/listeners/CutTreeListener.java b/src/main/java/com/frontleaves/chainmining/listeners/CutTreeListener.java
index 0904f9b..5530856 100644
--- a/src/main/java/com/frontleaves/chainmining/listeners/CutTreeListener.java
+++ b/src/main/java/com/frontleaves/chainmining/listeners/CutTreeListener.java
@@ -37,7 +37,7 @@ public class CutTreeListener implements Listener {
@EventHandler
public void oakLog(@NotNull BlockBreakEvent blockBreakEvent) {
// 检查玩家是否开启
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查能否掉落物品
@@ -75,7 +75,7 @@ public class CutTreeListener implements Listener {
@EventHandler
public void birchLog(@NotNull BlockBreakEvent blockBreakEvent) {
// 检查玩家是否开启
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查能否掉落物品
@@ -113,7 +113,7 @@ public class CutTreeListener implements Listener {
@EventHandler
public void jungleLog(@NotNull BlockBreakEvent blockBreakEvent) {
// 检查玩家是否开启
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查能否掉落物品
@@ -151,7 +151,7 @@ public class CutTreeListener implements Listener {
@EventHandler
public void acaciaLog(@NotNull BlockBreakEvent blockBreakEvent) {
// 检查玩家是否开启
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查能否掉落物品
@@ -189,7 +189,7 @@ public class CutTreeListener implements Listener {
@EventHandler
public void darkOrkLog(@NotNull BlockBreakEvent blockBreakEvent) {
// 检查玩家是否开启
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查能否掉落物品
@@ -227,7 +227,7 @@ public class CutTreeListener implements Listener {
@EventHandler
public void mangroveLog(@NotNull BlockBreakEvent blockBreakEvent) {
// 检查玩家是否开启
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查能否掉落物品
@@ -265,7 +265,7 @@ public class CutTreeListener implements Listener {
@EventHandler
public void cherryLog(@NotNull BlockBreakEvent blockBreakEvent) {
// 检查玩家是否开启
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查能否掉落物品
@@ -303,7 +303,7 @@ public class CutTreeListener implements Listener {
@EventHandler
public void crimsonStem(@NotNull BlockBreakEvent blockBreakEvent) {
// 检查玩家是否开启
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查能否掉落物品
@@ -341,7 +341,7 @@ public class CutTreeListener implements Listener {
@EventHandler
public void warpedStem(@NotNull BlockBreakEvent blockBreakEvent) {
// 检查玩家是否开启
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查能否掉落物品
@@ -379,7 +379,7 @@ public class CutTreeListener implements Listener {
@EventHandler
public void spruceLog(@NotNull BlockBreakEvent blockBreakEvent) {
// 检查玩家是否开启
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查能否掉落物品
@@ -417,7 +417,7 @@ public class CutTreeListener implements Listener {
@EventHandler
public void oakLeaves(@NotNull BlockBreakEvent blockBreakEvent) {
// 检查玩家是否开启
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查能否掉落物品
@@ -452,7 +452,7 @@ public class CutTreeListener implements Listener {
@EventHandler
public void spruceLeaves(@NotNull BlockBreakEvent blockBreakEvent) {
// 检查玩家是否开启
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查能否掉落物品
@@ -487,7 +487,7 @@ public class CutTreeListener implements Listener {
@EventHandler
public void birchLeaves(@NotNull BlockBreakEvent blockBreakEvent) {
// 检查玩家是否开启
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查能否掉落物品
@@ -522,7 +522,7 @@ public class CutTreeListener implements Listener {
@EventHandler
public void jungleLeaves(@NotNull BlockBreakEvent blockBreakEvent) {
// 检查玩家是否开启
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查能否掉落物品
@@ -557,7 +557,7 @@ public class CutTreeListener implements Listener {
@EventHandler
public void acaciaLeaves(@NotNull BlockBreakEvent blockBreakEvent) {
// 检查玩家是否开启
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查能否掉落物品
@@ -592,7 +592,7 @@ public class CutTreeListener implements Listener {
@EventHandler
public void mangroveLeaves(@NotNull BlockBreakEvent blockBreakEvent) {
// 检查玩家是否开启
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查能否掉落物品
@@ -627,7 +627,7 @@ public class CutTreeListener implements Listener {
@EventHandler
public void azaleaLeaves(@NotNull BlockBreakEvent blockBreakEvent) {
// 检查玩家是否开启
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查能否掉落物品
@@ -662,7 +662,7 @@ public class CutTreeListener implements Listener {
@EventHandler
public void cherryLeaves(@NotNull BlockBreakEvent blockBreakEvent) {
// 检查玩家是否开启
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查能否掉落物品
@@ -697,7 +697,7 @@ public class CutTreeListener implements Listener {
@EventHandler
public void floweringAzaleaLeaves(@NotNull BlockBreakEvent blockBreakEvent) {
// 检查玩家是否开启
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查能否掉落物品
@@ -732,7 +732,7 @@ public class CutTreeListener implements Listener {
@EventHandler
public void bambooBlock(@NotNull BlockBreakEvent blockBreakEvent) {
// 检查玩家是否开启
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查能否掉落物品
@@ -767,7 +767,7 @@ public class CutTreeListener implements Listener {
@EventHandler
public void crimsonFungus(@NotNull BlockBreakEvent blockBreakEvent) {
// 检查玩家是否开启
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查能否掉落物品
@@ -802,7 +802,7 @@ public class CutTreeListener implements Listener {
@EventHandler
public void warpedFungus(@NotNull BlockBreakEvent blockBreakEvent) {
// 检查玩家是否开启
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查能否掉落物品
diff --git a/src/main/java/com/frontleaves/chainmining/listeners/MineralsListener.java b/src/main/java/com/frontleaves/chainmining/listeners/MineralsListener.java
index cf573d2..e015659 100644
--- a/src/main/java/com/frontleaves/chainmining/listeners/MineralsListener.java
+++ b/src/main/java/com/frontleaves/chainmining/listeners/MineralsListener.java
@@ -33,7 +33,7 @@ public class MineralsListener implements Listener {
@EventHandler
public void mineralsCoal(BlockBreakEvent blockBreakEvent) {
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("chainMining")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("chainMining")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查物品
@@ -66,8 +66,10 @@ public class MineralsListener implements Listener {
getPlayerItem.setDamage(damage + blockNumber);
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
Location location = blockBreakEvent.getBlock().getLocation();
- ExperienceOrb experienceOrb = Objects.requireNonNull(location.getWorld()).spawn(location, ExperienceOrb.class);
- experienceOrb.setExperience(ExpToDrop * blockNumber);
+ if (ExpToDrop > 0) {
+ ExperienceOrb experienceOrb = Objects.requireNonNull(location.getWorld()).spawn(location, ExperienceOrb.class);
+ experienceOrb.setExperience(ExpToDrop * blockNumber);
+ }
}
}
}
@@ -79,7 +81,7 @@ public class MineralsListener implements Listener {
@EventHandler
public void mineralsIron(BlockBreakEvent blockBreakEvent) {
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("chainMining")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("chainMining")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查物品
@@ -112,8 +114,10 @@ public class MineralsListener implements Listener {
getPlayerItem.setDamage(damage + blockNumber);
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
Location location = blockBreakEvent.getBlock().getLocation();
- ExperienceOrb experienceOrb = Objects.requireNonNull(location.getWorld()).spawn(location, ExperienceOrb.class);
- experienceOrb.setExperience(ExpToDrop * blockNumber);
+ if (ExpToDrop > 0) {
+ ExperienceOrb experienceOrb = Objects.requireNonNull(location.getWorld()).spawn(location, ExperienceOrb.class);
+ experienceOrb.setExperience(ExpToDrop * blockNumber);
+ }
}
}
}
@@ -125,7 +129,7 @@ public class MineralsListener implements Listener {
@EventHandler
public void mineralsLapis(BlockBreakEvent blockBreakEvent) {
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("chainMining")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("chainMining")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查物品
@@ -158,8 +162,10 @@ public class MineralsListener implements Listener {
getPlayerItem.setDamage(damage + blockNumber);
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
Location location = blockBreakEvent.getBlock().getLocation();
- ExperienceOrb experienceOrb = Objects.requireNonNull(location.getWorld()).spawn(location, ExperienceOrb.class);
- experienceOrb.setExperience(ExpToDrop * blockNumber);
+ if (ExpToDrop > 0) {
+ ExperienceOrb experienceOrb = Objects.requireNonNull(location.getWorld()).spawn(location, ExperienceOrb.class);
+ experienceOrb.setExperience(ExpToDrop * blockNumber);
+ }
}
}
}
@@ -171,7 +177,7 @@ public class MineralsListener implements Listener {
@EventHandler
public void mineralsCopper(BlockBreakEvent blockBreakEvent) {
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("chainMining")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("chainMining")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查物品
@@ -204,8 +210,10 @@ public class MineralsListener implements Listener {
getPlayerItem.setDamage(damage + blockNumber);
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
Location location = blockBreakEvent.getBlock().getLocation();
- ExperienceOrb experienceOrb = Objects.requireNonNull(location.getWorld()).spawn(location, ExperienceOrb.class);
- experienceOrb.setExperience(ExpToDrop * blockNumber);
+ if (ExpToDrop > 0) {
+ ExperienceOrb experienceOrb = Objects.requireNonNull(location.getWorld()).spawn(location, ExperienceOrb.class);
+ experienceOrb.setExperience(ExpToDrop * blockNumber);
+ }
}
}
}
@@ -217,7 +225,7 @@ public class MineralsListener implements Listener {
@EventHandler
public void mineralsGold(BlockBreakEvent blockBreakEvent) {
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("chainMining")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("chainMining")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查物品
@@ -250,8 +258,10 @@ public class MineralsListener implements Listener {
getPlayerItem.setDamage(damage + blockNumber);
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
Location location = blockBreakEvent.getBlock().getLocation();
- ExperienceOrb experienceOrb = Objects.requireNonNull(location.getWorld()).spawn(location, ExperienceOrb.class);
- experienceOrb.setExperience(ExpToDrop * blockNumber);
+ if (ExpToDrop > 0) {
+ ExperienceOrb experienceOrb = Objects.requireNonNull(location.getWorld()).spawn(location, ExperienceOrb.class);
+ experienceOrb.setExperience(ExpToDrop * blockNumber);
+ }
}
}
}
@@ -263,7 +273,7 @@ public class MineralsListener implements Listener {
@EventHandler
public void mineralsRedStone(BlockBreakEvent blockBreakEvent) {
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("chainMining")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("chainMining")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查物品
@@ -296,8 +306,10 @@ public class MineralsListener implements Listener {
getPlayerItem.setDamage(damage + blockNumber);
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
Location location = blockBreakEvent.getBlock().getLocation();
- ExperienceOrb experienceOrb = Objects.requireNonNull(location.getWorld()).spawn(location, ExperienceOrb.class);
- experienceOrb.setExperience(ExpToDrop * blockNumber);
+ if (ExpToDrop > 0) {
+ ExperienceOrb experienceOrb = Objects.requireNonNull(location.getWorld()).spawn(location, ExperienceOrb.class);
+ experienceOrb.setExperience(ExpToDrop * blockNumber);
+ }
}
}
}
@@ -309,7 +321,7 @@ public class MineralsListener implements Listener {
@EventHandler
public void mineralsDiamond(BlockBreakEvent blockBreakEvent) {
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("chainMining")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("chainMining")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查物品
@@ -342,8 +354,10 @@ public class MineralsListener implements Listener {
getPlayerItem.setDamage(damage + blockNumber);
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
Location location = blockBreakEvent.getBlock().getLocation();
- ExperienceOrb experienceOrb = Objects.requireNonNull(location.getWorld()).spawn(location, ExperienceOrb.class);
- experienceOrb.setExperience(ExpToDrop * blockNumber);
+ if (ExpToDrop > 0) {
+ ExperienceOrb experienceOrb = Objects.requireNonNull(location.getWorld()).spawn(location, ExperienceOrb.class);
+ experienceOrb.setExperience(ExpToDrop * blockNumber);
+ }
}
}
}
@@ -355,7 +369,7 @@ public class MineralsListener implements Listener {
@EventHandler
public void mineralsEmerald(BlockBreakEvent blockBreakEvent) {
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("chainMining")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("chainMining")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查物品
@@ -388,8 +402,10 @@ public class MineralsListener implements Listener {
getPlayerItem.setDamage(damage + blockNumber);
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
Location location = blockBreakEvent.getBlock().getLocation();
- ExperienceOrb experienceOrb = Objects.requireNonNull(location.getWorld()).spawn(location, ExperienceOrb.class);
- experienceOrb.setExperience(ExpToDrop * blockNumber);
+ if (ExpToDrop > 0) {
+ ExperienceOrb experienceOrb = Objects.requireNonNull(location.getWorld()).spawn(location, ExperienceOrb.class);
+ experienceOrb.setExperience(ExpToDrop * blockNumber);
+ }
}
}
}
@@ -401,7 +417,7 @@ public class MineralsListener implements Listener {
@EventHandler
public void mineralsNetherQuartz(BlockBreakEvent blockBreakEvent) {
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("chainMining")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("chainMining")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查物品
@@ -433,8 +449,10 @@ public class MineralsListener implements Listener {
getPlayerItem.setDamage(damage + blockNumber);
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
Location location = blockBreakEvent.getBlock().getLocation();
- ExperienceOrb experienceOrb = Objects.requireNonNull(location.getWorld()).spawn(location, ExperienceOrb.class);
- experienceOrb.setExperience(ExpToDrop * blockNumber);
+ if (ExpToDrop > 0) {
+ ExperienceOrb experienceOrb = Objects.requireNonNull(location.getWorld()).spawn(location, ExperienceOrb.class);
+ experienceOrb.setExperience(ExpToDrop * blockNumber);
+ }
}
}
}
@@ -446,7 +464,7 @@ public class MineralsListener implements Listener {
@EventHandler
public void mineralsNetherGold(BlockBreakEvent blockBreakEvent) {
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("chainMining")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("chainMining")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查物品
@@ -478,8 +496,10 @@ public class MineralsListener implements Listener {
getPlayerItem.setDamage(damage + blockNumber);
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
Location location = blockBreakEvent.getBlock().getLocation();
- ExperienceOrb experienceOrb = Objects.requireNonNull(location.getWorld()).spawn(location, ExperienceOrb.class);
- experienceOrb.setExperience(ExpToDrop * blockNumber);
+ if (ExpToDrop > 0) {
+ ExperienceOrb experienceOrb = Objects.requireNonNull(location.getWorld()).spawn(location, ExperienceOrb.class);
+ experienceOrb.setExperience(ExpToDrop * blockNumber);
+ }
}
}
}
@@ -491,7 +511,7 @@ public class MineralsListener implements Listener {
@EventHandler
public void mineralsAncient(BlockBreakEvent blockBreakEvent) {
- if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("chainMining")) {
+ if (ChainMining.playerData.get(blockBreakEvent.getPlayer().getName()).get("chainMining")) {
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
if (blockBreakEvent.getPlayer().isSneaking()) {
// 检查物品
@@ -523,8 +543,10 @@ public class MineralsListener implements Listener {
getPlayerItem.setDamage(damage + blockNumber);
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
Location location = blockBreakEvent.getBlock().getLocation();
- ExperienceOrb experienceOrb = Objects.requireNonNull(location.getWorld()).spawn(location, ExperienceOrb.class);
- experienceOrb.setExperience(ExpToDrop * blockNumber);
+ if (ExpToDrop > 0) {
+ ExperienceOrb experienceOrb = Objects.requireNonNull(location.getWorld()).spawn(location, ExperienceOrb.class);
+ experienceOrb.setExperience(ExpToDrop * blockNumber);
+ }
}
}
}
diff --git a/src/main/java/com/frontleaves/chainmining/listeners/PlayerJoinServerListener.java b/src/main/java/com/frontleaves/chainmining/listeners/PlayerJoinServerListener.java
index c92de0e..a21e1a9 100644
--- a/src/main/java/com/frontleaves/chainmining/listeners/PlayerJoinServerListener.java
+++ b/src/main/java/com/frontleaves/chainmining/listeners/PlayerJoinServerListener.java
@@ -15,16 +15,32 @@ public class PlayerJoinServerListener implements Listener {
@EventHandler
public void playerJoinEvent(PlayerJoinEvent getPlayer) {
+ HashMap> typeData = new HashMap<>();
HashMap playerData = new HashMap<>();
+ HashMap infoDataForAuto = new HashMap<>();
+ HashMap infoDataForRoad = new HashMap<>();
+
playerData.put("chainMining", true);
playerData.put("tree", true);
playerData.put("auto", false);
playerData.put("road", false);
- ChainMining.playerList.put(getPlayer.getPlayer().getName(), playerData);
+
+ infoDataForAuto.put("length", 2);
+ infoDataForAuto.put("width", 2);
+ infoDataForAuto.put("height", 1);
+
+ infoDataForRoad.put("width", 1);
+ infoDataForRoad.put("height", 2);
+
+ typeData.put("typeAuto", infoDataForAuto);
+ typeData.put("typeRoad", infoDataForRoad);
+ ChainMining.playerData.put(getPlayer.getPlayer().getName(), playerData);
+ ChainMining.playerList.put(getPlayer.getPlayer().getName(), typeData);
}
@EventHandler
public void playerLeaveEvent(PlayerQuitEvent getPlayer) {
ChainMining.playerList.remove(getPlayer.getPlayer().getName());
+ ChainMining.playerData.remove(getPlayer.getPlayer().getName());
}
}