Skip to content
This repository was archived by the owner on Mar 8, 2022. It is now read-only.

Commit 74822fb

Browse files
committed
add enchantsrcconfig
1 parent 9bfa057 commit 74822fb

File tree

3 files changed

+71
-13
lines changed

3 files changed

+71
-13
lines changed

src/main/java/cat/nyaa/nyaautils/CommandHandler.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public String getHelpPrefix() {
4040
@SubCommand(value = "addenchsrc", permission = "nu.addenchsrc")
4141
public void commandAddEnchSrc(CommandSender sender, Arguments args) {
4242
ItemStack item = getItemInHand(sender);
43-
if (BasicItemMatcher.containsMatch(NyaaUtils.instance.cfg.enchantSrc, item)) {
43+
if (BasicItemMatcher.containsMatch(NyaaUtils.instance.cfg.enchantSrcConfig.enchantSrc, item)) {
4444
sender.sendMessage(I18n._("user.enchant.enchantsrc_already_exists"));
4545
return;
4646
}
@@ -49,7 +49,7 @@ public void commandAddEnchSrc(CommandSender sender, Arguments args) {
4949
matcher.enchantMatch = BasicItemMatcher.MatchingMode.ARBITRARY;
5050
matcher.nameMatch = BasicItemMatcher.MatchingMode.EXACT;
5151
matcher.repairCostMatch = BasicItemMatcher.MatchingMode.EXACT;
52-
NyaaUtils.instance.cfg.enchantSrc.add(matcher);
52+
NyaaUtils.instance.cfg.enchantSrcConfig.enchantSrc.add(matcher);
5353
NyaaUtils.instance.cfg.save();
5454
}
5555

@@ -76,7 +76,7 @@ public void commandEnchant(CommandSender sender, Arguments args) {
7676
} else {
7777
ItemStack main = getItemInHand(sender);
7878
ItemStack off = getItemInOffHand(sender);
79-
if (!BasicItemMatcher.containsMatch(NyaaUtils.instance.cfg.enchantSrc, off)) {
79+
if (!BasicItemMatcher.containsMatch(NyaaUtils.instance.cfg.enchantSrcConfig.enchantSrc, off)) {
8080
sender.sendMessage(I18n._("user.enchant.invalid_src"));
8181
return;
8282
}
@@ -200,7 +200,7 @@ public void commandEnchantInfo(CommandSender sender, Arguments args) {
200200
Player p = asPlayer(sender);
201201
ItemStack item = getItemInOffHand(sender);
202202

203-
if (!BasicItemMatcher.containsMatch(NyaaUtils.instance.cfg.enchantSrc, item)) {
203+
if (!BasicItemMatcher.containsMatch(NyaaUtils.instance.cfg.enchantSrcConfig.enchantSrc, item)) {
204204
sender.sendMessage(I18n._("user.enchant.invalid_src"));
205205
return;
206206
}

src/main/java/cat/nyaa/nyaautils/Configuration.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -87,12 +87,12 @@ public class Configuration implements ISerializable {
8787
@Serializable(name = "mail.timeoutTicks")
8888
public int mailTimeout = 200;
8989

90-
public List<BasicItemMatcher> enchantSrc = new ArrayList<>();
9190
public HashMap<Enchantment, Integer> enchantMaxLevel = new HashMap<>();
9291

9392
public final MailboxLocations mailbox;
9493
public final RepairConfig repair;
9594
public final Acl acl;
95+
public final EnchantSrcConfig enchantSrcConfig;
9696

9797
private final NyaaUtils plugin;
9898

@@ -101,6 +101,7 @@ public Configuration(NyaaUtils plugin) {
101101
this.mailbox = new MailboxLocations(plugin);
102102
this.repair = new RepairConfig(plugin);
103103
this.acl = new Acl(plugin);
104+
this.enchantSrcConfig = new EnchantSrcConfig(plugin);
104105
for (Enchantment e : Enchantment.values()) {
105106
if (e == null) {
106107
plugin.getLogger().warning("Bad enchantment: null");
@@ -121,7 +122,7 @@ public void save() {
121122
public void deserialize(ConfigurationSection config) {
122123
ISerializable.deserialize(config, this);
123124

124-
enchantSrc = new ArrayList<>();
125+
List<BasicItemMatcher> enchantSrc = new ArrayList<>();
125126
if (config.isConfigurationSection("enchantSrc")) {
126127
ConfigurationSection src = config.getConfigurationSection("enchantSrc");
127128
for (String key : src.getKeys(false)) {
@@ -131,6 +132,7 @@ public void deserialize(ConfigurationSection config) {
131132
enchantSrc.add(tmp);
132133
}
133134
}
135+
config.set("enchantSrc",null);
134136
}
135137

136138
enchantMaxLevel = new HashMap<>();
@@ -152,19 +154,16 @@ public void deserialize(ConfigurationSection config) {
152154
if (plugin.isServerEnabled()) mailbox.load();
153155
repair.load();
154156
acl.load();
157+
enchantSrcConfig.load();
158+
if(!enchantSrc.isEmpty() && enchantSrcConfig.enchantSrc.isEmpty()){
159+
enchantSrcConfig.enchantSrc = enchantSrc;
160+
}
155161
}
156162

157163
@Override
158164
public void serialize(ConfigurationSection config) {
159165
ISerializable.serialize(config, this);
160166

161-
ConfigurationSection dst = config.createSection("enchantSrc");
162-
int idx = 0;
163-
for (BasicItemMatcher m : enchantSrc) {
164-
m.serialize(dst.createSection(Integer.toString(idx)));
165-
idx++;
166-
}
167-
168167
ConfigurationSection list = config.createSection("enchantMaxLevel");
169168
for (Enchantment k : enchantMaxLevel.keySet()) {
170169
if (k == null || k.getName() == null) continue;
@@ -174,6 +173,7 @@ public void serialize(ConfigurationSection config) {
174173
if (plugin.isServerEnabled()) mailbox.save();
175174
repair.save();
176175
acl.save();
176+
enchantSrcConfig.save();
177177
}
178178

179179
public enum LootProtectMode {
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
package cat.nyaa.nyaautils;
2+
3+
import cat.nyaa.utils.BasicItemMatcher;
4+
import cat.nyaa.utils.FileConfigure;
5+
import cat.nyaa.utils.ISerializable;
6+
import org.bukkit.configuration.ConfigurationSection;
7+
import org.bukkit.plugin.java.JavaPlugin;
8+
9+
import java.util.ArrayList;
10+
import java.util.List;
11+
12+
public class EnchantSrcConfig extends FileConfigure {
13+
public List<BasicItemMatcher> enchantSrc = new ArrayList<>();
14+
private NyaaUtils plugin = null;
15+
16+
public EnchantSrcConfig(NyaaUtils pl) {
17+
plugin = pl;
18+
}
19+
20+
@Override
21+
protected String getFileName() {
22+
return "enchantsrc.yml";
23+
}
24+
25+
@Override
26+
protected JavaPlugin getPlugin() {
27+
return plugin;
28+
}
29+
30+
@Override
31+
public void deserialize(ConfigurationSection config) {
32+
ISerializable.deserialize(config, this);
33+
34+
enchantSrc = new ArrayList<>();
35+
if (config.isConfigurationSection("enchantSrc")) {
36+
ConfigurationSection src = config.getConfigurationSection("enchantSrc");
37+
for (String key : src.getKeys(false)) {
38+
if (src.isConfigurationSection(key)) {
39+
BasicItemMatcher tmp = new BasicItemMatcher();
40+
tmp.deserialize(src.getConfigurationSection(key));
41+
enchantSrc.add(tmp);
42+
}
43+
}
44+
}
45+
}
46+
47+
@Override
48+
public void serialize(ConfigurationSection config) {
49+
ISerializable.serialize(config, this);
50+
51+
ConfigurationSection dst = config.createSection("enchantSrc");
52+
int idx = 0;
53+
for (BasicItemMatcher m : enchantSrc) {
54+
m.serialize(dst.createSection(Integer.toString(idx)));
55+
idx++;
56+
}
57+
}
58+
}

0 commit comments

Comments
 (0)