优化代码,添加快捷砍树内容,添加可以指令开启或关闭砍树与挖矿
This commit is contained in:
parent
1313d407ba
commit
267480f028
2
pom.xml
2
pom.xml
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<groupId>com.frontleaves</groupId>
|
<groupId>com.frontleaves</groupId>
|
||||||
<artifactId>ChainMining</artifactId>
|
<artifactId>ChainMining</artifactId>
|
||||||
<version>1.0-SNAPSHOT</version>
|
<version>1.2-SNAPSHOT</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<name>chainMining</name>
|
<name>chainMining</name>
|
||||||
|
@ -1,20 +1,33 @@
|
|||||||
package com.frontleaves.chainmining;
|
package com.frontleaves.chainmining;
|
||||||
|
|
||||||
|
import com.frontleaves.chainmining.commands.ChangeToUse;
|
||||||
import com.frontleaves.chainmining.commands.PluginMenu;
|
import com.frontleaves.chainmining.commands.PluginMenu;
|
||||||
|
import com.frontleaves.chainmining.listeners.CutTreeListener;
|
||||||
import com.frontleaves.chainmining.listeners.MineralsListener;
|
import com.frontleaves.chainmining.listeners.MineralsListener;
|
||||||
|
import com.frontleaves.chainmining.listeners.PlayerJoinServerListener;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author 锋楪技术(深圳)有限公司
|
* @author 锋楪技术(深圳)有限公司
|
||||||
*/
|
*/
|
||||||
public final class ChainMining extends JavaPlugin {
|
public final class ChainMining extends JavaPlugin {
|
||||||
|
|
||||||
|
public static String prefix = "§8[§bFYCM§8]";
|
||||||
|
|
||||||
|
public static HashMap<String,HashMap<String, Boolean>> playerList = new HashMap<>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
// 载入插件指令
|
// 载入插件指令
|
||||||
getCommand("fycm").setExecutor(new PluginMenu(this));
|
Objects.requireNonNull(getCommand("fycm")).setExecutor(new PluginMenu());
|
||||||
|
Objects.requireNonNull(getCommand("fykg")).setExecutor(new ChangeToUse());
|
||||||
// 载入监听器
|
// 载入监听器
|
||||||
|
getServer().getPluginManager().registerEvents(new PlayerJoinServerListener(), this);
|
||||||
getServer().getPluginManager().registerEvents(new MineralsListener(), this);
|
getServer().getPluginManager().registerEvents(new MineralsListener(), this);
|
||||||
|
getServer().getPluginManager().registerEvents(new CutTreeListener(), this);
|
||||||
// Plugin startup logic
|
// Plugin startup logic
|
||||||
getLogger().info("插件启动成功");
|
getLogger().info("插件启动成功");
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,74 @@
|
|||||||
|
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.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author 锋楪技术(深圳)有限公司
|
||||||
|
*/
|
||||||
|
public class ChangeToUse implements CommandExecutor {
|
||||||
|
@Override
|
||||||
|
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
|
||||||
|
if ("fykg".equalsIgnoreCase(command.getName())) {
|
||||||
|
if (args.length != 0) {
|
||||||
|
switch (args[0]) {
|
||||||
|
case "cm":
|
||||||
|
switch (args[1]) {
|
||||||
|
case "on":
|
||||||
|
ChainMining.playerList.get(sender.getName()).put("chainMining", true);
|
||||||
|
sender.sendMessage(ChainMining.prefix + "§6 连锁挖矿设置为§2开启");
|
||||||
|
break;
|
||||||
|
case "off":
|
||||||
|
ChainMining.playerList.get(sender.getName()).put("chainMining", 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关闭");
|
||||||
|
} else {
|
||||||
|
ChainMining.playerList.get(sender.getName()).put("chainMining", true);
|
||||||
|
sender.sendMessage(ChainMining.prefix + "§6 连锁挖矿切换为§2开启");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
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开启");
|
||||||
|
break;
|
||||||
|
case "off":
|
||||||
|
ChainMining.playerList.get(sender.getName()).put("tree", 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关闭");
|
||||||
|
} else {
|
||||||
|
ChainMining.playerList.get(sender.getName()).put("tree", true);
|
||||||
|
sender.sendMessage(ChainMining.prefix + "§6 快速砍树切换为§2开启");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
sender.sendMessage(ChainMining.prefix + "§c 参数错误");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
sender.sendMessage(ChainMining.prefix + "§c 参数不正确");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,105 @@
|
|||||||
|
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.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author 锋楪技术(深圳)有限公司
|
||||||
|
*/
|
||||||
|
public class PluginMenu implements CommandExecutor {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
|
||||||
|
if ("fycm".equalsIgnoreCase(command.getName())) {
|
||||||
|
if (args.length == 0) {
|
||||||
|
sender.sendMessage("§7§l§m=]========§2§l 连锁挖矿§a§lChainMining§7§l§m ========[=");
|
||||||
|
sender.sendMessage("§2连锁挖矿 §aChainMining");
|
||||||
|
sender.sendMessage("§1作者:§3锋楪技术§8[§9筱锋xiao_lfeng§8]");
|
||||||
|
sender.sendMessage("§6使用方法:§e/fycm help");
|
||||||
|
sender.sendMessage("§c当前版本:§4v1.1-SNAPSHOT");
|
||||||
|
sender.sendMessage("§7§l§m=]========§2§l 连锁挖矿§a§lChainMining§7§l§m ========[=");
|
||||||
|
} else {
|
||||||
|
if ("help".equals(args[0])) {
|
||||||
|
if (args.length == 1) {
|
||||||
|
sender.sendMessage("§7§l§m=]========§2§l 连锁挖矿§a§lChainMining§7§l§m ========[=");
|
||||||
|
sender.sendMessage("§6/fycm help info §7--关于操作方法");
|
||||||
|
sender.sendMessage("§6/fycm help operate §7--查看如何使用");
|
||||||
|
sender.sendMessage("§6/fycm help scope §7--切换不同范围");
|
||||||
|
sender.sendMessage("§6/fycm status §7--查看当前状态");
|
||||||
|
sender.sendMessage("§7§l§m=]========§2§l 连锁挖矿§a§lChainMining§7§l§m ========[=");
|
||||||
|
} else {
|
||||||
|
switch (args[1]) {
|
||||||
|
case "info":
|
||||||
|
sender.sendMessage("§7§l§m=]========§2§l 连锁挖矿§a§lChainMining§7§l§m ========[=");
|
||||||
|
sender.sendMessage("本插件的使用方法大致分为如下四点:");
|
||||||
|
sender.sendMessage("- 您可以单独使用连锁挖矿和快速砍树,两者可直接打开不会受到影响");
|
||||||
|
sender.sendMessage("- 当您开启全局模式时候其他连锁挖矿、快速砍树和开路模式将会失效");
|
||||||
|
sender.sendMessage("- 当您开启开路模式时候其他连锁挖矿、快速砍树和全局模式将会失效");
|
||||||
|
sender.sendMessage("- 切换范围仅在全局模式适用,开路模式消耗盔甲耐久");
|
||||||
|
sender.sendMessage("§7§l§m=]========§2§l 连锁挖矿§a§lChainMining§7§l§m ========[=");
|
||||||
|
break;
|
||||||
|
case "operate":
|
||||||
|
if (args.length == 2) {
|
||||||
|
sender.sendMessage("§7§l§m=]========§2§l 连锁挖矿§a§lChainMining§7§l§m ========[=");
|
||||||
|
sender.sendMessage("§6/fykg cm on §7--启动连锁挖矿");
|
||||||
|
sender.sendMessage("§6/fykg cm off §7--关闭连锁挖矿");
|
||||||
|
sender.sendMessage("§6/fykg cm toggle §7--切换连锁挖矿");
|
||||||
|
sender.sendMessage("§6/fykg tr on §7--启动快速砍树");
|
||||||
|
sender.sendMessage("§6/fykg tr off §7--关闭快速砍树");
|
||||||
|
sender.sendMessage("§6/fykg tr toggle §7--切换快速砍树");
|
||||||
|
sender.sendMessage("§7§l§m=]========§2§l 连锁挖矿§a§lChainMining§7§l§m ========[=");
|
||||||
|
sender.sendMessage("§31 §8/ §32");
|
||||||
|
} else {
|
||||||
|
if ("1".equals(args[2])) {
|
||||||
|
sender.sendMessage("§7§l§m=]========§2§l 连锁挖矿§a§lChainMining§7§l§m ========[=");
|
||||||
|
sender.sendMessage("§6/fykg cm on §7--启动连锁挖矿");
|
||||||
|
sender.sendMessage("§6/fykg cm off §7--关闭连锁挖矿");
|
||||||
|
sender.sendMessage("§6/fykg cm toggle §7--切换连锁挖矿");
|
||||||
|
sender.sendMessage("§6/fykg tr on §7--启动快速砍树");
|
||||||
|
sender.sendMessage("§6/fykg tr off §7--关闭快速砍树");
|
||||||
|
sender.sendMessage("§6/fykg tr toggle §7--切换快速砍树");
|
||||||
|
sender.sendMessage("§7§l§m=]========§2§l 连锁挖矿§a§lChainMining§7§l§m ========[=");
|
||||||
|
sender.sendMessage("§31 §8/ §32");
|
||||||
|
} else if ("2".equals(args[2])) {
|
||||||
|
sender.sendMessage("§7§l§m=]========§2§l 连锁挖矿§a§lChainMining§7§l§m ========[=");
|
||||||
|
sender.sendMessage("§6/fykg auto on §7--启动连锁挖矿");
|
||||||
|
sender.sendMessage("§6/fykg auto off §7--关闭连锁挖矿");
|
||||||
|
sender.sendMessage("§6/fykg auto toggle §7--切换连锁挖矿");
|
||||||
|
sender.sendMessage("§6/fykg road on §7--启动快速砍树");
|
||||||
|
sender.sendMessage("§6/fykg road off §7--关闭快速砍树");
|
||||||
|
sender.sendMessage("§6/fykg road toggle §7--切换快速砍树");
|
||||||
|
sender.sendMessage("§7§l§m=]========§2§l 连锁挖矿§a§lChainMining§7§l§m ========[=");
|
||||||
|
sender.sendMessage("§31 §8/ §32");
|
||||||
|
} else {
|
||||||
|
sender.sendMessage(ChainMining.prefix + "§c 超出页面");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "scope":
|
||||||
|
sender.sendMessage("§7§l§m=]========§2§l 连锁挖矿§a§lChainMining§7§l§m ========[=");
|
||||||
|
sender.sendMessage("§6/fycm all §7--切换快速砍树");
|
||||||
|
sender.sendMessage("§7§l§m=]========§2§l 连锁挖矿§a§lChainMining§7§l§m ========[=");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
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("§7§l§m=]========§2§l 连锁挖矿§a§lChainMining§7§l§m ========[=");
|
||||||
|
} else {
|
||||||
|
sender.sendMessage(ChainMining.prefix + "§c 输入 /fycm 查看指令帮助");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,864 @@
|
|||||||
|
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.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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author 锋楪技术(深圳)有限公司
|
||||||
|
*/
|
||||||
|
public class CutTreeListener implements Listener {
|
||||||
|
|
||||||
|
private int oakNumber;
|
||||||
|
// 本次木头(需要扣除耐久)
|
||||||
|
private Material thisBreak;
|
||||||
|
// 本次树叶
|
||||||
|
private Material thisLeaves;
|
||||||
|
// 获取破坏位置
|
||||||
|
private Location breakLocation;
|
||||||
|
private int relativeDistanceX;
|
||||||
|
private int relativeDistanceZ;
|
||||||
|
// 最大破坏能力
|
||||||
|
private int damage;
|
||||||
|
private int maxDamage;
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void oakLog(@NotNull BlockBreakEvent blockBreakEvent) {
|
||||||
|
// 检查玩家是否开启
|
||||||
|
if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
|
||||||
|
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
|
||||||
|
// 检查能否掉落物品
|
||||||
|
if (blockBreakEvent.getBlock().getType() == Material.OAK_LOG
|
||||||
|
|| blockBreakEvent.getBlock().getType() == Material.STRIPPED_OAK_LOG) {
|
||||||
|
// 初始化参数
|
||||||
|
Damageable getPlayerItem = (Damageable) blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getItemMeta();
|
||||||
|
thisBreak = blockBreakEvent.getBlock().getType();
|
||||||
|
thisLeaves = Material.OAK_LEAVES;
|
||||||
|
breakLocation = blockBreakEvent.getBlock().getLocation();
|
||||||
|
oakNumber = 0;
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
maxDamage = blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getType().getMaxDurability();
|
||||||
|
damage = getPlayerItem.getDamage();
|
||||||
|
}
|
||||||
|
// 进行砍树
|
||||||
|
anyWay(0, blockBreakEvent.getBlock());
|
||||||
|
// 对物品造成破坏
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
if (damage + oakNumber < maxDamage) {
|
||||||
|
getPlayerItem.setDamage(damage + oakNumber);
|
||||||
|
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
|
||||||
|
} else {
|
||||||
|
blockBreakEvent.getPlayer().getInventory().setItemInMainHand(new ItemStack(Material.AIR));
|
||||||
|
blockBreakEvent.getPlayer().playSound(blockBreakEvent.getPlayer().getLocation(), Sound.ENTITY_ITEM_BREAK, 1.0f, 1.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void birchLog(@NotNull BlockBreakEvent blockBreakEvent) {
|
||||||
|
// 检查玩家是否开启
|
||||||
|
if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
|
||||||
|
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
|
||||||
|
// 检查能否掉落物品
|
||||||
|
if (blockBreakEvent.getBlock().getType() == Material.BIRCH_LOG
|
||||||
|
|| blockBreakEvent.getBlock().getType() == Material.STRIPPED_BIRCH_LOG) {
|
||||||
|
// 初始化参数
|
||||||
|
Damageable getPlayerItem = (Damageable) blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getItemMeta();
|
||||||
|
thisBreak = blockBreakEvent.getBlock().getType();
|
||||||
|
thisLeaves = Material.BIRCH_LEAVES;
|
||||||
|
breakLocation = blockBreakEvent.getBlock().getLocation();
|
||||||
|
oakNumber = 0;
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
maxDamage = blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getType().getMaxDurability();
|
||||||
|
damage = getPlayerItem.getDamage();
|
||||||
|
}
|
||||||
|
// 进行砍树
|
||||||
|
anyWay(0, blockBreakEvent.getBlock());
|
||||||
|
// 对物品造成破坏
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
if (damage + oakNumber < maxDamage) {
|
||||||
|
getPlayerItem.setDamage(damage + oakNumber);
|
||||||
|
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
|
||||||
|
} else {
|
||||||
|
blockBreakEvent.getPlayer().getInventory().setItemInMainHand(new ItemStack(Material.AIR));
|
||||||
|
blockBreakEvent.getPlayer().playSound(blockBreakEvent.getPlayer().getLocation(), Sound.ENTITY_ITEM_BREAK, 1.0f, 1.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void jungleLog(@NotNull BlockBreakEvent blockBreakEvent) {
|
||||||
|
// 检查玩家是否开启
|
||||||
|
if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
|
||||||
|
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
|
||||||
|
// 检查能否掉落物品
|
||||||
|
if (blockBreakEvent.getBlock().getType() == Material.JUNGLE_LOG
|
||||||
|
|| blockBreakEvent.getBlock().getType() == Material.STRIPPED_JUNGLE_LOG) {
|
||||||
|
// 初始化参数
|
||||||
|
Damageable getPlayerItem = (Damageable) blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getItemMeta();
|
||||||
|
thisBreak = blockBreakEvent.getBlock().getType();
|
||||||
|
thisLeaves = Material.JUNGLE_LEAVES;
|
||||||
|
breakLocation = blockBreakEvent.getBlock().getLocation();
|
||||||
|
oakNumber = 0;
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
maxDamage = blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getType().getMaxDurability();
|
||||||
|
damage = getPlayerItem.getDamage();
|
||||||
|
}
|
||||||
|
// 进行砍树
|
||||||
|
anyWay(0, blockBreakEvent.getBlock());
|
||||||
|
// 对物品造成破坏
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
if (damage + oakNumber < maxDamage) {
|
||||||
|
getPlayerItem.setDamage(damage + oakNumber);
|
||||||
|
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
|
||||||
|
} else {
|
||||||
|
blockBreakEvent.getPlayer().getInventory().setItemInMainHand(new ItemStack(Material.AIR));
|
||||||
|
blockBreakEvent.getPlayer().playSound(blockBreakEvent.getPlayer().getLocation(), Sound.ENTITY_ITEM_BREAK, 1.0f, 1.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void acaciaLog(@NotNull BlockBreakEvent blockBreakEvent) {
|
||||||
|
// 检查玩家是否开启
|
||||||
|
if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
|
||||||
|
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
|
||||||
|
// 检查能否掉落物品
|
||||||
|
if (blockBreakEvent.getBlock().getType() == Material.ACACIA_LOG
|
||||||
|
|| blockBreakEvent.getBlock().getType() == Material.STRIPPED_ACACIA_LOG) {
|
||||||
|
// 初始化参数
|
||||||
|
Damageable getPlayerItem = (Damageable) blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getItemMeta();
|
||||||
|
thisBreak = blockBreakEvent.getBlock().getType();
|
||||||
|
thisLeaves = Material.ACACIA_LEAVES;
|
||||||
|
breakLocation = blockBreakEvent.getBlock().getLocation();
|
||||||
|
oakNumber = 0;
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
maxDamage = blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getType().getMaxDurability();
|
||||||
|
damage = getPlayerItem.getDamage();
|
||||||
|
}
|
||||||
|
// 进行砍树
|
||||||
|
anyWay(0, blockBreakEvent.getBlock());
|
||||||
|
// 对物品造成破坏
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
if (damage + oakNumber < maxDamage) {
|
||||||
|
getPlayerItem.setDamage(damage + oakNumber);
|
||||||
|
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
|
||||||
|
} else {
|
||||||
|
blockBreakEvent.getPlayer().getInventory().setItemInMainHand(new ItemStack(Material.AIR));
|
||||||
|
blockBreakEvent.getPlayer().playSound(blockBreakEvent.getPlayer().getLocation(), Sound.ENTITY_ITEM_BREAK, 1.0f, 1.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void darkOrkLog(@NotNull BlockBreakEvent blockBreakEvent) {
|
||||||
|
// 检查玩家是否开启
|
||||||
|
if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
|
||||||
|
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
|
||||||
|
// 检查能否掉落物品
|
||||||
|
if (blockBreakEvent.getBlock().getType() == Material.DARK_OAK_LOG
|
||||||
|
|| blockBreakEvent.getBlock().getType() == Material.STRIPPED_DARK_OAK_LOG) {
|
||||||
|
// 初始化参数
|
||||||
|
Damageable getPlayerItem = (Damageable) blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getItemMeta();
|
||||||
|
thisBreak = blockBreakEvent.getBlock().getType();
|
||||||
|
thisLeaves = Material.DARK_OAK_LEAVES;
|
||||||
|
breakLocation = blockBreakEvent.getBlock().getLocation();
|
||||||
|
oakNumber = 0;
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
maxDamage = blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getType().getMaxDurability();
|
||||||
|
damage = getPlayerItem.getDamage();
|
||||||
|
}
|
||||||
|
// 进行砍树
|
||||||
|
anyWay(0, blockBreakEvent.getBlock());
|
||||||
|
// 对物品造成破坏
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
if (damage + oakNumber < maxDamage) {
|
||||||
|
getPlayerItem.setDamage(damage + oakNumber);
|
||||||
|
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
|
||||||
|
} else {
|
||||||
|
blockBreakEvent.getPlayer().getInventory().setItemInMainHand(new ItemStack(Material.AIR));
|
||||||
|
blockBreakEvent.getPlayer().playSound(blockBreakEvent.getPlayer().getLocation(), Sound.ENTITY_ITEM_BREAK, 1.0f, 1.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void mangroveLog(@NotNull BlockBreakEvent blockBreakEvent) {
|
||||||
|
// 检查玩家是否开启
|
||||||
|
if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
|
||||||
|
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
|
||||||
|
// 检查能否掉落物品
|
||||||
|
if (blockBreakEvent.getBlock().getType() == Material.MANGROVE_LOG
|
||||||
|
|| blockBreakEvent.getBlock().getType() == Material.STRIPPED_MANGROVE_LOG) {
|
||||||
|
// 初始化参数
|
||||||
|
Damageable getPlayerItem = (Damageable) blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getItemMeta();
|
||||||
|
thisBreak = blockBreakEvent.getBlock().getType();
|
||||||
|
thisLeaves = Material.MANGROVE_LEAVES;
|
||||||
|
breakLocation = blockBreakEvent.getBlock().getLocation();
|
||||||
|
oakNumber = 0;
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
maxDamage = blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getType().getMaxDurability();
|
||||||
|
damage = getPlayerItem.getDamage();
|
||||||
|
}
|
||||||
|
// 进行砍树
|
||||||
|
anyWay(0, blockBreakEvent.getBlock());
|
||||||
|
// 对物品造成破坏
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
if (damage + oakNumber < maxDamage) {
|
||||||
|
getPlayerItem.setDamage(damage + oakNumber);
|
||||||
|
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
|
||||||
|
} else {
|
||||||
|
blockBreakEvent.getPlayer().getInventory().setItemInMainHand(new ItemStack(Material.AIR));
|
||||||
|
blockBreakEvent.getPlayer().playSound(blockBreakEvent.getPlayer().getLocation(), Sound.ENTITY_ITEM_BREAK, 1.0f, 1.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void cherryLog(@NotNull BlockBreakEvent blockBreakEvent) {
|
||||||
|
// 检查玩家是否开启
|
||||||
|
if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
|
||||||
|
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
|
||||||
|
// 检查能否掉落物品
|
||||||
|
if (blockBreakEvent.getBlock().getType() == Material.CHERRY_LOG
|
||||||
|
|| blockBreakEvent.getBlock().getType() == Material.STRIPPED_CHERRY_LOG) {
|
||||||
|
// 初始化参数
|
||||||
|
Damageable getPlayerItem = (Damageable) blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getItemMeta();
|
||||||
|
thisBreak = blockBreakEvent.getBlock().getType();
|
||||||
|
thisLeaves = Material.CHERRY_LEAVES;
|
||||||
|
breakLocation = blockBreakEvent.getBlock().getLocation();
|
||||||
|
oakNumber = 0;
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
maxDamage = blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getType().getMaxDurability();
|
||||||
|
damage = getPlayerItem.getDamage();
|
||||||
|
}
|
||||||
|
// 进行砍树
|
||||||
|
anyWay(0, blockBreakEvent.getBlock());
|
||||||
|
// 对物品造成破坏
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
if (damage + oakNumber < maxDamage) {
|
||||||
|
getPlayerItem.setDamage(damage + oakNumber);
|
||||||
|
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
|
||||||
|
} else {
|
||||||
|
blockBreakEvent.getPlayer().getInventory().setItemInMainHand(new ItemStack(Material.AIR));
|
||||||
|
blockBreakEvent.getPlayer().playSound(blockBreakEvent.getPlayer().getLocation(), Sound.ENTITY_ITEM_BREAK, 1.0f, 1.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void crimsonStem(@NotNull BlockBreakEvent blockBreakEvent) {
|
||||||
|
// 检查玩家是否开启
|
||||||
|
if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
|
||||||
|
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
|
||||||
|
// 检查能否掉落物品
|
||||||
|
if (blockBreakEvent.getBlock().getType() == Material.CRIMSON_STEM
|
||||||
|
|| blockBreakEvent.getBlock().getType() == Material.STRIPPED_CRIMSON_STEM) {
|
||||||
|
// 初始化参数
|
||||||
|
Damageable getPlayerItem = (Damageable) blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getItemMeta();
|
||||||
|
thisBreak = blockBreakEvent.getBlock().getType();
|
||||||
|
thisLeaves = Material.CRIMSON_FUNGUS;
|
||||||
|
breakLocation = blockBreakEvent.getBlock().getLocation();
|
||||||
|
oakNumber = 0;
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
maxDamage = blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getType().getMaxDurability();
|
||||||
|
damage = getPlayerItem.getDamage();
|
||||||
|
}
|
||||||
|
// 进行砍树
|
||||||
|
anyWay(0, blockBreakEvent.getBlock());
|
||||||
|
// 对物品造成破坏
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
if (damage + oakNumber < maxDamage) {
|
||||||
|
getPlayerItem.setDamage(damage + oakNumber);
|
||||||
|
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
|
||||||
|
} else {
|
||||||
|
blockBreakEvent.getPlayer().getInventory().setItemInMainHand(new ItemStack(Material.AIR));
|
||||||
|
blockBreakEvent.getPlayer().playSound(blockBreakEvent.getPlayer().getLocation(), Sound.ENTITY_ITEM_BREAK, 1.0f, 1.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void warpedStem(@NotNull BlockBreakEvent blockBreakEvent) {
|
||||||
|
// 检查玩家是否开启
|
||||||
|
if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
|
||||||
|
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
|
||||||
|
// 检查能否掉落物品
|
||||||
|
if (blockBreakEvent.getBlock().getType() == Material.WARPED_STEM
|
||||||
|
|| blockBreakEvent.getBlock().getType() == Material.STRIPPED_WARPED_STEM) {
|
||||||
|
// 初始化参数
|
||||||
|
Damageable getPlayerItem = (Damageable) blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getItemMeta();
|
||||||
|
thisBreak = blockBreakEvent.getBlock().getType();
|
||||||
|
thisLeaves = Material.WARPED_FUNGUS;
|
||||||
|
breakLocation = blockBreakEvent.getBlock().getLocation();
|
||||||
|
oakNumber = 0;
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
maxDamage = blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getType().getMaxDurability();
|
||||||
|
damage = getPlayerItem.getDamage();
|
||||||
|
}
|
||||||
|
// 进行砍树
|
||||||
|
anyWay(0, blockBreakEvent.getBlock());
|
||||||
|
// 对物品造成破坏
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
if (damage + oakNumber < maxDamage) {
|
||||||
|
getPlayerItem.setDamage(damage + oakNumber);
|
||||||
|
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
|
||||||
|
} else {
|
||||||
|
blockBreakEvent.getPlayer().getInventory().setItemInMainHand(new ItemStack(Material.AIR));
|
||||||
|
blockBreakEvent.getPlayer().playSound(blockBreakEvent.getPlayer().getLocation(), Sound.ENTITY_ITEM_BREAK, 1.0f, 1.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void spruceLog(@NotNull BlockBreakEvent blockBreakEvent) {
|
||||||
|
// 检查玩家是否开启
|
||||||
|
if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
|
||||||
|
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
|
||||||
|
// 检查能否掉落物品
|
||||||
|
if (blockBreakEvent.getBlock().getType() == Material.SPRUCE_LOG
|
||||||
|
|| blockBreakEvent.getBlock().getType() == Material.STRIPPED_SPRUCE_LOG) {
|
||||||
|
// 初始化参数
|
||||||
|
Damageable getPlayerItem = (Damageable) blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getItemMeta();
|
||||||
|
thisBreak = blockBreakEvent.getBlock().getType();
|
||||||
|
thisLeaves = Material.BIRCH_LEAVES;
|
||||||
|
breakLocation = blockBreakEvent.getBlock().getLocation();
|
||||||
|
oakNumber = 0;
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
maxDamage = blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getType().getMaxDurability();
|
||||||
|
damage = getPlayerItem.getDamage();
|
||||||
|
}
|
||||||
|
// 进行砍树
|
||||||
|
anyWay(0, blockBreakEvent.getBlock());
|
||||||
|
// 对物品造成破坏
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
if (damage + oakNumber < maxDamage) {
|
||||||
|
getPlayerItem.setDamage(damage + oakNumber);
|
||||||
|
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
|
||||||
|
} else {
|
||||||
|
blockBreakEvent.getPlayer().getInventory().setItemInMainHand(new ItemStack(Material.AIR));
|
||||||
|
blockBreakEvent.getPlayer().playSound(blockBreakEvent.getPlayer().getLocation(), Sound.ENTITY_ITEM_BREAK, 1.0f, 1.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void oakLeaves(@NotNull BlockBreakEvent blockBreakEvent) {
|
||||||
|
// 检查玩家是否开启
|
||||||
|
if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
|
||||||
|
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
|
||||||
|
// 检查能否掉落物品
|
||||||
|
if (blockBreakEvent.getBlock().getType() == Material.OAK_LEAVES) {
|
||||||
|
// 初始化参数
|
||||||
|
Damageable getPlayerItem = (Damageable) blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getItemMeta();
|
||||||
|
thisLeaves = blockBreakEvent.getBlock().getType();
|
||||||
|
breakLocation = blockBreakEvent.getBlock().getLocation();
|
||||||
|
oakNumber = 0;
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
maxDamage = blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getType().getMaxDurability();
|
||||||
|
damage = getPlayerItem.getDamage();
|
||||||
|
}
|
||||||
|
// 进行砍树
|
||||||
|
anyWay(1, blockBreakEvent.getBlock());
|
||||||
|
// 对物品造成破坏
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
if (damage + oakNumber < maxDamage) {
|
||||||
|
getPlayerItem.setDamage(damage + oakNumber);
|
||||||
|
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
|
||||||
|
} else {
|
||||||
|
blockBreakEvent.getPlayer().getInventory().setItemInMainHand(new ItemStack(Material.AIR));
|
||||||
|
blockBreakEvent.getPlayer().playSound(blockBreakEvent.getPlayer().getLocation(), Sound.ENTITY_ITEM_BREAK, 1.0f, 1.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void spruceLeaves(@NotNull BlockBreakEvent blockBreakEvent) {
|
||||||
|
// 检查玩家是否开启
|
||||||
|
if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
|
||||||
|
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
|
||||||
|
// 检查能否掉落物品
|
||||||
|
if (blockBreakEvent.getBlock().getType() == Material.SPRUCE_LEAVES) {
|
||||||
|
// 初始化参数
|
||||||
|
Damageable getPlayerItem = (Damageable) blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getItemMeta();
|
||||||
|
thisLeaves = blockBreakEvent.getBlock().getType();
|
||||||
|
breakLocation = blockBreakEvent.getBlock().getLocation();
|
||||||
|
oakNumber = 0;
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
maxDamage = blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getType().getMaxDurability();
|
||||||
|
damage = getPlayerItem.getDamage();
|
||||||
|
}
|
||||||
|
// 进行砍树
|
||||||
|
anyWay(1, blockBreakEvent.getBlock());
|
||||||
|
// 对物品造成破坏
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
if (damage + oakNumber < maxDamage) {
|
||||||
|
getPlayerItem.setDamage(damage + oakNumber);
|
||||||
|
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
|
||||||
|
} else {
|
||||||
|
blockBreakEvent.getPlayer().getInventory().setItemInMainHand(new ItemStack(Material.AIR));
|
||||||
|
blockBreakEvent.getPlayer().playSound(blockBreakEvent.getPlayer().getLocation(), Sound.ENTITY_ITEM_BREAK, 1.0f, 1.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void birchLeaves(@NotNull BlockBreakEvent blockBreakEvent) {
|
||||||
|
// 检查玩家是否开启
|
||||||
|
if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
|
||||||
|
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
|
||||||
|
// 检查能否掉落物品
|
||||||
|
if (blockBreakEvent.getBlock().getType() == Material.BIRCH_LEAVES) {
|
||||||
|
// 初始化参数
|
||||||
|
Damageable getPlayerItem = (Damageable) blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getItemMeta();
|
||||||
|
thisLeaves = blockBreakEvent.getBlock().getType();
|
||||||
|
breakLocation = blockBreakEvent.getBlock().getLocation();
|
||||||
|
oakNumber = 0;
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
maxDamage = blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getType().getMaxDurability();
|
||||||
|
damage = getPlayerItem.getDamage();
|
||||||
|
}
|
||||||
|
// 进行砍树
|
||||||
|
anyWay(1, blockBreakEvent.getBlock());
|
||||||
|
// 对物品造成破坏
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
if (damage + oakNumber < maxDamage) {
|
||||||
|
getPlayerItem.setDamage(damage + oakNumber);
|
||||||
|
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
|
||||||
|
} else {
|
||||||
|
blockBreakEvent.getPlayer().getInventory().setItemInMainHand(new ItemStack(Material.AIR));
|
||||||
|
blockBreakEvent.getPlayer().playSound(blockBreakEvent.getPlayer().getLocation(), Sound.ENTITY_ITEM_BREAK, 1.0f, 1.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void jungleLeaves(@NotNull BlockBreakEvent blockBreakEvent) {
|
||||||
|
// 检查玩家是否开启
|
||||||
|
if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
|
||||||
|
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
|
||||||
|
// 检查能否掉落物品
|
||||||
|
if (blockBreakEvent.getBlock().getType() == Material.JUNGLE_LEAVES) {
|
||||||
|
// 初始化参数
|
||||||
|
Damageable getPlayerItem = (Damageable) blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getItemMeta();
|
||||||
|
thisLeaves = blockBreakEvent.getBlock().getType();
|
||||||
|
breakLocation = blockBreakEvent.getBlock().getLocation();
|
||||||
|
oakNumber = 0;
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
maxDamage = blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getType().getMaxDurability();
|
||||||
|
damage = getPlayerItem.getDamage();
|
||||||
|
}
|
||||||
|
// 进行砍树
|
||||||
|
anyWay(1, blockBreakEvent.getBlock());
|
||||||
|
// 对物品造成破坏
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
if (damage + oakNumber < maxDamage) {
|
||||||
|
getPlayerItem.setDamage(damage + oakNumber);
|
||||||
|
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
|
||||||
|
} else {
|
||||||
|
blockBreakEvent.getPlayer().getInventory().setItemInMainHand(new ItemStack(Material.AIR));
|
||||||
|
blockBreakEvent.getPlayer().playSound(blockBreakEvent.getPlayer().getLocation(), Sound.ENTITY_ITEM_BREAK, 1.0f, 1.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void acaciaLeaves(@NotNull BlockBreakEvent blockBreakEvent) {
|
||||||
|
// 检查玩家是否开启
|
||||||
|
if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
|
||||||
|
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
|
||||||
|
// 检查能否掉落物品
|
||||||
|
if (blockBreakEvent.getBlock().getType() == Material.ACACIA_LEAVES) {
|
||||||
|
// 初始化参数
|
||||||
|
Damageable getPlayerItem = (Damageable) blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getItemMeta();
|
||||||
|
thisLeaves = blockBreakEvent.getBlock().getType();
|
||||||
|
breakLocation = blockBreakEvent.getBlock().getLocation();
|
||||||
|
oakNumber = 0;
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
maxDamage = blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getType().getMaxDurability();
|
||||||
|
damage = getPlayerItem.getDamage();
|
||||||
|
}
|
||||||
|
// 进行砍树
|
||||||
|
anyWay(1, blockBreakEvent.getBlock());
|
||||||
|
// 对物品造成破坏
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
if (damage + oakNumber < maxDamage) {
|
||||||
|
getPlayerItem.setDamage(damage + oakNumber);
|
||||||
|
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
|
||||||
|
} else {
|
||||||
|
blockBreakEvent.getPlayer().getInventory().setItemInMainHand(new ItemStack(Material.AIR));
|
||||||
|
blockBreakEvent.getPlayer().playSound(blockBreakEvent.getPlayer().getLocation(), Sound.ENTITY_ITEM_BREAK, 1.0f, 1.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void mangroveLeaves(@NotNull BlockBreakEvent blockBreakEvent) {
|
||||||
|
// 检查玩家是否开启
|
||||||
|
if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
|
||||||
|
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
|
||||||
|
// 检查能否掉落物品
|
||||||
|
if (blockBreakEvent.getBlock().getType() == Material.MANGROVE_LEAVES) {
|
||||||
|
// 初始化参数
|
||||||
|
Damageable getPlayerItem = (Damageable) blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getItemMeta();
|
||||||
|
thisLeaves = blockBreakEvent.getBlock().getType();
|
||||||
|
breakLocation = blockBreakEvent.getBlock().getLocation();
|
||||||
|
oakNumber = 0;
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
maxDamage = blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getType().getMaxDurability();
|
||||||
|
damage = getPlayerItem.getDamage();
|
||||||
|
}
|
||||||
|
// 进行砍树
|
||||||
|
anyWay(1, blockBreakEvent.getBlock());
|
||||||
|
// 对物品造成破坏
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
if (damage + oakNumber < maxDamage) {
|
||||||
|
getPlayerItem.setDamage(damage + oakNumber);
|
||||||
|
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
|
||||||
|
} else {
|
||||||
|
blockBreakEvent.getPlayer().getInventory().setItemInMainHand(new ItemStack(Material.AIR));
|
||||||
|
blockBreakEvent.getPlayer().playSound(blockBreakEvent.getPlayer().getLocation(), Sound.ENTITY_ITEM_BREAK, 1.0f, 1.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void azaleaLeaves(@NotNull BlockBreakEvent blockBreakEvent) {
|
||||||
|
// 检查玩家是否开启
|
||||||
|
if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
|
||||||
|
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
|
||||||
|
// 检查能否掉落物品
|
||||||
|
if (blockBreakEvent.getBlock().getType() == Material.AZALEA_LEAVES) {
|
||||||
|
// 初始化参数
|
||||||
|
Damageable getPlayerItem = (Damageable) blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getItemMeta();
|
||||||
|
thisLeaves = blockBreakEvent.getBlock().getType();
|
||||||
|
breakLocation = blockBreakEvent.getBlock().getLocation();
|
||||||
|
oakNumber = 0;
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
maxDamage = blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getType().getMaxDurability();
|
||||||
|
damage = getPlayerItem.getDamage();
|
||||||
|
}
|
||||||
|
// 进行砍树
|
||||||
|
anyWay(1, blockBreakEvent.getBlock());
|
||||||
|
// 对物品造成破坏
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
if (damage + oakNumber < maxDamage) {
|
||||||
|
getPlayerItem.setDamage(damage + oakNumber);
|
||||||
|
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
|
||||||
|
} else {
|
||||||
|
blockBreakEvent.getPlayer().getInventory().setItemInMainHand(new ItemStack(Material.AIR));
|
||||||
|
blockBreakEvent.getPlayer().playSound(blockBreakEvent.getPlayer().getLocation(), Sound.ENTITY_ITEM_BREAK, 1.0f, 1.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void cherryLeaves(@NotNull BlockBreakEvent blockBreakEvent) {
|
||||||
|
// 检查玩家是否开启
|
||||||
|
if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
|
||||||
|
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
|
||||||
|
// 检查能否掉落物品
|
||||||
|
if (blockBreakEvent.getBlock().getType() == Material.CHERRY_LEAVES) {
|
||||||
|
// 初始化参数
|
||||||
|
Damageable getPlayerItem = (Damageable) blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getItemMeta();
|
||||||
|
thisLeaves = blockBreakEvent.getBlock().getType();
|
||||||
|
breakLocation = blockBreakEvent.getBlock().getLocation();
|
||||||
|
oakNumber = 0;
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
maxDamage = blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getType().getMaxDurability();
|
||||||
|
damage = getPlayerItem.getDamage();
|
||||||
|
}
|
||||||
|
// 进行砍树
|
||||||
|
anyWay(1, blockBreakEvent.getBlock());
|
||||||
|
// 对物品造成破坏
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
if (damage + oakNumber < maxDamage) {
|
||||||
|
getPlayerItem.setDamage(damage + oakNumber);
|
||||||
|
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
|
||||||
|
} else {
|
||||||
|
blockBreakEvent.getPlayer().getInventory().setItemInMainHand(new ItemStack(Material.AIR));
|
||||||
|
blockBreakEvent.getPlayer().playSound(blockBreakEvent.getPlayer().getLocation(), Sound.ENTITY_ITEM_BREAK, 1.0f, 1.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void floweringAzaleaLeaves(@NotNull BlockBreakEvent blockBreakEvent) {
|
||||||
|
// 检查玩家是否开启
|
||||||
|
if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
|
||||||
|
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
|
||||||
|
// 检查能否掉落物品
|
||||||
|
if (blockBreakEvent.getBlock().getType() == Material.FLOWERING_AZALEA_LEAVES) {
|
||||||
|
// 初始化参数
|
||||||
|
Damageable getPlayerItem = (Damageable) blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getItemMeta();
|
||||||
|
thisLeaves = blockBreakEvent.getBlock().getType();
|
||||||
|
breakLocation = blockBreakEvent.getBlock().getLocation();
|
||||||
|
oakNumber = 0;
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
maxDamage = blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getType().getMaxDurability();
|
||||||
|
damage = getPlayerItem.getDamage();
|
||||||
|
}
|
||||||
|
// 进行砍树
|
||||||
|
anyWay(1, blockBreakEvent.getBlock());
|
||||||
|
// 对物品造成破坏
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
if (damage + oakNumber < maxDamage) {
|
||||||
|
getPlayerItem.setDamage(damage + oakNumber);
|
||||||
|
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
|
||||||
|
} else {
|
||||||
|
blockBreakEvent.getPlayer().getInventory().setItemInMainHand(new ItemStack(Material.AIR));
|
||||||
|
blockBreakEvent.getPlayer().playSound(blockBreakEvent.getPlayer().getLocation(), Sound.ENTITY_ITEM_BREAK, 1.0f, 1.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void bambooBlock(@NotNull BlockBreakEvent blockBreakEvent) {
|
||||||
|
// 检查玩家是否开启
|
||||||
|
if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
|
||||||
|
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
|
||||||
|
// 检查能否掉落物品
|
||||||
|
if (blockBreakEvent.getBlock().getType() == Material.BAMBOO_BLOCK) {
|
||||||
|
// 初始化参数
|
||||||
|
Damageable getPlayerItem = (Damageable) blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getItemMeta();
|
||||||
|
thisLeaves = blockBreakEvent.getBlock().getType();
|
||||||
|
breakLocation = blockBreakEvent.getBlock().getLocation();
|
||||||
|
oakNumber = 0;
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
maxDamage = blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getType().getMaxDurability();
|
||||||
|
damage = getPlayerItem.getDamage();
|
||||||
|
}
|
||||||
|
// 进行砍树
|
||||||
|
anyWay(1, blockBreakEvent.getBlock());
|
||||||
|
// 对物品造成破坏
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
if (damage + oakNumber < maxDamage) {
|
||||||
|
getPlayerItem.setDamage(damage + oakNumber);
|
||||||
|
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
|
||||||
|
} else {
|
||||||
|
blockBreakEvent.getPlayer().getInventory().setItemInMainHand(new ItemStack(Material.AIR));
|
||||||
|
blockBreakEvent.getPlayer().playSound(blockBreakEvent.getPlayer().getLocation(), Sound.ENTITY_ITEM_BREAK, 1.0f, 1.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void crimsonFungus(@NotNull BlockBreakEvent blockBreakEvent) {
|
||||||
|
// 检查玩家是否开启
|
||||||
|
if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
|
||||||
|
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
|
||||||
|
// 检查能否掉落物品
|
||||||
|
if (blockBreakEvent.getBlock().getType() == Material.CRIMSON_FUNGUS) {
|
||||||
|
// 初始化参数
|
||||||
|
Damageable getPlayerItem = (Damageable) blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getItemMeta();
|
||||||
|
thisLeaves = blockBreakEvent.getBlock().getType();
|
||||||
|
breakLocation = blockBreakEvent.getBlock().getLocation();
|
||||||
|
oakNumber = 0;
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
maxDamage = blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getType().getMaxDurability();
|
||||||
|
damage = getPlayerItem.getDamage();
|
||||||
|
}
|
||||||
|
// 进行砍树
|
||||||
|
anyWay(1, blockBreakEvent.getBlock());
|
||||||
|
// 对物品造成破坏
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
if (damage + oakNumber < maxDamage) {
|
||||||
|
getPlayerItem.setDamage(damage + oakNumber);
|
||||||
|
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
|
||||||
|
} else {
|
||||||
|
blockBreakEvent.getPlayer().getInventory().setItemInMainHand(new ItemStack(Material.AIR));
|
||||||
|
blockBreakEvent.getPlayer().playSound(blockBreakEvent.getPlayer().getLocation(), Sound.ENTITY_ITEM_BREAK, 1.0f, 1.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void warpedFungus(@NotNull BlockBreakEvent blockBreakEvent) {
|
||||||
|
// 检查玩家是否开启
|
||||||
|
if (ChainMining.playerList.get(blockBreakEvent.getPlayer().getName()).get("tree")) {
|
||||||
|
if (blockBreakEvent.getPlayer().getGameMode() == GameMode.SURVIVAL) {
|
||||||
|
// 检查能否掉落物品
|
||||||
|
if (blockBreakEvent.getBlock().getType() == Material.WARPED_FUNGUS) {
|
||||||
|
// 初始化参数
|
||||||
|
Damageable getPlayerItem = (Damageable) blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getItemMeta();
|
||||||
|
thisLeaves = blockBreakEvent.getBlock().getType();
|
||||||
|
breakLocation = blockBreakEvent.getBlock().getLocation();
|
||||||
|
oakNumber = 0;
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
maxDamage = blockBreakEvent.getPlayer().getInventory().getItemInMainHand().getType().getMaxDurability();
|
||||||
|
damage = getPlayerItem.getDamage();
|
||||||
|
}
|
||||||
|
// 进行砍树
|
||||||
|
anyWay(1, blockBreakEvent.getBlock());
|
||||||
|
// 对物品造成破坏
|
||||||
|
if (getPlayerItem != null && getPlayerItem.hasDamage()) {
|
||||||
|
if (damage + oakNumber < maxDamage) {
|
||||||
|
getPlayerItem.setDamage(damage + oakNumber);
|
||||||
|
blockBreakEvent.getPlayer().getInventory().getItemInMainHand().setItemMeta(getPlayerItem);
|
||||||
|
} else {
|
||||||
|
blockBreakEvent.getPlayer().getInventory().setItemInMainHand(new ItemStack(Material.AIR));
|
||||||
|
blockBreakEvent.getPlayer().playSound(blockBreakEvent.getPlayer().getLocation(), Sound.ENTITY_ITEM_BREAK, 1.0f, 1.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void cutOakAndLeaves(@NotNull Block getBlock) {
|
||||||
|
while (getBlock.getType() == thisBreak) {
|
||||||
|
if (damage + oakNumber < maxDamage) {
|
||||||
|
relativeDistanceX = breakLocation.getBlockX() - getBlock.getLocation().getBlockX();
|
||||||
|
relativeDistanceZ = breakLocation.getBlockZ() - getBlock.getLocation().getBlockZ();
|
||||||
|
if (relativeDistanceX < 0) {
|
||||||
|
relativeDistanceX = -relativeDistanceX;
|
||||||
|
}
|
||||||
|
if (relativeDistanceZ < 0) {
|
||||||
|
relativeDistanceZ = -relativeDistanceZ;
|
||||||
|
}
|
||||||
|
if (relativeDistanceX <= 5 && relativeDistanceZ <= 5) {
|
||||||
|
getBlock.breakNaturally();
|
||||||
|
oakNumber++;
|
||||||
|
anyWay(0, getBlock);
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while (getBlock.getType() == thisLeaves) {
|
||||||
|
if (damage + oakNumber < maxDamage) {
|
||||||
|
relativeDistanceX = breakLocation.getBlockX() - getBlock.getLocation().getBlockX();
|
||||||
|
relativeDistanceZ = breakLocation.getBlockZ() - getBlock.getLocation().getBlockZ();
|
||||||
|
if (relativeDistanceX < 0) {
|
||||||
|
relativeDistanceX = -relativeDistanceX;
|
||||||
|
}
|
||||||
|
if (relativeDistanceZ < 0) {
|
||||||
|
relativeDistanceZ = -relativeDistanceZ;
|
||||||
|
}
|
||||||
|
if (relativeDistanceX <= 5 && relativeDistanceZ <= 5) {
|
||||||
|
getBlock.breakNaturally();
|
||||||
|
anyWay(0, getBlock);
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void cutLeaves(@NotNull Block getBlock) {
|
||||||
|
while (getBlock.getType() == thisLeaves) {
|
||||||
|
if (damage + oakNumber < maxDamage) {
|
||||||
|
relativeDistanceX = breakLocation.getBlockX() - getBlock.getLocation().getBlockX();
|
||||||
|
relativeDistanceZ = breakLocation.getBlockZ() - getBlock.getLocation().getBlockZ();
|
||||||
|
if (relativeDistanceX < 0) {
|
||||||
|
relativeDistanceX = -relativeDistanceX;
|
||||||
|
}
|
||||||
|
if (relativeDistanceZ < 0) {
|
||||||
|
relativeDistanceZ = -relativeDistanceZ;
|
||||||
|
}
|
||||||
|
if (relativeDistanceX <= 3 && relativeDistanceZ <= 3) {
|
||||||
|
getBlock.breakNaturally();
|
||||||
|
oakNumber++;
|
||||||
|
anyWay(1, getBlock);
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void anyWay(int cutType, Block getBlock) {
|
||||||
|
for (BlockFace blockFace : BlockFace.values()) {
|
||||||
|
if (cutType == 0 && blockFace == BlockFace.DOWN) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
Block sideBlock = getBlock.getRelative(blockFace);
|
||||||
|
if (sideBlock.getType() != Material.AIR) {
|
||||||
|
if (cutType == 0) {
|
||||||
|
cutOakAndLeaves(sideBlock);
|
||||||
|
} else {
|
||||||
|
cutLeaves(sideBlock);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,6 @@
|
|||||||
package com.frontleaves.chainmining.listeners;
|
package com.frontleaves.chainmining.listeners;
|
||||||
|
|
||||||
|
import com.frontleaves.chainmining.ChainMining;
|
||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.Sound;
|
import org.bukkit.Sound;
|
||||||
@ -26,10 +27,12 @@ public class MineralsListener implements Listener {
|
|||||||
private static int damage;
|
private static int damage;
|
||||||
private static int maxDurability;
|
private static int maxDurability;
|
||||||
|
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void coalBlock(BlockBreakEvent breakEvent) {
|
public void minerals(BlockBreakEvent breakEvent) {
|
||||||
// 检测这个方块能否掉落
|
if (ChainMining.playerList.get(breakEvent.getPlayer().getName()).get("chainMining")) {
|
||||||
if (breakEvent.getPlayer().isSneaking()) {
|
if (breakEvent.getPlayer().isSneaking()) {
|
||||||
|
// 检测这个方块能否掉落
|
||||||
if (breakEvent.isDropItems()) {
|
if (breakEvent.isDropItems()) {
|
||||||
Block getBlock = breakEvent.getBlock();
|
Block getBlock = breakEvent.getBlock();
|
||||||
if (getBlock.getType() == Material.COAL_ORE || getBlock.getType() == Material.DEEPSLATE_COAL_ORE
|
if (getBlock.getType() == Material.COAL_ORE || getBlock.getType() == Material.DEEPSLATE_COAL_ORE
|
||||||
@ -78,6 +81,7 @@ public class MineralsListener implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void callbackCorruption(@NotNull Block block) {
|
private void callbackCorruption(@NotNull Block block) {
|
||||||
for (BlockFace blockFace : BlockFace.values()) {
|
for (BlockFace blockFace : BlockFace.values()) {
|
||||||
|
@ -0,0 +1,30 @@
|
|||||||
|
package com.frontleaves.chainmining.listeners;
|
||||||
|
|
||||||
|
import com.frontleaves.chainmining.ChainMining;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author 锋楪技术(深圳)有限公司
|
||||||
|
*/
|
||||||
|
public class PlayerJoinServerListener implements Listener {
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void playerJoinEvent(PlayerJoinEvent getPlayer) {
|
||||||
|
HashMap<String, Boolean> playerData = 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);
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void playerLeaveEvent(PlayerQuitEvent getPlayer) {
|
||||||
|
ChainMining.playerList.remove(getPlayer.getPlayer().getName());
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user