feat: OpenSourceTools v2.1.0 - 升级 Bukkit 1.21.11, 补充 README 与自动化测试设施

This commit is contained in:
database-mysql committed 2026-11-09 07:57:59 +08:00
commit 6c7d7fedcb
50 files changed
+3241

No files matched your search

@@ -0,0 +1,27 @@
package top.gtb520.tools.main;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
public class Back_Command implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (sender instanceof Player) {
Player player = (Player) sender;
if (unity.getLocationTempTemp(player.getName() + "_Back") == null) {
sender.sendMessage(unity.ColorMessage("&d&l你没有死亡过!"));
return false;
} else {
player.sendMessage(unity.ColorMessage("&a&l你已返回死亡地点\n传送前的位置是X:" + player.getLocation().getBlockX() + "Y:" + player.getLocation().getBlockY() + "Z:" + player.getLocation().getBlockZ()));
player.teleport(unity.getLocationTempTemp(player.getName() + "_Back"));
}
} else {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&d这个命令只有玩家才能执行"));
}
return false;
}
}
@@ -0,0 +1,60 @@
package top.gtb520.tools.main;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import java.util.Objects;
public class KickGUI_ClickGUI_Event implements Listener {
@EventHandler
public void ClickGUI(InventoryClickEvent event) {
if (event.getView().getTitle().equalsIgnoreCase(ChatColor.translateAlternateColorCodes('&',"&a选择你要踢出的玩家"))) {
event.setCancelled(true);
if (event.getCurrentItem() == null) {
return;
}
if (event.getCurrentItem().getType().equals(Material.AIR)) {
return;
}
if (Objects.requireNonNull(event.getCurrentItem()).getType().equals(Material.ORANGE_STAINED_GLASS_PANE)) {
Player player = (Player) event.getWhoClicked();
player.sendMessage(ChatColor.translateAlternateColorCodes('&',"&a这只是一个边框,你为什么要点"));
}
if (Objects.requireNonNull(event.getCurrentItem()).getType().equals(Material.REDSTONE_BLOCK)) {
Player player = (Player) event.getWhoClicked();
player.closeInventory();
}
if (Objects.requireNonNull(event.getCurrentItem()).getType().equals(Material.PLAYER_HEAD)) {
Player player = (Player) event.getWhoClicked();
String PlayerName = Objects.requireNonNull(event.getCurrentItem().getItemMeta()).getDisplayName();
Player KickPlayer = Bukkit.getPlayer(PlayerName);
if(Bukkit.getPlayer(PlayerName) == null) {
player.sendMessage(ChatColor.translateAlternateColorCodes('&',"&d这个玩家不存在或不在线"));
}else {
if (Objects.requireNonNull(KickPlayer).isOnline()) {
if (!KickPlayer.isOp()) {
if (!KickPlayer.getName().equals(player.getName())) {
KickPlayer.kickPlayer(ChatColor.translateAlternateColorCodes('&',"&d你被踢出服务器" ));
}else {
player.sendMessage(ChatColor.translateAlternateColorCodes('&',"&d你不能踢出自己"));
}
}else {
player.sendMessage(ChatColor.translateAlternateColorCodes('&',"&d你不能踢出管理员"));
}
}
}
}
}
}
}
@@ -0,0 +1,51 @@
package top.gtb520.tools.main;
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import org.bukkit.OfflinePlayer;
import org.jetbrains.annotations.NotNull;
public class PlaceholderAPI extends PlaceholderExpansion {
public PlaceholderAPI(main main) {}
@Override
public @NotNull String getAuthor() {
return "Open Source";
}
@Override
public @NotNull String getIdentifier() {
return "OpenSourceTools";
}
@Override
public @NotNull String getVersion() {
return main.getDescriptionFile().getVersion();
}
@Override
public String onRequest(OfflinePlayer player, String params) {
if (params.equalsIgnoreCase("Nick")) {
if (main.instance.getConfig().getString(player.getName() + "_Nick") == null) {
return player.getName();
} else {
return main.instance.getConfig().getString(player.getName() + "_Nick");
}
}
if (params.equalsIgnoreCase("Title")) {
if (main.instance.getConfig().getString(player.getName() + "_Title") == null) {
return "";
} else {
return unity.ColorMessage("&7[" + main.instance.getConfig().getString(player.getName() + "_Title") + "&7]&f");
}
}
if (params.equalsIgnoreCase("Suffix")) {
if (main.instance.getConfig().getString(player.getName() + "_Suffix") == null) {
return "";
} else {
return unity.ColorMessage("&7[" + main.instance.getConfig().getString(player.getName() + "_Suffix") + "&7]");
}
}
return null;
}
}
@@ -0,0 +1,18 @@
package top.gtb520.tools.main;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerChangedWorldEvent;
public class PlayerChangedWorld_Event implements Listener {
@EventHandler
public void On_Event(PlayerChangedWorldEvent event) {
Player player = event.getPlayer();
if (player.hasPermission("OpenSourceTools.FLY")) {
if (unity.getStringTemp(player.getName() + "_Fly").equals("已开启")) {
player.setAllowFlight(true);
}
}
}
}
@@ -0,0 +1,67 @@
package top.gtb520.tools.main;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
public class PlayerChat_Event implements Listener {
@EventHandler
public void PlayerChat(AsyncPlayerChatEvent event) {
Player player = event.getPlayer();
String Message = event.getMessage();
if (player.isOp()) {
if (main.instance.getConfig().getBoolean("ColorChatSetting.AllowAdminUsedColorChat")) {
event.setMessage(unity.ColorMessage(Message));
}
}else {
if (main.instance.getConfig().getBoolean("ColorChatSetting.AllowPlayerUsedColorChat")) {
event.setMessage(unity.ColorMessage(Message));
}
}
for (String ColorChatPlayers : main.instance.getConfig().getStringList("ColorChatSetting.AllowPlayers")) {
if (player.getName().equals(ColorChatPlayers)) {
event.setMessage(unity.ColorMessage(Message));
}
}
List<String> keywords = new ArrayList<>(main.instance.getConfig().getStringList("AntiKeyWords"));
for (String keyword : keywords) {
if (Message.toUpperCase().contentEquals(keyword)) {
player.sendMessage(ChatColor.translateAlternateColorCodes('&', "&d&l检测到屏蔽词,已阻止发送\n屏蔽词内容:" + keyword));
event.setCancelled(true);
for (Player player1 : Bukkit.getOnlinePlayers()) {
if (player1.isOp()) {
if (!player1.getName().equals(player.getName())) {
player1.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a&l" + player.getName() + "尝试发送屏蔽词,已被阻止发送\n屏蔽词内容:" + keyword));
}
}
}
return;
}
}
// 建议多线程处理。
if (Objects.equals(unity.getStringTemp(player.getName() + "_Message"), Message)) {
player.sendMessage(unity.ColorMessage("&d&l请不要刷屏!"));
event.setCancelled(true);
return;
}
if (unity.GetIntTemp(player.getName() + "_ChatTime") != null) {
player.sendMessage(unity.ColorMessage("&e&l您发送消息太快了,请在" + unity.GetIntTemp(player.getName() + "_ChatTime") + "后发送"));
event.setCancelled(true);
return;
}
unity.SetStringTemp(player.getName() + "_Message", Message);
unity.SetIntTemp(player.getName() + "_ChatTime", main.instance.getConfig().getInt("ChatSetting.ChatTime"));
}
}
@@ -0,0 +1,14 @@
package top.gtb520.tools.main;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
public class PlayerDeath_Event implements Listener {
@EventHandler
public void On_Event(PlayerDeathEvent event) {
Player player = event.getEntity();
unity.SetLocationTempTemp(player.getName() + "_Back",player.getLocation());
}
}
@@ -0,0 +1,28 @@
package top.gtb520.tools.main;
import me.clip.placeholderapi.PlaceholderAPI;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
public class PlayerJoin_Event implements Listener {
@EventHandler
public void PlayerJoin(PlayerJoinEvent event) {
Player player = event.getPlayer();
unity.GetLoggerPlus("&e&l" + player.getName() + " IP:" + player.getAddress());
main.instance.getConfig().set(player.getName() + "_Temp_TpaPlayerName",null);
main.instance.getConfig().set(player.getName() + "_Temp_Tpa",null);
main.instance.getConfig().set(player.getName() + "_Temp_TpaTime",null);
main.instance.saveConfig();
main.instance.reloadConfig();
String PlayerJoinMessage = main.instance.getConfig().getString("PlayerJoinServerMessage").replaceAll("%PlayerName%",player.getPlayerListName());
String AdminJoinMessage = main.instance.getConfig().getString("AdminJoinServerMessage").replaceAll("%PlayerName%",player.getPlayerListName());
if (player.isOp()) {
event.setJoinMessage(ChatColor.translateAlternateColorCodes('&', PlaceholderAPI.setPlaceholders(player, AdminJoinMessage)));
} else {
event.setJoinMessage(ChatColor.translateAlternateColorCodes('&', PlaceholderAPI.setPlaceholders(player, PlayerJoinMessage)));
}
}
}
@@ -0,0 +1,27 @@
package top.gtb520.tools.main;
import me.clip.placeholderapi.PlaceholderAPI;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerQuitEvent;
public class PlayerQuit_Event implements Listener {
@EventHandler
public void PlayerQuit(PlayerQuitEvent event) {
Player player = event.getPlayer();
main.instance.getConfig().set(player.getName() + "_Temp_TpaPlayerName", null);
main.instance.getConfig().set(player.getName() + "_Temp_Tpa", null);
main.instance.getConfig().set(player.getName() + "_Temp_TpaTime", null);
main.instance.saveConfig();
main.instance.reloadConfig();
String PlayerQuitMessage = main.instance.getConfig().getString("PlayerQuitServerMessage").replaceAll("%PlayerName%",player.getPlayerListName());
String AdminQuitMessage = main.instance.getConfig().getString("AdminQuitServerMessage").replaceAll("%PlayerName%",player.getPlayerListName());
if (player.isOp()) {
event.setQuitMessage(ChatColor.translateAlternateColorCodes('&', PlaceholderAPI.setPlaceholders(player, AdminQuitMessage)));
} else {
event.setQuitMessage(ChatColor.translateAlternateColorCodes('&', PlaceholderAPI.setPlaceholders(player, PlayerQuitMessage)));
}
}
}
@@ -0,0 +1,16 @@
package top.gtb520.tools.main;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerRespawnEvent;
public class PlayerReSpawn_Event implements Listener {
@EventHandler
public void On_Event(PlayerRespawnEvent event) {
Player player = event.getPlayer();
Location DiedLocation = unity.getLocationTempTemp(player.getName() + "_Back");
player.sendMessage(unity.ColorMessage("&a&l您的死亡位置是X:" + DiedLocation.getBlockX() + " Y:" + DiedLocation.getBlockY() + "_DiedY" + " Z:" + DiedLocation.getBlockZ()));
}
}
@@ -0,0 +1,151 @@
package top.gtb520.tools.main;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabExecutor;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.List;
public class PlayerTitle_Command implements TabExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (args.length >= 1) {
if(sender.isOp()) {
if (args[0].equals("help")) {
sender.sendMessage(unity.ColorMessage("&7---------------&dOpenSourceTitleSystem&7---------------"));
sender.sendMessage(unity.ColorMessage("/" + label + " help"));
sender.sendMessage(unity.ColorMessage("/" + label + " addTitle <玩家ID> <称号>"));
sender.sendMessage(unity.ColorMessage("/" + label + " addSuffix <玩家ID> <后缀>"));
sender.sendMessage(unity.ColorMessage("/" + label + " delTitle <玩家ID>"));
sender.sendMessage(unity.ColorMessage("/" + label + " delSuffix <玩家ID>"));
sender.sendMessage(unity.ColorMessage("&7---------------&dOpenSourceTitleSystem&7---------------"));
return false;
}
if (args[0].equals("addTitle")) {
if (args.length == 3) {
String PlayerName = args[1];
String Title = args[2];
if (Bukkit.getPlayer(PlayerName) == null) {
sender.sendMessage(unity.ColorMessage("&d&l这个玩家不存在或不在线"));
return false;
}
sender.sendMessage(unity.ColorMessage("&a操作成功!"));
main.instance.getConfig().set(PlayerName + "_Title",Title);
main.instance.saveConfig();
main.instance.reloadConfig();
return false;
}else {
sender.sendMessage(unity.ColorMessage("&d&l参数错误,用法:/" + label + " addTitle <玩家ID> <称号>"));
return false;
}
}
if (args[0].equals("addSuffix")) {
if (args.length == 3) {
String PlayerName = args[1];
String Suffix = args[2];
if (Bukkit.getPlayer(PlayerName) == null) {
sender.sendMessage(unity.ColorMessage("&d&l这个玩家不存在或不在线"));
return false;
}
sender.sendMessage(unity.ColorMessage("&a操作成功!"));
main.instance.getConfig().set(PlayerName + "_Suffix",Suffix);
main.instance.saveConfig();
main.instance.reloadConfig();
return false;
}else {
sender.sendMessage(unity.ColorMessage("&d&l参数错误,用法:/" + label + " addSuffix <玩家ID> <后缀>"));
return false;
}
}
if (args[0].equals("delTitle")) {
if (args.length == 2) {
String PlayerName = args[1];
if (Bukkit.getPlayer(PlayerName) == null) {
sender.sendMessage(unity.ColorMessage("&d&l这个玩家不存在或不在线"));
return false;
}
sender.sendMessage(unity.ColorMessage("&a操作成功!"));
main.instance.getConfig().set(PlayerName + "_Title",null);
main.instance.saveConfig();
main.instance.reloadConfig();
return false;
}else {
sender.sendMessage(unity.ColorMessage("&d&l参数错误,用法:/" + label + " delTitle <玩家ID>"));
return false;
}
}
if (args[0].equals("delSuffix")) {
if (args.length == 2) {
String PlayerName = args[1];
if (Bukkit.getPlayer(PlayerName) == null) {
sender.sendMessage(unity.ColorMessage("&d&l这个玩家不存在或不在线"));
return false;
}
sender.sendMessage(unity.ColorMessage("&a操作成功!"));
main.instance.getConfig().set(PlayerName + "_Suffix",null);
main.instance.saveConfig();
main.instance.reloadConfig();
return false;
}else {
sender.sendMessage(unity.ColorMessage("&d&l参数错误,用法:/" + label + " delSuffix <玩家ID>"));
return false;
}
}
sender.sendMessage(unity.ColorMessage("&7---------------&dOpenSourceTitleSystem&7---------------"));
sender.sendMessage(unity.ColorMessage("/" + label + " help"));
sender.sendMessage(unity.ColorMessage("&7---------------&dOpenSourceTitleSystem&7---------------"));
}
}else {
if (sender.isOp()) {
sender.sendMessage(unity.ColorMessage("&7---------------&dOpenSourceTitleSystem&7---------------"));
sender.sendMessage(unity.ColorMessage("/" + label + " help"));
sender.sendMessage(unity.ColorMessage("/" + label + " addTitle <玩家ID> <称号>"));
sender.sendMessage(unity.ColorMessage("/" + label + " addSuffix <玩家ID> <后缀>"));
sender.sendMessage(unity.ColorMessage("/" + label + " delTitle <玩家ID>"));
sender.sendMessage(unity.ColorMessage("/" + label + " delSuffix <玩家ID>"));
sender.sendMessage(unity.ColorMessage("&7---------------&dOpenSourceTitleSystem&7---------------"));
}else {
sender.sendMessage(unity.ColorMessage("&7---------------&dOpenSourceTitleSystem&7---------------"));
sender.sendMessage(unity.ColorMessage("/" + label + " help"));
sender.sendMessage(unity.ColorMessage("&7---------------&dOpenSourceTitleSystem&7---------------"));
}
}
return false;
}
@Nullable
@Override
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (args.length == 1) {
List<String> tablist = new ArrayList<>();
tablist.add("addTitle");
tablist.add("addSuffix");
tablist.add("delTitle");
tablist.add("delSuffix");
tablist.removeIf(s -> !s.startsWith(args[0]));
return tablist;
}
if (args.length == 2) {
List<String> tablist = new ArrayList<>();
for (Player player : Bukkit.getOnlinePlayers()) {
tablist.add(player.getName());
}
tablist.removeIf(s -> !s.startsWith(args[1]));
return tablist;
}
if (args.length == 3) {
return null;
}
return null;
}
}
@@ -0,0 +1,25 @@
package top.gtb520.tools.main;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.scheduler.BukkitTask;
import org.jetbrains.annotations.NotNull;
public class Reload_Command implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
main.instance.reloadConfig();
if (unity.GetIntTemp("TimeMessageTaskId") != null) {
Bukkit.getScheduler().cancelTask(unity.GetIntTemp("TimeMessageTaskId"));
}
if (main.instance.getConfig().getBoolean("TimeMessageSetting.TimeMessage")) {
BukkitTask TimeMessage = (new TimeMessage(main.instance)).runTaskTimer(main.instance, 0L, (main.instance.getConfig().getInt("TimeMessageSetting.TimeMessageTime") * 20L));
unity.SetIntTemp("TimeMessageTaskId",TimeMessage.getTaskId());
}
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&a重载完成!"));
return false;
}
}
@@ -0,0 +1,30 @@
package top.gtb520.tools.main;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.SignChangeEvent;
import java.util.Objects;
public class SignChange_Event implements Listener {
@EventHandler
public void ChangeSignEvent(SignChangeEvent event) {
Player player = event.getPlayer();
if (player.isOp()) {
if (main.instance.getConfig().getBoolean("ColorSignSetting.AllowAdminUsedColorSign")) {
for (int i = 0; i < 4; i++) {
if (!Objects.equals(event.getLine(i), "&"))
event.setLine(i, Objects.requireNonNull(event.getLine(i)).replace("&", "§"));
}
}
}else {
if (main.instance.getConfig().getBoolean("ColorSignSetting.AllowPlayerUsedColorSign")) {
for (int i = 0; i < 4; i++) {
if (!Objects.equals(event.getLine(i), "&"))
event.setLine(i, Objects.requireNonNull(event.getLine(i)).replace("&", "§"));
}
}
}
}
}
@@ -0,0 +1,39 @@
package top.gtb520.tools.main;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
public class Stop_Command implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (args.length == 1) {
String ServerName = main.instance.getConfig().getString("ServerName");
String StopMessage = args[0];
if (Bukkit.getOnlinePlayers().size() != 0) {
for (Player player : Bukkit.getOnlinePlayers()) {
player.kickPlayer(ChatColor.translateAlternateColorCodes('&',ServerName + "\n" +StopMessage));
}
Bukkit.shutdown();
}else {
Bukkit.shutdown();
}
}else {
String ServerName = main.instance.getConfig().getString("ServerName");
String StopMessage = main.instance.getConfig().getString("DefaultStopMessage");
if (Bukkit.getOnlinePlayers().size() != 0) {
for (Player player : Bukkit.getOnlinePlayers()) {
player.kickPlayer(ChatColor.translateAlternateColorCodes('&',ServerName + "\n" +StopMessage));
}
Bukkit.shutdown();
}else {
Bukkit.shutdown();
}
}
return false;
}
}
@@ -0,0 +1,74 @@
package top.gtb520.tools.main;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import java.util.Objects;
public class SuperKick_Command implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (args.length == 1) {
String PlayerName = args[0];
Player player = Bukkit.getPlayer(PlayerName);
if (Bukkit.getPlayer(PlayerName) == null) {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&d这个玩家不存在或不在线"));
} else {
if (Objects.requireNonNull(player).isOnline()) {
if (sender instanceof Player) {
if (!player.isOp()) {
if (!player.getName().equals(player.getName())) {
player.kickPlayer(ChatColor.translateAlternateColorCodes('&', "&d你被踢出服务器"));
} else {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&d你不能踢出自己"));
}
} else {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&d你不能踢出管理员"));
}
} else {
player.kickPlayer(ChatColor.translateAlternateColorCodes('&', "&d你被踢出服务器"));
}
}
}
return false;
}
if (args.length == 2) {
String PlayerName = args[0];
String message = args[1];
Player player = Bukkit.getPlayer(PlayerName);
if (Bukkit.getPlayer(PlayerName) == null) {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&d这个玩家不存在或不在线"));
} else {
if (Objects.requireNonNull(player).isOnline()) {
if (sender instanceof Player) {
if (!player.isOp()) {
if (!player.getName().equals(player.getName())) {
player.kickPlayer(ChatColor.translateAlternateColorCodes('&', message));
} else {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&d你不能踢出自己"));
}
} else {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&d你不能踢出管理员"));
}
} else {
player.kickPlayer(ChatColor.translateAlternateColorCodes('&', message));
}
}
}
return false;
}
if (sender instanceof Player) {
Player player = (Player) sender;
unity.KickGui(player);
}else {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&a正确用法&f: /kick &f<&e玩家ID&f> &f[&e理由&f]"));
}
return false;
}
}
@@ -0,0 +1,33 @@
package top.gtb520.tools.main;
import me.clip.placeholderapi.PlaceholderAPI;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
public class SuperList_Command implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
List<String> OnlinePlayers = new ArrayList<>();
String MemUsedMessage = "&a服务器内存占用&f:&e%server_ram_used%/%server_ram_max%";
MemUsedMessage = PlaceholderAPI.setPlaceholders(null, MemUsedMessage);
String ServerTPSMessage = "&a服务器TPS&f:&e%server_tps%";
ServerTPSMessage = PlaceholderAPI.setPlaceholders(null, ServerTPSMessage);
for (Player OnlinePlayer : Bukkit.getOnlinePlayers()) {
String PlayerName = OnlinePlayer.getName();
OnlinePlayers.add(PlayerName);
}
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', MemUsedMessage));
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', ServerTPSMessage));
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a在线人数&f:&e" + Bukkit.getOnlinePlayers().size() + "&f/&e" + Bukkit.getMaxPlayers()));
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a在线玩家列表&f:&e" + OnlinePlayers));
return false;
}
}
@@ -0,0 +1,32 @@
package top.gtb520.tools.main;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.scheduler.BukkitRunnable;
public class TimeMessage extends BukkitRunnable {
main pluginmain;
private int i = 0;
public TimeMessage(main main1) {
this.pluginmain = main1;
}
private static int order(int i) {
i++;
return i;
}
public void run() {
if (main.instance.getConfig().getBoolean("TimeMessageSetting.TimeMessage"))
if (this.i < main.instance.getConfig().getStringList("TimeMessageSetting.Message").size()) {
Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', main.instance.getConfig().getStringList("TimeMessageSetting.Message").get(this.i)));
this.i = order(this.i);
} else {
this.i = 0;
Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', main.instance.getConfig().getStringList("TimeMessageSetting.Message").get(this.i)));
this.i = order(this.i);
}
}
}
@@ -0,0 +1,57 @@
package top.gtb520.tools.main;
import net.md_5.bungee.api.chat.ClickEvent;
import net.md_5.bungee.api.chat.HoverEvent;
import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.chat.hover.content.Text;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import java.util.Objects;
public class Tpa_Command implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (sender instanceof Player) {
if (args.length == 1) {
String TpaPlayerName = args[0];
if (Bukkit.getPlayer(TpaPlayerName) == null) {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&d这个玩家不存在"));
return false;
}
Player player = (Player) sender;
Player TpaPlayer = Bukkit.getPlayer(TpaPlayerName);
String PlayerName = player.getName();
player.sendMessage(ChatColor.translateAlternateColorCodes('&',"&a传送请求已发送"));
TextComponent Message = new TextComponent();
TextComponent AccentMessage = new TextComponent(unity.ColorMessage("&7[&a&l同意&7]"));
AccentMessage.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new Text(unity.ColorMessage("&a接受" + PlayerName + "的传送请求"))));
AccentMessage.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tpaaccept "+ PlayerName));
TextComponent RefuseMessage = new TextComponent(unity.ColorMessage("&7[&d&l拒绝&7]"));
RefuseMessage.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new Text(unity.ColorMessage("&a拒绝" + PlayerName + "的传送请求"))));
RefuseMessage.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tpadefuse "+ PlayerName));
TextComponent Null = new TextComponent(" ");
Message.addExtra(AccentMessage);
Message.addExtra(Null);
Message.addExtra(RefuseMessage);
Objects.requireNonNull(TpaPlayer).sendMessage(ChatColor.translateAlternateColorCodes('&',"&7--------------&9Tpa系统&7--------------\n&a玩家:" + PlayerName + "想来你这里看看"));
Objects.requireNonNull(TpaPlayer).spigot().sendMessage(Message);
TpaPlayer.sendMessage(ChatColor.translateAlternateColorCodes('&',"&7--------------&9Tpa系统&7--------------"));
unity.SetStringTemp(PlayerName + "_Temp_TpaPlayerName",TpaPlayer.getName());
unity.SetBooleanTemp(PlayerName + "_Temp_Tpa",false);
unity.SetIntTemp(PlayerName + "_Temp_TpaTime",0);
}else {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&d用法错误,用法:/tpa <玩家ID>"));
}
}else {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&d这个命令只有玩家才能执行"));
}
return false;
}
}
@@ -0,0 +1,40 @@
package top.gtb520.tools.main;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import java.util.Objects;
public class Tpa_Detect extends BukkitRunnable {
main pluginmain;
public Tpa_Detect(main main1) {
this.pluginmain = main1;
}
public void run() {
for (Player player : Bukkit.getOnlinePlayers()) {
String PlayerName = player.getName();
if (unity.getStringTemp(PlayerName + "_Temp_TpaPlayerName") != null) {
if (unity.getBooleanTemp(PlayerName + "_Temp_Tpa")) {
if (Bukkit.getPlayer(Objects.requireNonNull(unity.getStringTemp(PlayerName + "_Temp_TpaPlayerName"))) == null) {
player.sendMessage(ChatColor.RED + "错误,那个玩家突然下线了!传送已取消");
}else {
Player TpaPlayer = Bukkit.getPlayer(Objects.requireNonNull(unity.getStringTemp(PlayerName + "_Temp_TpaPlayerName")));
Location TpaLocation = Objects.requireNonNull(TpaPlayer).getLocation();
unity.SetLocationTempTemp(player.getName() + "_Tpa",player.getLocation());
player.teleport(TpaLocation);
player.sendMessage(ChatColor.GREEN + "传送成功!");
TpaPlayer.sendMessage(ChatColor.GREEN + player.getName() + "传送到了你这里!");
}
unity.SetStringTemp(PlayerName + "_Temp_TpaPlayerName",null);
unity.SetBooleanTemp(PlayerName + "_Temp_Tpa",false);
unity.SetIntTemp(PlayerName + "_Temp_TpaTime",0);
}
}
}
}
}
@@ -0,0 +1,46 @@
package top.gtb520.tools.main;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import java.util.Objects;
public class Tpa_Time extends BukkitRunnable {
main pluginmain;
public Tpa_Time(main main1) {
this.pluginmain = main1;
}
public void run() {
for (Player player : Bukkit.getOnlinePlayers()) {
String PlayerName = player.getName();
if (unity.GetIntTemp(PlayerName + "_ChatTime") != null) {
int ChatTime = unity.GetIntTemp(PlayerName + "_ChatTime");
int NewChatTime = ChatTime-1;
unity.SetIntTemp(PlayerName + "_ChatTime",NewChatTime);
if (unity.GetIntTemp(PlayerName + "_ChatTime") == 0) {
unity.SetIntTemp(PlayerName + "_ChatTime",null);
}
}
if (unity.getStringTemp(PlayerName + "_Temp_TpaPlayerName") != null) {
if (!unity.getBooleanTemp(PlayerName + "_Temp_Tpa")) {
int TpaTime = unity.GetIntTemp(PlayerName + "_Temp_TpaTime");
unity.SetIntTemp(PlayerName + "_Temp_TpaTime",TpaTime+1);
if (TpaTime+1 >= 60) {
String TpaPlayerName = unity.getStringTemp(PlayerName + "_Temp_TpaPlayerName");
Player TpaPlayer = Bukkit.getPlayer(Objects.requireNonNull(TpaPlayerName));
Objects.requireNonNull(TpaPlayer).sendMessage(ChatColor.translateAlternateColorCodes('&',"&d" + PlayerName + "给你发的的传送请求已超时"));
player.sendMessage(ChatColor.translateAlternateColorCodes('&',"&d你发给" + TpaPlayerName + "的传送请求已超时"));
unity.SetStringTemp(PlayerName + "_Temp_TpaPlayerName",null);
unity.SetBooleanTemp(PlayerName + "_Temp_Tpa",false);
unity.SetIntTemp(PlayerName + "_Temp_TpaTime",0);
}
}
}
}
}
}
@@ -0,0 +1,66 @@
package top.gtb520.tools.main;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
import org.jetbrains.annotations.NotNull;
public class YamlFile_Utils {
private InputStream getResource(@NotNull String filename) {
try {
URL URL = getClass().getClassLoader().getResource(filename);
if (URL == null)
return null;
URLConnection Connection = URL.openConnection();
Connection.setUseCaches(false);
return Connection.getInputStream();
} catch (IOException ex) {
return null;
}
}
public void saveYmlFile(String FilePath, String FileName, String ResourcePath) {
File Folder = new File(FilePath);
if (!Folder.exists())
Folder.mkdirs();
saveResource(FilePath, ResourcePath, FileName, false);
}
public void saveYamlFile(String FilePath, String FileName, String ResourcePath,boolean Replace) {
File Folder = new File(FilePath);
if (!Folder.exists())
Folder.mkdirs();
saveResource(FilePath, ResourcePath, FileName, Replace);
}
public void saveResource(String FilePath, @NotNull String ResourcePath, String OutFileName, boolean Replace) {
if (ResourcePath.equals(""))
throw new IllegalArgumentException("ResourcePath cannot be null or empty");
ResourcePath = ResourcePath.replace('\\', '/');
InputStream in = getResource(ResourcePath);
if (in == null)
throw new IllegalArgumentException("The embedded resource '" + ResourcePath + "' cannot be found in " + ResourcePath);
File OutFile = new File(FilePath, OutFileName);
try {
if (!OutFile.exists() || Replace) {
OutputStream out = new FileOutputStream(OutFile);
byte[] buf = new byte[1024];
int Len;
while ((Len = in.read(buf)) > 0)
out.write(buf, 0, Len);
out.close();
in.close();
} else {
System.out.println("Could not save " + OutFile.getName() + " to " + OutFile + " because " + OutFile.getName() + " already exists.");
}
} catch (IOException ex) {
System.out.println("Could not save " + OutFile.getName() + " to " + OutFile);
}
}
}
@@ -0,0 +1,24 @@
package top.gtb520.tools.main;
import org.bukkit.ChatColor;
import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
public class day_Command implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (sender instanceof Player) {
Player player = (Player) sender;
World world = player.getWorld();
world.setTime(1000);
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&a完成!"));
}else {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&d这个命令只能是玩家执行"));
}
return false;
}
}
@@ -0,0 +1,37 @@
package top.gtb520.tools.main;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import static top.gtb520.tools.main.main.instance;
public class feed_Command implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (sender instanceof Player) {
Player player = (Player) sender;
String CommandName = "Feed";
if (player.isOp()) {
if (!instance.getConfig().getBoolean(CommandName + "CommandSetting.AllowAdminUsed" + CommandName + "Command")) {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&d这个服务器禁止管理员使用Feed命令!"));
return false;
}
}else {
if (!instance.getConfig().getBoolean(CommandName + "CommandSetting.AllowPlayerUsed" + CommandName + "Command")) {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&d这个服务器禁止玩家使用Feed命令!"));
return false;
}
}
player.setSaturation(20);
player.setFoodLevel(20);
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&a你的饱食度被神奇的恢复了"));
}else {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&d这个命令只有玩家才能执行"));
}
return false;
}
}
@@ -0,0 +1,48 @@
package top.gtb520.tools.main;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
public class fly_Command implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (args.length == 1) {
String PlayerName = args[0];
if (Bukkit.getPlayer(PlayerName) == null) {
sender.sendMessage(unity.ColorMessage("&d&l这个玩家不存在或不在线!"));
return false;
}
Player player = Bukkit.getPlayer(PlayerName);
assert player != null;
if (player.getAllowFlight()) {
sender.sendMessage(unity.ColorMessage("&e&l" + player.getName() + "飞行模式已关闭"));
player.sendMessage(unity.ColorMessage("&e&l飞行模式已关闭"));
unity.SetStringTemp(player.getName() + "_Fly",null);
}else {
sender.sendMessage(unity.ColorMessage("&a&l" + player.getName() + "操作成功!"));
player.sendMessage(unity.ColorMessage("&e&l飞行模式已开启"));
unity.SetStringTemp(player.getName() + "_Fly","已开启");
}
player.setAllowFlight(!player.getAllowFlight());
}else {
if (sender instanceof Player) {
Player player = (Player) sender;
if (player.getAllowFlight()) {
player.sendMessage(unity.ColorMessage("&e&l飞行模式已关闭"));
unity.SetStringTemp(player.getName() + "_Fly",null);
}else {
player.sendMessage(unity.ColorMessage("&e&l飞行模式已开启"));
unity.SetStringTemp(player.getName() + "_Fly","已开启");
}
player.setAllowFlight(!player.getAllowFlight());
}else {
sender.sendMessage(unity.ColorMessage("&d&l用法错误,正确用法:/fly [玩家ID]"));
}
}
return false;
}
}
@@ -0,0 +1,172 @@
package top.gtb520.tools.main;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.GameMode;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabExecutor;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
public class gm_Command implements TabExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (args.length == 1) {
if (sender instanceof Player) {
String args1 = args[0];
String senderName = sender.getName();
Player player = (Player) sender;
if (args1.equalsIgnoreCase("1") || args1.equalsIgnoreCase("创造") || args1.equalsIgnoreCase("creative")) {
player.setGameMode(GameMode.CREATIVE);
player.sendMessage(ChatColor.translateAlternateColorCodes('&',"&f你的模式已被更改成 创造模式"));
for (Player AllPlayer : Bukkit.getOnlinePlayers()) {
if (AllPlayer.isOp()) {
if (!AllPlayer.getName().equals(player.getName())) {
AllPlayer.sendMessage(ChatColor.GRAY + "[" + senderName + ":更改了玩家" + player.getName() + "的游戏模式为 创造模式]");
}
}
}
return false;
}
if (args1.equalsIgnoreCase("2") || args1.equalsIgnoreCase("冒险") || args1.equalsIgnoreCase("adventure")) {
player.setGameMode(GameMode.ADVENTURE);
player.sendMessage(ChatColor.translateAlternateColorCodes('&',"&f你的模式已被更改成 冒险模式"));
for (Player AllPlayer : Bukkit.getOnlinePlayers()) {
if (AllPlayer.isOp()) {
if (!AllPlayer.getName().equals(player.getName())) {
AllPlayer.sendMessage(ChatColor.GRAY + "[" + senderName + ":更改了玩家" + player.getName() + "的游戏模式为 冒险模式]");
}
}
}
return false;
}
if (args1.equalsIgnoreCase("3") || args1.equalsIgnoreCase("旁观") || args1.equalsIgnoreCase("spectator")) {
player.setGameMode(GameMode.SPECTATOR);
player.sendMessage(ChatColor.translateAlternateColorCodes('&',"&f你的模式已被更改成 旁观模式"));
for (Player AllPlayer : Bukkit.getOnlinePlayers()) {
if (AllPlayer.isOp()) {
if (!AllPlayer.getName().equals(player.getName())) {
AllPlayer.sendMessage(ChatColor.GRAY + "[" + senderName + ":更改了玩家" + player.getName() + "的游戏模式为 旁观模式]");
}
}
}
return false;
}
if (args1.equalsIgnoreCase("0") || args1.equalsIgnoreCase("生存") || args1.equalsIgnoreCase("survival")) {
player.setGameMode(GameMode.SURVIVAL);
player.sendMessage(ChatColor.translateAlternateColorCodes('&',"&f你的模式已被更改成 生存模式"));
for (Player AllPlayer : Bukkit.getOnlinePlayers()) {
if (AllPlayer.isOp()) {
if (!AllPlayer.getName().equals(player.getName())) {
AllPlayer.sendMessage(ChatColor.GRAY + "[" + senderName + ":更改了玩家" + player.getName() + "的游戏模式为 生存模式]");
}
}
}
return false;
}
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&d" + args1 + "不是一个有效的模式"));
}else {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&d用法错误,用法:/gamemode <模式> [玩家]"));
}
}else {
if (args.length == 2) {
String args1 = args[0];
if (Bukkit.getPlayer(args[1]) == null) {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&d这个玩家不存在或不在线"));
return false;
}else {
String senderName;
if (sender instanceof Player) {
senderName = sender.getName();
}else {
senderName = "Server";
}
Player player = Bukkit.getPlayer(args[1]);
if (args1.equalsIgnoreCase("1") || args1.equalsIgnoreCase("创造") || args1.equalsIgnoreCase("creative")) {
Objects.requireNonNull(player).setGameMode(GameMode.CREATIVE);
player.sendMessage(ChatColor.translateAlternateColorCodes('&',"&f你的模式已被更改成 创造模式"));
for (Player AllPlayer : Bukkit.getOnlinePlayers()) {
if (AllPlayer.isOp()) {
if (!AllPlayer.getName().equals(player.getName())) {
AllPlayer.sendMessage(ChatColor.GRAY + "[" + senderName + ":更改了玩家" + player.getName() + "的游戏模式为 创造模式]");
}
}
}
return false;
}
if (args1.equalsIgnoreCase("2") || args1.equalsIgnoreCase("冒险") || args1.equalsIgnoreCase("adventure")) {
Objects.requireNonNull(player).setGameMode(GameMode.ADVENTURE);
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&a设置成功"));
player.sendMessage(ChatColor.translateAlternateColorCodes('&',"&f你的模式已被更改成 冒险模式"));
for (Player AllPlayer : Bukkit.getOnlinePlayers()) {
if (AllPlayer.isOp()) {
if (!AllPlayer.getName().equals(player.getName())) {
AllPlayer.sendMessage(ChatColor.GRAY + "[" + senderName + ":更改了玩家" + player.getName() + "的游戏模式为 冒险模式]");
}
}
}
return false;
}
if (args1.equalsIgnoreCase("3") || args1.equalsIgnoreCase("旁观") || args1.equalsIgnoreCase("spectator")) {
Objects.requireNonNull(player).setGameMode(GameMode.SPECTATOR);
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&a设置成功"));
player.sendMessage(ChatColor.translateAlternateColorCodes('&',"&f你的模式已被更改成 旁观模式"));
for (Player AllPlayer : Bukkit.getOnlinePlayers()) {
if (AllPlayer.isOp()) {
if (!AllPlayer.getName().equals(player.getName())) {
AllPlayer.sendMessage(ChatColor.GRAY + "[" + senderName + ":更改了玩家" + player.getName() + "的游戏模式为 旁观模式]");
}
}
}
return false;
}
if (args1.equalsIgnoreCase("0") || args1.equalsIgnoreCase("生存") || args1.equalsIgnoreCase("survival")) {
Objects.requireNonNull(player).setGameMode(GameMode.SURVIVAL);
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&a设置成功"));
player.sendMessage(ChatColor.translateAlternateColorCodes('&',"&f你的模式已被更改成 生存模式"));
for (Player AllPlayer : Bukkit.getOnlinePlayers()) {
if (AllPlayer.isOp()) {
if (!AllPlayer.getName().equals(player.getName())) {
AllPlayer.sendMessage(ChatColor.GRAY + "[" + senderName + ":更改了玩家" + player.getName() + "的游戏模式为 生存模式]");
}
}
}
return false;
}
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&d" + args1 + "不是一个有效的模式"));
}
}else {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&d用法错误,用法:/gamemode <模式> [玩家]"));
}
}
return false;
}
public List<String> onTabComplete(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s, String[] strings) {
if (strings.length == 1) {
List<String> tablist = new ArrayList<>();
tablist.add("冒险");
tablist.add("创造");
tablist.add("旁观");
tablist.add("生存");
if (!strings[0].equalsIgnoreCase("冒险") && !strings[0].equalsIgnoreCase("创造") && !strings[0].equalsIgnoreCase("旁观") && !strings[0].equalsIgnoreCase("生存")) {
return tablist;
}
}
return null;
}
}
@@ -0,0 +1,37 @@
package top.gtb520.tools.main;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import static top.gtb520.tools.main.main.instance;
public class heal_Command implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (sender instanceof Player) {
Player player = (Player) sender;
String CommandName = "heal";
if (player.isOp()) {
if (!instance.getConfig().getBoolean(CommandName + "CommandSetting.AllowAdminUsed" + CommandName + "Command")) {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&d这个服务器禁止管理员使用heal命令!"));
return false;
}
}else {
if (!instance.getConfig().getBoolean(CommandName + "CommandSetting.AllowPlayerUsed" + CommandName + "Command")) {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&d这个服务器禁止玩家使用heal命令!"));
return false;
}
}
player.setSaturation(20);
player.setFoodLevel(20);
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&a你的血量被神奇的恢复了"));
}else {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&d这个命令只有玩家才能执行"));
}
return false;
}
}
@@ -0,0 +1,139 @@
package top.gtb520.tools.main;
import org.bukkit.Bukkit;
import org.bukkit.event.Listener;
import org.bukkit.plugin.PluginDescriptionFile;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitTask;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
public final class main extends JavaPlugin implements Listener {
public static YamlFile_Utils Yaml;
public static main instance;
private static PluginDescriptionFile descriptionFile;
public static PluginDescriptionFile getDescriptionFile() {
return descriptionFile;
}
public static main getInstance() {
return instance;
}
@Override
public void onEnable() {
// Plugin startup logic
instance = this;
descriptionFile = getDescription();
unity.GetLoggerPlus("\n" +
" ___ ___ \n" +
" / _ \\ _ __ ___ _ _ / __| ___ _ _ _ _ __ ___ \n" +
" | (_) | '_ \\/ -_) ' \\\\__ \\/ _ \\ || | '_/ _/ -_)\n" +
" \\___/| .__/\\___|_||_|___/\\___/\\_,_|_| \\__\\___|\n" +
" |_| \n");
if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") == null) {
unity.GetLoggerPlus("&d找不到PlaceholderAPI,请安装PlaceholderAPI后才能使用本插件");
Bukkit.getPluginManager().disablePlugins();
try {
Thread.sleep(2300);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
System.exit(0);
} else if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) {
unity.GetLoggerPlus("&2已检测到PlaceholderAPI前置");
}
Bukkit.getPluginManager().registerEvents(this, this);
new PlaceholderAPI(this).register();
File Folder = new File(String.valueOf(getDataFolder()));
File Config_File = new File(getDataFolder(), "config.yml");
Yaml = new YamlFile_Utils();
if (!Folder.exists() || !Config_File.exists()) {
Folder.mkdirs();
Yaml.saveYamlFile(getDataFolder().getPath(), "config.yml", "config.yml",true);
}
List<File> Folders = new ArrayList<>();
Folders.add(new File(getDataFolder().getPath()));
Makedirs(Folders);
unity.GetLoggerPlus("&f-----------OpenSourceTools-----------");
BukkitTask TpaTime = new Tpa_Time(this).runTaskTimer(this, 0L, 20);
unity.SetIntTemp("TpaTimeTaskId",TpaTime.getTaskId());
BukkitTask TpaDetect = new Tpa_Detect(this).runTaskTimer(this, 0L, 60*20);
unity.SetIntTemp("TpaDetectTaskId",TpaDetect.getTaskId());
if (getConfig().getBoolean("TimeMessageSetting.TimeMessage")) {
BukkitTask TimeMessage = new TimeMessage(this).runTaskTimer(this, 0L, getConfig().getInt("TimeMessageSetting.TimeMessageTime")*20L);
unity.SetIntTemp("TimeMessageTaskId",TimeMessage.getTaskId());
}
Bukkit.getPluginManager().registerEvents(new KickGUI_ClickGUI_Event(),this);
Bukkit.getPluginManager().registerEvents(new PlayerJoin_Event(),this);
Bukkit.getPluginManager().registerEvents(new PlayerQuit_Event(),this);
Bukkit.getPluginManager().registerEvents(new PlayerChat_Event(),this);
Bukkit.getPluginManager().registerEvents(new SignChange_Event(),this);
Bukkit.getPluginManager().registerEvents(new PlayerDeath_Event(),this);
Bukkit.getPluginManager().registerEvents(new PlayerReSpawn_Event(),this);
Bukkit.getPluginManager().registerEvents(new PlayerChangedWorld_Event(),this);
Objects.requireNonNull(getCommand("OSTReload")).setExecutor(new Reload_Command());
Objects.requireNonNull(getCommand("Stop")).setExecutor(new Stop_Command());
Objects.requireNonNull(getCommand("gamemode")).setExecutor(new gm_Command());
Objects.requireNonNull(getCommand("gamemode")).setTabCompleter(new gm_Command());
Objects.requireNonNull(getCommand("day")).setExecutor(new day_Command());
Objects.requireNonNull(getCommand("sun")).setExecutor(new sun_Command());
Objects.requireNonNull(getCommand("spawn")).setExecutor(new spawn_Command());
Objects.requireNonNull(getCommand("setspawn")).setExecutor(new setspawn_Command());
Objects.requireNonNull(getCommand("tpa")).setExecutor(new Tpa_Command());
Objects.requireNonNull(getCommand("tpaaccept")).setExecutor(new tpaAccept_Command());
Objects.requireNonNull(getCommand("tpadefuse")).setExecutor(new tpaDefuse_Command());
Objects.requireNonNull(getCommand("vanish")).setExecutor(new vanish_Command());
Objects.requireNonNull(getCommand("fly")).setExecutor(new fly_Command());
Objects.requireNonNull(getCommand("mute")).setExecutor(new mute_Command());
Objects.requireNonNull(getCommand("unmute")).setExecutor(new unmute_Command());
Objects.requireNonNull(getCommand("kick")).setExecutor(new SuperKick_Command());
Objects.requireNonNull(getCommand("feed")).setExecutor(new feed_Command());
Objects.requireNonNull(getCommand("heal")).setExecutor(new heal_Command());
Objects.requireNonNull(getCommand("list")).setExecutor(new SuperList_Command());
Objects.requireNonNull(getCommand("back")).setExecutor(new Back_Command());
Objects.requireNonNull(getCommand("testGUI")).setExecutor(new testGUI());
Objects.requireNonNull(getCommand("PlayerTitle")).setExecutor(new PlayerTitle_Command());
unity.GetLoggerPlus("插件启动成功");
unity.GetLoggerPlus("&f-----------OpenSourceTools-----------");
}
@Override
public void onDisable() {
// Plugin shutdown logic
instance = null;
unity.GetLoggerPlus("&f-----------OpenSourceTools-----------");
unity.GetLoggerPlus("插件已卸载");
unity.GetLoggerPlus("&f-----------OpenSourceTools-----------");
unity.GetLoggerPlus("\n" +
" ___ ___ \n" +
" / _ \\ _ __ ___ _ _ / __| ___ _ _ _ _ __ ___ \n" +
" | (_) | '_ \\/ -_) ' \\\\__ \\/ _ \\ || | '_/ _/ -_)\n" +
" \\___/| .__/\\___|_||_|___/\\___/\\_,_|_| \\__\\___|\n" +
" |_| \n");
}
private static void Makedirs(List<File> Folders) {
for (File EachFolder : Folders) {
if (!EachFolder.exists()) {
EachFolder.mkdirs();
}
}
}
}
@@ -0,0 +1,134 @@
package cn.gtb520.tools.main;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.inventory.meta.SkullMeta;
import top.gtb520.tools.main.main;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Objects;
public class multi {
public static void SaveAndReloadConfig() {
main.instance.saveConfig();
main.instance.reloadConfig();
}
public static String ColorMessage(String String1) {
return ChatColor.translateAlternateColorCodes('&',String1);
}
public static void GetLoggerPlus(String String1) {
CommandSender Console = Bukkit.getConsoleSender();
Console.sendMessage(ColorMessage(String1));
}
static HashMap<String, Integer> IntTemp = new HashMap<>();
static HashMap<String, String> StringTemp = new HashMap<>();
static HashMap<String, Boolean> BooleanTemp = new HashMap<>();
static HashMap<String, Location> LocationTemp = new HashMap<>();
public static void SetLocationTempTemp(String String1, Location String2) {
LocationTemp.put(String1,String2);
}
public static Location getLocationTempTemp(String String1) {
return LocationTemp.get(String1);
}
public static void SetStringTemp(String String1,String String2) {
StringTemp.put(String1,String2);
}
public static String getStringTemp(String String1) {
return StringTemp.get(String1);
}
public static void SetIntTemp(String String1, Integer Int1) {
IntTemp.put(String1,Int1);
}
public static Integer GetIntTemp(String String1) {
return IntTemp.get(String1);
}
public static void SetBooleanTemp(String String1, boolean Boolean1) {
BooleanTemp.put(String1, Boolean1);
}
public static boolean getBooleanTemp(String String1) {
return BooleanTemp.get(String1);
}
public static void KickGui(Player player) {
Inventory UI = Bukkit.createInventory(player,45, ColorMessage("&a选择你要踢出的玩家"));
ItemStack Bk = new ItemStack(Material.ORANGE_STAINED_GLASS_PANE);
ItemMeta Bk_Meta = Bk.getItemMeta();
Objects.requireNonNull(Bk_Meta).setDisplayName(ColorMessage("&e这只是一个边框"));
ArrayList<String> Bk_Lore = new ArrayList<>();
Bk_Lore.add(null);
Bk_Lore.add(ColorMessage("&e这只是一个边框"));
Bk_Meta.setLore(Bk_Lore);
Bk.setItemMeta(Bk_Meta);
for (int i1 = 0 ; i1 <9 ; i1++) {
UI.setItem(i1,Bk);
}
for (int i2 = 36 ; i2 <40 ; i2++) {
UI.setItem(i2,Bk);
}
for (int i3 = 41 ; i3 <45 ; i3++) {
UI.setItem(i3,Bk);
}
UI.setItem(9,Bk);
UI.setItem(17,Bk);
UI.setItem(18,Bk);
UI.setItem(26,Bk);
UI.setItem(27,Bk);
UI.setItem(35,Bk);
ItemStack Gb = new ItemStack(Material.REDSTONE_BLOCK);
ItemMeta Gb_Meta = Gb.getItemMeta();
Objects.requireNonNull(Gb_Meta).setDisplayName(ColorMessage("&d关闭菜单"));
ArrayList<String> Gb_Lore = new ArrayList<>();
Gb_Lore.add(null);
Gb_Lore.add(ColorMessage("&e点击关闭菜单"));
Gb_Meta.setLore(Gb_Lore);
Gb.setItemMeta(Gb_Meta);
UI.setItem(40,Gb);
ArrayList<Player> players = new ArrayList<>(player.getServer().getOnlinePlayers());
for (Player value : players) {
ItemStack PlayerHead = new ItemStack(Material.PLAYER_HEAD);
SkullMeta PlayerHead_meta = (SkullMeta) PlayerHead.getItemMeta();
Objects.requireNonNull(PlayerHead_meta).setOwningPlayer(value);
Objects.requireNonNull(PlayerHead_meta).setDisplayName(ChatColor.RESET + value.getDisplayName() + ChatColor.RESET);
ArrayList<String> PlayerHead_Lore = new ArrayList<>();
PlayerHead_Lore.add(null);
PlayerHead_Lore.add(ColorMessage( "&e点击踢出玩家"));
PlayerHead_meta.setLore(PlayerHead_Lore);
PlayerHead.setItemMeta(PlayerHead_meta);
UI.addItem(PlayerHead);
}
player.openInventory(UI);
}
}
@@ -0,0 +1,87 @@
package top.gtb520.tools.main;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
public class mute_Command implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (sender instanceof Player) {
if (args.length == 1) {
Player senderPlayer = (Player) sender;
String PlayerName = args[0];
if (Bukkit.getPlayer(PlayerName) == null) {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&d这个玩家不存在或不在线!"));
return false;
}
Player player = Bukkit.getPlayer(PlayerName);
if (PlayerName.equals(senderPlayer.getName())) {
sender.sendMessage(ChatColor.RED + "你不能禁言你自己");
return false;
}
if (Objects.requireNonNull(player).isOp()) {
sender.sendMessage(ChatColor.RED + "你不能禁言管理员");
return false;
}
List<String> MutePlayerList = new ArrayList<>(main.instance.getConfig().getStringList("MutePlayerList"));
for (String MutePlayers : MutePlayerList) {
if (MutePlayers.equals(Objects.requireNonNull(player).getName())) {
sender.sendMessage(ChatColor.RED + "这个玩家已经被禁言过了,请勿重复禁言!");
return false;
}
}
MutePlayerList.add(Objects.requireNonNull(player).getName());
main.instance.getConfig().set("MutePlayerList", MutePlayerList);
unity.SaveAndReloadConfig();
sender.sendMessage(ChatColor.GREEN + "你禁言了" + player.getName());
player.sendMessage(ChatColor.RED + "你被 " + senderPlayer.getName() + " 禁言了!");
return false;
}
}else {
if (args.length == 1) {
String PlayerName = args[0];
if (Bukkit.getPlayer(PlayerName) == null) {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&d这个玩家不存在或不在线!"));
return false;
}
Player player = Bukkit.getPlayer(PlayerName);
List<String> MutePlayerList = new ArrayList<>(main.instance.getConfig().getStringList("MutePlayerList"));
for (String MutePlayers : MutePlayerList) {
if (MutePlayers.equals(Objects.requireNonNull(player).getName())) {
sender.sendMessage(ChatColor.RED + "这个玩家已经被禁言过了,请勿重复禁言!");
return false;
}
}
MutePlayerList.add(Objects.requireNonNull(player).getName());
main.instance.getConfig().set("MutePlayerList", MutePlayerList);
unity.SaveAndReloadConfig();
sender.sendMessage(ChatColor.GREEN + "你禁言了" + player.getName());
player.sendMessage(ChatColor.RED + "你被 控制台 禁言了!");
return false;
}
}
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&d用法错误,用法:/mute <玩家ID>"));
return false;
}
}
@@ -0,0 +1,33 @@
package top.gtb520.tools.main;
import org.bukkit.ChatColor;
import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
public class setspawn_Command implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (sender instanceof Player) {
Player player = (Player) sender;
World world = player.getWorld();
String worldName = world.getName();
Double locationX = player.getLocation().getX();
Double locationY = player.getLocation().getY();
Double locationZ = player.getLocation().getZ();
main.instance.getConfig().set("SpawnSetting.WorldName",worldName);
main.instance.getConfig().set("SpawnSetting.locationX",locationX);
main.instance.getConfig().set("SpawnSetting.locationY",locationY);
main.instance.getConfig().set("SpawnSetting.locationZ",locationZ);
main.instance.saveConfig();
main.instance.reloadConfig();
player.sendMessage(ChatColor.translateAlternateColorCodes('&',"&a设置完成!"));
}else {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&d这个命令只能是玩家执行"));
}
return false;
}
}
@@ -0,0 +1,39 @@
package top.gtb520.tools.main;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
public class spawn_Command implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (sender instanceof Player) {
Player player = (Player) sender;
String worldName = main.instance.getConfig().getString("SpawnSetting.WorldName");
double locationX = main.instance.getConfig().getDouble("SpawnSetting.locationX");
double locationY = main.instance.getConfig().getDouble("SpawnSetting.locationY");
double locationZ = main.instance.getConfig().getDouble("SpawnSetting.locationZ");
if (worldName == null) {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&d你好像还没有设置主城呢,使用/setspawn设置主城吧!"));
}else {
World world = Bukkit.getWorld(worldName);
Location location = new Location(world,locationX,locationY,locationZ);
location.setX(locationX);
location.setY(locationY);
location.setZ(locationZ);
player.teleport(location);
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&a欢迎来到主城!"));
}
}else {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&d这个命令只能是玩家执行"));
}
return false;
}
}
@@ -0,0 +1,23 @@
package top.gtb520.tools.main;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
public class sun_Command implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (sender instanceof Player) {
Player player = (Player) sender;
player.getWorld().setStorm(false);
player.getWorld().setThundering(false);
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&a完成!"));
}else {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&d这个命令只能是玩家执行"));
}
return false;
}
}
@@ -0,0 +1,38 @@
package top.gtb520.tools.main;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
public class testGUI implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (sender instanceof Player) {
Player player = (Player) sender;
if (!player.isOp()) {
if (args.length == 1) {
String GUIName = args[0];
if (GUIName.equals("KickGUI")) {
unity.KickGui(player);
return false;
}
sender.sendMessage(unity.ColorMessage("&d这个命令只有插件作者才能使用"));
System.out.println("玩家:" + sender + "使用了内部测试命令");
}else {
sender.sendMessage(unity.ColorMessage("&d这个命令只有插件作者才能使用"));
System.out.println("玩家:" + sender + "使用了内部测试命令");
}
}else {
sender.sendMessage(unity.ColorMessage("&d这个命令只有插件作者才能使用"));
System.out.println("玩家:" + sender + "使用了内部测试命令");
}
}else {
sender.sendMessage(unity.ColorMessage("&d这个命令只有插件作者才能使用"));
System.out.println("玩家:" + sender + "使用了内部测试命令");
}
return false;
}
}
@@ -0,0 +1,48 @@
package top.gtb520.tools.main;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import java.util.Objects;
public class tpaAccept_Command implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (sender instanceof Player) {
if (args.length == 1) {
String AcceptPlayerName = args[0];
if (Bukkit.getPlayer(AcceptPlayerName) == null) {
unity.SetStringTemp(AcceptPlayerName + "_Temp_TpaPlayerName",null);
unity.SetBooleanTemp(AcceptPlayerName + "_Temp_Tpa",false);
unity.SetIntTemp(AcceptPlayerName + "_Temp_TpaTime",0);
sender.sendMessage(ChatColor.RED + "错误,那个玩家突然下线了!传送已取消");
return false;
}
Player player = (Player) sender;
if (unity.getStringTemp(AcceptPlayerName + "_Temp_TpaPlayerName") == null|| !Objects.equals(unity.getStringTemp(AcceptPlayerName + "_Temp_TpaPlayerName"), player.getName())) {
sender.sendMessage(ChatColor.RED + "这个玩家没有给你发传送请求");
return false;
}
Player AcceptPlayer = Bukkit.getPlayer(AcceptPlayerName);
Location SenderLocation = player.getLocation();
Objects.requireNonNull(AcceptPlayer).teleport(SenderLocation);
AcceptPlayer.sendMessage(ChatColor.GREEN + "传送成功!");
player.sendMessage(ChatColor.GREEN + player.getName() + "传送到了你这里!");
unity.SetStringTemp(AcceptPlayerName + "_Temp_TpaPlayerName",null);
unity.SetBooleanTemp(AcceptPlayerName + "_Temp_Tpa",false);
unity.SetIntTemp(AcceptPlayerName + "_Temp_TpaTime",0);
}else {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&d用法错误,用法:/tpa <玩家ID>"));
}
}else {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&d这个命令只有玩家才能执行"));
}
return false;
}
}
@@ -0,0 +1,44 @@
package top.gtb520.tools.main;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import java.util.Objects;
public class tpaDefuse_Command implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (sender instanceof Player) {
if (args.length == 1) {
String AcceptPlayerName = args[0];
if (Bukkit.getPlayer(AcceptPlayerName) == null) {
unity.SetStringTemp(AcceptPlayerName + "_Temp_TpaPlayerName",null);
unity.SetBooleanTemp(AcceptPlayerName + "_Temp_Tpa",false);
unity.SetIntTemp(AcceptPlayerName + "_Temp_TpaTime",0);
sender.sendMessage(ChatColor.RED + "错误,那个玩家突然下线了!传送已取消");
return false;
}
Player player = (Player) sender;
if (unity.getStringTemp(AcceptPlayerName + "_Temp_TpaPlayerName") == null|| !Objects.equals(unity.getStringTemp(AcceptPlayerName + "_Temp_TpaPlayerName"), player.getName())) {
sender.sendMessage(ChatColor.RED + "这个玩家没有给你发传送请求");
return false;
}
Player AcceptPlayer = Bukkit.getPlayer(AcceptPlayerName);
Objects.requireNonNull(AcceptPlayer).sendMessage(ChatColor.RED + "对方拒绝了你的请求!");
unity.SetStringTemp(AcceptPlayerName + "_Temp_TpaPlayerName",null);
unity.SetBooleanTemp(AcceptPlayerName + "_Temp_Tpa",false);
unity.SetIntTemp(AcceptPlayerName + "_Temp_TpaTime",0);
}else {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&d用法错误,用法:/tpaDefuse <玩家ID>"));
}
}else {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&d这个命令只有玩家才能执行"));
}
return false;
}
}
@@ -0,0 +1,21 @@
package top.gtb520.tools.main;
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
public class tpaback_Command implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (sender instanceof Player) {
Player player = (Player) sender;
Location BackLocation = unity.getLocationTempTemp(player.getName() + "_Tpa");
player.teleport(BackLocation);
player.sendMessage(unity.ColorMessage("&a传送成功!"));
}
return false;
}
}
@@ -0,0 +1,133 @@
package top.gtb520.tools.main;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.inventory.meta.SkullMeta;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Objects;
public class unity {
public static void SaveAndReloadConfig() {
main.instance.saveConfig();
main.instance.reloadConfig();
}
public static String ColorMessage(String String1) {
return ChatColor.translateAlternateColorCodes('&',String1);
}
public static void GetLoggerPlus(String String1) {
CommandSender Console = Bukkit.getConsoleSender();
Console.sendMessage(ColorMessage(String1));
}
static HashMap<String, Integer> IntTemp = new HashMap<>();
static HashMap<String, String> StringTemp = new HashMap<>();
static HashMap<String, Boolean> BooleanTemp = new HashMap<>();
static HashMap<String, Location> LocationTemp = new HashMap<>();
public static void SetLocationTempTemp(String String1, Location String2) {
LocationTemp.put(String1,String2);
}
public static Location getLocationTempTemp(String String1) {
return LocationTemp.get(String1);
}
public static void SetStringTemp(String String1,String String2) {
StringTemp.put(String1,String2);
}
public static String getStringTemp(String String1) {
return StringTemp.get(String1);
}
public static void SetIntTemp(String String1, Integer Int1) {
IntTemp.put(String1,Int1);
}
public static Integer GetIntTemp(String String1) {
return IntTemp.get(String1);
}
public static void SetBooleanTemp(String String1, boolean Boolean1) {
BooleanTemp.put(String1, Boolean1);
}
public static boolean getBooleanTemp(String String1) {
return BooleanTemp.get(String1);
}
public static void KickGui(Player player) {
Inventory UI = Bukkit.createInventory(player,45, ColorMessage("&a选择你要踢出的玩家"));
ItemStack Bk = new ItemStack(Material.ORANGE_STAINED_GLASS_PANE);
ItemMeta Bk_Meta = Bk.getItemMeta();
Objects.requireNonNull(Bk_Meta).setDisplayName(ColorMessage("&e这只是一个边框"));
ArrayList<String> Bk_Lore = new ArrayList<>();
Bk_Lore.add(null);
Bk_Lore.add(ColorMessage("&e这只是一个边框"));
Bk_Meta.setLore(Bk_Lore);
Bk.setItemMeta(Bk_Meta);
for (int i1 = 0 ; i1 <9 ; i1++) {
UI.setItem(i1,Bk);
}
for (int i2 = 36 ; i2 <40 ; i2++) {
UI.setItem(i2,Bk);
}
for (int i3 = 41 ; i3 <45 ; i3++) {
UI.setItem(i3,Bk);
}
UI.setItem(9,Bk);
UI.setItem(17,Bk);
UI.setItem(18,Bk);
UI.setItem(26,Bk);
UI.setItem(27,Bk);
UI.setItem(35,Bk);
ItemStack Gb = new ItemStack(Material.REDSTONE_BLOCK);
ItemMeta Gb_Meta = Gb.getItemMeta();
Objects.requireNonNull(Gb_Meta).setDisplayName(ColorMessage("&d关闭菜单"));
ArrayList<String> Gb_Lore = new ArrayList<>();
Gb_Lore.add(null);
Gb_Lore.add(ColorMessage("&e点击关闭菜单"));
Gb_Meta.setLore(Gb_Lore);
Gb.setItemMeta(Gb_Meta);
UI.setItem(40,Gb);
ArrayList<Player> players = new ArrayList<>(player.getServer().getOnlinePlayers());
for (Player value : players) {
ItemStack PlayerHead = new ItemStack(Material.PLAYER_HEAD);
SkullMeta PlayerHead_meta = (SkullMeta) PlayerHead.getItemMeta();
Objects.requireNonNull(PlayerHead_meta).setOwningPlayer(value);
Objects.requireNonNull(PlayerHead_meta).setDisplayName(ChatColor.RESET + value.getDisplayName() + ChatColor.RESET);
ArrayList<String> PlayerHead_Lore = new ArrayList<>();
PlayerHead_Lore.add(null);
PlayerHead_Lore.add(ColorMessage( "&e点击踢出玩家"));
PlayerHead_meta.setLore(PlayerHead_Lore);
PlayerHead.setItemMeta(PlayerHead_meta);
UI.addItem(PlayerHead);
}
player.openInventory(UI);
}
}
@@ -0,0 +1,74 @@
package top.gtb520.tools.main;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
public class unmute_Command implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (sender instanceof Player) {
if (args.length == 1) {
Player senderPlayer = (Player) sender;
String PlayerName = args[0];
if (Bukkit.getPlayer(PlayerName) == null) {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&d这个玩家不存在或不在线!"));
return false;
}
Player player = Bukkit.getPlayer(PlayerName);
List<String> MutePlayerList = new ArrayList<>(main.instance.getConfig().getStringList("MutePlayerList"));
for (String MutePlayers : MutePlayerList) {
if (MutePlayers.equals(Objects.requireNonNull(player).getName())) {
MutePlayerList.remove(Objects.requireNonNull(player).getName());
main.instance.getConfig().set("MutePlayerList", MutePlayerList);
unity.SaveAndReloadConfig();
sender.sendMessage(ChatColor.GREEN + "你解除了 " + player.getName() + " 的禁言");
player.sendMessage(ChatColor.RED + "你被 " + senderPlayer.getName() + " 解除禁言了!");
return false;
}
}
sender.sendMessage(ChatColor.RED + "这个玩家没有被禁言过!");
}
}else {
if (args.length == 1) {
String PlayerName = args[0];
if (Bukkit.getPlayer(PlayerName) == null) {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&d这个玩家不存在或不在线!"));
return false;
}
Player player = Bukkit.getPlayer(PlayerName);
List<String> MutePlayerList = new ArrayList<>(main.instance.getConfig().getStringList("MutePlayerList"));
for (String MutePlayers : MutePlayerList) {
if (MutePlayers.equals(Objects.requireNonNull(player).getName())) {
MutePlayerList.add(Objects.requireNonNull(player).getName());
main.instance.getConfig().set("MutePlayerList", MutePlayerList);
unity.SaveAndReloadConfig();
sender.sendMessage(ChatColor.GREEN + "你解除了 控制台 的禁言");
player.sendMessage(ChatColor.RED + "你被 控制台 解除禁言了!");
return false;
}
}
sender.sendMessage(ChatColor.RED + "这个玩家没有被禁言过!");
return false;
}
}
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&d用法错误,用法:/unmute <玩家ID>"));
return false;
}
}
@@ -0,0 +1,65 @@
package top.gtb520.tools.main;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import org.jetbrains.annotations.NotNull;
public class vanish_Command implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (args.length == 1) {
String PlayerName = args[0];
if (Bukkit.getPlayer(PlayerName) == null) {
sender.sendMessage(unity.ColorMessage("&d&l这个玩家不存在或不在线!"));
return false;
}
Player player = Bukkit.getPlayer(PlayerName);
if (unity.getStringTemp(player.getName() + "_Vanish") != null) {
for (Player AllPlayer : Bukkit.getOnlinePlayers()) {
AllPlayer.showPlayer(main.instance,player);
}
player.removePotionEffect(PotionEffectType.INVISIBILITY);
unity.SetStringTemp(player.getName() + "_Vanish",null);
sender.sendMessage(unity.ColorMessage("&a&l操作成功!"));
player.sendMessage(unity.ColorMessage("&e&l隐身模式已关闭"));
}else {
for (Player AllPlayer : Bukkit.getOnlinePlayers()) {
AllPlayer.hidePlayer(main.instance,player);
}
PotionEffect pot = new PotionEffect(PotionEffectType.INVISIBILITY, 99999, 255, true);
player.addPotionEffect(pot);
unity.SetStringTemp(player.getName() + "_Vanish","已开启");
sender.sendMessage(unity.ColorMessage("&a&l操作成功!"));
player.sendMessage(unity.ColorMessage("&e&l隐身模式已开启"));
}
}else {
if (sender instanceof Player) {
Player player = (Player) sender;
if (unity.getStringTemp(player.getName() + "_Vanish") != null) {
for (Player AllPlayer : Bukkit.getOnlinePlayers()) {
AllPlayer.showPlayer(main.instance,player);
}
player.removePotionEffect(PotionEffectType.INVISIBILITY);
unity.SetStringTemp(player.getName() + "_Vanish",null);
player.sendMessage(unity.ColorMessage("&e&l隐身模式已关闭"));
}else {
for (Player AllPlayer : Bukkit.getOnlinePlayers()) {
AllPlayer.hidePlayer(main.instance,player);
}
PotionEffect pot = new PotionEffect(PotionEffectType.INVISIBILITY, 99999, 255, true);
player.addPotionEffect(pot);
unity.SetStringTemp(player.getName() + "_Vanish","已开启");
player.sendMessage(unity.ColorMessage("&e&l隐身模式已开启"));
}
}else {
sender.sendMessage(unity.ColorMessage("&d&l用法错误,正确用法:/" + label + " [玩家ID]"));
}
}
return false;
}
}