Merge branch 'master' into global-teleportation
# Conflicts: # pom.xml # src/main/java/cn/lunadeer/dominion/commands/DominionOperate.java # src/main/java/cn/lunadeer/dominion/controllers/DominionController.java
This commit is contained in:
commit
59ccbbdd5c
2
pom.xml
2
pom.xml
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<groupId>cn.lunadeer</groupId>
|
<groupId>cn.lunadeer</groupId>
|
||||||
<artifactId>Dominion</artifactId>
|
<artifactId>Dominion</artifactId>
|
||||||
<version>1.35.0-global-tp-beta</version>
|
<version>1.35.8-global-tp-beta</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<name>Dominion</name>
|
<name>Dominion</name>
|
||||||
|
@ -27,7 +27,6 @@ public final class Dominion extends JavaPlugin {
|
|||||||
new Notification(this);
|
new Notification(this);
|
||||||
new XLogger(this);
|
new XLogger(this);
|
||||||
config = new ConfigManager(this);
|
config = new ConfigManager(this);
|
||||||
XLogger.setDebug(config.isDebug());
|
|
||||||
new DatabaseManager(this,
|
new DatabaseManager(this,
|
||||||
DatabaseType.valueOf(config.getDbType().toUpperCase()),
|
DatabaseType.valueOf(config.getDbType().toUpperCase()),
|
||||||
config.getDbHost(),
|
config.getDbHost(),
|
||||||
@ -39,9 +38,6 @@ public final class Dominion extends JavaPlugin {
|
|||||||
new Scheduler(this);
|
new Scheduler(this);
|
||||||
AutoClean.run();
|
AutoClean.run();
|
||||||
Cache.instance = new Cache();
|
Cache.instance = new Cache();
|
||||||
if (config.getEconomyEnable()) {
|
|
||||||
new VaultConnect(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
Bukkit.getPluginManager().registerEvents(new PlayerEvents(), this);
|
Bukkit.getPluginManager().registerEvents(new PlayerEvents(), this);
|
||||||
Bukkit.getPluginManager().registerEvents(new EnvironmentEvents(), this);
|
Bukkit.getPluginManager().registerEvents(new EnvironmentEvents(), this);
|
||||||
@ -49,6 +45,8 @@ public final class Dominion extends JavaPlugin {
|
|||||||
Objects.requireNonNull(Bukkit.getPluginCommand("dominion")).setExecutor(new Commands());
|
Objects.requireNonNull(Bukkit.getPluginCommand("dominion")).setExecutor(new Commands());
|
||||||
|
|
||||||
bStatsMetrics metrics = new bStatsMetrics(this, 21445);
|
bStatsMetrics metrics = new bStatsMetrics(this, 21445);
|
||||||
|
metrics.addCustomChart(new bStatsMetrics.SimplePie("database", () -> config.getDbType()));
|
||||||
|
|
||||||
if (config.getCheckUpdate()) {
|
if (config.getCheckUpdate()) {
|
||||||
giteaReleaseCheck = new GiteaReleaseCheck(this,
|
giteaReleaseCheck = new GiteaReleaseCheck(this,
|
||||||
"https://ssl.lunadeer.cn:14446",
|
"https://ssl.lunadeer.cn:14446",
|
||||||
|
@ -36,7 +36,7 @@ public class Apis {
|
|||||||
Notification.info(sender, " 领地的对角点坐标: x1=%d y1=%d z1=%d, x2=%d y2=%d z2=%d", x1, y1, z1, x2, y2, z2);
|
Notification.info(sender, " 领地的对角点坐标: x1=%d y1=%d z1=%d, x2=%d y2=%d z2=%d", x1, y1, z1, x2, y2, z2);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void autoPoints(Player player) {
|
public static Map<Integer, Location> autoPoints(Player player) {
|
||||||
Integer size = Dominion.config.getAutoCreateRadius();
|
Integer size = Dominion.config.getAutoCreateRadius();
|
||||||
Location location = player.getLocation();
|
Location location = player.getLocation();
|
||||||
Location location1 = new Location(location.getWorld(), location.getX() - size, location.getY() - size, location.getZ() - size);
|
Location location1 = new Location(location.getWorld(), location.getX() - size, location.getY() - size, location.getZ() - size);
|
||||||
@ -49,6 +49,7 @@ public class Apis {
|
|||||||
points.put(0, location1);
|
points.put(0, location1);
|
||||||
points.put(1, location2);
|
points.put(1, location2);
|
||||||
Dominion.pointsSelect.put(player.getUniqueId(), points);
|
Dominion.pointsSelect.put(player.getUniqueId(), points);
|
||||||
|
return points;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean notOpOrConsole(CommandSender sender) {
|
public static boolean notOpOrConsole(CommandSender sender) {
|
||||||
|
@ -69,12 +69,12 @@ public class DominionController {
|
|||||||
* @param name 领地名称
|
* @param name 领地名称
|
||||||
* @param loc1 位置1
|
* @param loc1 位置1
|
||||||
* @param loc2 位置2
|
* @param loc2 位置2
|
||||||
* @param parent_dominion_name 父领地名称
|
* @param parent_dominion_name 父领地名称(留空表示为根领地)
|
||||||
* @param skipEco 是否跳过经济检查
|
* @param skipEco 是否跳过经济检查
|
||||||
*/
|
*/
|
||||||
public static void create(AbstractOperator operator, String name,
|
public static void create(AbstractOperator operator, String name,
|
||||||
Location loc1, Location loc2,
|
Location loc1, Location loc2,
|
||||||
String parent_dominion_name, boolean skipEco) {
|
@NotNull String parent_dominion_name, boolean skipEco) {
|
||||||
AbstractOperator.Result FAIL = new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "创建领地失败");
|
AbstractOperator.Result FAIL = new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "创建领地失败");
|
||||||
AbstractOperator.Result SUCCESS = new AbstractOperator.Result(AbstractOperator.Result.SUCCESS, "成功创建领地 %s", name);
|
AbstractOperator.Result SUCCESS = new AbstractOperator.Result(AbstractOperator.Result.SUCCESS, "成功创建领地 %s", name);
|
||||||
if (name.isEmpty()) {
|
if (name.isEmpty()) {
|
||||||
@ -109,12 +109,8 @@ public class DominionController {
|
|||||||
loc2.getBlockX(), loc2.getBlockY(), loc2.getBlockZ())) {
|
loc2.getBlockX(), loc2.getBlockY(), loc2.getBlockZ())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
DominionDTO dominion = new DominionDTO(operator.getUniqueId(), name, loc1.getWorld().getName(),
|
|
||||||
(int) Math.min(loc1.getX(), loc2.getX()), (int) Math.min(loc1.getY(), loc2.getY()),
|
|
||||||
(int) Math.min(loc1.getZ(), loc2.getZ()), (int) Math.max(loc1.getX(), loc2.getX()),
|
|
||||||
(int) Math.max(loc1.getY(), loc2.getY()), (int) Math.max(loc1.getZ(), loc2.getZ()));
|
|
||||||
DominionDTO parent_dominion;
|
DominionDTO parent_dominion;
|
||||||
if (parent_dominion_name.isEmpty()) {
|
if (parent_dominion_name.isEmpty() || parent_dominion_name.equals("root")) {
|
||||||
parent_dominion = DominionDTO.select(-1);
|
parent_dominion = DominionDTO.select(-1);
|
||||||
} else {
|
} else {
|
||||||
parent_dominion = DominionDTO.select(parent_dominion_name);
|
parent_dominion = DominionDTO.select(parent_dominion_name);
|
||||||
@ -133,6 +129,11 @@ public class DominionController {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 创建 dominion (此步骤不会写入数据)
|
||||||
|
DominionDTO dominion = DominionDTO.create(operator.getUniqueId(), name, loc1.getWorld().getName(),
|
||||||
|
(int) Math.min(loc1.getX(), loc2.getX()), (int) Math.min(loc1.getY(), loc2.getY()),
|
||||||
|
(int) Math.min(loc1.getZ(), loc2.getZ()), (int) Math.max(loc1.getX(), loc2.getX()),
|
||||||
|
(int) Math.max(loc1.getY(), loc2.getY()), (int) Math.max(loc1.getZ(), loc2.getZ()), parent_dominion);
|
||||||
// 如果parent_dominion不为-1 检查是否在同一世界
|
// 如果parent_dominion不为-1 检查是否在同一世界
|
||||||
if (parent_dominion.getId() != -1 && !parent_dominion.getWorld().equals(dominion.getWorld())) {
|
if (parent_dominion.getId() != -1 && !parent_dominion.getWorld().equals(dominion.getWorld())) {
|
||||||
operator.setResponse(FAIL.addMessage("父领地与子领地不在同一世界。"));
|
operator.setResponse(FAIL.addMessage("父领地与子领地不在同一世界。"));
|
||||||
@ -718,7 +719,7 @@ public class DominionController {
|
|||||||
level++;
|
level++;
|
||||||
}
|
}
|
||||||
if (level >= Dominion.config.getLimitDepth()) {
|
if (level >= Dominion.config.getLimitDepth()) {
|
||||||
operator.setResponse(FAIL.addMessage("子领地嵌套深度不能超过 %s", Dominion.config.getLimitDepth()));
|
operator.setResponse(FAIL.addMessage("子领地嵌套深度不能超过 %d", Dominion.config.getLimitDepth()));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -1,11 +1,9 @@
|
|||||||
package cn.lunadeer.dominion.cuis;
|
package cn.lunadeer.dominion.cuis;
|
||||||
|
|
||||||
import cn.lunadeer.dominion.Dominion;
|
|
||||||
import cn.lunadeer.dominion.controllers.AbstractOperator;
|
import cn.lunadeer.dominion.controllers.AbstractOperator;
|
||||||
import cn.lunadeer.dominion.controllers.BukkitPlayerOperator;
|
import cn.lunadeer.dominion.controllers.BukkitPlayerOperator;
|
||||||
import cn.lunadeer.dominion.controllers.DominionController;
|
import cn.lunadeer.dominion.controllers.DominionController;
|
||||||
import cn.lunadeer.dominion.tuis.dominion.DominionManage;
|
import cn.lunadeer.dominion.tuis.dominion.DominionManage;
|
||||||
import cn.lunadeer.minecraftpluginutils.Notification;
|
|
||||||
import cn.lunadeer.minecraftpluginutils.XLogger;
|
import cn.lunadeer.minecraftpluginutils.XLogger;
|
||||||
import cn.lunadeer.minecraftpluginutils.scui.CuiTextInput;
|
import cn.lunadeer.minecraftpluginutils.scui.CuiTextInput;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
@ -30,13 +28,9 @@ public class CreateDominion {
|
|||||||
@Override
|
@Override
|
||||||
public void handleData(String input) {
|
public void handleData(String input) {
|
||||||
XLogger.debug("createDominionCB.run: %s", input);
|
XLogger.debug("createDominionCB.run: %s", input);
|
||||||
autoPoints(sender);
|
|
||||||
BukkitPlayerOperator operator = BukkitPlayerOperator.create(sender);
|
BukkitPlayerOperator operator = BukkitPlayerOperator.create(sender);
|
||||||
Map<Integer, Location> points = Dominion.pointsSelect.get(sender.getUniqueId());
|
Map<Integer, Location> points = autoPoints(sender);
|
||||||
if (points == null || points.get(0) == null || points.get(1) == null) {
|
|
||||||
Notification.error(sender, "自动选点失败");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
operator.getResponse().thenAccept(result -> {
|
operator.getResponse().thenAccept(result -> {
|
||||||
if (Objects.equals(result.getStatus(), AbstractOperator.Result.SUCCESS)) {
|
if (Objects.equals(result.getStatus(), AbstractOperator.Result.SUCCESS)) {
|
||||||
DominionManage.show(sender, new String[]{"list"});
|
DominionManage.show(sender, new String[]{"list"});
|
||||||
|
@ -233,6 +233,11 @@ public class DominionDTO {
|
|||||||
this(null, owner, name, world, x1, y1, z1, x2, y2, z2, -1);
|
this(null, owner, name, world, x1, y1, z1, x2, y2, z2, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static DominionDTO create(UUID owner, String name, String world,
|
||||||
|
Integer x1, Integer y1, Integer z1, Integer x2, Integer y2, Integer z2, DominionDTO parent) {
|
||||||
|
return new DominionDTO(null, owner, name, world, x1, y1, z1, x2, y2, z2, parent == null ? -1 : parent.getId());
|
||||||
|
}
|
||||||
|
|
||||||
private final Field id = new Field("id", FieldType.INT);
|
private final Field id = new Field("id", FieldType.INT);
|
||||||
private final Field owner = new Field("owner", FieldType.STRING);
|
private final Field owner = new Field("owner", FieldType.STRING);
|
||||||
private final Field name = new Field("name", FieldType.STRING);
|
private final Field name = new Field("name", FieldType.STRING);
|
||||||
@ -371,11 +376,6 @@ public class DominionDTO {
|
|||||||
return (Integer) parentDomId.value;
|
return (Integer) parentDomId.value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public DominionDTO setParentDomId(Integer parentDomId) {
|
|
||||||
this.parentDomId.value = parentDomId;
|
|
||||||
return doUpdate(new UpdateRow().field(this.parentDomId));
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getJoinMessage() {
|
public String getJoinMessage() {
|
||||||
return (String) joinMessage.value;
|
return (String) joinMessage.value;
|
||||||
}
|
}
|
||||||
@ -425,7 +425,7 @@ public class DominionDTO {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Location getTpLocation() {
|
public Location getTpLocation() {
|
||||||
if (Objects.equals(tp_location, "default")) {
|
if (Objects.equals(tp_location.value, "default")) {
|
||||||
return null;
|
return null;
|
||||||
} else {
|
} else {
|
||||||
// 0:0:0
|
// 0:0:0
|
||||||
|
@ -103,7 +103,7 @@ public class PlayerEvents implements Listener {
|
|||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST) // bed
|
@EventHandler(priority = EventPriority.HIGHEST) // bed
|
||||||
public void onBedUse(PlayerInteractEvent event) {
|
public void onBedUse(PlayerInteractEvent event) {
|
||||||
if (!event.getAction().isRightClick()) {
|
if (event.getAction() != Action.RIGHT_CLICK_BLOCK) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Player bukkitPlayer = event.getPlayer();
|
Player bukkitPlayer = event.getPlayer();
|
||||||
@ -165,7 +165,7 @@ public class PlayerEvents implements Listener {
|
|||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST) // button
|
@EventHandler(priority = EventPriority.HIGHEST) // button
|
||||||
public void onButton(PlayerInteractEvent event) {
|
public void onButton(PlayerInteractEvent event) {
|
||||||
if (!event.getAction().isRightClick()) {
|
if (event.getAction() != Action.RIGHT_CLICK_BLOCK) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
@ -182,7 +182,7 @@ public class PlayerEvents implements Listener {
|
|||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST) // cake
|
@EventHandler(priority = EventPriority.HIGHEST) // cake
|
||||||
public void eatCake(PlayerInteractEvent event) {
|
public void eatCake(PlayerInteractEvent event) {
|
||||||
if (!event.getAction().isRightClick()) {
|
if (event.getAction() != Action.RIGHT_CLICK_BLOCK) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Block block = event.getClickedBlock();
|
Block block = event.getClickedBlock();
|
||||||
@ -280,7 +280,7 @@ public class PlayerEvents implements Listener {
|
|||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST) // comparer
|
@EventHandler(priority = EventPriority.HIGHEST) // comparer
|
||||||
public void comparerChange(PlayerInteractEvent event) {
|
public void comparerChange(PlayerInteractEvent event) {
|
||||||
if (!event.getAction().isRightClick()) {
|
if (event.getAction() != Action.RIGHT_CLICK_BLOCK) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Block block = event.getClickedBlock();
|
Block block = event.getClickedBlock();
|
||||||
@ -298,7 +298,7 @@ public class PlayerEvents implements Listener {
|
|||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST) // door
|
@EventHandler(priority = EventPriority.HIGHEST) // door
|
||||||
public void doorUse(PlayerInteractEvent event) {
|
public void doorUse(PlayerInteractEvent event) {
|
||||||
if (!event.getAction().isRightClick()) {
|
if (event.getAction() != Action.RIGHT_CLICK_BLOCK) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Block block = event.getClickedBlock();
|
Block block = event.getClickedBlock();
|
||||||
@ -340,7 +340,7 @@ public class PlayerEvents implements Listener {
|
|||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST) // edit sign
|
@EventHandler(priority = EventPriority.HIGHEST) // edit sign
|
||||||
public void onSignOpen(PlayerInteractEvent event) {
|
public void onSignOpen(PlayerInteractEvent event) {
|
||||||
if (!event.getAction().isRightClick()) {
|
if (event.getAction() != Action.RIGHT_CLICK_BLOCK) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
@ -444,7 +444,7 @@ public class PlayerEvents implements Listener {
|
|||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST) // honey
|
@EventHandler(priority = EventPriority.HIGHEST) // honey
|
||||||
public void honeyInteractive(PlayerInteractEvent event) {
|
public void honeyInteractive(PlayerInteractEvent event) {
|
||||||
if (!event.getAction().isRightClick()) {
|
if (event.getAction() != Action.RIGHT_CLICK_BLOCK) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Block block = event.getClickedBlock();
|
Block block = event.getClickedBlock();
|
||||||
@ -502,7 +502,7 @@ public class PlayerEvents implements Listener {
|
|||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST) // lever
|
@EventHandler(priority = EventPriority.HIGHEST) // lever
|
||||||
public void onLever(PlayerInteractEvent event) {
|
public void onLever(PlayerInteractEvent event) {
|
||||||
if (!event.getAction().isRightClick()) {
|
if (event.getAction() != Action.RIGHT_CLICK_BLOCK) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Block block = event.getClickedBlock();
|
Block block = event.getClickedBlock();
|
||||||
|
@ -2,6 +2,7 @@ package cn.lunadeer.dominion.managers;
|
|||||||
|
|
||||||
import cn.lunadeer.dominion.Dominion;
|
import cn.lunadeer.dominion.Dominion;
|
||||||
import cn.lunadeer.dominion.dtos.Flag;
|
import cn.lunadeer.dominion.dtos.Flag;
|
||||||
|
import cn.lunadeer.minecraftpluginutils.VaultConnect;
|
||||||
import cn.lunadeer.minecraftpluginutils.XLogger;
|
import cn.lunadeer.minecraftpluginutils.XLogger;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.configuration.file.FileConfiguration;
|
import org.bukkit.configuration.file.FileConfiguration;
|
||||||
@ -82,6 +83,9 @@ public class ConfigManager {
|
|||||||
_economy_price = (float) _file.getDouble("Economy.Price", 10.0);
|
_economy_price = (float) _file.getDouble("Economy.Price", 10.0);
|
||||||
_economy_only_xz = _file.getBoolean("Economy.OnlyXZ", false);
|
_economy_only_xz = _file.getBoolean("Economy.OnlyXZ", false);
|
||||||
_economy_refund = (float) _file.getDouble("Economy.Refund", 0.85);
|
_economy_refund = (float) _file.getDouble("Economy.Refund", 0.85);
|
||||||
|
if (getEconomyEnable()) {
|
||||||
|
new VaultConnect(this._plugin);
|
||||||
|
}
|
||||||
_fly_permission_nodes = _file.getStringList("FlyPermissionNodes");
|
_fly_permission_nodes = _file.getStringList("FlyPermissionNodes");
|
||||||
_residence_migration = _file.getBoolean("ResidenceMigration", false);
|
_residence_migration = _file.getBoolean("ResidenceMigration", false);
|
||||||
saveAll(); // 回写文件 防止文件中的数据不完整
|
saveAll(); // 回写文件 防止文件中的数据不完整
|
||||||
|
@ -34,7 +34,7 @@ public class TemplateSetting {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ListView view = ListView.create(10, "/dominion template manage " + template.getName());
|
ListView view = ListView.create(10, "/dominion template setting " + template.getName());
|
||||||
view.title("模板 " + args[1] + " 权限管理");
|
view.title("模板 " + args[1] + " 权限管理");
|
||||||
view.navigator(Line.create()
|
view.navigator(Line.create()
|
||||||
.append(Button.create("主菜单").setExecuteCommand("/dominion menu").build())
|
.append(Button.create("主菜单").setExecuteCommand("/dominion menu").build())
|
||||||
|
Reference in New Issue
Block a user