mirror of
https://github.com/CarmJos/cn2b2t-project.git
synced 2024-09-19 22:05:45 +00:00
代码重构
This commit is contained in:
parent
b085daec42
commit
e421aefdf9
@ -6,12 +6,17 @@
|
|||||||
<sourceOutputDir name="target/generated-sources/annotations" />
|
<sourceOutputDir name="target/generated-sources/annotations" />
|
||||||
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
|
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
|
||||||
<outputRelativeToContentRoot value="true" />
|
<outputRelativeToContentRoot value="true" />
|
||||||
|
<module name="2b2t-spawn" />
|
||||||
<module name="ImperialGuards" />
|
<module name="ImperialGuards" />
|
||||||
|
<module name="2b2t-common" />
|
||||||
<module name="2b2t-proxy" />
|
<module name="2b2t-proxy" />
|
||||||
<module name="2b2t-core" />
|
<module name="2b2t-core" />
|
||||||
|
<module name="2b2t-death" />
|
||||||
<module name="2b2t-faction" />
|
<module name="2b2t-faction" />
|
||||||
<module name="2b2t-common" />
|
|
||||||
</profile>
|
</profile>
|
||||||
</annotationProcessing>
|
</annotationProcessing>
|
||||||
|
<bytecodeTargetLevel>
|
||||||
|
<module name="2b2t-donation" target="8" />
|
||||||
|
</bytecodeTargetLevel>
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
@ -6,10 +6,16 @@
|
|||||||
<file url="file://$PROJECT_DIR$/2b2t-common/src/main/resources" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/2b2t-common/src/main/resources" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/2b2t-core/src/main/java" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/2b2t-core/src/main/java" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/2b2t-core/src/main/resources" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/2b2t-core/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/2b2t-death/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/2b2t-death/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/2b2t-donation/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/2b2t-donation/src/main/resources" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/2b2t-faction/src/main/java" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/2b2t-faction/src/main/java" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/2b2t-faction/src/main/resources" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/2b2t-faction/src/main/resources" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/2b2t-proxy/src/main/java" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/2b2t-proxy/src/main/java" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/2b2t-proxy/src/main/resources" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/2b2t-proxy/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/2b2t-spawn/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/2b2t-spawn/src/main/resources" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/ImperialGuards/src/main/java" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/ImperialGuards/src/main/java" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/ImperialGuards/src/main/resources" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/ImperialGuards/src/main/resources" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/_lib/Cord.jar" charset="GBK" />
|
<file url="file://$PROJECT_DIR$/_lib/Cord.jar" charset="GBK" />
|
||||||
|
@ -7,6 +7,11 @@
|
|||||||
<option value="$PROJECT_DIR$/pom.xml" />
|
<option value="$PROJECT_DIR$/pom.xml" />
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
|
<option name="ignoredFiles">
|
||||||
|
<set>
|
||||||
|
<option value="$PROJECT_DIR$/2b2t-donation/pom.xml" />
|
||||||
|
</set>
|
||||||
|
</option>
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||||
<output url="file://$PROJECT_DIR$/out" />
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
|
@ -4,13 +4,14 @@ import org.bukkit.Bukkit;
|
|||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
import org.cn2b2t.common.commands.*;
|
import org.cn2b2t.common.commands.*;
|
||||||
|
import org.cn2b2t.common.functions.ProfileData;
|
||||||
import org.cn2b2t.common.listeners.*;
|
import org.cn2b2t.common.listeners.*;
|
||||||
import org.cn2b2t.common.managers.DataManager;
|
import org.cn2b2t.common.managers.DataManager;
|
||||||
import org.cn2b2t.common.managers.DonateManager;
|
import org.cn2b2t.common.managers.DonateManager;
|
||||||
import org.cn2b2t.common.managers.UserDataManager;
|
|
||||||
import org.cn2b2t.common.managers.WorldBorderManager;
|
import org.cn2b2t.common.managers.WorldBorderManager;
|
||||||
import org.cn2b2t.common.runnables.BoardCastRunnable;
|
import org.cn2b2t.common.runnables.BoardCastRunnable;
|
||||||
import org.cn2b2t.common.runnables.RestartRunnable;
|
import org.cn2b2t.common.runnables.RestartRunnable;
|
||||||
|
import org.cn2b2t.core.managers.utils.UserManager;
|
||||||
|
|
||||||
public class Main extends JavaPlugin {
|
public class Main extends JavaPlugin {
|
||||||
|
|
||||||
@ -34,15 +35,6 @@ public class Main extends JavaPlugin {
|
|||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
Main.instance = this;
|
Main.instance = this;
|
||||||
inits();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDisable() {
|
|
||||||
this.shutdown();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void inits() {
|
|
||||||
regCmds();
|
regCmds();
|
||||||
regListeners();
|
regListeners();
|
||||||
pluginMessage("已启用。");
|
pluginMessage("已启用。");
|
||||||
@ -50,21 +42,23 @@ public class Main extends JavaPlugin {
|
|||||||
saveDefaultConfig();
|
saveDefaultConfig();
|
||||||
reloadConfig();
|
reloadConfig();
|
||||||
DataManager.init();
|
DataManager.init();
|
||||||
UserDataManager.init();
|
|
||||||
WorldBorderManager.init();
|
WorldBorderManager.init();
|
||||||
DonateManager.init();
|
DonateManager.init();
|
||||||
|
|
||||||
|
UserManager.removeHandler(ProfileData.class);
|
||||||
|
|
||||||
new BoardCastRunnable();
|
new BoardCastRunnable();
|
||||||
new RestartRunnable(21600);
|
new RestartRunnable(21600);
|
||||||
|
|
||||||
// BungeeTabListPlusBukkitAPI.registerVariable(this, new Serverprefix());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void shutdown() {
|
@Override
|
||||||
|
public void onDisable() {
|
||||||
this.pluginMessage("已卸载。");
|
this.pluginMessage("已卸载。");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void regCmds() {
|
private void regCmds() {
|
||||||
this.getCommand("suicide").setExecutor(new Suicide());
|
|
||||||
this.getCommand("delay").setExecutor(new Delay());
|
this.getCommand("delay").setExecutor(new Delay());
|
||||||
this.getCommand("help").setExecutor(new Help());
|
this.getCommand("help").setExecutor(new Help());
|
||||||
this.getCommand("donate").setExecutor(new Donate());
|
this.getCommand("donate").setExecutor(new Donate());
|
||||||
@ -79,17 +73,10 @@ public class Main extends JavaPlugin {
|
|||||||
|
|
||||||
private void regListeners() {
|
private void regListeners() {
|
||||||
Bukkit.getPluginManager().registerEvents(new QuitListener(), this);
|
Bukkit.getPluginManager().registerEvents(new QuitListener(), this);
|
||||||
Bukkit.getPluginManager().registerEvents(new RespawnListener(), this);
|
|
||||||
Bukkit.getPluginManager().registerEvents(new LoginListener(), this);
|
Bukkit.getPluginManager().registerEvents(new LoginListener(), this);
|
||||||
Bukkit.getPluginManager().registerEvents(new ChatListener(), this);
|
Bukkit.getPluginManager().registerEvents(new ChatListener(), this);
|
||||||
Bukkit.getPluginManager().registerEvents(new Protection(), this);
|
Bukkit.getPluginManager().registerEvents(new ColorPatchListener(), 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 ScoreboardListener(), this);
|
Bukkit.getPluginManager().registerEvents(new ScoreboardListener(), this);
|
||||||
Bukkit.getPluginManager().registerEvents(new UnfairListener(), this);
|
|
||||||
Bukkit.getPluginManager().registerEvents(new DeathListener(), this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,9 +5,9 @@ import org.bukkit.command.Command;
|
|||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.cn2b2t.common.Main;
|
|
||||||
import org.cn2b2t.common.functions.ProfileData;
|
import org.cn2b2t.common.functions.ProfileData;
|
||||||
import org.cn2b2t.common.runnables.RestartRunnable;
|
import org.cn2b2t.common.runnables.RestartRunnable;
|
||||||
|
import org.cn2b2t.core.utils.ColorParser;
|
||||||
|
|
||||||
public class Delay implements CommandExecutor {
|
public class Delay implements CommandExecutor {
|
||||||
|
|
||||||
@ -18,23 +18,23 @@ public class Delay implements CommandExecutor {
|
|||||||
if (cmd.getName().equalsIgnoreCase("delay")) {
|
if (cmd.getName().equalsIgnoreCase("delay")) {
|
||||||
if (sender instanceof Player) {
|
if (sender instanceof Player) {
|
||||||
Player p = (Player) sender;
|
Player p = (Player) sender;
|
||||||
if (ProfileData.getProfileData(p).getMonthlyDonate() > 10) {
|
if (ProfileData.get(p).getMonthlyDonate() > 10) {
|
||||||
if (!hasDelayed) {
|
if (!hasDelayed) {
|
||||||
RestartRunnable.count = RestartRunnable.count + 600;
|
RestartRunnable.count = RestartRunnable.count + 600;
|
||||||
hasDelayed = true;
|
hasDelayed = true;
|
||||||
Bukkit.getOnlinePlayers().forEach(player -> player.sendMessage(Main.color(
|
Bukkit.getOnlinePlayers().forEach(player -> player.sendMessage(ColorParser.parse(
|
||||||
"&6-&e--&8----------------------------&e--&6-\n" +
|
"&6-&e--&8----------------------------&e--&6-\n" +
|
||||||
"&7服务器重启事项已被玩家 &e" + p.getName() + " &7推迟10分钟。\n" +
|
"&7服务器重启事项已被玩家 &e" + p.getName() + " &7推迟10分钟。\n" +
|
||||||
"&6-&e--&8----------------------------&e--&6-"
|
"&6-&e--&8----------------------------&e--&6-"
|
||||||
)));
|
)));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
p.sendMessage(Main.color("&7本功能只有至今一个月内赞助&e超过10元&7的玩家才可使用。\n" +
|
p.sendMessage(ColorParser.parse("&7本功能只有至今一个月内赞助&e超过10元&7的玩家才可使用。\n" +
|
||||||
"&7输入 &6/donate &7,查看赞助方法,一起维护这个服务器吧!"));
|
"&7输入 &6/donate &7,查看赞助方法,一起维护这个服务器吧!"));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
RestartRunnable.count = RestartRunnable.count + 3600;
|
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" +
|
"&6-&e--&8----------------------------&e--&6-\n" +
|
||||||
"&7服务器重启事项已被控制台推迟一小时。\n" +
|
"&7服务器重启事项已被控制台推迟一小时。\n" +
|
||||||
"&6-&e--&8----------------------------&e--&6-"
|
"&6-&e--&8----------------------------&e--&6-"
|
||||||
|
@ -9,9 +9,10 @@ import org.bukkit.command.TabCompleter;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.util.StringUtil;
|
import org.bukkit.util.StringUtil;
|
||||||
import org.cn2b2t.common.Main;
|
import org.cn2b2t.common.Main;
|
||||||
|
import org.cn2b2t.common.functions.ProfileData;
|
||||||
import org.cn2b2t.common.managers.DataManager;
|
import org.cn2b2t.common.managers.DataManager;
|
||||||
import org.cn2b2t.common.managers.DonateManager;
|
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.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -41,7 +42,7 @@ public class Donate implements CommandExecutor, TabCompleter {
|
|||||||
String playername = args[1];
|
String playername = args[1];
|
||||||
String order = args[2];
|
String order = args[2];
|
||||||
String price = args[3];
|
String price = args[3];
|
||||||
Bukkit.getOnlinePlayers().forEach(p -> p.sendMessage(Main.color(
|
Bukkit.getOnlinePlayers().forEach(p -> p.sendMessage(ColorParser.parse(
|
||||||
"&6-&e--&8----------------------------&e--&6-\n" +
|
"&6-&e--&8----------------------------&e--&6-\n" +
|
||||||
"&7感谢 &6&l" + playername + "&7为本服助力 &6" + price + "元 &7!\n" +
|
"&7感谢 &6&l" + playername + "&7为本服助力 &6" + price + "元 &7!\n" +
|
||||||
"&7本服仅由玩家赞助维持,输入 &6/donate &7查看更多。\n" +
|
"&7本服仅由玩家赞助维持,输入 &6/donate &7查看更多。\n" +
|
||||||
@ -50,7 +51,7 @@ public class Donate implements CommandExecutor, TabCompleter {
|
|||||||
DataManager.saveData(Bukkit.getPlayer(playername), order, (int) Double.parseDouble(price));
|
DataManager.saveData(Bukkit.getPlayer(playername), order, (int) Double.parseDouble(price));
|
||||||
|
|
||||||
}
|
}
|
||||||
sender.sendMessage(Main.color(" \n本月赞助 &6" + DonateManager.monthly + "\n" +
|
sender.sendMessage(ColorParser.parse(" \n本月赞助 &6" + DonateManager.monthly + "\n" +
|
||||||
"总共收到 &6" + DonateManager.total));
|
"总共收到 &6" + DonateManager.total));
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@ -59,8 +60,8 @@ public class Donate implements CommandExecutor, TabCompleter {
|
|||||||
private static void help(Player p, int i) {
|
private static void help(Player p, int i) {
|
||||||
switch (i) {
|
switch (i) {
|
||||||
case 1: {
|
case 1: {
|
||||||
ProfileData profileData = ProfileData.getProfileData(p);
|
ProfileData profileData = ProfileData.get(p);
|
||||||
p.sendMessage(Main.color("&6-&e--&8----------------------------&e--&6-\n" +
|
p.sendMessage(ColorParser.parse("&6-&e--&8----------------------------&e--&6-\n" +
|
||||||
"&7您总共赞助了 &6" + profileData.getTotalDonate() + " &7元;\n" +
|
"&7您总共赞助了 &6" + profileData.getTotalDonate() + " &7元;\n" +
|
||||||
"&7至今一个月内,您为服务器提供了 &6" + profileData.getMonthlyDonate() + " &7元资金。\n" +
|
"&7至今一个月内,您为服务器提供了 &6" + profileData.getMonthlyDonate() + " &7元资金。\n" +
|
||||||
"&7总共为服务器续命 &6" + profileData.getTotalDonate() / 50 + " &7天。\n" +
|
"&7总共为服务器续命 &6" + profileData.getTotalDonate() / 50 + " &7天。\n" +
|
||||||
@ -69,7 +70,7 @@ public class Donate implements CommandExecutor, TabCompleter {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 2: {
|
case 2: {
|
||||||
p.sendMessage(Main.color("&6-&e--&8----------------------------&e--&6-\n" +
|
p.sendMessage(ColorParser.parse("&6-&e--&8----------------------------&e--&6-\n" +
|
||||||
"&7本服&c无管理维护,仅由玩家赞助维持&7。\n" +
|
"&7本服&c无管理维护,仅由玩家赞助维持&7。\n" +
|
||||||
"&7所收赞助钱款自动化处理,全部转账到服务商账户中。\n" +
|
"&7所收赞助钱款自动化处理,全部转账到服务商账户中。\n" +
|
||||||
"&7若您还未有相应消费能力,&c谢绝赞助,心意已领&7。\n" +
|
"&7若您还未有相应消费能力,&c谢绝赞助,心意已领&7。\n" +
|
||||||
@ -80,7 +81,7 @@ public class Donate implements CommandExecutor, TabCompleter {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default: {
|
default: {
|
||||||
p.sendMessage(Main.color("&6-&e--&8----------------------------&e--&6-\n" +
|
p.sendMessage(ColorParser.parse("&6-&e--&8----------------------------&e--&6-\n" +
|
||||||
"&7本服自2019年9月1日起,开始接受玩家资助。\n" +
|
"&7本服自2019年9月1日起,开始接受玩家资助。\n" +
|
||||||
"&7本月获得赞助 &6" + DonateManager.monthly + "元&7,总共获得 &6" + DonateManager.total + "元&7。\n" +
|
"&7本月获得赞助 &6" + DonateManager.monthly + "元&7,总共获得 &6" + DonateManager.total + "元&7。\n" +
|
||||||
"&7查看介绍 &6/donate info\n" +
|
"&7查看介绍 &6/donate info\n" +
|
||||||
|
@ -4,13 +4,14 @@ import org.bukkit.command.Command;
|
|||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.cn2b2t.common.Main;
|
import org.cn2b2t.common.Main;
|
||||||
|
import org.cn2b2t.core.utils.ColorParser;
|
||||||
|
|
||||||
public class Help implements CommandExecutor {
|
public class Help implements CommandExecutor {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
||||||
if (cmd.getName().equalsIgnoreCase("help")) {
|
if (cmd.getName().equalsIgnoreCase("help")) {
|
||||||
sender.sendMessage(Main.color(
|
sender.sendMessage(ColorParser.parse(
|
||||||
"&6-&e--&8----------------------------&e--&6-\n" +
|
"&6-&e--&8----------------------------&e--&6-\n" +
|
||||||
"&7查看服务器版本 &6/version\n" +
|
"&7查看服务器版本 &6/version\n" +
|
||||||
"&7屏蔽玩家 &6/ignore <ID>\n" +
|
"&7屏蔽玩家 &6/ignore <ID>\n" +
|
||||||
|
@ -9,8 +9,8 @@ import org.bukkit.command.TabCompleter;
|
|||||||
import org.bukkit.entity.HumanEntity;
|
import org.bukkit.entity.HumanEntity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.util.StringUtil;
|
import org.bukkit.util.StringUtil;
|
||||||
import org.cn2b2t.common.Main;
|
|
||||||
import org.cn2b2t.common.functions.ProfileData;
|
import org.cn2b2t.common.functions.ProfileData;
|
||||||
|
import org.cn2b2t.core.utils.ColorParser;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@ -36,7 +36,7 @@ public class Ignore implements CommandExecutor, TabCompleter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void help(Player p) {
|
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/ignore &8<&6ID&8>\n" +
|
||||||
"&7注意,每次屏蔽退出服务器后即失效,若需要请再次屏蔽。" +
|
"&7注意,每次屏蔽退出服务器后即失效,若需要请再次屏蔽。" +
|
||||||
"&6-&e--&8----------------------------&e--&6-"));
|
"&6-&e--&8----------------------------&e--&6-"));
|
||||||
@ -44,13 +44,13 @@ public class Ignore implements CommandExecutor, TabCompleter {
|
|||||||
|
|
||||||
private static void ignore(Player p, Player target) {
|
private static void ignore(Player p, Player target) {
|
||||||
if (p != 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已成功屏蔽 &2" + target.getName() + "&7 !\n" +
|
||||||
"&7注意,本次屏蔽退出服务器后即失效,若需要请再次屏蔽。" +
|
"&7注意,本次屏蔽退出服务器后即失效,若需要请再次屏蔽。" +
|
||||||
"&6-&e--&8----------------------------&e--&6-"));
|
"&6-&e--&8----------------------------&e--&6-"));
|
||||||
ProfileData.getProfileData(p).ignorePlayer(target.getUniqueId());
|
ProfileData.get(p).ignorePlayer(target.getUniqueId());
|
||||||
} else {
|
} else {
|
||||||
p.sendMessage(Main.color("&7您无法屏蔽您自己!"));
|
p.sendMessage(ColorParser.parse("&7您无法屏蔽您自己!"));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -7,8 +7,8 @@ import org.bukkit.command.CommandSender;
|
|||||||
import org.bukkit.command.TabCompleter;
|
import org.bukkit.command.TabCompleter;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.util.StringUtil;
|
import org.bukkit.util.StringUtil;
|
||||||
import org.cn2b2t.common.Main;
|
|
||||||
import org.cn2b2t.common.functions.ProfileData;
|
import org.cn2b2t.common.functions.ProfileData;
|
||||||
|
import org.cn2b2t.core.utils.ColorParser;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -24,11 +24,11 @@ public class Settings implements CommandExecutor, TabCompleter {
|
|||||||
boolean value = args[1].equalsIgnoreCase("true");
|
boolean value = args[1].equalsIgnoreCase("true");
|
||||||
|
|
||||||
if (aim.equalsIgnoreCase("showScoreboard") || aim.equalsIgnoreCase("ssb")) {
|
if (aim.equalsIgnoreCase("showScoreboard") || aim.equalsIgnoreCase("ssb")) {
|
||||||
ProfileData.getProfileData(p).setShowScoreboard(value);
|
ProfileData.get(p).setShowScoreboard(value);
|
||||||
} else if (aim.equalsIgnoreCase("showDeathMessages") || aim.equalsIgnoreCase("sdm")) {
|
} else if (aim.equalsIgnoreCase("showDeathMessages") || aim.equalsIgnoreCase("sdm")) {
|
||||||
ProfileData.getProfileData(p).setShowDeathMessages(value);
|
ProfileData.get(p).setShowDeathMessages(value);
|
||||||
} else if (aim.equalsIgnoreCase("showJoinAndLeaveAlerts") || aim.equalsIgnoreCase("sjaqa")) {
|
} else if (aim.equalsIgnoreCase("showJoinAndLeaveAlerts") || aim.equalsIgnoreCase("sjaqa")) {
|
||||||
ProfileData.getProfileData(p).setShowJoinAndLeaveAlerts(value);
|
ProfileData.get(p).setShowJoinAndLeaveAlerts(value);
|
||||||
} else {
|
} else {
|
||||||
help(p);
|
help(p);
|
||||||
}
|
}
|
||||||
@ -40,7 +40,7 @@ public class Settings implements CommandExecutor, TabCompleter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void help(Player p) {
|
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开关积分榜\n" +
|
"&7开关积分榜\n" +
|
||||||
" &6/settings showScoreboard true/false\n" +
|
" &6/settings showScoreboard true/false\n" +
|
||||||
"&7开关死亡消息\n" +
|
"&7开关死亡消息\n" +
|
||||||
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
@ -7,8 +7,8 @@ import org.bukkit.command.CommandSender;
|
|||||||
import org.bukkit.command.TabCompleter;
|
import org.bukkit.command.TabCompleter;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.util.StringUtil;
|
import org.bukkit.util.StringUtil;
|
||||||
import org.cn2b2t.common.Main;
|
|
||||||
import org.cn2b2t.common.functions.ProfileData;
|
import org.cn2b2t.common.functions.ProfileData;
|
||||||
|
import org.cn2b2t.core.utils.ColorParser;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -22,11 +22,11 @@ public class Toggle implements CommandExecutor, TabCompleter {
|
|||||||
if (args.length >= 1) {
|
if (args.length >= 1) {
|
||||||
String aim = args[0];
|
String aim = args[0];
|
||||||
if (aim.equalsIgnoreCase("scoreboard") || aim.equalsIgnoreCase("sb")) {
|
if (aim.equalsIgnoreCase("scoreboard") || aim.equalsIgnoreCase("sb")) {
|
||||||
ProfileData.getProfileData(p).setShowScoreboard(!ProfileData.getProfileData(p).showScoreboard);
|
ProfileData.get(p).setShowScoreboard(!ProfileData.get(p).showScoreboard);
|
||||||
} else if (aim.equalsIgnoreCase("deathmessages") || aim.equalsIgnoreCase("dm")) {
|
} else if (aim.equalsIgnoreCase("deathmessages") || aim.equalsIgnoreCase("dm")) {
|
||||||
ProfileData.getProfileData(p).setShowDeathMessages(!ProfileData.getProfileData(p).showDeathMessages);
|
ProfileData.get(p).setShowDeathMessages(!ProfileData.get(p).showDeathMessages);
|
||||||
} else if (aim.equalsIgnoreCase("joinandquitalerts") || aim.equalsIgnoreCase("jaqa")) {
|
} else if (aim.equalsIgnoreCase("joinandquitalerts") || aim.equalsIgnoreCase("jaqa")) {
|
||||||
ProfileData.getProfileData(p).setShowJoinAndLeaveAlerts(!ProfileData.getProfileData(p).showJoinAndLeaveAlerts);
|
ProfileData.get(p).setShowJoinAndLeaveAlerts(!ProfileData.get(p).showJoinAndLeaveAlerts);
|
||||||
} else {
|
} else {
|
||||||
help(p);
|
help(p);
|
||||||
}
|
}
|
||||||
@ -40,7 +40,7 @@ public class Toggle implements CommandExecutor, TabCompleter {
|
|||||||
// /toggle joinandquitmessages / jaqm
|
// /toggle joinandquitmessages / jaqm
|
||||||
|
|
||||||
private static void help(Player p) {
|
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/toggle scoreboard\n" +
|
"&7开关积分榜 &6/toggle scoreboard\n" +
|
||||||
"&7开关死亡消息 &6/toggle deathmessages\n" +
|
"&7开关死亡消息 &6/toggle deathmessages\n" +
|
||||||
"&7开关玩家加入、退出提示信息\n" +
|
"&7开关玩家加入、退出提示信息\n" +
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
package org.cn2b2t.common.enums;
|
|
||||||
|
|
||||||
public enum LogType {
|
|
||||||
CHAT,
|
|
||||||
JOIN,
|
|
||||||
QUIT,
|
|
||||||
AC,
|
|
||||||
COMMAND
|
|
||||||
}
|
|
@ -1,23 +1,30 @@
|
|||||||
package org.cn2b2t.common.functions;
|
package org.cn2b2t.common.functions;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.Location;
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.cn2b2t.common.listeners.ScoreboardListener;
|
import org.cn2b2t.common.listeners.ScoreboardListener;
|
||||||
import org.cn2b2t.common.managers.DataManager;
|
import org.cn2b2t.common.managers.DataManager;
|
||||||
import org.cn2b2t.common.managers.DonateManager;
|
import org.cn2b2t.common.managers.DonateManager;
|
||||||
import org.cn2b2t.common.managers.ScoreboardManager;
|
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.ArrayList;
|
||||||
import java.util.*;
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
public class ProfileData {
|
public class ProfileData extends AbstractUserHandler {
|
||||||
|
|
||||||
public static Map<Player, ProfileData> 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 Player p;
|
||||||
|
|
||||||
public double totalDonate;
|
public double totalDonate;
|
||||||
public double monthlyDonate;
|
public double monthlyDonate;
|
||||||
@ -27,44 +34,27 @@ public class ProfileData {
|
|||||||
public boolean showScoreboard;
|
public boolean showScoreboard;
|
||||||
public boolean showJoinAndLeaveAlerts;
|
public boolean showJoinAndLeaveAlerts;
|
||||||
|
|
||||||
public Location bedLocation;
|
@Override
|
||||||
public Location spawnLocation;
|
protected void init() {
|
||||||
|
this.p = getUser().getPlayer();
|
||||||
public ProfileData(Player p) {
|
|
||||||
this.player = p;
|
|
||||||
|
|
||||||
totalDonate = DataManager.getTotalDonate(p.getUniqueId());
|
totalDonate = DataManager.getTotalDonate(p.getUniqueId());
|
||||||
monthlyDonate = DataManager.getDonateInAMonth(p.getUniqueId());
|
monthlyDonate = DataManager.getDonateInAMonth(p.getUniqueId());
|
||||||
|
|
||||||
ignoredPlayers = new ArrayList<>();
|
ignoredPlayers = new ArrayList<>();
|
||||||
// UserDataManager.getDatas().getStringList(p.getUniqueId().toString() + ".ingnoredPlayers").forEach(s -> ignoredPlayers.add(UUID.fromString(s)));
|
// UserManager.getUser(p).getDatas().getStringList(p.getUniqueId().toString() + ".ingnoredPlayers").forEach(s -> ignoredPlayers.add(UUID.fromString(s)));
|
||||||
|
|
||||||
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);
|
|
||||||
|
|
||||||
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));
|
|
||||||
|
|
||||||
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));
|
|
||||||
|
|
||||||
|
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getMonthlyDonate() {
|
public double getMonthlyDonate() {
|
||||||
return DonateManager.getPlayerMonthlyPay(player);
|
return DonateManager.getPlayerMonthlyPay(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getTotalDonate() {
|
public double getTotalDonate() {
|
||||||
return DonateManager.getPlayerTotalPay(player);
|
return DonateManager.getPlayerTotalPay(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<UUID> getIgnoredPlayers() {
|
public List<UUID> getIgnoredPlayers() {
|
||||||
@ -72,14 +62,14 @@ public class ProfileData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isIgnored(UUID uuid) {
|
public boolean isIgnored(UUID uuid) {
|
||||||
return ignoredPlayers.contains(uuid);
|
return getIgnoredPlayers().contains(uuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ignorePlayer(UUID uuid) {
|
public void ignorePlayer(UUID uuid) {
|
||||||
ignoredPlayers.add(uuid);
|
ignoredPlayers.add(uuid);
|
||||||
// UserDataManager.getDatas().set(player.getUniqueId().toString() + ".ingnoredPlayers", ignoredPlayers);
|
// UserManager.getUser(p).getDatas().set("ingnoredPlayers", ignoredPlayers);
|
||||||
// try {
|
// try {
|
||||||
// UserDataManager.getDatas().save(UserDataManager.getConfigfile());
|
// UserManager.getUser(p).getDatas().save(UserManager.getUser(p).getConfigfile());
|
||||||
// } catch (IOException e) {
|
// } catch (IOException e) {
|
||||||
// e.printStackTrace();
|
// e.printStackTrace();
|
||||||
// }
|
// }
|
||||||
@ -87,9 +77,9 @@ public class ProfileData {
|
|||||||
|
|
||||||
// public void unignorePlayer(UUID uuid) {
|
// public void unignorePlayer(UUID uuid) {
|
||||||
// ignoredPlayers.remove(uuid);
|
// ignoredPlayers.remove(uuid);
|
||||||
// UserDataManager.getDatas().set(player.getUniqueId().toString() + ".ingnoredPlayers", ignoredPlayers);
|
// UserManager.getUser(p).getDatas().set("ingnoredPlayers", ignoredPlayers);
|
||||||
// try {
|
// try {
|
||||||
// UserDataManager.getDatas().save(UserDataManager.getConfigfile());
|
// UserManager.getUser(p).getDatas().save(UserManager.getUser(p).getConfigfile());
|
||||||
// } catch (IOException e) {
|
// } catch (IOException e) {
|
||||||
// e.printStackTrace();
|
// e.printStackTrace();
|
||||||
// }
|
// }
|
||||||
@ -102,80 +92,34 @@ public class ProfileData {
|
|||||||
|
|
||||||
public void setShowDeathMessages(boolean showDeathMessages) {
|
public void setShowDeathMessages(boolean showDeathMessages) {
|
||||||
this.showDeathMessages = showDeathMessages;
|
this.showDeathMessages = showDeathMessages;
|
||||||
UserDataManager.getDatas().set(player.getUniqueId().toString() + ".settings.showdeathmessages", showDeathMessages);
|
UserManager.getUser(p).getDatas().set("settings.showdeathmessages", showDeathMessages);
|
||||||
try {
|
|
||||||
UserDataManager.getDatas().save(UserDataManager.getConfigfile());
|
UserManager.getUser(p).saveDatas();
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setShowJoinAndLeaveAlerts(boolean showJoinAndLeaveAlerts) {
|
public void setShowJoinAndLeaveAlerts(boolean showJoinAndLeaveAlerts) {
|
||||||
this.showJoinAndLeaveAlerts = showJoinAndLeaveAlerts;
|
this.showJoinAndLeaveAlerts = showJoinAndLeaveAlerts;
|
||||||
UserDataManager.getDatas().set(player.getUniqueId().toString() + ".settings.showJoinAndLeaveAlerts", showJoinAndLeaveAlerts);
|
UserManager.getUser(p).getDatas().set("settings.showJoinAndLeaveAlerts", showJoinAndLeaveAlerts);
|
||||||
try {
|
|
||||||
UserDataManager.getDatas().save(UserDataManager.getConfigfile());
|
UserManager.getUser(p).saveDatas();
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setShowScoreboard(boolean showScoreboard) {
|
public void setShowScoreboard(boolean showScoreboard) {
|
||||||
if (showScoreboard && !this.showScoreboard) {
|
if (showScoreboard && !this.showScoreboard) {
|
||||||
ScoreboardListener.addScoreboard(player);
|
ScoreboardListener.addScoreboard(p);
|
||||||
} else if (ScoreboardManager.scoreboards.containsKey(player)) {
|
} else if (ScoreboardManager.scoreboards.containsKey(p)) {
|
||||||
ScoreboardManager.scoreboards.get(player).destroy();
|
ScoreboardManager.scoreboards.get(p).destroy();
|
||||||
ScoreboardManager.scoreboards.remove(player);
|
ScoreboardManager.scoreboards.remove(p);
|
||||||
}
|
}
|
||||||
this.showScoreboard = showScoreboard;
|
this.showScoreboard = showScoreboard;
|
||||||
UserDataManager.getDatas().set(player.getUniqueId().toString() + ".settings.showScoreboard", showScoreboard);
|
UserManager.getUser(p).getDatas().set("settings.showScoreboard", showScoreboard);
|
||||||
try {
|
|
||||||
UserDataManager.getDatas().save(UserDataManager.getConfigfile());
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
UserManager.getUser(p).saveDatas();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getPrefix() {
|
public String getPrefix() {
|
||||||
return monthlyDonate >= 50 ? "§e§l" : totalDonate > 0 ? "§e" : "§6";
|
return monthlyDonate >= 50 ? "§e§l" : totalDonate > 0 ? "§e" : "§6";
|
||||||
}
|
}
|
||||||
|
|
||||||
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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -2,13 +2,12 @@ package org.cn2b2t.common.listeners;
|
|||||||
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||||
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
import org.cn2b2t.common.Main;
|
import org.cn2b2t.common.Main;
|
||||||
import org.cn2b2t.common.functions.ProfileData;
|
import org.cn2b2t.common.functions.ProfileData;
|
||||||
|
import org.cn2b2t.core.utils.ColorParser;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
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('&', "&f您的说话速度太快,每次发言请至少等待3秒。"));
|
||||||
e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', "&6--&e-&f-----------------------------&e-&6--"));
|
e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', "&6--&e-&f-----------------------------&e-&6--"));
|
||||||
} else if (messages.containsKey(name) && messages.get(name)
|
} else if (messages.containsKey(name) && messages.get(name)
|
||||||
.equalsIgnoreCase(message
|
.equalsIgnoreCase(removeUseless(message))) {
|
||||||
.replaceAll("。", "")
|
|
||||||
.replaceAll(" ", "")
|
|
||||||
.replaceAll("!", "")
|
|
||||||
.replaceAll("!", "")
|
|
||||||
.replaceAll("?", ""))) {
|
|
||||||
e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', "&6--&e-&f-----------------------------&e-&6--"));
|
e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', "&6--&e-&f-----------------------------&e-&6--"));
|
||||||
e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', "&f请不要重复说相同的内容。"));
|
e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', "&f请不要重复说相同的内容。"));
|
||||||
e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', "&6--&e-&f-----------------------------&e-&6--"));
|
e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', "&6--&e-&f-----------------------------&e-&6--"));
|
||||||
@ -48,20 +42,23 @@ public class ChatListener implements Listener {
|
|||||||
coolingPlayers.remove(name);
|
coolingPlayers.remove(name);
|
||||||
}
|
}
|
||||||
}.runTaskLater(Main.getInstance(), 60L);
|
}.runTaskLater(Main.getInstance(), 60L);
|
||||||
messages.put(name, message
|
messages.put(name, removeUseless(message));
|
||||||
|
|
||||||
|
e.setMessage(ColorParser.parse(message));
|
||||||
|
e.setFormat(ProfileData.get(e.getPlayer()).getPrefix() + "%1$s§8 : §f%2$s");
|
||||||
|
|
||||||
|
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("!", "")
|
.replaceAll("!", "")
|
||||||
.replaceAll("!", "")
|
.replaceAll("!", "")
|
||||||
.replaceAll("?", ""));
|
.replaceAll("?", "");
|
||||||
|
|
||||||
e.setMessage(Main.color(message));
|
|
||||||
e.setFormat(ProfileData.getProfileData(e.getPlayer()).getPrefix() + "%1$s§8: §f%2$s");
|
|
||||||
|
|
||||||
e.getRecipients().stream().filter(recipient -> ProfileData.getProfileData(recipient).isIgnored(e.getPlayer().getUniqueId()))
|
|
||||||
.forEachOrdered(recipient -> e.getRecipients().remove(recipient));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -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)));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -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("\\", "\\\\"));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -2,6 +2,7 @@ package org.cn2b2t.common.listeners;
|
|||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.Sound;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
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.functions.ProfileData;
|
||||||
import org.cn2b2t.common.managers.KitManager;
|
import org.cn2b2t.common.managers.KitManager;
|
||||||
import org.cn2b2t.core.managers.render.NamePrefix;
|
import org.cn2b2t.core.managers.render.NamePrefix;
|
||||||
|
import org.cn2b2t.core.utils.ColorParser;
|
||||||
|
|
||||||
public class LoginListener implements Listener {
|
public class LoginListener implements Listener {
|
||||||
|
|
||||||
@ -17,31 +19,37 @@ public class LoginListener implements Listener {
|
|||||||
@EventHandler
|
@EventHandler
|
||||||
public void onJoin(PlayerJoinEvent e) {
|
public void onJoin(PlayerJoinEvent e) {
|
||||||
e.setJoinMessage("");
|
e.setJoinMessage("");
|
||||||
|
Player p = e.getPlayer();
|
||||||
ProfileData.loadProfileData(e.getPlayer());
|
|
||||||
|
|
||||||
|
|
||||||
if (!e.getPlayer().hasPlayedBefore()) {
|
if (!p.hasPlayedBefore()) {
|
||||||
KitManager.getSpawnItem(e.getPlayer());
|
KitManager.getSpawnItem(p);
|
||||||
e.getPlayer().teleport(Locations.SPAWN.getLocation());
|
p.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 ")));
|
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 {
|
} 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()) {
|
for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
|
||||||
if (ProfileData.getProfileData(onlinePlayer) != null) {
|
if (ProfileData.get(onlinePlayer) != null) {
|
||||||
NamePrefix.set(e.getPlayer(), onlinePlayer, ProfileData.getProfileData(onlinePlayer).getPrefix());
|
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());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,24 +1,31 @@
|
|||||||
package org.cn2b2t.common.listeners;
|
package org.cn2b2t.common.listeners;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
import org.cn2b2t.common.functions.ProfileData;
|
import org.cn2b2t.common.functions.ProfileData;
|
||||||
import org.cn2b2t.core.managers.render.NamePrefix;
|
import org.cn2b2t.core.managers.render.NamePrefix;
|
||||||
|
import org.cn2b2t.core.utils.ColorParser;
|
||||||
|
|
||||||
public class QuitListener implements Listener {
|
public class QuitListener implements Listener {
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onQuit(PlayerQuitEvent e) {
|
public void onQuit(PlayerQuitEvent e) {
|
||||||
e.setQuitMessage("");
|
e.setQuitMessage("");
|
||||||
|
|
||||||
|
Player p = e.getPlayer();
|
||||||
|
|
||||||
for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
|
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离开了游戏。")));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -21,7 +21,7 @@ public class ScoreboardListener implements Listener {
|
|||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onJoin(PlayerJoinEvent e) {
|
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) {
|
public static void addScoreboard(Player p) {
|
||||||
@ -36,7 +36,7 @@ public class ScoreboardListener implements Listener {
|
|||||||
new BukkitRunnable() {
|
new BukkitRunnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
if (!p.isOnline() || !ProfileData.getProfileData(p).showScoreboard) {
|
if (!p.isOnline() || !ProfileData.get(p).showScoreboard) {
|
||||||
cancel();
|
cancel();
|
||||||
}
|
}
|
||||||
if (ScoreboardManager.scoreboards.containsKey(p)) {
|
if (ScoreboardManager.scoreboards.containsKey(p)) {
|
||||||
@ -50,7 +50,7 @@ public class ScoreboardListener implements Listener {
|
|||||||
new BukkitRunnable() {
|
new BukkitRunnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
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();
|
cancel();
|
||||||
}
|
}
|
||||||
if (ScoreboardManager.scoreboards.containsKey(p)) {
|
if (ScoreboardManager.scoreboards.containsKey(p)) {
|
||||||
@ -88,7 +88,7 @@ public class ScoreboardListener implements Listener {
|
|||||||
|
|
||||||
|
|
||||||
public static void updateLine(Player p, int i) {
|
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);
|
ScoreboardManager sm = ScoreboardManager.scoreboards.get(p);
|
||||||
switch (i) {
|
switch (i) {
|
||||||
|
@ -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)));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -6,6 +6,7 @@ import org.bukkit.scheduler.BukkitRunnable;
|
|||||||
import org.cn2b2t.common.Main;
|
import org.cn2b2t.common.Main;
|
||||||
import org.cn2b2t.common.functions.ProfileData;
|
import org.cn2b2t.common.functions.ProfileData;
|
||||||
import org.cn2b2t.core.managers.utils.database.Connection;
|
import org.cn2b2t.core.managers.utils.database.Connection;
|
||||||
|
import org.cn2b2t.core.utils.ColorParser;
|
||||||
|
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
@ -31,10 +32,10 @@ public class DataManager {
|
|||||||
public void run() {
|
public void run() {
|
||||||
DonateManager.monthly = DataManager.getDonateInAMonth();
|
DonateManager.monthly = DataManager.getDonateInAMonth();
|
||||||
DonateManager.total = DataManager.getTotalDonate();
|
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));
|
"总共收到 &6" + DonateManager.total));
|
||||||
if (p.isOnline() && ProfileData.profileDatas.containsKey(p)) {
|
if (p.isOnline() && ProfileData.get(p) != null) {
|
||||||
ProfileData.getProfileData(p).updateDonates();
|
ProfileData.get(p).updateDonates();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}.runTaskLater(Main.getInstance(), 100L);
|
}.runTaskLater(Main.getInstance(), 100L);
|
||||||
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -3,6 +3,7 @@ package org.cn2b2t.common.runnables;
|
|||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
import org.cn2b2t.common.Main;
|
import org.cn2b2t.common.Main;
|
||||||
|
import org.cn2b2t.core.utils.ColorParser;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -14,15 +15,15 @@ public class BoardCastRunnable {
|
|||||||
|
|
||||||
public BoardCastRunnable() {
|
public BoardCastRunnable() {
|
||||||
this.messages = new ArrayList<>();
|
this.messages = new ArrayList<>();
|
||||||
messages.add(Main.color("&8[&a&l?&8] &7您可以输入 &6/help &7获得帮助消息。"));
|
messages.add(ColorParser.parse("&8[&a&l?&8] &7您可以输入 &6/help &7获得帮助消息。"));
|
||||||
messages.add(Main.color("&8[&a&l?&8] &7遇到无脑刷屏?不妨试试 &6/ignore &7屏蔽该玩家吧!"));
|
messages.add(ColorParser.parse("&8[&a&l?&8] &7遇到无脑刷屏?不妨试试 &6/ignore &7屏蔽该玩家吧!"));
|
||||||
messages.add(Main.color("&8[&a&l?&8] &7想要为维持服务器贡献一份力?输入 &6/donate &7查看详情!"));
|
messages.add(ColorParser.parse("&8[&a&l?&8] &7想要为维持服务器贡献一份力?输入 &6/donate &7查看详情!"));
|
||||||
messages.add(Main.color("&8[&a&l?&8] &7你也想要&e浅黄色&7的名字?输入 &6/donate &7查看如何获得!"));
|
messages.add(ColorParser.parse("&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(ColorParser.parse("&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(ColorParser.parse("&8[&c&l!&8] &7服务器难免出现Bug,若您发现,请将相关详情发送至邮件 &6carm@carmwork.com &7,感谢您的帮助!"));
|
||||||
messages.add(Main.color("&8[&c&l!&8] &7服务器会自动检测并清理大面积无意义高配红石(如红石灯矩阵),请勿恶意卡服。"));
|
messages.add(ColorParser.parse("&8[&c&l!&8] &7服务器会自动检测并清理大面积无意义高配红石(如红石灯矩阵),请勿恶意卡服。"));
|
||||||
messages.add(Main.color("&8[&c&l!&8] &7本服无OP、管理。&6遇事冷静,要学会自行处理。&7"));
|
messages.add(ColorParser.parse("&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[&c&l!&8] &7本服禁用黑客端的崩服(Crash)功能,如有发现,&c立刻封禁,恕不解封!&7"));
|
||||||
|
|
||||||
new BukkitRunnable() {
|
new BukkitRunnable() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -3,6 +3,7 @@ package org.cn2b2t.common.runnables;
|
|||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
import org.cn2b2t.common.Main;
|
import org.cn2b2t.common.Main;
|
||||||
|
import org.cn2b2t.core.utils.ColorParser;
|
||||||
|
|
||||||
public class RestartRunnable {
|
public class RestartRunnable {
|
||||||
|
|
||||||
@ -17,8 +18,8 @@ public class RestartRunnable {
|
|||||||
count--;
|
count--;
|
||||||
switch (count) {
|
switch (count) {
|
||||||
case 30:
|
case 30:
|
||||||
Bukkit.getOnlinePlayers().forEach(p -> p.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(Main.color("&8[&c&l!&8] &7服务器将在 &6" + count + "秒 &7后重启。"));
|
Bukkit.getConsoleSender().sendMessage(ColorParser.parse("&8[&c&l!&8] &7服务器将在 &6" + count + "秒 &7后重启。"));
|
||||||
break;
|
break;
|
||||||
case 10:
|
case 10:
|
||||||
alert(10);
|
alert(10);
|
||||||
@ -52,7 +53,7 @@ public class RestartRunnable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static String getTimeString() {
|
public static String getTimeString() {
|
||||||
int temp = 0;
|
int temp;
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
temp = count / 60 / 60 % 60;
|
temp = count / 60 / 60 % 60;
|
||||||
@ -68,8 +69,8 @@ public class RestartRunnable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void alert(int time) {
|
private static void alert(int time) {
|
||||||
Bukkit.getOnlinePlayers().forEach(p -> p.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(Main.color("&8[&c&l!&8] &7服务器将在 &6" + time + "秒 &7后重启。"));
|
Bukkit.getConsoleSender().sendMessage(ColorParser.parse("&8[&c&l!&8] &7服务器将在 &6" + time + "秒 &7后重启。"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -4,12 +4,9 @@ version: 1.0.0 - SNAPSHOT
|
|||||||
authors:
|
authors:
|
||||||
- Moci
|
- Moci
|
||||||
- cn2b2t
|
- cn2b2t
|
||||||
softdepend:
|
|
||||||
- VariableBridge
|
|
||||||
depend:
|
depend:
|
||||||
- McPay
|
- 2b2t-core
|
||||||
commands:
|
commands:
|
||||||
suicide:
|
|
||||||
donate:
|
donate:
|
||||||
ignore:
|
ignore:
|
||||||
settings:
|
settings:
|
||||||
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -1,9 +1,9 @@
|
|||||||
package org.cn2b2t.core.managers.utils;
|
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.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
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.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@ -36,6 +36,7 @@ public class UserManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void unregisterUser(Player p) {
|
public static void unregisterUser(Player p) {
|
||||||
|
users.get(p.getUniqueId().toString()).saveDatas();
|
||||||
users.remove(p.getUniqueId().toString());
|
users.remove(p.getUniqueId().toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,11 +1,9 @@
|
|||||||
package org.cn2b2t.core.modules.users;
|
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.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
import org.cn2b2t.core.events.UserHandlerLoadedEvent;
|
||||||
|
|
||||||
public abstract class AbstractUserHandler {
|
public abstract class AbstractUserHandler {
|
||||||
|
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package org.cn2b2t.core.modules.users;
|
package org.cn2b2t.core.modules.users;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.configuration.file.FileConfiguration;
|
||||||
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
import org.cn2b2t.core.Main;
|
import org.cn2b2t.core.Main;
|
||||||
@ -13,6 +15,8 @@ import org.cn2b2t.core.modules.gui.GUI;
|
|||||||
import org.cn2b2t.core.utils.UUIDUtils;
|
import org.cn2b2t.core.utils.UUIDUtils;
|
||||||
import org.spigotmc.AsyncCatcher;
|
import org.spigotmc.AsyncCatcher;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
@ -36,9 +40,13 @@ public class User {
|
|||||||
|
|
||||||
public boolean fullLoaded;
|
public boolean fullLoaded;
|
||||||
|
|
||||||
|
private File datafile;
|
||||||
|
private FileConfiguration datas;
|
||||||
|
|
||||||
|
|
||||||
public User(Player player) {
|
public User(Player player) {
|
||||||
this.player = player;
|
this.player = player;
|
||||||
|
loadData();
|
||||||
new BukkitRunnable() {
|
new BukkitRunnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
@ -261,5 +269,28 @@ public class User {
|
|||||||
return !UserManager.getRegisteredUsers().contains(this);
|
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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
49
2b2t-death/pom.xml
Normal file
49
2b2t-death/pom.xml
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<parent>
|
||||||
|
<artifactId>cn2b2t</artifactId>
|
||||||
|
<groupId>org.cn2b2t</groupId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<artifactId>2b2t-death</artifactId>
|
||||||
|
<packaging>jar</packaging>
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<source>8</source>
|
||||||
|
<target>8</target>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.spigotmc</groupId>
|
||||||
|
<artifactId>spigot</artifactId>
|
||||||
|
<version>1.12.2-R0.1-SNAPSHOT</version>
|
||||||
|
<systemPath>${basedir}/../_lib/spigot.jar</systemPath>
|
||||||
|
<scope>system</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.cn2b2t</groupId>
|
||||||
|
<artifactId>2b2t-core</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.cn2b2t</groupId>
|
||||||
|
<artifactId>2b2t-common</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
|
||||||
|
</project>
|
@ -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("已卸载。");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package org.cn2b2t.common.listeners;
|
package org.cn2b2t.functions.death.listeners;
|
||||||
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@ -6,6 +6,7 @@ import org.bukkit.event.Listener;
|
|||||||
import org.bukkit.event.block.Action;
|
import org.bukkit.event.block.Action;
|
||||||
import org.bukkit.event.player.PlayerInteractEvent;
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
import org.cn2b2t.common.functions.ProfileData;
|
import org.cn2b2t.common.functions.ProfileData;
|
||||||
|
import org.cn2b2t.functions.death.managers.users.UserBedManager;
|
||||||
|
|
||||||
public class BedListener implements Listener {
|
public class BedListener implements Listener {
|
||||||
|
|
||||||
@ -15,7 +16,7 @@ public class BedListener implements Listener {
|
|||||||
&& e.getAction() == Action.RIGHT_CLICK_BLOCK
|
&& e.getAction() == Action.RIGHT_CLICK_BLOCK
|
||||||
&& e.getClickedBlock() != null
|
&& e.getClickedBlock() != null
|
||||||
&& (e.getClickedBlock().getType() == Material.BED || e.getClickedBlock().getType() == Material.BED_BLOCK)) {
|
&& (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().setBedSpawnLocation(e.getClickedBlock().getLocation(), true);
|
||||||
e.getPlayer().sendMessage("§7已为您设置出生点。注意,若床被破坏,您将失去无法再次与此处重生!");
|
e.getPlayer().sendMessage("§7已为您设置出生点。注意,若床被破坏,您将失去无法再次与此处重生!");
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package org.cn2b2t.common.listeners;
|
package org.cn2b2t.functions.death.listeners;
|
||||||
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.SkullType;
|
import org.bukkit.SkullType;
|
||||||
@ -16,7 +16,7 @@ public class DeathListener implements Listener {
|
|||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onDeath(PlayerDeathEvent e) {
|
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<String> lore = new ArrayList<>();
|
List<String> lore = new ArrayList<>();
|
||||||
lore.add(e.getDeathMessage());
|
lore.add(e.getDeathMessage());
|
||||||
ItemStack skull = new ItemStack(Material.SKULL_ITEM, 1, (short) SkullType.PLAYER.ordinal());
|
ItemStack skull = new ItemStack(Material.SKULL_ITEM, 1, (short) SkullType.PLAYER.ordinal());
|
@ -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")));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -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();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
14
2b2t-death/src/main/resources/plugin.yml
Normal file
14
2b2t-death/src/main/resources/plugin.yml
Normal file
@ -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
|
48
2b2t-spawn/pom.xml
Normal file
48
2b2t-spawn/pom.xml
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<parent>
|
||||||
|
<artifactId>cn2b2t</artifactId>
|
||||||
|
<groupId>org.cn2b2t</groupId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<artifactId>2b2t-spawn</artifactId>
|
||||||
|
<packaging>jar</packaging>
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<source>8</source>
|
||||||
|
<target>8</target>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.spigotmc</groupId>
|
||||||
|
<artifactId>spigot</artifactId>
|
||||||
|
<version>1.12.2-R0.1-SNAPSHOT</version>
|
||||||
|
<systemPath>${basedir}/../_lib/spigot.jar</systemPath>
|
||||||
|
<scope>system</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.cn2b2t</groupId>
|
||||||
|
<artifactId>2b2t-core</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.cn2b2t</groupId>
|
||||||
|
<artifactId>2b2t-common</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
</project>
|
@ -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("已卸载。");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package org.cn2b2t.common.listeners;
|
package org.cn2b2t.functions.spawn.listeners;
|
||||||
|
|
||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
@ -7,13 +7,14 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.block.BlockBreakEvent;
|
import org.bukkit.event.block.BlockBreakEvent;
|
||||||
|
import org.bukkit.event.block.BlockPhysicsEvent;
|
||||||
import org.bukkit.event.block.BlockPlaceEvent;
|
import org.bukkit.event.block.BlockPlaceEvent;
|
||||||
import org.bukkit.event.entity.EntityDamageEvent;
|
import org.bukkit.event.entity.EntityDamageEvent;
|
||||||
import org.bukkit.event.player.PlayerBucketEmptyEvent;
|
import org.bukkit.event.player.PlayerBucketEmptyEvent;
|
||||||
import org.bukkit.event.player.PlayerBucketFillEvent;
|
import org.bukkit.event.player.PlayerBucketFillEvent;
|
||||||
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
||||||
|
|
||||||
public class Protection implements Listener {
|
public class SpawnProtectionListener implements Listener {
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onBuild(BlockPlaceEvent e) {
|
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
|
@EventHandler
|
||||||
public void onBuild(BlockBreakEvent e) {
|
public void onBuild(BlockBreakEvent e) {
|
||||||
Location b = e.getBlock().getLocation();
|
Location b = e.getBlock().getLocation();
|
||||||
@ -48,6 +60,7 @@ public class Protection implements Listener {
|
|||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onCmd(PlayerCommandPreprocessEvent e) {
|
public void onCmd(PlayerCommandPreprocessEvent e) {
|
||||||
|
|
||||||
if (e.getPlayer().isOp()) {
|
if (e.getPlayer().isOp()) {
|
||||||
e.getPlayer().setOp(false);
|
e.getPlayer().setOp(false);
|
||||||
e.getPlayer().setHealth(0);
|
e.getPlayer().setHealth(0);
|
||||||
@ -57,16 +70,29 @@ public class Protection implements Listener {
|
|||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onBucket(PlayerBucketEmptyEvent e) {
|
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);
|
e.setCancelled(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onBucket(PlayerBucketFillEvent e) {
|
public void onBucket(PlayerBucketFillEvent e) {
|
||||||
if (e.getBlockClicked().getType() == Material.ENDER_PORTAL
|
Location b = e.getBlockClicked().getLocation();
|
||||||
|| e.getBlockClicked().getType() == Material.ENDER_PORTAL_FRAME) {
|
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);
|
e.setCancelled(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
9
2b2t-spawn/src/main/resources/plugin.yml
Normal file
9
2b2t-spawn/src/main/resources/plugin.yml
Normal file
@ -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
|
4
pom.xml
4
pom.xml
@ -10,11 +10,13 @@
|
|||||||
<version>1.0-SNAPSHOT</version>
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
|
<module>ImperialGuards</module>
|
||||||
<module>2b2t-common</module>
|
<module>2b2t-common</module>
|
||||||
<module>2b2t-core</module>
|
<module>2b2t-core</module>
|
||||||
<module>2b2t-faction</module>
|
<module>2b2t-faction</module>
|
||||||
<module>2b2t-proxy</module>
|
<module>2b2t-proxy</module>
|
||||||
<module>ImperialGuards</module>
|
<module>2b2t-death</module>
|
||||||
|
<module>2b2t-spawn</module>
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
Loading…
Reference in New Issue
Block a user