禁止放置方块、丢弃管理、菜单更新、构建数组

This commit is contained in:
筱锋xiao_lfeng 2023-04-28 11:37:22 +08:00
parent 52b743b381
commit 8d9585728e
6 changed files with 206 additions and 11 deletions

View File

@ -21,43 +21,49 @@ public class MenuCommandExecutor implements CommandExecutor {
|| command.getName().equalsIgnoreCase("xf-tl")) {
System.out.println();
if (strings.length == 0) {
sender.sendMessage(String.format("§7§l§m==]========== %s§7§l§m ==========[==",Tools.XF_Prefix));
sender.sendMessage(String.format("§7§l§m==]==========§r %s §7§l§m==========[==",Tools.XF_Prefix));
sender.sendMessage(String.format("§3筱锋工具箱[XF_Tool](版本号:%s", Tools.XF_Version));
sender.sendMessage(String.format("§3作者%s", Tools.XF_Author));
sender.sendMessage("§3博客§ehttps://www.blog.x-lf.com/");
sender.sendMessage("§2输入 §6/xf-tool help §2 查看插件帮助吧");
sender.sendMessage(String.format("§7§l§m==]========== %s§7§l§m ==========[==",Tools.XF_Prefix));
sender.sendMessage(String.format("§7§l§m==]==========§r %s §7§l§m==========[==",Tools.XF_Prefix));
} else {
if (Objects.equals(strings[0], "help")) {
if (strings.length == 1) {
sender.sendMessage(String.format("§7§l§m==]========== %s§7§l§m ==========[==",Tools.XF_Prefix));
sender.sendMessage(String.format("§7§l§m==]==========§r %s §7§l§m==========[==",Tools.XF_Prefix));
sender.sendMessage("§6/xf-tool §7- 查看插件信息");
sender.sendMessage("§6/xf-tool help [page] §7- 查看指令帮助");
sender.sendMessage("§6/xf-tool drop §7- 丢弃管理");
sender.sendMessage("§6/xf-op §7- OP管理");
sender.sendMessage("§6/xf-tool setting §7- 插件基础设置");
sender.sendMessage(String.format("§7§l§m==]========== %s§7§l§m ==========[==",Tools.XF_Prefix));
sender.sendMessage(String.format("§7§l§m==]==========§r %s §7§l§m==========[==",Tools.XF_Prefix));
sender.sendMessage("§a页码 §71§8/§71");
} else if (strings.length == 2) {
if (Objects.equals(strings[1], "1")) {
sender.sendMessage(String.format("§7§l§m==]========== %s§7§l§m ==========[==",Tools.XF_Prefix));
sender.sendMessage(String.format("§7§l§m==]==========§r %s §7§l§m==========[==",Tools.XF_Prefix));
sender.sendMessage("§6/xf-tool §7- 查看插件信息");
sender.sendMessage("§6/xf-tool help [page] §7- 查看指令帮助");
sender.sendMessage("§6/xf-op §7- OP管理");
sender.sendMessage("§6/xf-tool setting §7- 插件基础设置");
sender.sendMessage(String.format("§7§l§m==]========== %s§7§l§m ==========[==",Tools.XF_Prefix));
sender.sendMessage(String.format("§7§l§m==]==========§r %s §7§l§m==========[==",Tools.XF_Prefix));
sender.sendMessage("§a页码 §71§8/§71");
} else sender.sendMessage(String.format("%s§r%s §r§c页码超出范围", Tools.XF_Prefix, Tools.XF_PrefixArrow));
} else {
sender.sendMessage(String.format("%s§r%s §r§c参数不正确请输入 §6/xf-tool help §c查看指令帮助", Tools.XF_Prefix, Tools.XF_PrefixArrow));
}
} else if (Objects.equals(strings[0], "setting")) {
sender.sendMessage(String.format("§7§l§m==]========== %s§7§l§m ==========[==",Tools.XF_Prefix));
sender.sendMessage(String.format("§7§l§m==]==========§r %s §7§l§m==========[==",Tools.XF_Prefix));
sender.sendMessage("§6/xf-tool update §7- 查看是否有可选更新");
sender.sendMessage("§6/xf-tool version §7- 查看插件版本");
sender.sendMessage(String.format("§7§l§m==]========== %s§7§l§m ==========[==",Tools.XF_Prefix));
sender.sendMessage(String.format("§7§l§m==]==========§r %s §7§l§m==========[==",Tools.XF_Prefix));
} else if (Objects.equals(strings[0], "update"))
sender.sendMessage(String.format("%s§r%s §r§c很抱歉我还没有做接口哈", Tools.XF_Prefix, Tools.XF_PrefixArrow));
else if (Objects.equals(strings[0],"version"))
else if (Objects.equals(strings[0], "drop")) {
sender.sendMessage(String.format("§7§l§m==]==========§r %s §7§l§m==========[==",Tools.XF_Prefix));
sender.sendMessage("§6/xf-drop §7- 解除丢弃物品");
sender.sendMessage("§6/xf-drop <on or off> §7- 设置是否允许丢弃物品");
sender.sendMessage(String.format("§7§l§m==]==========§r %s §7§l§m==========[==",Tools.XF_Prefix));
} else if (Objects.equals(strings[0],"version"))
sender.sendMessage(String.format("%s§r%s §r§3版本号%s", Tools.XF_Prefix, Tools.XF_PrefixArrow,Tools.XF_Version));
else sender.sendMessage(String.format("%s§r%s §r§c参数错误请输入 §6/xf-tool help §c查看帮助", Tools.XF_Prefix, Tools.XF_PrefixArrow));
}

View File

@ -0,0 +1,76 @@
package org.frontleaves.xf_tools.Commands;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.frontleaves.xf_tools.XF_Tools;
import java.util.Objects;
public class XfDropCommandExecutor implements CommandExecutor {
protected XF_Tools Tools;
public XfDropCommandExecutor(XF_Tools Tools) {
this.Tools = Tools;
}
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (command.getName().equalsIgnoreCase("xf-drop")) {
if (args.length == 0) {
int i = 0;
Object[] User = new Object[2];
for (; Tools.XF_Player.get(i).length != 0; i++) {
User = Tools.XF_Player.get(i);
if (User[0] == sender.getName()) {
break;
}
}
if ((int) User[1] == 0) {
User[1] = 1;
sender.sendMessage(String.format("%s§r%s §r§2解除丢弃物品设置成功", Tools.XF_Prefix, Tools.XF_PrefixArrow));
} else {
sender.sendMessage(String.format("%s§r%s §r§c你已经解除过绑定了", Tools.XF_Prefix, Tools.XF_PrefixArrow));
}
} else if (args.length == 1) {
if (Objects.equals(args[0], "on")) {
int i = 0;
Object[] User = new Object[2];
for (; Tools.XF_Player.get(i).length != 0; i++) {
User = Tools.XF_Player.get(i);
if (User[0] == sender.getName()) {
break;
}
}
if ((int) User[1] == 1) {
User[1] = 0;
sender.sendMessage(String.format("%s§r%s §r§2禁止丢弃物品设置成功", Tools.XF_Prefix, Tools.XF_PrefixArrow));
} else {
sender.sendMessage(String.format("%s§r%s §r§c你已经上锁了", Tools.XF_Prefix, Tools.XF_PrefixArrow));
}
} else if (Objects.equals(args[0], "off")) {
int i = 0;
Object[] User = new Object[2];
for (; Tools.XF_Player.get(i).length != 0; i++) {
User = Tools.XF_Player.get(i);
if (User[0] == sender.getName()) {
break;
}
}
if ((int) User[1] == 0) {
User[1] = 1;
sender.sendMessage(String.format("%s§r%s §r§2解除丢弃物品设置成功", Tools.XF_Prefix, Tools.XF_PrefixArrow));
} else {
sender.sendMessage(String.format("%s§r%s §r§c你已经解除过绑定了", Tools.XF_Prefix, Tools.XF_PrefixArrow));
}
} else {
sender.sendMessage(String.format("%s§r%s §r§c参数不正确请输入 §6/xf-tool help §c查看指令帮助", Tools.XF_Prefix, Tools.XF_PrefixArrow));
}
} else {
sender.sendMessage(String.format("%s§r%s §r§c参数不正确请输入 §6/xf-tool help §c查看指令帮助", Tools.XF_Prefix, Tools.XF_PrefixArrow));
}
}
return true;
}
}

View File

@ -0,0 +1,53 @@
package org.frontleaves.xf_tools.Events;
import org.bukkit.Material;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.inventory.InventoryCloseEvent;
import org.bukkit.event.player.PlayerDropItemEvent;
import org.frontleaves.xf_tools.XF_Tools;
public class BlockEvent implements Listener {
protected XF_Tools Tools;
public BlockEvent(XF_Tools Tools) {
this.Tools = Tools;
}
@EventHandler
public void InventoryEvent(InventoryCloseEvent Player) {
if (!Player.getPlayer().isOp()) {
// 基岩检测
if (Player.getPlayer().getInventory().contains(Material.BEDROCK)) {
Player.getPlayer().getInventory().remove(Material.BEDROCK);
Player.getPlayer().sendMessage(String.format("%s§r%s §r§c这个 %s 你不可以拥有", Tools.XF_Prefix, Tools.XF_PrefixArrow, Material.BEDROCK));
}
}
}
@EventHandler
public void DropEvent(PlayerDropItemEvent Player) {
if (!Player.getPlayer().isOp()) {
// 基岩检测
if (Player.getPlayer().getInventory().contains(Material.BEDROCK)) {
Player.setCancelled(true);
Player.getPlayer().getInventory().remove(Material.BEDROCK);
Player.getPlayer().sendMessage(String.format("%s§r%s §r§c这个 %s 你不可以拥有", Tools.XF_Prefix, Tools.XF_PrefixArrow, Material.BEDROCK));
}
}
}
@EventHandler
public void BlockPlaceEvent(BlockPlaceEvent Player) {
if (!Player.getPlayer().isOp()) {
// 基岩检测
if (Player.getPlayer().getInventory().contains(Material.BEDROCK)) {
Player.setCancelled(true);
Player.getPlayer().getInventory().remove(Material.BEDROCK);
Player.getPlayer().sendMessage(String.format("%s§r%s §r§c这个 %s 你不可以拥有", Tools.XF_Prefix, Tools.XF_PrefixArrow, Material.BEDROCK));
}
}
}
}

View File

@ -0,0 +1,32 @@
package org.frontleaves.xf_tools.Events;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerDropItemEvent;
import org.frontleaves.xf_tools.XF_Tools;
public class DropEvent implements Listener {
protected XF_Tools Tools;
public DropEvent(XF_Tools Tools) {
this.Tools = Tools;
}
@EventHandler
public void Drop(PlayerDropItemEvent Player) {
int i = 0;
Object[] User = new Object[2];
for (; Tools.XF_Player.get(i).length != 0; i++) {
User = Tools.XF_Player.get(i);
if (User[0] == Player.getPlayer().getName()) {
break;
}
}
if ((int) User[1] == 0) {
Player.setCancelled(true);
if (Player.isCancelled())
Player.getPlayer().sendMessage(String.format("%s§r%s §r§c丢东西保护如果确定需要丢物品输入 §6/xf-drop §c开启丢物品", Tools.XF_Prefix, Tools.XF_PrefixArrow));
}
}
}

View File

@ -4,15 +4,32 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.frontleaves.xf_tools.XF_Tools;
public class PlayerActivityListener implements Listener {
protected XF_Tools Tools;
public PlayerActivityListener(XF_Tools Tools) {
this.Tools = Tools;
}
@EventHandler
public void onJoinServer(PlayerJoinEvent Player) {
Object[] PlayerData = {Player.getPlayer().getName(), 0};
Tools.XF_Player.add(PlayerData);
Player.setJoinMessage(String.format("§7[§2+§7]§3 %s", Player.getPlayer().getDisplayName()));
}
@EventHandler
public void onQuitServer(PlayerQuitEvent Player) {
for (int i = 0; Tools.XF_Player.get(i).length != 0; i++) {
Object[] User = Tools.XF_Player.get(i);
if (User[0] == Player.getPlayer().getName()) {
Tools.XF_Player.remove(i);
break;
}
}
Player.setQuitMessage(String.format("§7[§c-§7]§3 %s", Player.getPlayer().getDisplayName()));
}
}

View File

@ -3,14 +3,22 @@ package org.frontleaves.xf_tools;
import org.bukkit.plugin.java.JavaPlugin;
import org.frontleaves.xf_tools.Commands.MenuCommandExecutor;
import org.frontleaves.xf_tools.Commands.OpCheckCommandExecutor;
import org.frontleaves.xf_tools.Commands.XfDropCommandExecutor;
import org.frontleaves.xf_tools.Commands.XfOpCommandExecutor;
import org.frontleaves.xf_tools.Events.BlockEvent;
import org.frontleaves.xf_tools.Events.DropEvent;
import org.frontleaves.xf_tools.Events.PlayerActivityListener;
import java.util.ArrayList;
import java.util.List;
public final class XF_Tools extends JavaPlugin {
public String XF_Version = "1.0.0-Alpha";
public String XF_Author = "筱锋xiao_lfeng";
public String XF_Prefix = "§2XF§bTools";
public String XF_PrefixArrow = "§7§l>>";
// 初始化部分
public List<Object[]> XF_Player = new ArrayList<>();
@Override
public void onEnable() {
@ -22,15 +30,18 @@ public final class XF_Tools extends JavaPlugin {
getCommand("xf-tool").setExecutor(new MenuCommandExecutor(this));
getCommand("xf-tl").setExecutor(new MenuCommandExecutor(this));
getCommand("xf-op").setExecutor(new XfOpCommandExecutor(this));
getCommand("xf-drop").setExecutor(new XfDropCommandExecutor(this));
// 载入监听
getServer().getPluginManager().registerEvents(new PlayerActivityListener(), this);
getServer().getPluginManager().registerEvents(new PlayerActivityListener(this), this);
getServer().getPluginManager().registerEvents(new BlockEvent(this), this);
getServer().getPluginManager().registerEvents(new DropEvent(this), this);
// 输出配置文件
saveDefaultConfig();
// 信息输出
getLogger().info(String.format("作者:%s",this.XF_Author));
getLogger().info(String.format("作者:%s", this.XF_Author));
getLogger().info("瞄,希望我的插件对你有所帮助~");
super.onEnable();