diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 162deb7..5b51291 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -6,12 +6,17 @@ + + + - + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml index 1009c32..02b5184 100644 --- a/.idea/encodings.xml +++ b/.idea/encodings.xml @@ -6,10 +6,16 @@ + + + + + + diff --git a/.idea/misc.xml b/.idea/misc.xml index 4b661a5..66d83a2 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -7,6 +7,11 @@ + diff --git a/2b2t-common/src/main/java/org/cn2b2t/common/Main.java b/2b2t-common/src/main/java/org/cn2b2t/common/Main.java index 8de7069..8eb68ed 100644 --- a/2b2t-common/src/main/java/org/cn2b2t/common/Main.java +++ b/2b2t-common/src/main/java/org/cn2b2t/common/Main.java @@ -4,13 +4,14 @@ import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.plugin.java.JavaPlugin; import org.cn2b2t.common.commands.*; +import org.cn2b2t.common.functions.ProfileData; import org.cn2b2t.common.listeners.*; import org.cn2b2t.common.managers.DataManager; import org.cn2b2t.common.managers.DonateManager; -import org.cn2b2t.common.managers.UserDataManager; import org.cn2b2t.common.managers.WorldBorderManager; import org.cn2b2t.common.runnables.BoardCastRunnable; import org.cn2b2t.common.runnables.RestartRunnable; +import org.cn2b2t.core.managers.utils.UserManager; public class Main extends JavaPlugin { @@ -34,15 +35,6 @@ public class Main extends JavaPlugin { @Override public void onEnable() { Main.instance = this; - inits(); - } - - @Override - public void onDisable() { - this.shutdown(); - } - - private void inits() { regCmds(); regListeners(); pluginMessage("已启用。"); @@ -50,21 +42,23 @@ public class Main extends JavaPlugin { saveDefaultConfig(); reloadConfig(); DataManager.init(); - UserDataManager.init(); WorldBorderManager.init(); DonateManager.init(); + + UserManager.removeHandler(ProfileData.class); + new BoardCastRunnable(); new RestartRunnable(21600); - -// BungeeTabListPlusBukkitAPI.registerVariable(this, new Serverprefix()); } - private void shutdown() { + @Override + public void onDisable() { this.pluginMessage("已卸载。"); + } + private void regCmds() { - this.getCommand("suicide").setExecutor(new Suicide()); this.getCommand("delay").setExecutor(new Delay()); this.getCommand("help").setExecutor(new Help()); this.getCommand("donate").setExecutor(new Donate()); @@ -79,17 +73,10 @@ public class Main extends JavaPlugin { private void regListeners() { Bukkit.getPluginManager().registerEvents(new QuitListener(), this); - Bukkit.getPluginManager().registerEvents(new RespawnListener(), this); Bukkit.getPluginManager().registerEvents(new LoginListener(), this); Bukkit.getPluginManager().registerEvents(new ChatListener(), this); - Bukkit.getPluginManager().registerEvents(new Protection(), this); - Bukkit.getPluginManager().registerEvents(new SignColor(), this); - Bukkit.getPluginManager().registerEvents(new AnvilColorPatch(), this); - Bukkit.getPluginManager().registerEvents(new FastPot(), this); - Bukkit.getPluginManager().registerEvents(new BedListener(), this); + Bukkit.getPluginManager().registerEvents(new ColorPatchListener(), this); Bukkit.getPluginManager().registerEvents(new ScoreboardListener(), this); - Bukkit.getPluginManager().registerEvents(new UnfairListener(), this); - Bukkit.getPluginManager().registerEvents(new DeathListener(), this); } diff --git a/2b2t-common/src/main/java/org/cn2b2t/common/commands/Delay.java b/2b2t-common/src/main/java/org/cn2b2t/common/commands/Delay.java index 4852a1d..d5d182b 100644 --- a/2b2t-common/src/main/java/org/cn2b2t/common/commands/Delay.java +++ b/2b2t-common/src/main/java/org/cn2b2t/common/commands/Delay.java @@ -5,9 +5,9 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import org.cn2b2t.common.Main; import org.cn2b2t.common.functions.ProfileData; import org.cn2b2t.common.runnables.RestartRunnable; +import org.cn2b2t.core.utils.ColorParser; public class Delay implements CommandExecutor { @@ -18,23 +18,23 @@ public class Delay implements CommandExecutor { if (cmd.getName().equalsIgnoreCase("delay")) { if (sender instanceof Player) { Player p = (Player) sender; - if (ProfileData.getProfileData(p).getMonthlyDonate() > 10) { + if (ProfileData.get(p).getMonthlyDonate() > 10) { if (!hasDelayed) { RestartRunnable.count = RestartRunnable.count + 600; hasDelayed = true; - Bukkit.getOnlinePlayers().forEach(player -> player.sendMessage(Main.color( + Bukkit.getOnlinePlayers().forEach(player -> player.sendMessage(ColorParser.parse( "&6-&e--&8----------------------------&e--&6-\n" + "&7服务器重启事项已被玩家 &e" + p.getName() + " &7推迟10分钟。\n" + "&6-&e--&8----------------------------&e--&6-" ))); } } else { - p.sendMessage(Main.color("&7本功能只有至今一个月内赞助&e超过10元&7的玩家才可使用。\n" + + p.sendMessage(ColorParser.parse("&7本功能只有至今一个月内赞助&e超过10元&7的玩家才可使用。\n" + "&7输入 &6/donate &7,查看赞助方法,一起维护这个服务器吧!")); } } else { RestartRunnable.count = RestartRunnable.count + 3600; - Bukkit.getOnlinePlayers().forEach(player -> player.sendMessage(Main.color( + Bukkit.getOnlinePlayers().forEach(player -> player.sendMessage(ColorParser.parse( "&6-&e--&8----------------------------&e--&6-\n" + "&7服务器重启事项已被控制台推迟一小时。\n" + "&6-&e--&8----------------------------&e--&6-" diff --git a/2b2t-common/src/main/java/org/cn2b2t/common/commands/Donate.java b/2b2t-common/src/main/java/org/cn2b2t/common/commands/Donate.java index cdf6f3c..5a285b9 100644 --- a/2b2t-common/src/main/java/org/cn2b2t/common/commands/Donate.java +++ b/2b2t-common/src/main/java/org/cn2b2t/common/commands/Donate.java @@ -9,110 +9,111 @@ import org.bukkit.command.TabCompleter; import org.bukkit.entity.Player; import org.bukkit.util.StringUtil; import org.cn2b2t.common.Main; +import org.cn2b2t.common.functions.ProfileData; import org.cn2b2t.common.managers.DataManager; import org.cn2b2t.common.managers.DonateManager; -import org.cn2b2t.common.functions.ProfileData; +import org.cn2b2t.core.utils.ColorParser; import java.util.ArrayList; import java.util.List; public class Donate implements CommandExecutor, TabCompleter { - @Override - public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { - if (cmd.getName().equalsIgnoreCase("donate") && sender instanceof Player) { - Player p = (Player) sender; - if (args.length >= 1) { - String aim = args[0]; - if (aim.equalsIgnoreCase("me")) { - help(p, 1); - } else if (aim.equalsIgnoreCase("info")) { - help(p, 2); - } else if (aim.equals("1") || aim.equals("5") || aim.equals("10") || aim.equals("20") || aim.equals("50")) { - Main.getInstance().getServer().dispatchCommand(Bukkit.getConsoleSender(), "mcpay pbuy " + sender.getName() + " " + DonateManager.getID(aim)); - } else { - help(p, 0); - } - } else { - help(p, 0); - } - } else if (cmd.getName().equalsIgnoreCase("donate")) { - if (args.length == 4) { - // donate apply adehcby 20200306194633048611812 20 - String playername = args[1]; - String order = args[2]; - String price = args[3]; - Bukkit.getOnlinePlayers().forEach(p -> p.sendMessage(Main.color( - "&6-&e--&8----------------------------&e--&6-\n" + - "&7感谢 &6&l" + playername + "&7为本服助力 &6" + price + "元 &7!\n" + - "&7本服仅由玩家赞助维持,输入 &6/donate &7查看更多。\n" + - "&6-&e--&8----------------------------&e--&6-" - ))); - DataManager.saveData(Bukkit.getPlayer(playername), order, (int) Double.parseDouble(price)); + @Override + public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { + if (cmd.getName().equalsIgnoreCase("donate") && sender instanceof Player) { + Player p = (Player) sender; + if (args.length >= 1) { + String aim = args[0]; + if (aim.equalsIgnoreCase("me")) { + help(p, 1); + } else if (aim.equalsIgnoreCase("info")) { + help(p, 2); + } else if (aim.equals("1") || aim.equals("5") || aim.equals("10") || aim.equals("20") || aim.equals("50")) { + Main.getInstance().getServer().dispatchCommand(Bukkit.getConsoleSender(), "mcpay pbuy " + sender.getName() + " " + DonateManager.getID(aim)); + } else { + help(p, 0); + } + } else { + help(p, 0); + } + } else if (cmd.getName().equalsIgnoreCase("donate")) { + if (args.length == 4) { + // donate apply adehcby 20200306194633048611812 20 + String playername = args[1]; + String order = args[2]; + String price = args[3]; + Bukkit.getOnlinePlayers().forEach(p -> p.sendMessage(ColorParser.parse( + "&6-&e--&8----------------------------&e--&6-\n" + + "&7感谢 &6&l" + playername + "&7为本服助力 &6" + price + "元 &7!\n" + + "&7本服仅由玩家赞助维持,输入 &6/donate &7查看更多。\n" + + "&6-&e--&8----------------------------&e--&6-" + ))); + DataManager.saveData(Bukkit.getPlayer(playername), order, (int) Double.parseDouble(price)); - } - sender.sendMessage(Main.color(" \n本月赞助 &6" + DonateManager.monthly + "\n" + - "总共收到 &6" + DonateManager.total)); - } - return true; - } + } + sender.sendMessage(ColorParser.parse(" \n本月赞助 &6" + DonateManager.monthly + "\n" + + "总共收到 &6" + DonateManager.total)); + } + return true; + } - private static void help(Player p, int i) { - switch (i) { - case 1: { - ProfileData profileData = ProfileData.getProfileData(p); - p.sendMessage(Main.color("&6-&e--&8----------------------------&e--&6-\n" + - "&7您总共赞助了 &6" + profileData.getTotalDonate() + " &7元;\n" + - "&7至今一个月内,您为服务器提供了 &6" + profileData.getMonthlyDonate() + " &7元资金。\n" + - "&7总共为服务器续命 &6" + profileData.getTotalDonate() / 50 + " &7天。\n" + - (profileData.getTotalDonate() > 0 ? "&7感谢您为本社区所做的一切!\n" : "\n") + - "&6-&e--&8----------------------------&e--&6-")); - break; - } - case 2: { - p.sendMessage(Main.color("&6-&e--&8----------------------------&e--&6-\n" + - "&7本服&c无管理维护,仅由玩家赞助维持&7。\n" + - "&7所收赞助钱款自动化处理,全部转账到服务商账户中。\n" + - "&7若您还未有相应消费能力,&c谢绝赞助,心意已领&7。\n" + - "&7至今一个月内 赞助&6超过5元的&7即可获得 &e浅黄色 &7聊天名,\n" + - "&7至今一个月内 赞助&6超过10元&7的可以延迟服务器重启。\n" + - "&7总共赞助&6超过50元&7的,即使本服务器已满人,也可进入。\n" + - "&6-&e--&8----------------------------&e--&6-")); - break; - } - default: { - p.sendMessage(Main.color("&6-&e--&8----------------------------&e--&6-\n" + - "&7本服自2019年9月1日起,开始接受玩家资助。\n" + - "&7本月获得赞助 &6" + DonateManager.monthly + "元&7,总共获得 &6" + DonateManager.total + "元&7。\n" + - "&7查看介绍 &6/donate info\n" + - "&7查看我的贡献 &6/donate me\n" + - "&7赞助对应金额 &6/donate 1/5/10/20/50\n" + - "&c注意:&7目前仅支持单笔1元、5元、 10元、20元、50元,\n" + - " &7请勿输入其他金额。\n" + - "&6-&e--&8----------------------------&e--&6-")); - break; - } + private static void help(Player p, int i) { + switch (i) { + case 1: { + ProfileData profileData = ProfileData.get(p); + p.sendMessage(ColorParser.parse("&6-&e--&8----------------------------&e--&6-\n" + + "&7您总共赞助了 &6" + profileData.getTotalDonate() + " &7元;\n" + + "&7至今一个月内,您为服务器提供了 &6" + profileData.getMonthlyDonate() + " &7元资金。\n" + + "&7总共为服务器续命 &6" + profileData.getTotalDonate() / 50 + " &7天。\n" + + (profileData.getTotalDonate() > 0 ? "&7感谢您为本社区所做的一切!\n" : "\n") + + "&6-&e--&8----------------------------&e--&6-")); + break; + } + case 2: { + p.sendMessage(ColorParser.parse("&6-&e--&8----------------------------&e--&6-\n" + + "&7本服&c无管理维护,仅由玩家赞助维持&7。\n" + + "&7所收赞助钱款自动化处理,全部转账到服务商账户中。\n" + + "&7若您还未有相应消费能力,&c谢绝赞助,心意已领&7。\n" + + "&7至今一个月内 赞助&6超过5元的&7即可获得 &e浅黄色 &7聊天名,\n" + + "&7至今一个月内 赞助&6超过10元&7的可以延迟服务器重启。\n" + + "&7总共赞助&6超过50元&7的,即使本服务器已满人,也可进入。\n" + + "&6-&e--&8----------------------------&e--&6-")); + break; + } + default: { + p.sendMessage(ColorParser.parse("&6-&e--&8----------------------------&e--&6-\n" + + "&7本服自2019年9月1日起,开始接受玩家资助。\n" + + "&7本月获得赞助 &6" + DonateManager.monthly + "元&7,总共获得 &6" + DonateManager.total + "元&7。\n" + + "&7查看介绍 &6/donate info\n" + + "&7查看我的贡献 &6/donate me\n" + + "&7赞助对应金额 &6/donate 1/5/10/20/50\n" + + "&c注意:&7目前仅支持单笔1元、5元、 10元、20元、50元,\n" + + " &7请勿输入其他金额。\n" + + "&6-&e--&8----------------------------&e--&6-")); + break; + } - } + } - } + } - @Override - public List onTabComplete(CommandSender sender, Command command, String alias, String[] args) { - switch (args.length) { - case 1: { - List completions = new ArrayList<>(); - String[] strings = new String[]{"info", "me", "1", "5", "10"}; - for (String s : strings) { - if (StringUtil.startsWithIgnoreCase(s, args[0].toLowerCase())) { - completions.add(s); - } - } - return completions; - } - default: - return ImmutableList.of(); - } - } + @Override + public List onTabComplete(CommandSender sender, Command command, String alias, String[] args) { + switch (args.length) { + case 1: { + List completions = new ArrayList<>(); + String[] strings = new String[]{"info", "me", "1", "5", "10"}; + for (String s : strings) { + if (StringUtil.startsWithIgnoreCase(s, args[0].toLowerCase())) { + completions.add(s); + } + } + return completions; + } + default: + return ImmutableList.of(); + } + } } diff --git a/2b2t-common/src/main/java/org/cn2b2t/common/commands/Help.java b/2b2t-common/src/main/java/org/cn2b2t/common/commands/Help.java index 6dd892f..3b0a50f 100644 --- a/2b2t-common/src/main/java/org/cn2b2t/common/commands/Help.java +++ b/2b2t-common/src/main/java/org/cn2b2t/common/commands/Help.java @@ -4,13 +4,14 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.cn2b2t.common.Main; +import org.cn2b2t.core.utils.ColorParser; public class Help implements CommandExecutor { @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if (cmd.getName().equalsIgnoreCase("help")) { - sender.sendMessage(Main.color( + sender.sendMessage(ColorParser.parse( "&6-&e--&8----------------------------&e--&6-\n" + "&7查看服务器版本 &6/version\n" + "&7屏蔽玩家 &6/ignore \n" + diff --git a/2b2t-common/src/main/java/org/cn2b2t/common/commands/Ignore.java b/2b2t-common/src/main/java/org/cn2b2t/common/commands/Ignore.java index 16bc1ee..58542e9 100644 --- a/2b2t-common/src/main/java/org/cn2b2t/common/commands/Ignore.java +++ b/2b2t-common/src/main/java/org/cn2b2t/common/commands/Ignore.java @@ -9,8 +9,8 @@ import org.bukkit.command.TabCompleter; import org.bukkit.entity.HumanEntity; import org.bukkit.entity.Player; import org.bukkit.util.StringUtil; -import org.cn2b2t.common.Main; import org.cn2b2t.common.functions.ProfileData; +import org.cn2b2t.core.utils.ColorParser; import java.util.List; import java.util.stream.Collectors; @@ -36,7 +36,7 @@ public class Ignore implements CommandExecutor, TabCompleter { } private static void help(Player p) { - p.sendMessage(Main.color("&6-&e--&8----------------------------&e--&6-\n" + + p.sendMessage(ColorParser.parse("&6-&e--&8----------------------------&e--&6-\n" + "&7屏蔽某人消息 &6/ignore &8<&6ID&8>\n" + "&7注意,每次屏蔽退出服务器后即失效,若需要请再次屏蔽。" + "&6-&e--&8----------------------------&e--&6-")); @@ -44,13 +44,13 @@ public class Ignore implements CommandExecutor, TabCompleter { private static void ignore(Player p, Player target) { if (p != target) { - p.sendMessage(Main.color("&6-&e--&8----------------------------&e--&6-\n" + + p.sendMessage(ColorParser.parse("&6-&e--&8----------------------------&e--&6-\n" + "&7已成功屏蔽 &2" + target.getName() + "&7 !\n" + "&7注意,本次屏蔽退出服务器后即失效,若需要请再次屏蔽。" + "&6-&e--&8----------------------------&e--&6-")); - ProfileData.getProfileData(p).ignorePlayer(target.getUniqueId()); + ProfileData.get(p).ignorePlayer(target.getUniqueId()); } else { - p.sendMessage(Main.color("&7您无法屏蔽您自己!")); + p.sendMessage(ColorParser.parse("&7您无法屏蔽您自己!")); } } diff --git a/2b2t-common/src/main/java/org/cn2b2t/common/commands/Settings.java b/2b2t-common/src/main/java/org/cn2b2t/common/commands/Settings.java index c99937d..b4dd3f3 100644 --- a/2b2t-common/src/main/java/org/cn2b2t/common/commands/Settings.java +++ b/2b2t-common/src/main/java/org/cn2b2t/common/commands/Settings.java @@ -7,74 +7,74 @@ import org.bukkit.command.CommandSender; import org.bukkit.command.TabCompleter; import org.bukkit.entity.Player; import org.bukkit.util.StringUtil; -import org.cn2b2t.common.Main; import org.cn2b2t.common.functions.ProfileData; +import org.cn2b2t.core.utils.ColorParser; import java.util.ArrayList; import java.util.List; public class Settings implements CommandExecutor, TabCompleter { - @Override - public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { - if (cmd.getName().equalsIgnoreCase("settings") && sender instanceof Player) { - Player p = (Player) sender; - if (args.length >= 2 && (args[1].equalsIgnoreCase("true") || args[1].equalsIgnoreCase("false"))) { - String aim = args[0]; - boolean value = args[1].equalsIgnoreCase("true"); + @Override + public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { + if (cmd.getName().equalsIgnoreCase("settings") && sender instanceof Player) { + Player p = (Player) sender; + if (args.length >= 2 && (args[1].equalsIgnoreCase("true") || args[1].equalsIgnoreCase("false"))) { + String aim = args[0]; + boolean value = args[1].equalsIgnoreCase("true"); - if (aim.equalsIgnoreCase("showScoreboard") || aim.equalsIgnoreCase("ssb")) { - ProfileData.getProfileData(p).setShowScoreboard(value); - } else if (aim.equalsIgnoreCase("showDeathMessages") || aim.equalsIgnoreCase("sdm")) { - ProfileData.getProfileData(p).setShowDeathMessages(value); - } else if (aim.equalsIgnoreCase("showJoinAndLeaveAlerts") || aim.equalsIgnoreCase("sjaqa")) { - ProfileData.getProfileData(p).setShowJoinAndLeaveAlerts(value); - } else { - help(p); - } - } else { - help(p); - } - } - return true; - } + if (aim.equalsIgnoreCase("showScoreboard") || aim.equalsIgnoreCase("ssb")) { + ProfileData.get(p).setShowScoreboard(value); + } else if (aim.equalsIgnoreCase("showDeathMessages") || aim.equalsIgnoreCase("sdm")) { + ProfileData.get(p).setShowDeathMessages(value); + } else if (aim.equalsIgnoreCase("showJoinAndLeaveAlerts") || aim.equalsIgnoreCase("sjaqa")) { + ProfileData.get(p).setShowJoinAndLeaveAlerts(value); + } else { + help(p); + } + } else { + help(p); + } + } + return true; + } - private static void help(Player p) { - p.sendMessage(Main.color("&6-&e--&8----------------------------&e--&6-\n" + - "&7开关积分榜\n" + - " &6/settings showScoreboard true/false\n" + - "&7开关死亡消息\n" + - " &6/settings showDeathMessages true/false\n" + - "&7开关玩家加入、退出提示信息\n" + - " &6/settings showJoinAndLeaveAlerts true/false\n" + - "&6-&e--&8----------------------------&e--&6-")); - } + private static void help(Player p) { + p.sendMessage(ColorParser.parse("&6-&e--&8----------------------------&e--&6-\n" + + "&7开关积分榜\n" + + " &6/settings showScoreboard true/false\n" + + "&7开关死亡消息\n" + + " &6/settings showDeathMessages true/false\n" + + "&7开关玩家加入、退出提示信息\n" + + " &6/settings showJoinAndLeaveAlerts true/false\n" + + "&6-&e--&8----------------------------&e--&6-")); + } - @Override - public List onTabComplete(CommandSender sender, Command command, String alias, String[] args) { - switch (args.length) { - case 1: { - List completions = new ArrayList<>(); - String[] strings = new String[]{"showScoreboard", "showDeathMessages", "showJoinAndLeaveAlerts"}; - for (String s : strings) { - if (StringUtil.startsWithIgnoreCase(s, args[0].toLowerCase())) { - completions.add(s); - } - } - return completions; - } - case 2: { - List completions = new ArrayList<>(); - String[] strings = new String[]{"true", "false"}; - for (String s : strings) { - if (StringUtil.startsWithIgnoreCase(s, args[0].toLowerCase())) { - completions.add(s); - } - } - return completions; - } - default: - return ImmutableList.of(); - } - } + @Override + public List onTabComplete(CommandSender sender, Command command, String alias, String[] args) { + switch (args.length) { + case 1: { + List completions = new ArrayList<>(); + String[] strings = new String[]{"showScoreboard", "showDeathMessages", "showJoinAndLeaveAlerts"}; + for (String s : strings) { + if (StringUtil.startsWithIgnoreCase(s, args[0].toLowerCase())) { + completions.add(s); + } + } + return completions; + } + case 2: { + List completions = new ArrayList<>(); + String[] strings = new String[]{"true", "false"}; + for (String s : strings) { + if (StringUtil.startsWithIgnoreCase(s, args[0].toLowerCase())) { + completions.add(s); + } + } + return completions; + } + default: + return ImmutableList.of(); + } + } } diff --git a/2b2t-common/src/main/java/org/cn2b2t/common/commands/Suicide.java b/2b2t-common/src/main/java/org/cn2b2t/common/commands/Suicide.java deleted file mode 100644 index 32f2c12..0000000 --- a/2b2t-common/src/main/java/org/cn2b2t/common/commands/Suicide.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.cn2b2t.common.commands; - -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.cn2b2t.common.Main; - -public class Suicide implements CommandExecutor { - - @Override - public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { - if (cmd.getName().equalsIgnoreCase("suicide")) { - if (sender instanceof Player) ((Player) sender).setHealth(0); - sender.sendMessage(Main.color("&a这个世界虽然不完美,但我们仍然可以治愈自己。\n" + - "&7全国免费心理咨询热线 &f&l800-810-1117")); - return true; - } - return true; - } -} \ No newline at end of file diff --git a/2b2t-common/src/main/java/org/cn2b2t/common/commands/Toggle.java b/2b2t-common/src/main/java/org/cn2b2t/common/commands/Toggle.java index 4d860d4..1c2f25d 100644 --- a/2b2t-common/src/main/java/org/cn2b2t/common/commands/Toggle.java +++ b/2b2t-common/src/main/java/org/cn2b2t/common/commands/Toggle.java @@ -7,65 +7,65 @@ import org.bukkit.command.CommandSender; import org.bukkit.command.TabCompleter; import org.bukkit.entity.Player; import org.bukkit.util.StringUtil; -import org.cn2b2t.common.Main; import org.cn2b2t.common.functions.ProfileData; +import org.cn2b2t.core.utils.ColorParser; import java.util.ArrayList; import java.util.List; public class Toggle implements CommandExecutor, TabCompleter { - @Override - public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { - if (cmd.getName().equalsIgnoreCase("toggle") && sender instanceof Player) { - Player p = (Player) sender; - if (args.length >= 1) { - String aim = args[0]; - if (aim.equalsIgnoreCase("scoreboard") || aim.equalsIgnoreCase("sb")) { - ProfileData.getProfileData(p).setShowScoreboard(!ProfileData.getProfileData(p).showScoreboard); - } else if (aim.equalsIgnoreCase("deathmessages") || aim.equalsIgnoreCase("dm")) { - ProfileData.getProfileData(p).setShowDeathMessages(!ProfileData.getProfileData(p).showDeathMessages); - } else if (aim.equalsIgnoreCase("joinandquitalerts") || aim.equalsIgnoreCase("jaqa")) { - ProfileData.getProfileData(p).setShowJoinAndLeaveAlerts(!ProfileData.getProfileData(p).showJoinAndLeaveAlerts); - } else { - help(p); - } - } else { - help(p); - } - } - return true; - } - // /toggle scoreboard / sb - // /toggle joinandquitmessages / jaqm + @Override + public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { + if (cmd.getName().equalsIgnoreCase("toggle") && sender instanceof Player) { + Player p = (Player) sender; + if (args.length >= 1) { + String aim = args[0]; + if (aim.equalsIgnoreCase("scoreboard") || aim.equalsIgnoreCase("sb")) { + ProfileData.get(p).setShowScoreboard(!ProfileData.get(p).showScoreboard); + } else if (aim.equalsIgnoreCase("deathmessages") || aim.equalsIgnoreCase("dm")) { + ProfileData.get(p).setShowDeathMessages(!ProfileData.get(p).showDeathMessages); + } else if (aim.equalsIgnoreCase("joinandquitalerts") || aim.equalsIgnoreCase("jaqa")) { + ProfileData.get(p).setShowJoinAndLeaveAlerts(!ProfileData.get(p).showJoinAndLeaveAlerts); + } else { + help(p); + } + } else { + help(p); + } + } + return true; + } + // /toggle scoreboard / sb + // /toggle joinandquitmessages / jaqm - private static void help(Player p) { - p.sendMessage(Main.color("&6-&e--&8----------------------------&e--&6-\n" + - "&7开关积分榜 &6/toggle scoreboard\n" + - "&7开关死亡消息 &6/toggle deathmessages\n" + - "&7开关玩家加入、退出提示信息\n" + - " &6/toggle joinandquitalerts\n" + - "&6-&e--&8----------------------------&e--&6-")); - } + private static void help(Player p) { + p.sendMessage(ColorParser.parse("&6-&e--&8----------------------------&e--&6-\n" + + "&7开关积分榜 &6/toggle scoreboard\n" + + "&7开关死亡消息 &6/toggle deathmessages\n" + + "&7开关玩家加入、退出提示信息\n" + + " &6/toggle joinandquitalerts\n" + + "&6-&e--&8----------------------------&e--&6-")); + } - @Override - public List onTabComplete(CommandSender sender, Command command, String alias, String[] args) { - switch (args.length) { - case 1: { - List completions = new ArrayList<>(); - String[] strings = new String[]{"scoreboard", "deathmessages", "joinandquitalerts"}; - for (String s : strings) { - if (StringUtil.startsWithIgnoreCase(s, args[0].toLowerCase())) { - completions.add(s); - } - } - return completions; - } - default: - return ImmutableList.of(); - } - } + @Override + public List onTabComplete(CommandSender sender, Command command, String alias, String[] args) { + switch (args.length) { + case 1: { + List completions = new ArrayList<>(); + String[] strings = new String[]{"scoreboard", "deathmessages", "joinandquitalerts"}; + for (String s : strings) { + if (StringUtil.startsWithIgnoreCase(s, args[0].toLowerCase())) { + completions.add(s); + } + } + return completions; + } + default: + return ImmutableList.of(); + } + } } diff --git a/2b2t-common/src/main/java/org/cn2b2t/common/enums/LogType.java b/2b2t-common/src/main/java/org/cn2b2t/common/enums/LogType.java deleted file mode 100644 index 3e11b90..0000000 --- a/2b2t-common/src/main/java/org/cn2b2t/common/enums/LogType.java +++ /dev/null @@ -1,9 +0,0 @@ -package org.cn2b2t.common.enums; - -public enum LogType { - CHAT, - JOIN, - QUIT, - AC, - COMMAND -} \ No newline at end of file diff --git a/2b2t-common/src/main/java/org/cn2b2t/common/functions/ProfileData.java b/2b2t-common/src/main/java/org/cn2b2t/common/functions/ProfileData.java index 82f15d9..09ab16d 100644 --- a/2b2t-common/src/main/java/org/cn2b2t/common/functions/ProfileData.java +++ b/2b2t-common/src/main/java/org/cn2b2t/common/functions/ProfileData.java @@ -1,181 +1,125 @@ package org.cn2b2t.common.functions; -import org.bukkit.Bukkit; -import org.bukkit.Location; -import org.bukkit.Material; import org.bukkit.entity.Player; import org.cn2b2t.common.listeners.ScoreboardListener; import org.cn2b2t.common.managers.DataManager; import org.cn2b2t.common.managers.DonateManager; import org.cn2b2t.common.managers.ScoreboardManager; -import org.cn2b2t.common.managers.UserDataManager; +import org.cn2b2t.core.managers.utils.UserManager; +import org.cn2b2t.core.modules.users.AbstractUserHandler; +import org.cn2b2t.core.modules.users.User; -import java.io.IOException; -import java.util.*; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; -public class ProfileData { +public class ProfileData extends AbstractUserHandler { - public static Map profileDatas = new HashMap<>(); + public static ProfileData get(User u) { + return u.containsHandler(ProfileData.class) ? u.getHandler(ProfileData.class) : null; + } - public Player player; + public static ProfileData get(Player p) { + return get(UserManager.getUser(p)); + } - public double totalDonate; - public double monthlyDonate; - public List ignoredPlayers; - public boolean showDeathMessages; - public boolean showScoreboard; - public boolean showJoinAndLeaveAlerts; + public Player p; - public Location bedLocation; - public Location spawnLocation; + public double totalDonate; + public double monthlyDonate; + public List ignoredPlayers; - public ProfileData(Player p) { - this.player = p; + public boolean showDeathMessages; + public boolean showScoreboard; + public boolean showJoinAndLeaveAlerts; - totalDonate = DataManager.getTotalDonate(p.getUniqueId()); - monthlyDonate = DataManager.getDonateInAMonth(p.getUniqueId()); + @Override + protected void init() { + this.p = getUser().getPlayer(); - ignoredPlayers = new ArrayList<>(); -// UserDataManager.getDatas().getStringList(p.getUniqueId().toString() + ".ingnoredPlayers").forEach(s -> ignoredPlayers.add(UUID.fromString(s))); + totalDonate = DataManager.getTotalDonate(p.getUniqueId()); + monthlyDonate = DataManager.getDonateInAMonth(p.getUniqueId()); - showDeathMessages = UserDataManager.getDatas().getBoolean(p.getUniqueId().toString() + ".settings.showDeathMessages", true); - showScoreboard = UserDataManager.getDatas().getBoolean(p.getUniqueId().toString() + ".settings.showScoreboard", true); - showJoinAndLeaveAlerts = UserDataManager.getDatas().getBoolean(p.getUniqueId().toString() + ".settings.showJoinAndLeaveAlerts", true); + ignoredPlayers = new ArrayList<>(); +// UserManager.getUser(p).getDatas().getStringList(p.getUniqueId().toString() + ".ingnoredPlayers").forEach(s -> ignoredPlayers.add(UUID.fromString(s))); - bedLocation = new Location(Bukkit.getWorld("world"), - UserDataManager.getDatas().getDouble(p.getUniqueId().toString() + ".bedLocation.x", 0D), - UserDataManager.getDatas().getDouble(p.getUniqueId().toString() + ".bedLocation.y", 101D), - UserDataManager.getDatas().getDouble(p.getUniqueId().toString() + ".bedLocation.z", 0D), - UserDataManager.getDatas().getLong(p.getUniqueId().toString() + ".bedLocation.yaw", 0L), - UserDataManager.getDatas().getLong(p.getUniqueId().toString() + ".bedLocation.pitch", 0L)); + showDeathMessages = UserManager.getUser(p).getDatas().getBoolean(p.getUniqueId().toString() + ".settings.showDeathMessages", true); + showScoreboard = UserManager.getUser(p).getDatas().getBoolean(p.getUniqueId().toString() + ".settings.showScoreboard", true); + showJoinAndLeaveAlerts = UserManager.getUser(p).getDatas().getBoolean(p.getUniqueId().toString() + ".settings.showJoinAndLeaveAlerts", true); + } - spawnLocation = new Location(Bukkit.getWorld("world"), - UserDataManager.getDatas().getDouble(p.getUniqueId().toString() + ".spawnLocation.x", 0D), - UserDataManager.getDatas().getDouble(p.getUniqueId().toString() + ".spawnLocation.y", 101D), - UserDataManager.getDatas().getDouble(p.getUniqueId().toString() + ".spawnLocation.z", 0D), - UserDataManager.getDatas().getLong(p.getUniqueId().toString() + ".spawnLocation.yaw", 0L), - UserDataManager.getDatas().getLong(p.getUniqueId().toString() + ".spawnLocation.pitch", 0L)); + public double getMonthlyDonate() { + return DonateManager.getPlayerMonthlyPay(p); + } - } + public double getTotalDonate() { + return DonateManager.getPlayerTotalPay(p); + } - public double getMonthlyDonate() { - return DonateManager.getPlayerMonthlyPay(player); - } + public List getIgnoredPlayers() { + return ignoredPlayers; + } - public double getTotalDonate() { - return DonateManager.getPlayerTotalPay(player); - } + public boolean isIgnored(UUID uuid) { + return getIgnoredPlayers().contains(uuid); + } - public List getIgnoredPlayers() { - return ignoredPlayers; - } - - public boolean isIgnored(UUID uuid) { - return ignoredPlayers.contains(uuid); - } - - public void ignorePlayer(UUID uuid) { - ignoredPlayers.add(uuid); -// UserDataManager.getDatas().set(player.getUniqueId().toString() + ".ingnoredPlayers", ignoredPlayers); + public void ignorePlayer(UUID uuid) { + ignoredPlayers.add(uuid); +// UserManager.getUser(p).getDatas().set("ingnoredPlayers", ignoredPlayers); // try { -// UserDataManager.getDatas().save(UserDataManager.getConfigfile()); +// UserManager.getUser(p).getDatas().save(UserManager.getUser(p).getConfigfile()); // } catch (IOException e) { // e.printStackTrace(); // } - } + } // public void unignorePlayer(UUID uuid) { // ignoredPlayers.remove(uuid); -// UserDataManager.getDatas().set(player.getUniqueId().toString() + ".ingnoredPlayers", ignoredPlayers); +// UserManager.getUser(p).getDatas().set("ingnoredPlayers", ignoredPlayers); // try { -// UserDataManager.getDatas().save(UserDataManager.getConfigfile()); +// UserManager.getUser(p).getDatas().save(UserManager.getUser(p).getConfigfile()); // } catch (IOException e) { // e.printStackTrace(); // } // } - public void updateDonates() { - this.totalDonate = getTotalDonate(); - this.monthlyDonate = getMonthlyDonate(); - } + public void updateDonates() { + this.totalDonate = getTotalDonate(); + this.monthlyDonate = getMonthlyDonate(); + } - public void setShowDeathMessages(boolean showDeathMessages) { - this.showDeathMessages = showDeathMessages; - UserDataManager.getDatas().set(player.getUniqueId().toString() + ".settings.showdeathmessages", showDeathMessages); - try { - UserDataManager.getDatas().save(UserDataManager.getConfigfile()); - } catch (IOException e) { - e.printStackTrace(); - } - } + public void setShowDeathMessages(boolean showDeathMessages) { + this.showDeathMessages = showDeathMessages; + UserManager.getUser(p).getDatas().set("settings.showdeathmessages", showDeathMessages); - public void setShowJoinAndLeaveAlerts(boolean showJoinAndLeaveAlerts) { - this.showJoinAndLeaveAlerts = showJoinAndLeaveAlerts; - UserDataManager.getDatas().set(player.getUniqueId().toString() + ".settings.showJoinAndLeaveAlerts", showJoinAndLeaveAlerts); - try { - UserDataManager.getDatas().save(UserDataManager.getConfigfile()); - } catch (IOException e) { - e.printStackTrace(); - } - } + UserManager.getUser(p).saveDatas(); + } - public void setShowScoreboard(boolean showScoreboard) { - if (showScoreboard && !this.showScoreboard) { - ScoreboardListener.addScoreboard(player); - } else if (ScoreboardManager.scoreboards.containsKey(player)) { - ScoreboardManager.scoreboards.get(player).destroy(); - ScoreboardManager.scoreboards.remove(player); - } - this.showScoreboard = showScoreboard; - UserDataManager.getDatas().set(player.getUniqueId().toString() + ".settings.showScoreboard", showScoreboard); - try { - UserDataManager.getDatas().save(UserDataManager.getConfigfile()); - } catch (IOException e) { - e.printStackTrace(); - } + public void setShowJoinAndLeaveAlerts(boolean showJoinAndLeaveAlerts) { + this.showJoinAndLeaveAlerts = showJoinAndLeaveAlerts; + UserManager.getUser(p).getDatas().set("settings.showJoinAndLeaveAlerts", showJoinAndLeaveAlerts); - } + UserManager.getUser(p).saveDatas(); + } - public String getPrefix() { - return monthlyDonate >= 50 ? "§e§l" : totalDonate > 0 ? "§e" : "§6"; - } + public void setShowScoreboard(boolean showScoreboard) { + if (showScoreboard && !this.showScoreboard) { + ScoreboardListener.addScoreboard(p); + } else if (ScoreboardManager.scoreboards.containsKey(p)) { + ScoreboardManager.scoreboards.get(p).destroy(); + ScoreboardManager.scoreboards.remove(p); + } + this.showScoreboard = showScoreboard; + UserManager.getUser(p).getDatas().set("settings.showScoreboard", showScoreboard); - public void saveBedLocation(Location bedlocation) { - this.bedLocation = bedlocation; - this.spawnLocation = player.getLocation(); - UserDataManager.getDatas().set(player.getUniqueId().toString() + ".spawnLocation.x", player.getLocation().getX()); - UserDataManager.getDatas().set(player.getUniqueId().toString() + ".spawnLocation.y", player.getLocation().getY()); - UserDataManager.getDatas().set(player.getUniqueId().toString() + ".spawnLocation.z", player.getLocation().getZ()); - UserDataManager.getDatas().set(player.getUniqueId().toString() + ".spawnLocation.yaw", player.getLocation().getYaw()); - UserDataManager.getDatas().set(player.getUniqueId().toString() + ".spawnLocation.pitch", player.getLocation().getPitch()); - UserDataManager.getDatas().set(player.getUniqueId().toString() + ".bedLocation.x", bedlocation.getX()); - UserDataManager.getDatas().set(player.getUniqueId().toString() + ".bedLocation.y", bedlocation.getY()); - UserDataManager.getDatas().set(player.getUniqueId().toString() + ".bedLocation.z", bedlocation.getZ()); - UserDataManager.getDatas().set(player.getUniqueId().toString() + ".bedLocation.yaw", bedlocation.getYaw()); - UserDataManager.getDatas().set(player.getUniqueId().toString() + ".bedLocation.pitch", bedlocation.getPitch()); - try { - UserDataManager.getDatas().save(UserDataManager.getConfigfile()); - } catch (IOException e) { - e.printStackTrace(); - } - } + UserManager.getUser(p).saveDatas(); + } - public boolean isBedThere() { - return bedLocation.getBlock().getType() == Material.BED_BLOCK && bedLocation.getX() <= 300000 && bedLocation.getZ() <= 300000; - } - - public static ProfileData getProfileData(Player p) { - return profileDatas.get(p); - } - - public static void loadProfileData(Player p) { - profileDatas.put(p, new ProfileData(p)); - } - - public static void unloadProfileData(Player p) { - profileDatas.remove(p); - } + public String getPrefix() { + return monthlyDonate >= 50 ? "§e§l" : totalDonate > 0 ? "§e" : "§6"; + } } diff --git a/2b2t-common/src/main/java/org/cn2b2t/common/listeners/AnvilColorPatch.java b/2b2t-common/src/main/java/org/cn2b2t/common/listeners/AnvilColorPatch.java deleted file mode 100644 index ed89d7b..0000000 --- a/2b2t-common/src/main/java/org/cn2b2t/common/listeners/AnvilColorPatch.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.cn2b2t.common.listeners; - -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.event.inventory.InventoryType; -import org.bukkit.inventory.meta.ItemMeta; - -public class AnvilColorPatch implements Listener { - - @EventHandler - public void onInventoryClick(final InventoryClickEvent evt) { - if (evt.isCancelled() || evt.getInventory().getType() != InventoryType.ANVIL - || evt.getSlotType() != InventoryType.SlotType.RESULT) { - return; - } - if (evt.getCurrentItem().hasItemMeta()) { - ItemMeta meta = evt.getCurrentItem().getItemMeta(); - if (meta.getDisplayName().contains("&")) { - String name = meta.getDisplayName().replaceAll("&", "§").replaceAll("§§", "&"); - meta.setDisplayName(name); - evt.getCurrentItem().setItemMeta(meta); - } - } - } - -} diff --git a/2b2t-common/src/main/java/org/cn2b2t/common/listeners/ChatListener.java b/2b2t-common/src/main/java/org/cn2b2t/common/listeners/ChatListener.java index 3e8089e..3701ac5 100644 --- a/2b2t-common/src/main/java/org/cn2b2t/common/listeners/ChatListener.java +++ b/2b2t-common/src/main/java/org/cn2b2t/common/listeners/ChatListener.java @@ -2,13 +2,12 @@ package org.cn2b2t.common.listeners; import org.bukkit.ChatColor; import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.player.AsyncPlayerChatEvent; -import org.bukkit.event.player.PlayerCommandPreprocessEvent; import org.bukkit.scheduler.BukkitRunnable; import org.cn2b2t.common.Main; import org.cn2b2t.common.functions.ProfileData; +import org.cn2b2t.core.utils.ColorParser; import java.util.HashMap; import java.util.HashSet; @@ -30,12 +29,7 @@ public class ChatListener implements Listener { e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', "&f您的说话速度太快,每次发言请至少等待3秒。")); e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', "&6--&e-&f-----------------------------&e-&6--")); } else if (messages.containsKey(name) && messages.get(name) - .equalsIgnoreCase(message - .replaceAll("。", "") - .replaceAll(" ", "") - .replaceAll("!", "") - .replaceAll("!", "") - .replaceAll("?", ""))) { + .equalsIgnoreCase(removeUseless(message))) { e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', "&6--&e-&f-----------------------------&e-&6--")); e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', "&f请不要重复说相同的内容。")); e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', "&6--&e-&f-----------------------------&e-&6--")); @@ -48,20 +42,23 @@ public class ChatListener implements Listener { coolingPlayers.remove(name); } }.runTaskLater(Main.getInstance(), 60L); - messages.put(name, message - .replaceAll("。", "") - .replaceAll(" ", "") - .replaceAll("!", "") - .replaceAll("!", "") - .replaceAll("?", "")); + messages.put(name, removeUseless(message)); - e.setMessage(Main.color(message)); - e.setFormat(ProfileData.getProfileData(e.getPlayer()).getPrefix() + "%1$s§8: §f%2$s"); + e.setMessage(ColorParser.parse(message)); + e.setFormat(ProfileData.get(e.getPlayer()).getPrefix() + "%1$s§8 : §f%2$s"); - e.getRecipients().stream().filter(recipient -> ProfileData.getProfileData(recipient).isIgnored(e.getPlayer().getUniqueId())) + e.getRecipients().stream().filter(recipient -> ProfileData.get(recipient).isIgnored(e.getPlayer().getUniqueId())) .forEachOrdered(recipient -> e.getRecipients().remove(recipient)); } + } + private static String removeUseless(String str) { + return str + .replaceAll("。", "") + .replaceAll(" ", "") + .replaceAll("!", "") + .replaceAll("!", "") + .replaceAll("?", ""); } diff --git a/2b2t-common/src/main/java/org/cn2b2t/common/listeners/ColorPatchListener.java b/2b2t-common/src/main/java/org/cn2b2t/common/listeners/ColorPatchListener.java new file mode 100644 index 0000000..1681231 --- /dev/null +++ b/2b2t-common/src/main/java/org/cn2b2t/common/listeners/ColorPatchListener.java @@ -0,0 +1,38 @@ +package org.cn2b2t.common.listeners; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.block.SignChangeEvent; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.meta.ItemMeta; +import org.cn2b2t.core.utils.ColorParser; + +public class ColorPatchListener implements Listener { + + @EventHandler + public void onInventoryClick(final InventoryClickEvent evt) { + if (evt.isCancelled() || evt.getInventory().getType() != InventoryType.ANVIL + || evt.getSlotType() != InventoryType.SlotType.RESULT) { + return; + } + if (evt.getCurrentItem().hasItemMeta()) { + ItemMeta meta = evt.getCurrentItem().getItemMeta(); + if (meta.getDisplayName().contains("&")) { + String name = meta.getDisplayName().replaceAll("&", "§").replaceAll("§§", "&"); + meta.setDisplayName(name); + evt.getCurrentItem().setItemMeta(meta); + } + } + } + + @EventHandler + public void colorSign(final SignChangeEvent e) { + e.setLine(0, ColorParser.parse(e.getLine(0))); + e.setLine(1, ColorParser.parse(e.getLine(1))); + e.setLine(2, ColorParser.parse(e.getLine(2))); + e.setLine(3, ColorParser.parse(e.getLine(3))); + } + + +} diff --git a/2b2t-common/src/main/java/org/cn2b2t/common/listeners/FastPot.java b/2b2t-common/src/main/java/org/cn2b2t/common/listeners/FastPot.java deleted file mode 100644 index f341051..0000000 --- a/2b2t-common/src/main/java/org/cn2b2t/common/listeners/FastPot.java +++ /dev/null @@ -1,37 +0,0 @@ -package org.cn2b2t.common.listeners; - -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Player; -import org.bukkit.entity.Projectile; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.entity.PotionSplashEvent; -import org.bukkit.event.entity.ProjectileLaunchEvent; - -/** - * @author cam (MoCi Games) - */ -public class FastPot implements Listener { - - @EventHandler - void onProjectileLaunch(final ProjectileLaunchEvent event) { - if (event.getEntityType() == EntityType.SPLASH_POTION) { - final Projectile projectile = event.getEntity(); - if (projectile.getShooter() instanceof Player && ((Player) projectile.getShooter()).isSprinting()) { - projectile.setVelocity(projectile.getVelocity().setY(projectile.getVelocity().getY() - 4)); - } - } - - } - - @EventHandler - void onPotionSplash(final PotionSplashEvent event) { - if (event.getEntity().getShooter() instanceof Player) { - final Player shooter = (Player) event.getEntity().getShooter(); - if (shooter.isSprinting() && event.getIntensity(shooter) > 0.5D) { - event.setIntensity(shooter, 1.0D); - } - } - } - -} diff --git a/2b2t-common/src/main/java/org/cn2b2t/common/listeners/LoggerListener.java b/2b2t-common/src/main/java/org/cn2b2t/common/listeners/LoggerListener.java deleted file mode 100644 index 4c34f82..0000000 --- a/2b2t-common/src/main/java/org/cn2b2t/common/listeners/LoggerListener.java +++ /dev/null @@ -1,43 +0,0 @@ -package org.cn2b2t.common.listeners; - - -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; -import org.bukkit.event.player.AsyncPlayerChatEvent; -import org.bukkit.event.player.PlayerCommandPreprocessEvent; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.event.server.ServerCommandEvent; -import org.cn2b2t.common.enums.LogType; -import org.cn2b2t.common.managers.LoggerManager; - -public class LoggerListener implements Listener { - - @EventHandler(priority = EventPriority.HIGHEST) - public void onChat(final AsyncPlayerChatEvent e) { - LoggerManager.log(LogType.CHAT, e.getPlayer(), e.getMessage().replace("\\", "\\\\")); - } - - @EventHandler(priority = EventPriority.HIGHEST) - public void onCommand(final PlayerCommandPreprocessEvent e) { - LoggerManager.log(LogType.COMMAND, e.getPlayer(), e.getMessage().replace("\\", "\\\\")); - } - - @EventHandler(priority = EventPriority.HIGHEST) - public void onJoin(final PlayerJoinEvent e) { - LoggerManager.log(LogType.JOIN, e.getPlayer(), "Joined"); - } - - @EventHandler(priority = EventPriority.HIGHEST) - public void onQuit(final PlayerQuitEvent e) { - LoggerManager.log(LogType.QUIT, e.getPlayer(), "quit"); - } - - @EventHandler(priority = EventPriority.HIGHEST) - public void onCMD(final ServerCommandEvent e) { - LoggerManager.logConsole(LogType.COMMAND, e.getCommand().replace("\\", "\\\\")); - } - - -} diff --git a/2b2t-common/src/main/java/org/cn2b2t/common/listeners/LoginListener.java b/2b2t-common/src/main/java/org/cn2b2t/common/listeners/LoginListener.java index 22e78a6..112c9ef 100644 --- a/2b2t-common/src/main/java/org/cn2b2t/common/listeners/LoginListener.java +++ b/2b2t-common/src/main/java/org/cn2b2t/common/listeners/LoginListener.java @@ -2,6 +2,7 @@ package org.cn2b2t.common.listeners; import org.bukkit.Bukkit; import org.bukkit.ChatColor; +import org.bukkit.Sound; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -10,6 +11,7 @@ import org.cn2b2t.common.enums.Locations; import org.cn2b2t.common.functions.ProfileData; import org.cn2b2t.common.managers.KitManager; import org.cn2b2t.core.managers.render.NamePrefix; +import org.cn2b2t.core.utils.ColorParser; public class LoginListener implements Listener { @@ -17,31 +19,37 @@ public class LoginListener implements Listener { @EventHandler public void onJoin(PlayerJoinEvent e) { e.setJoinMessage(""); - - ProfileData.loadProfileData(e.getPlayer()); + Player p = e.getPlayer(); - if (!e.getPlayer().hasPlayedBefore()) { - KitManager.getSpawnItem(e.getPlayer()); - e.getPlayer().teleport(Locations.SPAWN.getLocation()); - Bukkit.getOnlinePlayers().stream().filter(p -> ProfileData.getProfileData(p).showJoinAndLeaveAlerts).forEachOrdered(p -> p.sendMessage(ChatColor.translateAlternateColorCodes('&', " \n&7欢迎新玩家 &6" + e.getPlayer().getName() + " &7加入了游戏。\n "))); + if (!p.hasPlayedBefore()) { + KitManager.getSpawnItem(p); + p.teleport(Locations.SPAWN.getLocation()); + Bukkit.getOnlinePlayers().stream() + .filter(pl -> ProfileData.get(pl) != null) + .filter(pl -> ProfileData.get(pl).showJoinAndLeaveAlerts) + .forEachOrdered(pl -> pl.sendMessage(ColorParser.parse(" \n&7欢迎新玩家 &6" + p.getName() + " &7加入了游戏。\n "))); + p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&6--&e-&f-----------------------------&e-&6--")); + p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&7尊敬的 &6&l" + p.getName() + "&7,")); + p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&7您好,欢迎来到&7&o&lcn2b2t.org&7!")); + p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&7本服&c无规则、无管理,无任何官方组织&7。")); + p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&7本服基于 &6" + Bukkit.getVersion() + " &7搭建。")); + p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&7本服额外添加几个了几个命令,详细请输入 &6/help &7。")); + p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&6--&e-&f-----------------------------&e-&6--")); + p.playSound(p.getLocation(), Sound.ENTITY_PLAYER_LEVELUP, 1L, 1L); } else { - Bukkit.getOnlinePlayers().stream().filter(p -> ProfileData.getProfileData(p).showJoinAndLeaveAlerts).forEachOrdered(p -> p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&7玩家 " + ProfileData.getProfileData(e.getPlayer()).getPrefix() + e.getPlayer().getName() + " &7加入了游戏。"))); + Bukkit.getOnlinePlayers().stream() + .filter(pl -> ProfileData.get(pl) != null) + .filter(pl -> ProfileData.get(pl).showJoinAndLeaveAlerts) + .forEachOrdered(pl -> ColorParser.parse("&7玩家 " + ProfileData.get(p).getPrefix() + p.getName() + " &7加入了游戏。")); } - e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', "&6--&e-&f-----------------------------&e-&6--")); - e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', "&7尊敬的 &6&l" + e.getPlayer().getName() + "&7,")); - e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', "&7您好,欢迎来到&7&o&lcn2b2t.org&7!")); - e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', "&7本服&c无规则、无管理,无任何官方组织&7。")); - e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', "&7本服基于 &6" + Bukkit.getVersion() + " &7搭建。")); - e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', "&7本服额外添加几个了几个命令,详细请输入 &6/help &7。")); - e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', "&6--&e-&f-----------------------------&e-&6--")); for (Player onlinePlayer : Bukkit.getOnlinePlayers()) { - if (ProfileData.getProfileData(onlinePlayer) != null) { - NamePrefix.set(e.getPlayer(), onlinePlayer, ProfileData.getProfileData(onlinePlayer).getPrefix()); + if (ProfileData.get(onlinePlayer) != null) { + NamePrefix.set(p, onlinePlayer, ProfileData.get(onlinePlayer).getPrefix()); } - NamePrefix.set(onlinePlayer, e.getPlayer(), ProfileData.getProfileData(e.getPlayer()).getPrefix()); + NamePrefix.set(onlinePlayer, p, ProfileData.get(p).getPrefix()); } } diff --git a/2b2t-common/src/main/java/org/cn2b2t/common/listeners/QuitListener.java b/2b2t-common/src/main/java/org/cn2b2t/common/listeners/QuitListener.java index aa44b3c..489ec80 100644 --- a/2b2t-common/src/main/java/org/cn2b2t/common/listeners/QuitListener.java +++ b/2b2t-common/src/main/java/org/cn2b2t/common/listeners/QuitListener.java @@ -1,24 +1,31 @@ package org.cn2b2t.common.listeners; 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.PlayerQuitEvent; import org.cn2b2t.common.functions.ProfileData; import org.cn2b2t.core.managers.render.NamePrefix; +import org.cn2b2t.core.utils.ColorParser; public class QuitListener implements Listener { @EventHandler public void onQuit(PlayerQuitEvent e) { e.setQuitMessage(""); + + Player p = e.getPlayer(); + for (Player onlinePlayer : Bukkit.getOnlinePlayers()) { - NamePrefix.reset(onlinePlayer, e.getPlayer()); + NamePrefix.reset(onlinePlayer, p); } - Bukkit.getOnlinePlayers().stream().filter(p -> ProfileData.getProfileData(p).showJoinAndLeaveAlerts).forEachOrdered(p -> p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&7玩家 " + ProfileData.getProfileData(e.getPlayer()).getPrefix() + e.getPlayer().getName() + " &7离开了游戏。"))); - ProfileData.unloadProfileData(e.getPlayer()); + + Bukkit.getOnlinePlayers().stream() + .filter(pl -> ProfileData.get(pl) != null) + .filter(pl -> ProfileData.get(p).showJoinAndLeaveAlerts) + .forEachOrdered(pl -> pl.sendMessage(ColorParser.parse("&7玩家 " + ProfileData.get(p).getPrefix() + p.getName() + " &7离开了游戏。"))); } + } diff --git a/2b2t-common/src/main/java/org/cn2b2t/common/listeners/RespawnListener.java b/2b2t-common/src/main/java/org/cn2b2t/common/listeners/RespawnListener.java deleted file mode 100644 index 8ce2585..0000000 --- a/2b2t-common/src/main/java/org/cn2b2t/common/listeners/RespawnListener.java +++ /dev/null @@ -1,85 +0,0 @@ -package org.cn2b2t.common.listeners; - -import org.bukkit.Bukkit; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.World; -import org.bukkit.block.Biome; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.player.PlayerChangedWorldEvent; -import org.bukkit.event.player.PlayerRespawnEvent; -import org.cn2b2t.common.functions.ProfileData; - -import java.util.Random; - -public class RespawnListener implements Listener { - - - @EventHandler - public void onDeath(PlayerRespawnEvent e) { - Player p = e.getPlayer(); - p.setMaxHealth(20); - p.setHealth(20); - p.setFoodLevel(30); - - if (ProfileData.getProfileData(p).isBedThere()) { - e.setRespawnLocation(ProfileData.getProfileData(p).bedLocation); - } else { - p.sendMessage("§7由于您之前的床已被破坏或遮挡,无法将您传送到您的床边。"); - e.setRespawnLocation(randomLocation(Bukkit.getWorld("world"))); - } - - } - - @EventHandler - public void onDeath(PlayerChangedWorldEvent e) { - Player p = e.getPlayer(); - if (e.getFrom().getName().equalsIgnoreCase("world_the_end")) { - if (ProfileData.getProfileData(p).isBedThere()) { - p.teleport(ProfileData.getProfileData(p).bedLocation); - } else { - p.sendMessage("§7由于您之前的床已被破坏或遮挡,无法将您传送到您的床边。"); - p.teleport(randomLocation(Bukkit.getWorld("world"))); - } - - } - } - - public Location randomLocation(World w) { - Random r = new Random(); - - while (true) { - int x = -30000 + r.nextInt(60001); - int z = -30000 + r.nextInt(60001); - int y = w.getHighestBlockYAt(x, z); - Location loc = new Location(w, x, y, z); - Biome locBiome = w.getBiome(loc.getChunk().getX(), loc.getChunk().getZ()); - if (locBiome != Biome.OCEAN - && locBiome != Biome.DEEP_OCEAN - && locBiome != Biome.RIVER - && locBiome != Biome.DESERT - && locBiome != Biome.DESERT_HILLS - && !canReplace(loc.getBlock().getType())) { - return loc.add(0, 1, 0); - } - } - } - - public boolean canReplace(Material material) { - switch (material) { - case WATER: - case LAVA: - case STATIONARY_WATER: - case STATIONARY_LAVA: - case AIR: - return true; - default: - return false; - - } - - } - -} diff --git a/2b2t-common/src/main/java/org/cn2b2t/common/listeners/ScoreboardListener.java b/2b2t-common/src/main/java/org/cn2b2t/common/listeners/ScoreboardListener.java index 93979f9..92bcf40 100644 --- a/2b2t-common/src/main/java/org/cn2b2t/common/listeners/ScoreboardListener.java +++ b/2b2t-common/src/main/java/org/cn2b2t/common/listeners/ScoreboardListener.java @@ -21,7 +21,7 @@ public class ScoreboardListener implements Listener { @EventHandler public void onJoin(PlayerJoinEvent e) { - if (ProfileData.getProfileData(e.getPlayer()).showScoreboard) addScoreboard(e.getPlayer()); + if (ProfileData.get(e.getPlayer()).showScoreboard) addScoreboard(e.getPlayer()); } public static void addScoreboard(Player p) { @@ -36,7 +36,7 @@ public class ScoreboardListener implements Listener { new BukkitRunnable() { @Override public void run() { - if (!p.isOnline() || !ProfileData.getProfileData(p).showScoreboard) { + if (!p.isOnline() || !ProfileData.get(p).showScoreboard) { cancel(); } if (ScoreboardManager.scoreboards.containsKey(p)) { @@ -50,7 +50,7 @@ public class ScoreboardListener implements Listener { new BukkitRunnable() { @Override public void run() { - if (p == null || !p.isOnline() || ProfileData.getProfileData(p) != null || !ProfileData.getProfileData(p).showScoreboard) { + if (p == null || !p.isOnline() || ProfileData.get(p) != null || !ProfileData.get(p).showScoreboard) { cancel(); } if (ScoreboardManager.scoreboards.containsKey(p)) { @@ -88,7 +88,7 @@ public class ScoreboardListener implements Listener { public static void updateLine(Player p, int i) { - if (!ProfileData.getProfileData(p).showScoreboard) return; + if (!ProfileData.get(p).showScoreboard) return; ScoreboardManager sm = ScoreboardManager.scoreboards.get(p); switch (i) { diff --git a/2b2t-common/src/main/java/org/cn2b2t/common/listeners/SignColor.java b/2b2t-common/src/main/java/org/cn2b2t/common/listeners/SignColor.java deleted file mode 100644 index f972711..0000000 --- a/2b2t-common/src/main/java/org/cn2b2t/common/listeners/SignColor.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.cn2b2t.common.listeners; - -import org.bukkit.ChatColor; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.block.SignChangeEvent; - -public class SignColor implements Listener { - - @EventHandler - public void colorSign(final SignChangeEvent e) { - e.setLine(0, ChatColor.translateAlternateColorCodes('&', e.getLine(0))); - e.setLine(1, ChatColor.translateAlternateColorCodes('&', e.getLine(1))); - e.setLine(2, ChatColor.translateAlternateColorCodes('&', e.getLine(2))); - e.setLine(3, ChatColor.translateAlternateColorCodes('&', e.getLine(3))); - } - - -} diff --git a/2b2t-common/src/main/java/org/cn2b2t/common/listeners/UnfairListener.java b/2b2t-common/src/main/java/org/cn2b2t/common/listeners/UnfairListener.java deleted file mode 100644 index f542e05..0000000 --- a/2b2t-common/src/main/java/org/cn2b2t/common/listeners/UnfairListener.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.cn2b2t.common.listeners; - -import org.bukkit.Material; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.player.PlayerInteractEvent; - -public class UnfairListener implements Listener { - - - @EventHandler - public void onUse(PlayerInteractEvent e) { - if (e.getItem() != null && e.getItem().getType() != Material.AIR - && e.getItem().hasItemMeta() - && e.getItem().getItemMeta().hasEnchants()) { - e.getItem().getItemMeta().getEnchants().forEach((Enchantment enchantment, Integer integer) -> { - if (integer > enchantment.getMaxLevel()) { - e.setCancelled(true); - e.getItem().removeEnchantment(enchantment); - } - }); - } - } - -} diff --git a/2b2t-common/src/main/java/org/cn2b2t/common/managers/DataManager.java b/2b2t-common/src/main/java/org/cn2b2t/common/managers/DataManager.java index 39db91c..df60f58 100644 --- a/2b2t-common/src/main/java/org/cn2b2t/common/managers/DataManager.java +++ b/2b2t-common/src/main/java/org/cn2b2t/common/managers/DataManager.java @@ -6,6 +6,7 @@ import org.bukkit.scheduler.BukkitRunnable; import org.cn2b2t.common.Main; import org.cn2b2t.common.functions.ProfileData; import org.cn2b2t.core.managers.utils.database.Connection; +import org.cn2b2t.core.utils.ColorParser; import java.sql.ResultSet; import java.sql.SQLException; @@ -31,10 +32,10 @@ public class DataManager { public void run() { DonateManager.monthly = DataManager.getDonateInAMonth(); DonateManager.total = DataManager.getTotalDonate(); - Bukkit.getConsoleSender().sendMessage(Main.color(" \n本月赞助 &6" + DonateManager.monthly + "\n" + + Bukkit.getConsoleSender().sendMessage(ColorParser.parse(" \n本月赞助 &6" + DonateManager.monthly + "\n" + "总共收到 &6" + DonateManager.total)); - if (p.isOnline() && ProfileData.profileDatas.containsKey(p)) { - ProfileData.getProfileData(p).updateDonates(); + if (p.isOnline() && ProfileData.get(p) != null) { + ProfileData.get(p).updateDonates(); } } }.runTaskLater(Main.getInstance(), 100L); diff --git a/2b2t-common/src/main/java/org/cn2b2t/common/managers/LoggerManager.java b/2b2t-common/src/main/java/org/cn2b2t/common/managers/LoggerManager.java deleted file mode 100644 index dc6e39c..0000000 --- a/2b2t-common/src/main/java/org/cn2b2t/common/managers/LoggerManager.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.cn2b2t.common.managers; - - -import org.bukkit.entity.Player; -import org.cn2b2t.common.enums.LogType; - -public class LoggerManager { - - - public static void writeIn(final String name, final LogType t, final String value) { - - // 写入格式实例 2009-01-21 18:49:12 CUMR CHAT 哈哈哈哈哈哈 - - - } - - public static void log(final LogType lt, final Player p, final String s) { - final String name = p.getName(); - writeIn(name, lt, s); - } - - public static void logConsole(final LogType lt, final String s) { - final String name = "CONSOLE"; - writeIn(name, lt, s); - } -} diff --git a/2b2t-common/src/main/java/org/cn2b2t/common/managers/UserDataManager.java b/2b2t-common/src/main/java/org/cn2b2t/common/managers/UserDataManager.java deleted file mode 100644 index 7ed62cc..0000000 --- a/2b2t-common/src/main/java/org/cn2b2t/common/managers/UserDataManager.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.cn2b2t.common.managers; - -import org.bukkit.Bukkit; -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.configuration.file.YamlConfiguration; -import org.cn2b2t.common.Main; - -import java.io.File; -import java.io.IOException; - -public class UserDataManager { - - - private static File configfile; - private static FileConfiguration datas; - - public static void init() { - configfile = new File(Main.getInstance().getDataFolder(), "userdatas.yml"); - if (!configfile.exists()) { - try { - configfile.createNewFile(); - } catch (IOException ex) { - Bukkit.getLogger().info("Could not load file userdatas.yml" + ex); - } - } - - datas = YamlConfiguration.loadConfiguration(configfile); - } - - public static FileConfiguration getDatas() { - return datas; - } - - public static File getConfigfile() { - return configfile; - } - - -} diff --git a/2b2t-common/src/main/java/org/cn2b2t/common/runnables/BoardCastRunnable.java b/2b2t-common/src/main/java/org/cn2b2t/common/runnables/BoardCastRunnable.java index 86edafc..5b5a98a 100644 --- a/2b2t-common/src/main/java/org/cn2b2t/common/runnables/BoardCastRunnable.java +++ b/2b2t-common/src/main/java/org/cn2b2t/common/runnables/BoardCastRunnable.java @@ -3,6 +3,7 @@ package org.cn2b2t.common.runnables; import org.bukkit.Bukkit; import org.bukkit.scheduler.BukkitRunnable; import org.cn2b2t.common.Main; +import org.cn2b2t.core.utils.ColorParser; import java.util.ArrayList; import java.util.List; @@ -14,15 +15,15 @@ public class BoardCastRunnable { public BoardCastRunnable() { this.messages = new ArrayList<>(); - messages.add(Main.color("&8[&a&l?&8] &7您可以输入 &6/help &7获得帮助消息。")); - messages.add(Main.color("&8[&a&l?&8] &7遇到无脑刷屏?不妨试试 &6/ignore &7屏蔽该玩家吧!")); - messages.add(Main.color("&8[&a&l?&8] &7想要为维持服务器贡献一份力?输入 &6/donate &7查看详情!")); - messages.add(Main.color("&8[&a&l?&8] &7你也想要&e浅黄色&7的名字?输入 &6/donate &7查看如何获得!")); - messages.add(Main.color("&8[&a&l?&8] &7本服需要玩家自行续费与维护,每月集齐50元即可续命一个月,输入 &6/donate &7查看详情!")); - messages.add(Main.color("&8[&c&l!&8] &7服务器难免出现Bug,若您发现,请将相关详情发送至邮件 &6carm@carmwork.com &7,感谢您的帮助!")); - messages.add(Main.color("&8[&c&l!&8] &7服务器会自动检测并清理大面积无意义高配红石(如红石灯矩阵),请勿恶意卡服。")); - messages.add(Main.color("&8[&c&l!&8] &7本服无OP、管理。&6遇事冷静,要学会自行处理。&7")); - messages.add(Main.color("&8[&c&l!&8] &7本服禁用黑客端的崩服(Crash)功能,如有发现,&c立刻封禁,恕不解封!&7")); + messages.add(ColorParser.parse("&8[&a&l?&8] &7您可以输入 &6/help &7获得帮助消息。")); + messages.add(ColorParser.parse("&8[&a&l?&8] &7遇到无脑刷屏?不妨试试 &6/ignore &7屏蔽该玩家吧!")); + messages.add(ColorParser.parse("&8[&a&l?&8] &7想要为维持服务器贡献一份力?输入 &6/donate &7查看详情!")); + messages.add(ColorParser.parse("&8[&a&l?&8] &7你也想要&e浅黄色&7的名字?输入 &6/donate &7查看如何获得!")); + messages.add(ColorParser.parse("&8[&a&l?&8] &7本服需要玩家自行续费与维护,每月集齐50元即可续命一个月,输入 &6/donate &7查看详情!")); + messages.add(ColorParser.parse("&8[&c&l!&8] &7服务器难免出现Bug,若您发现,请将相关详情发送至邮件 &6carm@carmwork.com &7,感谢您的帮助!")); + messages.add(ColorParser.parse("&8[&c&l!&8] &7服务器会自动检测并清理大面积无意义高配红石(如红石灯矩阵),请勿恶意卡服。")); + messages.add(ColorParser.parse("&8[&c&l!&8] &7本服无OP、管理。&6遇事冷静,要学会自行处理。&7")); + messages.add(ColorParser.parse("&8[&c&l!&8] &7本服禁用黑客端的崩服(Crash)功能,如有发现,&c立刻封禁,恕不解封!&7")); new BukkitRunnable() { @Override diff --git a/2b2t-common/src/main/java/org/cn2b2t/common/runnables/RestartRunnable.java b/2b2t-common/src/main/java/org/cn2b2t/common/runnables/RestartRunnable.java index 9b3dca4..55bbe49 100644 --- a/2b2t-common/src/main/java/org/cn2b2t/common/runnables/RestartRunnable.java +++ b/2b2t-common/src/main/java/org/cn2b2t/common/runnables/RestartRunnable.java @@ -3,6 +3,7 @@ package org.cn2b2t.common.runnables; import org.bukkit.Bukkit; import org.bukkit.scheduler.BukkitRunnable; import org.cn2b2t.common.Main; +import org.cn2b2t.core.utils.ColorParser; public class RestartRunnable { @@ -17,8 +18,8 @@ public class RestartRunnable { count--; switch (count) { case 30: - Bukkit.getOnlinePlayers().forEach(p -> p.sendMessage(Main.color("&8[&c&l!&8] &7服务器将在 &6" + count + "秒 &7后重启。"))); - Bukkit.getConsoleSender().sendMessage(Main.color("&8[&c&l!&8] &7服务器将在 &6" + count + "秒 &7后重启。")); + Bukkit.getOnlinePlayers().forEach(p -> p.sendMessage(ColorParser.parse("&8[&c&l!&8] &7服务器将在 &6" + count + "秒 &7后重启。"))); + Bukkit.getConsoleSender().sendMessage(ColorParser.parse("&8[&c&l!&8] &7服务器将在 &6" + count + "秒 &7后重启。")); break; case 10: alert(10); @@ -52,7 +53,7 @@ public class RestartRunnable { } public static String getTimeString() { - int temp = 0; + int temp; StringBuilder sb = new StringBuilder(); temp = count / 60 / 60 % 60; @@ -68,8 +69,8 @@ public class RestartRunnable { } private static void alert(int time) { - Bukkit.getOnlinePlayers().forEach(p -> p.sendMessage(Main.color("&8[&c&l!&8] &7服务器将在 &6" + time + "秒 &7后重启。"))); - Bukkit.getConsoleSender().sendMessage(Main.color("&8[&c&l!&8] &7服务器将在 &6" + time + "秒 &7后重启。")); + Bukkit.getOnlinePlayers().forEach(p -> p.sendMessage(ColorParser.parse("&8[&c&l!&8] &7服务器将在 &6" + time + "秒 &7后重启。"))); + Bukkit.getConsoleSender().sendMessage(ColorParser.parse("&8[&c&l!&8] &7服务器将在 &6" + time + "秒 &7后重启。")); } diff --git a/2b2t-common/src/main/resources/plugin.yml b/2b2t-common/src/main/resources/plugin.yml index c4f64c9..a1ecd7a 100644 --- a/2b2t-common/src/main/resources/plugin.yml +++ b/2b2t-common/src/main/resources/plugin.yml @@ -4,12 +4,9 @@ version: 1.0.0 - SNAPSHOT authors: - Moci - cn2b2t -softdepend: - - VariableBridge depend: - - McPay + - 2b2t-core commands: - suicide: donate: ignore: settings: diff --git a/2b2t-core/src/main/java/org.cn2b2t.core/commands/Core.java b/2b2t-core/src/main/java/org.cn2b2t.core/commands/Core.java deleted file mode 100644 index 0c37f46..0000000 --- a/2b2t-core/src/main/java/org.cn2b2t.core/commands/Core.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.cn2b2t.core.commands; - -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.cn2b2t.core.managers.users.UserValueManager; -import org.cn2b2t.core.managers.utils.MessagerManager; -import org.cn2b2t.core.managers.utils.ServersManager; -import org.cn2b2t.core.utils.ColorParser; - -import java.util.Arrays; -import java.util.stream.Collectors; - -public class Core implements CommandExecutor { - - @Override - public boolean onCommand(final CommandSender sender, final Command cmd, final String label, final String[] args) { - if (sender instanceof Player) { - sender.sendMessage(ColorParser.parse("&7本服由 &f&lKa&7&lr &8Network &7提供技术支持。")); - sender.sendMessage(ColorParser.parse("&7官方网站 &chttps://www.kar.red/")); - return true; - } - String aim = args[0].toLowerCase(); - switch (aim) { - } - - - return true; - } -} \ No newline at end of file diff --git a/2b2t-core/src/main/java/org.cn2b2t.core/commands/ServerTeleport.java b/2b2t-core/src/main/java/org.cn2b2t.core/commands/ServerTeleport.java deleted file mode 100644 index 7a59e77..0000000 --- a/2b2t-core/src/main/java/org.cn2b2t.core/commands/ServerTeleport.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.cn2b2t.core.commands; - - -import org.cn2b2t.core.managers.utils.ServersManager; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -public class ServerTeleport implements CommandExecutor { - - @Override - public boolean onCommand(CommandSender sender, org.bukkit.command.Command cmd, String label, String[] args) { - if (sender instanceof Player) { - if (args.length == 1) { - ServersManager.teleport((Player) sender, args[0]); - return true; - } - } - return true; - } - - -} diff --git a/2b2t-core/src/main/java/org.cn2b2t.core/managers/utils/UserManager.java b/2b2t-core/src/main/java/org.cn2b2t.core/managers/utils/UserManager.java index df9912c..39aef8a 100644 --- a/2b2t-core/src/main/java/org.cn2b2t.core/managers/utils/UserManager.java +++ b/2b2t-core/src/main/java/org.cn2b2t.core/managers/utils/UserManager.java @@ -1,9 +1,9 @@ package org.cn2b2t.core.managers.utils; -import org.cn2b2t.core.modules.users.AbstractUserHandler; -import org.cn2b2t.core.modules.users.User; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import org.cn2b2t.core.modules.users.AbstractUserHandler; +import org.cn2b2t.core.modules.users.User; import java.util.Collection; import java.util.HashMap; @@ -36,6 +36,7 @@ public class UserManager { } public static void unregisterUser(Player p) { + users.get(p.getUniqueId().toString()).saveDatas(); users.remove(p.getUniqueId().toString()); } diff --git a/2b2t-core/src/main/java/org.cn2b2t.core/modules/users/AbstractUserHandler.java b/2b2t-core/src/main/java/org.cn2b2t.core/modules/users/AbstractUserHandler.java index a81f914..b60f557 100644 --- a/2b2t-core/src/main/java/org.cn2b2t.core/modules/users/AbstractUserHandler.java +++ b/2b2t-core/src/main/java/org.cn2b2t.core/modules/users/AbstractUserHandler.java @@ -1,11 +1,9 @@ package org.cn2b2t.core.modules.users; -import org.cn2b2t.core.events.UserHandlerLoadedEvent; -import org.cn2b2t.core.managers.utils.UserManager; import org.bukkit.Bukkit; -import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.scheduler.BukkitRunnable; +import org.cn2b2t.core.events.UserHandlerLoadedEvent; public abstract class AbstractUserHandler { diff --git a/2b2t-core/src/main/java/org.cn2b2t.core/modules/users/User.java b/2b2t-core/src/main/java/org.cn2b2t.core/modules/users/User.java index 83b1558..bb6dec3 100644 --- a/2b2t-core/src/main/java/org.cn2b2t.core/modules/users/User.java +++ b/2b2t-core/src/main/java/org.cn2b2t.core/modules/users/User.java @@ -1,6 +1,8 @@ package org.cn2b2t.core.modules.users; import org.bukkit.Bukkit; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; import org.cn2b2t.core.Main; @@ -13,6 +15,8 @@ import org.cn2b2t.core.modules.gui.GUI; import org.cn2b2t.core.utils.UUIDUtils; import org.spigotmc.AsyncCatcher; +import java.io.File; +import java.io.IOException; import java.sql.ResultSet; import java.util.*; import java.util.logging.Level; @@ -36,9 +40,13 @@ public class User { public boolean fullLoaded; + private File datafile; + private FileConfiguration datas; + + public User(Player player) { this.player = player; - + loadData(); new BukkitRunnable() { @Override public void run() { @@ -261,5 +269,28 @@ public class User { return !UserManager.getRegisteredUsers().contains(this); } + private void loadData() { + this.datafile = new File(Main.getInstance().getDataFolder() + "/userdatas/", this.getInkID() + ".yml"); + if (!datafile.exists()) { + try { + datafile.createNewFile(); + } catch (IOException ex) { + Bukkit.getLogger().info("Could not load file " + "/userdatas/" + "yml" + ex); + } + } + datas = YamlConfiguration.loadConfiguration(datafile); + } + + public FileConfiguration getDatas() { + return this.datas; + } + + public void saveDatas() { + try { + getDatas().save(datafile); + } catch (IOException e) { + e.printStackTrace(); + } + } } diff --git a/2b2t-death/pom.xml b/2b2t-death/pom.xml new file mode 100644 index 0000000..d6eb5ff --- /dev/null +++ b/2b2t-death/pom.xml @@ -0,0 +1,49 @@ + + + + cn2b2t + org.cn2b2t + 1.0-SNAPSHOT + + 4.0.0 + + 2b2t-death + jar + + + + org.apache.maven.plugins + maven-compiler-plugin + + 8 + 8 + + + + + + + + org.spigotmc + spigot + 1.12.2-R0.1-SNAPSHOT + ${basedir}/../_lib/spigot.jar + system + + + + org.cn2b2t + 2b2t-core + 1.0-SNAPSHOT + + + org.cn2b2t + 2b2t-common + 1.0-SNAPSHOT + + + + + \ No newline at end of file diff --git a/2b2t-death/src/main/java/org/cn2b2t/functions/death/Main.java b/2b2t-death/src/main/java/org/cn2b2t/functions/death/Main.java new file mode 100644 index 0000000..5fa519c --- /dev/null +++ b/2b2t-death/src/main/java/org/cn2b2t/functions/death/Main.java @@ -0,0 +1,49 @@ +package org.cn2b2t.functions.death; + +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.plugin.java.JavaPlugin; +import org.cn2b2t.core.managers.utils.UserManager; +import org.cn2b2t.functions.death.commands.Suicide; +import org.cn2b2t.functions.death.listeners.BedListener; +import org.cn2b2t.functions.death.listeners.DeathListener; +import org.cn2b2t.functions.death.listeners.RespawnListener; +import org.cn2b2t.functions.death.managers.users.UserBedManager; + + +public class Main extends JavaPlugin { + + public static String pluginName = "2b2t-common"; + public static String pluginVersion = "1.0-SNAPSHOT"; + + private static Main instance; + + public static Main getInstance() { + return Main.instance; + } + + private void pluginMessage(String s) { + this.getServer().getConsoleSender().sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "!" + ChatColor.DARK_GRAY + "] " + ChatColor.AQUA + pluginName + " " + ChatColor.WHITE + pluginVersion + ChatColor.GRAY + s); + } + + @Override + public void onEnable() { + Main.instance = this; + this.getCommand("suicide").setExecutor(new Suicide()); + + Bukkit.getPluginManager().registerEvents(new RespawnListener(), this); + Bukkit.getPluginManager().registerEvents(new DeathListener(), this); + Bukkit.getPluginManager().registerEvents(new BedListener(), this); + + UserManager.regHandler(UserBedManager.class); + + pluginMessage("已启用。"); + } + + @Override + public void onDisable() { + UserManager.removeHandler(UserBedManager.class); + this.pluginMessage("已卸载。"); + } + +} diff --git a/2b2t-death/src/main/java/org/cn2b2t/functions/death/commands/Suicide.java b/2b2t-death/src/main/java/org/cn2b2t/functions/death/commands/Suicide.java new file mode 100644 index 0000000..af27406 --- /dev/null +++ b/2b2t-death/src/main/java/org/cn2b2t/functions/death/commands/Suicide.java @@ -0,0 +1,22 @@ +package org.cn2b2t.functions.death.commands; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.cn2b2t.common.Main; + +public class Suicide implements CommandExecutor { + + @Override + public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { + if (cmd.getName().equalsIgnoreCase("suicide")) { + if (sender instanceof Player) ((Player) sender).setHealth(0); + sender.sendMessage(Main.color( + "&f这个世界虽然不完美,但我们仍然可以治愈自己。\n" + + "&7全国免费心理咨询热线 &a&l800-810-1117")); + return true; + } + return true; + } +} \ No newline at end of file diff --git a/2b2t-common/src/main/java/org/cn2b2t/common/listeners/BedListener.java b/2b2t-death/src/main/java/org/cn2b2t/functions/death/listeners/BedListener.java similarity index 80% rename from 2b2t-common/src/main/java/org/cn2b2t/common/listeners/BedListener.java rename to 2b2t-death/src/main/java/org/cn2b2t/functions/death/listeners/BedListener.java index 5e03f9a..a261b55 100644 --- a/2b2t-common/src/main/java/org/cn2b2t/common/listeners/BedListener.java +++ b/2b2t-death/src/main/java/org/cn2b2t/functions/death/listeners/BedListener.java @@ -1,4 +1,4 @@ -package org.cn2b2t.common.listeners; +package org.cn2b2t.functions.death.listeners; import org.bukkit.Material; import org.bukkit.event.EventHandler; @@ -6,6 +6,7 @@ import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; import org.cn2b2t.common.functions.ProfileData; +import org.cn2b2t.functions.death.managers.users.UserBedManager; public class BedListener implements Listener { @@ -15,7 +16,7 @@ public class BedListener implements Listener { && e.getAction() == Action.RIGHT_CLICK_BLOCK && e.getClickedBlock() != null && (e.getClickedBlock().getType() == Material.BED || e.getClickedBlock().getType() == Material.BED_BLOCK)) { - ProfileData.getProfileData(e.getPlayer()).saveBedLocation(e.getClickedBlock().getLocation()); + UserBedManager.get(e.getPlayer()).saveBedLocation(e.getClickedBlock().getLocation()); e.getPlayer().setBedSpawnLocation(e.getClickedBlock().getLocation(), true); e.getPlayer().sendMessage("§7已为您设置出生点。注意,若床被破坏,您将失去无法再次与此处重生!"); } diff --git a/2b2t-common/src/main/java/org/cn2b2t/common/listeners/DeathListener.java b/2b2t-death/src/main/java/org/cn2b2t/functions/death/listeners/DeathListener.java similarity index 93% rename from 2b2t-common/src/main/java/org/cn2b2t/common/listeners/DeathListener.java rename to 2b2t-death/src/main/java/org/cn2b2t/functions/death/listeners/DeathListener.java index 29ec00f..b20e384 100644 --- a/2b2t-common/src/main/java/org/cn2b2t/common/listeners/DeathListener.java +++ b/2b2t-death/src/main/java/org/cn2b2t/functions/death/listeners/DeathListener.java @@ -1,4 +1,4 @@ -package org.cn2b2t.common.listeners; +package org.cn2b2t.functions.death.listeners; import org.bukkit.Material; import org.bukkit.SkullType; @@ -16,7 +16,7 @@ public class DeathListener implements Listener { @EventHandler public void onDeath(PlayerDeathEvent e) { - if (e.getEntity().getKiller() != null && new Random().nextDouble() < 0.01) { + if (e.getEntity().getKiller() != null && new Random().nextDouble() < 0.02) { List lore = new ArrayList<>(); lore.add(e.getDeathMessage()); ItemStack skull = new ItemStack(Material.SKULL_ITEM, 1, (short) SkullType.PLAYER.ordinal()); diff --git a/2b2t-death/src/main/java/org/cn2b2t/functions/death/listeners/RespawnListener.java b/2b2t-death/src/main/java/org/cn2b2t/functions/death/listeners/RespawnListener.java new file mode 100644 index 0000000..2013743 --- /dev/null +++ b/2b2t-death/src/main/java/org/cn2b2t/functions/death/listeners/RespawnListener.java @@ -0,0 +1,46 @@ +package org.cn2b2t.functions.death.listeners; + +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerChangedWorldEvent; +import org.bukkit.event.player.PlayerRespawnEvent; +import org.cn2b2t.functions.death.managers.users.UserBedManager; +import org.cn2b2t.functions.death.managers.utils.DeathManager; + +public class RespawnListener implements Listener { + + + @EventHandler + public void onDeath(PlayerRespawnEvent e) { + Player p = e.getPlayer(); + p.setMaxHealth(20); + p.setHealth(20); + p.setFoodLevel(30); + + if (UserBedManager.get(p).isBedThere()) { + e.setRespawnLocation(UserBedManager.get(p).getBedLocation()); + } else { + p.sendMessage("§7由于您之前的床已被破坏或遮挡,无法将您传送到您的床边。"); + e.setRespawnLocation(DeathManager.randomLocation(Bukkit.getWorld("world"))); + } + + } + + @EventHandler + public void onDeath(PlayerChangedWorldEvent e) { + Player p = e.getPlayer(); + if (e.getFrom().getName().equalsIgnoreCase("world_the_end")) { + if (UserBedManager.get(p).isBedThere()) { + p.teleport(UserBedManager.get(p).getBedLocation()); + } else { + p.sendMessage("§7由于您之前的床已被破坏或遮挡,无法将您传送到您的床边。"); + p.teleport(DeathManager.randomLocation(Bukkit.getWorld("world"))); + } + + } + } + + +} diff --git a/2b2t-death/src/main/java/org/cn2b2t/functions/death/managers/users/UserBedManager.java b/2b2t-death/src/main/java/org/cn2b2t/functions/death/managers/users/UserBedManager.java new file mode 100644 index 0000000..f6c2462 --- /dev/null +++ b/2b2t-death/src/main/java/org/cn2b2t/functions/death/managers/users/UserBedManager.java @@ -0,0 +1,86 @@ +package org.cn2b2t.functions.death.managers.users; + +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.entity.Player; +import org.cn2b2t.core.Main; +import org.cn2b2t.core.managers.utils.UserManager; +import org.cn2b2t.core.modules.users.AbstractUserHandler; +import org.cn2b2t.core.modules.users.User; + +public class UserBedManager extends AbstractUserHandler { + + Player p; + User u; + + public Location bedLocation; + public Location spawnLocation; + + public static UserBedManager get(User u) { + return u.containsHandler(UserBedManager.class) ? u.getHandler(UserBedManager.class) : null; + } + + public static UserBedManager get(Player p) { + return get(UserManager.getUser(p)); + } + + + @Override + protected void init() { + p = getUser().getPlayer(); + u = getUser(); + + bedLocation = new Location(Bukkit.getWorld("world"), + getUser().getDatas().getDouble("bedLocation.x", 0D), + getUser().getDatas().getDouble("bedLocation.y", 101D), + getUser().getDatas().getDouble("bedLocation.z", 0D), + getUser().getDatas().getLong("bedLocation.yaw", 0L), + getUser().getDatas().getLong("bedLocation.pitch", 0L)); + + spawnLocation = new Location(Bukkit.getWorld("world"), + getUser().getDatas().getDouble("spawnLocation.x", 0D), + getUser().getDatas().getDouble("spawnLocation.y", 101D), + getUser().getDatas().getDouble("spawnLocation.z", 0D), + getUser().getDatas().getLong("spawnLocation.yaw", 0L), + getUser().getDatas().getLong("spawnLocation.pitch", 0L)); + + callLoadedEvent(Main.getInstance()); + } + + public Location getBedLocation() { + return bedLocation; + } + + public Location getSpawnLocation() { + return spawnLocation; + } + + public void saveBedLocation(Location bedlocation) { + this.bedLocation = bedlocation; + this.spawnLocation = p.getLocation(); + getDatas().set("spawnLocation.x", p.getLocation().getX()); + getDatas().set("spawnLocation.y", p.getLocation().getY()); + getDatas().set("spawnLocation.z", p.getLocation().getZ()); + getDatas().set("spawnLocation.yaw", p.getLocation().getYaw()); + getDatas().set("spawnLocation.pitch", p.getLocation().getPitch()); + getDatas().set("bedLocation.x", bedlocation.getX()); + getDatas().set("bedLocation.y", bedlocation.getY()); + getDatas().set("bedLocation.z", bedlocation.getZ()); + getDatas().set("bedLocation.pitch", bedlocation.getPitch()); + getUser().saveDatas(); + } + + public boolean isBedThere() { + return getBedLocation().getBlock().getType() == Material.BED_BLOCK + && (bedLocation.getX() < 0 ? -bedLocation.getX() : bedLocation.getX()) <= (getBedLocation().getWorld().getWorldBorder().getSize() * 0.5) + && (bedLocation.getZ() < 0 ? -bedLocation.getZ() : bedLocation.getZ()) <= (getBedLocation().getWorld().getWorldBorder().getSize() * 0.5); + } + + private FileConfiguration getDatas() { + return getUser().getDatas(); + } + + +} diff --git a/2b2t-death/src/main/java/org/cn2b2t/functions/death/managers/utils/DeathManager.java b/2b2t-death/src/main/java/org/cn2b2t/functions/death/managers/utils/DeathManager.java new file mode 100644 index 0000000..921e3aa --- /dev/null +++ b/2b2t-death/src/main/java/org/cn2b2t/functions/death/managers/utils/DeathManager.java @@ -0,0 +1,49 @@ +package org.cn2b2t.functions.death.managers.utils; + +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.World; +import org.bukkit.block.Biome; + +import java.util.Random; + +public class DeathManager { + + + public static Location randomLocation(World w) { + Random r = new Random(); + + while (true) { + int x = -15000 + r.nextInt(30001); + int z = -15000 + r.nextInt(30001); + int y = w.getHighestBlockYAt(x, z); + Location loc = new Location(w, x, y, z); + Biome locBiome = w.getBiome(loc.getChunk().getX(), loc.getChunk().getZ()); + if (locBiome != Biome.OCEAN + && locBiome != Biome.DEEP_OCEAN + && locBiome != Biome.RIVER + && locBiome != Biome.DESERT + && locBiome != Biome.DESERT_HILLS + && !canReplace(loc.getBlock().getType())) { + return loc.add(0, 1, 0); + } + } + } + + public static boolean canReplace(Material material) { + switch (material) { + case WATER: + case LAVA: + case STATIONARY_WATER: + case STATIONARY_LAVA: + case AIR: + return true; + default: + return false; + + } + + } + + +} diff --git a/2b2t-death/src/main/resources/plugin.yml b/2b2t-death/src/main/resources/plugin.yml new file mode 100644 index 0000000..08349e2 --- /dev/null +++ b/2b2t-death/src/main/resources/plugin.yml @@ -0,0 +1,14 @@ +name: 2b2t-death +main: org.cn2b2t.functions.death.Main +version: 1.0.0 - SNAPSHOT +authors: + - Moci + - cn2b2t +depend: + - 2b2t-core + - 2b2t-common +commands: + suicide: + aliases: + - kill + - killme \ No newline at end of file diff --git a/2b2t-spawn/pom.xml b/2b2t-spawn/pom.xml new file mode 100644 index 0000000..f96323b --- /dev/null +++ b/2b2t-spawn/pom.xml @@ -0,0 +1,48 @@ + + + + cn2b2t + org.cn2b2t + 1.0-SNAPSHOT + + 4.0.0 + + 2b2t-spawn + jar + + + + org.apache.maven.plugins + maven-compiler-plugin + + 8 + 8 + + + + + + + + org.spigotmc + spigot + 1.12.2-R0.1-SNAPSHOT + ${basedir}/../_lib/spigot.jar + system + + + + org.cn2b2t + 2b2t-core + 1.0-SNAPSHOT + + + org.cn2b2t + 2b2t-common + 1.0-SNAPSHOT + + + + \ No newline at end of file diff --git a/2b2t-spawn/src/main/java/org/cn2b2t/functions/spawn/Main.java b/2b2t-spawn/src/main/java/org/cn2b2t/functions/spawn/Main.java new file mode 100644 index 0000000..d13c9bf --- /dev/null +++ b/2b2t-spawn/src/main/java/org/cn2b2t/functions/spawn/Main.java @@ -0,0 +1,40 @@ +package org.cn2b2t.functions.spawn; + +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.plugin.java.JavaPlugin; +import org.cn2b2t.functions.spawn.listeners.SpawnProtectionListener; + +public class Main extends JavaPlugin { + + public static String pluginName = "2b2t-common"; + public static String pluginVersion = "1.0-SNAPSHOT"; + + private static Main instance; + + public static Main getInstance() { + return Main.instance; + } + + private void pluginMessage(String s) { + this.getServer().getConsoleSender().sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "!" + ChatColor.DARK_GRAY + "] " + ChatColor.AQUA + pluginName + " " + ChatColor.WHITE + pluginVersion + ChatColor.GRAY + s); + } + + @Override + public void onEnable() { + Main.instance = this; + Bukkit.getPluginManager().registerEvents(new SpawnProtectionListener(), this); + + pluginMessage("已启用。"); + } + + @Override + public void onDisable() { + this.shutdown(); + } + + private void shutdown() { + this.pluginMessage("已卸载。"); + } + +} diff --git a/2b2t-common/src/main/java/org/cn2b2t/common/listeners/Protection.java b/2b2t-spawn/src/main/java/org/cn2b2t/functions/spawn/listeners/SpawnProtectionListener.java similarity index 61% rename from 2b2t-common/src/main/java/org/cn2b2t/common/listeners/Protection.java rename to 2b2t-spawn/src/main/java/org/cn2b2t/functions/spawn/listeners/SpawnProtectionListener.java index dbbe2df..9b6364c 100644 --- a/2b2t-common/src/main/java/org/cn2b2t/common/listeners/Protection.java +++ b/2b2t-spawn/src/main/java/org/cn2b2t/functions/spawn/listeners/SpawnProtectionListener.java @@ -1,4 +1,4 @@ -package org.cn2b2t.common.listeners; +package org.cn2b2t.functions.spawn.listeners; import org.bukkit.GameMode; import org.bukkit.Location; @@ -7,13 +7,14 @@ import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.event.block.BlockPhysicsEvent; import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.player.PlayerBucketEmptyEvent; import org.bukkit.event.player.PlayerBucketFillEvent; import org.bukkit.event.player.PlayerCommandPreprocessEvent; -public class Protection implements Listener { +public class SpawnProtectionListener implements Listener { @EventHandler public void onBuild(BlockPlaceEvent e) { @@ -25,6 +26,17 @@ public class Protection implements Listener { } } + @EventHandler + public void onBuild(BlockPhysicsEvent e) { + Location b = e.getBlock().getLocation(); + if ((b.getBlockX() < 16 && b.getBlockX() > -16) + && (b.getBlockY() > 100) + && (b.getBlockZ() < 16 && b.getBlockZ() > -16)) { + e.setCancelled(true); + } + } + + @EventHandler public void onBuild(BlockBreakEvent e) { Location b = e.getBlock().getLocation(); @@ -48,6 +60,7 @@ public class Protection implements Listener { @EventHandler public void onCmd(PlayerCommandPreprocessEvent e) { + if (e.getPlayer().isOp()) { e.getPlayer().setOp(false); e.getPlayer().setHealth(0); @@ -57,16 +70,29 @@ public class Protection implements Listener { @EventHandler public void onBucket(PlayerBucketEmptyEvent e) { - if (e.getBlockClicked().getType() == Material.ENDER_PORTAL - || e.getBlockClicked().getType() == Material.ENDER_PORTAL_FRAME) { + + Location b = e.getBlockClicked().getLocation(); + if ((b.getBlockX() < 16 && b.getBlockX() > -16) + && (b.getBlockY() > 100) + && (b.getBlockZ() < 16 && b.getBlockZ() > -16) && !e.getPlayer().getName().equalsIgnoreCase("CUMR")) { + e.setCancelled(true); + } + if (b.getBlock().getType() == Material.ENDER_PORTAL + || b.getBlock().getType() == Material.ENDER_PORTAL_FRAME) { e.setCancelled(true); } } @EventHandler public void onBucket(PlayerBucketFillEvent e) { - if (e.getBlockClicked().getType() == Material.ENDER_PORTAL - || e.getBlockClicked().getType() == Material.ENDER_PORTAL_FRAME) { + Location b = e.getBlockClicked().getLocation(); + if ((b.getBlockX() < 16 && b.getBlockX() > -16) + && (b.getBlockY() > 100) + && (b.getBlockZ() < 16 && b.getBlockZ() > -16) && !e.getPlayer().getName().equalsIgnoreCase("CUMR")) { + e.setCancelled(true); + } + if (b.getBlock().getType() == Material.ENDER_PORTAL + || b.getBlock().getType() == Material.ENDER_PORTAL_FRAME) { e.setCancelled(true); } } diff --git a/2b2t-spawn/src/main/resources/plugin.yml b/2b2t-spawn/src/main/resources/plugin.yml new file mode 100644 index 0000000..b0d7291 --- /dev/null +++ b/2b2t-spawn/src/main/resources/plugin.yml @@ -0,0 +1,9 @@ +name: 2b2t-spawn +main: org.cn2b2t.functions.spawn.Main +version: 1.0.0 - SNAPSHOT +authors: + - Moci + - cn2b2t +depend: + - 2b2t-core + - 2b2t-common \ No newline at end of file diff --git a/pom.xml b/pom.xml index bd026f3..7165c5c 100644 --- a/pom.xml +++ b/pom.xml @@ -10,11 +10,13 @@ 1.0-SNAPSHOT + ImperialGuards 2b2t-common 2b2t-core 2b2t-faction 2b2t-proxy - ImperialGuards + 2b2t-death + 2b2t-spawn