mirror of
https://github.com/ColdeZhang/Dominion.git
synced 2024-10-19 03:26:40 +08:00
新增配置项,控制是否可以从residence迁移数据
This commit is contained in:
parent
98093f2532
commit
2dfbae52cf
@ -39,6 +39,7 @@
|
|||||||
- 支持基础价格系统;
|
- 支持基础价格系统;
|
||||||
- 领地区域可视化;
|
- 领地区域可视化;
|
||||||
- 管理员可在游戏内使用TUI配置领地系统;
|
- 管理员可在游戏内使用TUI配置领地系统;
|
||||||
|
- 支持[从 Residence 迁移](https://ssl.lunadeer.cn:14448/doc/73/)领地数据;
|
||||||
|
|
||||||
<div style="text-align: center;">
|
<div style="text-align: center;">
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package cn.lunadeer.dominion.commands;
|
package cn.lunadeer.dominion.commands;
|
||||||
|
|
||||||
import cn.lunadeer.dominion.Cache;
|
import cn.lunadeer.dominion.Cache;
|
||||||
|
import cn.lunadeer.dominion.Dominion;
|
||||||
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.dtos.DominionDTO;
|
import cn.lunadeer.dominion.dtos.DominionDTO;
|
||||||
@ -21,6 +22,12 @@ public class Migration {
|
|||||||
try {
|
try {
|
||||||
Player player = playerOnly(sender);
|
Player player = playerOnly(sender);
|
||||||
if (player == null) return;
|
if (player == null) return;
|
||||||
|
|
||||||
|
if (!Dominion.config.getResidenceMigration()) {
|
||||||
|
Notification.error(sender, "Residence 迁移功能没有开启");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (args.length < 2) {
|
if (args.length < 2) {
|
||||||
Notification.error(sender, "用法: /dominion migrate <res领地名称>");
|
Notification.error(sender, "用法: /dominion migrate <res领地名称>");
|
||||||
return;
|
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":
|
case "economy_refund":
|
||||||
setEconomyRefund(sender, args);
|
setEconomyRefund(sender, args);
|
||||||
break;
|
break;
|
||||||
|
case "residence_migration":
|
||||||
|
setResidenceMigration(sender, args);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
Notification.error(sender, "未知参数");
|
Notification.error(sender, "未知参数");
|
||||||
}
|
}
|
||||||
@ -250,4 +253,10 @@ public class SetConfig {
|
|||||||
Dominion.config.setEconomyRefund(economyRefund);
|
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 name 领地名称
|
||||||
* @param loc1 位置1
|
* @param loc1 位置1
|
||||||
* @param loc2 位置2
|
* @param loc2 位置2
|
||||||
* @return 创建的领地
|
|
||||||
*/
|
*/
|
||||||
public static void create(AbstractOperator operator, String name, Location loc1, Location loc2) {
|
public static void create(AbstractOperator operator, String name, Location loc1, Location loc2) {
|
||||||
DominionDTO parent = getPlayerCurrentDominion(operator);
|
DominionDTO parent = getPlayerCurrentDominion(operator);
|
||||||
@ -57,11 +56,26 @@ public class DominionController {
|
|||||||
* @param loc1 位置1
|
* @param loc1 位置1
|
||||||
* @param loc2 位置2
|
* @param loc2 位置2
|
||||||
* @param parent_dominion_name 父领地名称
|
* @param parent_dominion_name 父领地名称
|
||||||
* @return 创建的领地
|
|
||||||
*/
|
*/
|
||||||
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) {
|
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, "创建领地失败");
|
AbstractOperator.Result FAIL = new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "创建领地失败");
|
||||||
if (name.isEmpty()) {
|
if (name.isEmpty()) {
|
||||||
operator.setResponse(FAIL.addMessage("领地名称不能为空"));
|
operator.setResponse(FAIL.addMessage("领地名称不能为空"));
|
||||||
@ -143,7 +157,7 @@ public class DominionController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 检查经济
|
// 检查经济
|
||||||
if (Dominion.config.getEconomyEnable()) {
|
if (Dominion.config.getEconomyEnable() && !skipEco) {
|
||||||
if (!VaultConnect.instance.economyAvailable()) {
|
if (!VaultConnect.instance.economyAvailable()) {
|
||||||
operator.setResponse(FAIL.addMessage("没有可用的经济插件系统,请联系服主。"));
|
operator.setResponse(FAIL.addMessage("没有可用的经济插件系统,请联系服主。"));
|
||||||
return;
|
return;
|
||||||
@ -181,7 +195,6 @@ public class DominionController {
|
|||||||
*
|
*
|
||||||
* @param operator 操作者
|
* @param operator 操作者
|
||||||
* @param size 扩展的大小
|
* @param size 扩展的大小
|
||||||
* @return 扩展后的领地
|
|
||||||
*/
|
*/
|
||||||
public static void expand(AbstractOperator operator, Integer size) {
|
public static void expand(AbstractOperator operator, Integer size) {
|
||||||
DominionDTO dominion = getPlayerCurrentDominion(operator);
|
DominionDTO dominion = getPlayerCurrentDominion(operator);
|
||||||
@ -198,7 +211,6 @@ public class DominionController {
|
|||||||
* @param operator 操作者
|
* @param operator 操作者
|
||||||
* @param size 扩展的大小
|
* @param size 扩展的大小
|
||||||
* @param dominion_name 领地名称
|
* @param dominion_name 领地名称
|
||||||
* @return 扩展后的领地
|
|
||||||
*/
|
*/
|
||||||
public static void expand(AbstractOperator operator, Integer size, String dominion_name) {
|
public static void expand(AbstractOperator operator, Integer size, String dominion_name) {
|
||||||
AbstractOperator.Result FAIL = new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "扩展领地失败");
|
AbstractOperator.Result FAIL = new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "扩展领地失败");
|
||||||
@ -304,7 +316,6 @@ public class DominionController {
|
|||||||
*
|
*
|
||||||
* @param operator 操作者
|
* @param operator 操作者
|
||||||
* @param size 缩小的大小
|
* @param size 缩小的大小
|
||||||
* @return 缩小后的领地
|
|
||||||
*/
|
*/
|
||||||
public static void contract(AbstractOperator operator, Integer size) {
|
public static void contract(AbstractOperator operator, Integer size) {
|
||||||
DominionDTO dominion = getPlayerCurrentDominion(operator);
|
DominionDTO dominion = getPlayerCurrentDominion(operator);
|
||||||
@ -321,7 +332,6 @@ public class DominionController {
|
|||||||
* @param operator 操作者
|
* @param operator 操作者
|
||||||
* @param size 缩小的大小
|
* @param size 缩小的大小
|
||||||
* @param dominion_name 领地名称
|
* @param dominion_name 领地名称
|
||||||
* @return 缩小后的领地
|
|
||||||
*/
|
*/
|
||||||
public static void contract(AbstractOperator operator, Integer size, String dominion_name) {
|
public static void contract(AbstractOperator operator, Integer size, String dominion_name) {
|
||||||
AbstractOperator.Result FAIL = new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "缩小领地失败");
|
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_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);
|
||||||
_fly_permission_nodes = _file.getStringList("FlyPermissionNodes");
|
_fly_permission_nodes = _file.getStringList("FlyPermissionNodes");
|
||||||
|
_residence_migration = _file.getBoolean("ResidenceMigration", false);
|
||||||
saveAll(); // 回写文件 防止文件中的数据不完整
|
saveAll(); // 回写文件 防止文件中的数据不完整
|
||||||
Flag.loadFromJson();
|
Flag.loadFromJson();
|
||||||
}
|
}
|
||||||
@ -115,6 +116,7 @@ public class ConfigManager {
|
|||||||
_file.set("Economy.OnlyXZ", _economy_only_xz);
|
_file.set("Economy.OnlyXZ", _economy_only_xz);
|
||||||
_file.set("Economy.Refund", _economy_refund);
|
_file.set("Economy.Refund", _economy_refund);
|
||||||
_file.set("FlyPermissionNodes", _fly_permission_nodes);
|
_file.set("FlyPermissionNodes", _fly_permission_nodes);
|
||||||
|
_file.set("ResidenceMigration", _residence_migration);
|
||||||
_plugin.saveConfig();
|
_plugin.saveConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -395,6 +397,16 @@ public class ConfigManager {
|
|||||||
_plugin.saveConfig();
|
_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 final Dominion _plugin;
|
||||||
private FileConfiguration _file;
|
private FileConfiguration _file;
|
||||||
private Boolean _debug;
|
private Boolean _debug;
|
||||||
@ -433,4 +445,5 @@ public class ConfigManager {
|
|||||||
private Boolean _economy_only_xz;
|
private Boolean _economy_only_xz;
|
||||||
private Float _economy_refund;
|
private Float _economy_refund;
|
||||||
private List<String> _fly_permission_nodes;
|
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());
|
.append(NumChanger.create(Dominion.config.getEconomyRefund(), "/dominion set_config economy_refund", 0.01).setPageNumber(page).build());
|
||||||
view.add(refund);
|
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);
|
view.showOn(player, page);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package cn.lunadeer.dominion.tuis;
|
package cn.lunadeer.dominion.tuis;
|
||||||
|
|
||||||
|
import cn.lunadeer.dominion.Dominion;
|
||||||
import cn.lunadeer.minecraftpluginutils.stui.ListView;
|
import cn.lunadeer.minecraftpluginutils.stui.ListView;
|
||||||
import cn.lunadeer.minecraftpluginutils.stui.ViewStyles;
|
import cn.lunadeer.minecraftpluginutils.stui.ViewStyles;
|
||||||
import cn.lunadeer.minecraftpluginutils.stui.components.Button;
|
import cn.lunadeer.minecraftpluginutils.stui.components.Button;
|
||||||
@ -60,8 +61,10 @@ public class Menu {
|
|||||||
.add(list)
|
.add(list)
|
||||||
.add(template)
|
.add(template)
|
||||||
.add(help)
|
.add(help)
|
||||||
.add(link)
|
.add(link);
|
||||||
.add(migrate);
|
if (Dominion.config.getResidenceMigration()) {
|
||||||
|
view.add(migrate);
|
||||||
|
}
|
||||||
if (player.isOp()) {
|
if (player.isOp()) {
|
||||||
view.add(Line.create().append(""));
|
view.add(Line.create().append(""));
|
||||||
view.add(Line.create().append(Component.text("--- 以下选项仅OP可见 ---", ViewStyles.main_color)));
|
view.add(Line.create().append(Component.text("--- 以下选项仅OP可见 ---", ViewStyles.main_color)));
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
package cn.lunadeer.dominion.tuis;
|
package cn.lunadeer.dominion.tuis;
|
||||||
|
|
||||||
import cn.lunadeer.dominion.Cache;
|
import cn.lunadeer.dominion.Cache;
|
||||||
|
import cn.lunadeer.dominion.Dominion;
|
||||||
import cn.lunadeer.dominion.utils.ResMigration;
|
import cn.lunadeer.dominion.utils.ResMigration;
|
||||||
|
import cn.lunadeer.minecraftpluginutils.Notification;
|
||||||
import cn.lunadeer.minecraftpluginutils.stui.ListView;
|
import cn.lunadeer.minecraftpluginutils.stui.ListView;
|
||||||
import cn.lunadeer.minecraftpluginutils.stui.components.Button;
|
import cn.lunadeer.minecraftpluginutils.stui.components.Button;
|
||||||
import cn.lunadeer.minecraftpluginutils.stui.components.Line;
|
import cn.lunadeer.minecraftpluginutils.stui.components.Line;
|
||||||
@ -24,6 +26,11 @@ public class MigrateList {
|
|||||||
Player player = playerOnly(sender);
|
Player player = playerOnly(sender);
|
||||||
if (player == null) return;
|
if (player == null) return;
|
||||||
|
|
||||||
|
if (!Dominion.config.getResidenceMigration()) {
|
||||||
|
Notification.error(sender, "Residence 迁移功能没有开启");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
int page = 1;
|
int page = 1;
|
||||||
if (args.length == 2) {
|
if (args.length == 2) {
|
||||||
try {
|
try {
|
||||||
|
@ -19,38 +19,6 @@ import java.nio.file.Files;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
public class ResMigration {
|
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 static class ResidenceNode {
|
||||||
public UUID owner;
|
public UUID owner;
|
||||||
public World world;
|
public World world;
|
||||||
|
@ -49,6 +49,9 @@ FlyPermissionNodes:
|
|||||||
- essentials.fly
|
- essentials.fly
|
||||||
- cmi.command.fly
|
- cmi.command.fly
|
||||||
|
|
||||||
|
# 是否允许玩家从 Residence 迁移领地数据
|
||||||
|
ResidenceMigration: false
|
||||||
|
|
||||||
BlueMap: true
|
BlueMap: true
|
||||||
|
|
||||||
CheckUpdate: true
|
CheckUpdate: true
|
||||||
|
Loading…
Reference in New Issue
Block a user