优化代码逻辑,添加代码补全,添加全局方块快速破坏
This commit is contained in:
parent
9d7cfbeb78
commit
fd0aec14b9
2
pom.xml
2
pom.xml
@ -6,7 +6,7 @@
|
||||
|
||||
<groupId>com.frontleaves</groupId>
|
||||
<artifactId>ChainMining</artifactId>
|
||||
<version>1.2-SNAPSHOT</version>
|
||||
<version>1.3-SNAPSHOT</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>chainMining</name>
|
||||
|
@ -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<String,HashMap<String, Boolean>> playerList = new HashMap<>();
|
||||
public static HashMap<String, HashMap<String, HashMap<String, Integer>>> playerList = new HashMap<>();
|
||||
public static HashMap<String, HashMap<String, Boolean>> 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("插件启动成功");
|
||||
}
|
||||
|
@ -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<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
|
||||
List<String> 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;
|
||||
}
|
||||
}
|
||||
|
@ -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<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
|
||||
List<String> tab = new ArrayList<>();
|
||||
if (args.length == 1) {
|
||||
tab.add("help");
|
||||
tab.add("status");
|
||||
}
|
||||
return tab;
|
||||
}
|
||||
}
|
||||
|
@ -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<ItemStack> 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<String, Integer> 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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()) {
|
||||
// 检查能否掉落物品
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -15,16 +15,32 @@ public class PlayerJoinServerListener implements Listener {
|
||||
|
||||
@EventHandler
|
||||
public void playerJoinEvent(PlayerJoinEvent getPlayer) {
|
||||
HashMap<String, HashMap<String, Integer>> typeData = new HashMap<>();
|
||||
HashMap<String, Boolean> playerData = new HashMap<>();
|
||||
HashMap<String, Integer> infoDataForAuto = new HashMap<>();
|
||||
HashMap<String, Integer> 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());
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user