mirror of
https://github.com/ColdeZhang/Dominion.git
synced 2024-10-18 21:16:45 +08:00
新增配置项,控制是否可以从residence迁移数据
This commit is contained in:
parent
98093f2532
commit
2dfbae52cf
@ -39,6 +39,7 @@
|
||||
- 支持基础价格系统;
|
||||
- 领地区域可视化;
|
||||
- 管理员可在游戏内使用TUI配置领地系统;
|
||||
- 支持[从 Residence 迁移](https://ssl.lunadeer.cn:14448/doc/73/)领地数据;
|
||||
|
||||
<div style="text-align: center;">
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
package cn.lunadeer.dominion.commands;
|
||||
|
||||
import cn.lunadeer.dominion.Cache;
|
||||
import cn.lunadeer.dominion.Dominion;
|
||||
import cn.lunadeer.dominion.controllers.BukkitPlayerOperator;
|
||||
import cn.lunadeer.dominion.controllers.DominionController;
|
||||
import cn.lunadeer.dominion.dtos.DominionDTO;
|
||||
@ -21,6 +22,12 @@ public class Migration {
|
||||
try {
|
||||
Player player = playerOnly(sender);
|
||||
if (player == null) return;
|
||||
|
||||
if (!Dominion.config.getResidenceMigration()) {
|
||||
Notification.error(sender, "Residence 迁移功能没有开启");
|
||||
return;
|
||||
}
|
||||
|
||||
if (args.length < 2) {
|
||||
Notification.error(sender, "用法: /dominion migrate <res领地名称>");
|
||||
return;
|
||||
@ -83,6 +90,6 @@ public class Migration {
|
||||
}
|
||||
}
|
||||
});
|
||||
DominionController.create(operator, node.name, node.loc1, node.loc2, parentName);
|
||||
DominionController.create(operator, node.name, node.loc1, node.loc2, parentName, true);
|
||||
}
|
||||
}
|
||||
|
@ -67,6 +67,9 @@ public class SetConfig {
|
||||
case "economy_refund":
|
||||
setEconomyRefund(sender, args);
|
||||
break;
|
||||
case "residence_migration":
|
||||
setResidenceMigration(sender, args);
|
||||
break;
|
||||
default:
|
||||
Notification.error(sender, "未知参数");
|
||||
}
|
||||
@ -250,4 +253,10 @@ public class SetConfig {
|
||||
Dominion.config.setEconomyRefund(economyRefund);
|
||||
}
|
||||
}
|
||||
|
||||
private static void setResidenceMigration(CommandSender sender, String[] args) {
|
||||
boolean residenceMigration = Boolean.parseBoolean(args[2]);
|
||||
Dominion.config.setResidenceMigration(residenceMigration);
|
||||
refreshPageOrNot(sender, args);
|
||||
}
|
||||
}
|
||||
|
@ -38,7 +38,6 @@ public class DominionController {
|
||||
* @param name 领地名称
|
||||
* @param loc1 位置1
|
||||
* @param loc2 位置2
|
||||
* @return 创建的领地
|
||||
*/
|
||||
public static void create(AbstractOperator operator, String name, Location loc1, Location loc2) {
|
||||
DominionDTO parent = getPlayerCurrentDominion(operator);
|
||||
@ -57,11 +56,26 @@ public class DominionController {
|
||||
* @param loc1 位置1
|
||||
* @param loc2 位置2
|
||||
* @param parent_dominion_name 父领地名称
|
||||
* @return 创建的领地
|
||||
*/
|
||||
public static void create(AbstractOperator operator, String name,
|
||||
Location loc1, Location loc2,
|
||||
String parent_dominion_name) {
|
||||
create(operator, name, loc1, loc2, parent_dominion_name, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建子领地
|
||||
*
|
||||
* @param operator 拥有者
|
||||
* @param name 领地名称
|
||||
* @param loc1 位置1
|
||||
* @param loc2 位置2
|
||||
* @param parent_dominion_name 父领地名称
|
||||
* @param skipEco 是否跳过经济检查
|
||||
*/
|
||||
public static void create(AbstractOperator operator, String name,
|
||||
Location loc1, Location loc2,
|
||||
String parent_dominion_name, boolean skipEco) {
|
||||
AbstractOperator.Result FAIL = new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "创建领地失败");
|
||||
if (name.isEmpty()) {
|
||||
operator.setResponse(FAIL.addMessage("领地名称不能为空"));
|
||||
@ -143,7 +157,7 @@ public class DominionController {
|
||||
}
|
||||
}
|
||||
// 检查经济
|
||||
if (Dominion.config.getEconomyEnable()) {
|
||||
if (Dominion.config.getEconomyEnable() && !skipEco) {
|
||||
if (!VaultConnect.instance.economyAvailable()) {
|
||||
operator.setResponse(FAIL.addMessage("没有可用的经济插件系统,请联系服主。"));
|
||||
return;
|
||||
@ -181,7 +195,6 @@ public class DominionController {
|
||||
*
|
||||
* @param operator 操作者
|
||||
* @param size 扩展的大小
|
||||
* @return 扩展后的领地
|
||||
*/
|
||||
public static void expand(AbstractOperator operator, Integer size) {
|
||||
DominionDTO dominion = getPlayerCurrentDominion(operator);
|
||||
@ -198,7 +211,6 @@ public class DominionController {
|
||||
* @param operator 操作者
|
||||
* @param size 扩展的大小
|
||||
* @param dominion_name 领地名称
|
||||
* @return 扩展后的领地
|
||||
*/
|
||||
public static void expand(AbstractOperator operator, Integer size, String dominion_name) {
|
||||
AbstractOperator.Result FAIL = new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "扩展领地失败");
|
||||
@ -304,7 +316,6 @@ public class DominionController {
|
||||
*
|
||||
* @param operator 操作者
|
||||
* @param size 缩小的大小
|
||||
* @return 缩小后的领地
|
||||
*/
|
||||
public static void contract(AbstractOperator operator, Integer size) {
|
||||
DominionDTO dominion = getPlayerCurrentDominion(operator);
|
||||
@ -321,7 +332,6 @@ public class DominionController {
|
||||
* @param operator 操作者
|
||||
* @param size 缩小的大小
|
||||
* @param dominion_name 领地名称
|
||||
* @return 缩小后的领地
|
||||
*/
|
||||
public static void contract(AbstractOperator operator, Integer size, String dominion_name) {
|
||||
AbstractOperator.Result FAIL = new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "缩小领地失败");
|
||||
|
@ -87,6 +87,7 @@ public class ConfigManager {
|
||||
_economy_only_xz = _file.getBoolean("Economy.OnlyXZ", false);
|
||||
_economy_refund = (float) _file.getDouble("Economy.Refund", 0.85);
|
||||
_fly_permission_nodes = _file.getStringList("FlyPermissionNodes");
|
||||
_residence_migration = _file.getBoolean("ResidenceMigration", false);
|
||||
saveAll(); // 回写文件 防止文件中的数据不完整
|
||||
Flag.loadFromJson();
|
||||
}
|
||||
@ -115,6 +116,7 @@ public class ConfigManager {
|
||||
_file.set("Economy.OnlyXZ", _economy_only_xz);
|
||||
_file.set("Economy.Refund", _economy_refund);
|
||||
_file.set("FlyPermissionNodes", _fly_permission_nodes);
|
||||
_file.set("ResidenceMigration", _residence_migration);
|
||||
_plugin.saveConfig();
|
||||
}
|
||||
|
||||
@ -395,6 +397,16 @@ public class ConfigManager {
|
||||
_plugin.saveConfig();
|
||||
}
|
||||
|
||||
public Boolean getResidenceMigration() {
|
||||
return _residence_migration;
|
||||
}
|
||||
|
||||
public void setResidenceMigration(Boolean residence_migration) {
|
||||
_residence_migration = residence_migration;
|
||||
_file.set("ResidenceMigration", residence_migration);
|
||||
_plugin.saveConfig();
|
||||
}
|
||||
|
||||
private final Dominion _plugin;
|
||||
private FileConfiguration _file;
|
||||
private Boolean _debug;
|
||||
@ -433,4 +445,5 @@ public class ConfigManager {
|
||||
private Boolean _economy_only_xz;
|
||||
private Float _economy_refund;
|
||||
private List<String> _fly_permission_nodes;
|
||||
private Boolean _residence_migration;
|
||||
}
|
||||
|
@ -151,6 +151,15 @@ public class DominionConfig {
|
||||
.append(NumChanger.create(Dominion.config.getEconomyRefund(), "/dominion set_config economy_refund", 0.01).setPageNumber(page).build());
|
||||
view.add(refund);
|
||||
}
|
||||
if (Dominion.config.getResidenceMigration()) {
|
||||
view.add(Line.create()
|
||||
.append("是否允许从Residence迁移数据")
|
||||
.append(Button.createGreen("☑").setExecuteCommand("/dominion set_config residence_migration false " + page).build()));
|
||||
} else {
|
||||
view.add(Line.create()
|
||||
.append("是否允许从Residence迁移数据")
|
||||
.append(Button.createRed("☐").setExecuteCommand("/dominion set_config residence_migration true " + page).build()));
|
||||
}
|
||||
view.showOn(player, page);
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package cn.lunadeer.dominion.tuis;
|
||||
|
||||
import cn.lunadeer.dominion.Dominion;
|
||||
import cn.lunadeer.minecraftpluginutils.stui.ListView;
|
||||
import cn.lunadeer.minecraftpluginutils.stui.ViewStyles;
|
||||
import cn.lunadeer.minecraftpluginutils.stui.components.Button;
|
||||
@ -60,8 +61,10 @@ public class Menu {
|
||||
.add(list)
|
||||
.add(template)
|
||||
.add(help)
|
||||
.add(link)
|
||||
.add(migrate);
|
||||
.add(link);
|
||||
if (Dominion.config.getResidenceMigration()) {
|
||||
view.add(migrate);
|
||||
}
|
||||
if (player.isOp()) {
|
||||
view.add(Line.create().append(""));
|
||||
view.add(Line.create().append(Component.text("--- 以下选项仅OP可见 ---", ViewStyles.main_color)));
|
||||
|
@ -1,7 +1,9 @@
|
||||
package cn.lunadeer.dominion.tuis;
|
||||
|
||||
import cn.lunadeer.dominion.Cache;
|
||||
import cn.lunadeer.dominion.Dominion;
|
||||
import cn.lunadeer.dominion.utils.ResMigration;
|
||||
import cn.lunadeer.minecraftpluginutils.Notification;
|
||||
import cn.lunadeer.minecraftpluginutils.stui.ListView;
|
||||
import cn.lunadeer.minecraftpluginutils.stui.components.Button;
|
||||
import cn.lunadeer.minecraftpluginutils.stui.components.Line;
|
||||
@ -24,6 +26,11 @@ public class MigrateList {
|
||||
Player player = playerOnly(sender);
|
||||
if (player == null) return;
|
||||
|
||||
if (!Dominion.config.getResidenceMigration()) {
|
||||
Notification.error(sender, "Residence 迁移功能没有开启");
|
||||
return;
|
||||
}
|
||||
|
||||
int page = 1;
|
||||
if (args.length == 2) {
|
||||
try {
|
||||
|
@ -19,38 +19,6 @@ import java.nio.file.Files;
|
||||
import java.util.*;
|
||||
|
||||
public class ResMigration {
|
||||
|
||||
|
||||
/*
|
||||
Residences:
|
||||
'03':
|
||||
TPLoc: -3967.62:48.0:-1988.87:4.8:-5.08
|
||||
Messages: 1
|
||||
Permissions:
|
||||
PlayerFlags:
|
||||
3244b8fb-3cf9-433e-8f4a-bb90bf6d4f54: 1
|
||||
8075e1ae-62fc-482f-b3af-3fc5b2770a2c: 2
|
||||
0a23b4e5-f18e-4f8b-947d-558444bb27ca: 3
|
||||
AreaFlags: 4
|
||||
OwnerUUID: 8075e1ae-62fc-482f-b3af-3fc5b2770a2c
|
||||
OwnerLastKnownName: guajn
|
||||
CreatedOn: 1630491137410
|
||||
Areas:
|
||||
main: -3998:0:-2014:-3939:255:-1955
|
||||
'04':
|
||||
TPLoc: -5640.7:189.0:-2029.38:40.35:-96.3
|
||||
Messages: 1
|
||||
Permissions:
|
||||
PlayerFlags:
|
||||
8075e1ae-62fc-482f-b3af-3fc5b2770a2c: 2
|
||||
0a23b4e5-f18e-4f8b-947d-558444bb27ca: 1
|
||||
AreaFlags: 5
|
||||
OwnerUUID: 8075e1ae-62fc-482f-b3af-3fc5b2770a2c
|
||||
OwnerLastKnownName: guajn
|
||||
CreatedOn: 1641656609270
|
||||
Areas:
|
||||
main: -5673:0:-2055:-5609:255:-2005
|
||||
*/
|
||||
public static class ResidenceNode {
|
||||
public UUID owner;
|
||||
public World world;
|
||||
|
@ -49,6 +49,9 @@ FlyPermissionNodes:
|
||||
- essentials.fly
|
||||
- cmi.command.fly
|
||||
|
||||
# 是否允许玩家从 Residence 迁移领地数据
|
||||
ResidenceMigration: false
|
||||
|
||||
BlueMap: true
|
||||
|
||||
CheckUpdate: true
|
||||
|
Loading…
Reference in New Issue
Block a user