Skip to content

Commit 9d74089

Browse files
authored
Only load the LegacyMapper when needed (#2887)
1 parent 1ba55f0 commit 9d74089

File tree

7 files changed

+18
-34
lines changed

7 files changed

+18
-34
lines changed

worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditPlugin.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,6 @@ private void setupPreWorldData() {
198198
loadAdapter();
199199
initializeRegistries(); // this creates the objects matching Bukkit's enums - but doesn't fill them with data yet
200200
config.load();
201-
WorldEdit.getInstance().loadMappings();
202201
}
203202

204203
private void setupWorldData() {

worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIWorldEdit.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,6 @@ public void onStarted() {
202202
setupPlatform();
203203

204204
setupRegistries();
205-
WorldEdit.getInstance().loadMappings();
206205

207206
config.load();
208207

worldedit-core/src/main/java/com/sk89q/worldedit/WorldEdit.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,6 @@
7171
import com.sk89q.worldedit.world.World;
7272
import com.sk89q.worldedit.world.block.BlockStateHolder;
7373
import com.sk89q.worldedit.world.block.BlockType;
74-
import com.sk89q.worldedit.world.registry.LegacyMapper;
7574
import org.apache.logging.log4j.Logger;
7675

7776
import java.io.DataInputStream;
@@ -411,9 +410,11 @@ private boolean checkFilename(String filename) {
411410

412411
/**
413412
* Load the bundled mappings.
413+
*
414+
* @deprecated This is no longer necessary as all mappings are loaded lazily.
414415
*/
416+
@Deprecated(forRemoval = true)
415417
public void loadMappings() {
416-
LegacyMapper.getInstance(); // Load legacy mappings
417418
}
418419

419420
/**

worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/DefaultBlockParser.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -283,9 +283,12 @@ private BaseBlock parseLogic(String input, ParserContext context) throws InputPa
283283
if (split.length == 0) {
284284
throw new InputParseException(TranslatableComponent.of("worldedit.error.parser.invalid-colon"));
285285
} else if (split.length == 1) {
286-
state = LegacyMapper.getInstance().getBlockFromLegacy(Integer.parseInt(split[0]));
286+
var legacyTypeId = Integer.parseInt(split[0]);
287+
state = LegacyMapper.getInstance().getBlockFromLegacy(legacyTypeId);
287288
} else {
288-
state = LegacyMapper.getInstance().getBlockFromLegacy(Integer.parseInt(split[0]), Integer.parseInt(split[1]));
289+
var legacyTypeId = Integer.parseInt(split[0]);
290+
var legacyDataValue = Integer.parseInt(split[1]);
291+
state = LegacyMapper.getInstance().getBlockFromLegacy(legacyTypeId, legacyDataValue);
289292
}
290293
if (state != null) {
291294
blockType = state.getBlockType();

worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/DefaultItemParser.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,12 @@ public BaseItem parseFromInput(String input, ParserContext context) throws Input
6868
if (split.length == 0) {
6969
throw new InputParseException(TranslatableComponent.of("worldedit.error.parser.invalid-colon"));
7070
} else if (split.length == 1) {
71-
itemType = LegacyMapper.getInstance().getItemFromLegacy(Integer.parseInt(split[0]));
71+
var legacyItemId = Integer.parseInt(split[0]);
72+
itemType = LegacyMapper.getInstance().getItemFromLegacy(legacyItemId);
7273
} else {
73-
itemType = LegacyMapper.getInstance().getItemFromLegacy(Integer.parseInt(split[0]), Integer.parseInt(split[1]));
74+
var legacyItemId = Integer.parseInt(split[0]);
75+
var legacyDataValue = Integer.parseInt(split[1]);
76+
itemType = LegacyMapper.getInstance().getItemFromLegacy(legacyItemId, legacyDataValue);
7477
}
7578
if (itemType != null) {
7679
item = new BaseItem(itemType);

worldedit-core/src/main/java/com/sk89q/worldedit/util/PropertiesConfiguration.java

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import com.sk89q.worldedit.LocalSession;
2828
import com.sk89q.worldedit.internal.util.LogManagerCompat;
2929
import com.sk89q.worldedit.util.report.Unreported;
30-
import com.sk89q.worldedit.world.registry.LegacyMapper;
3130
import org.apache.logging.log4j.Logger;
3231

3332
import java.io.File;
@@ -108,23 +107,13 @@ public void load() {
108107
logFile = getString("log-file", logFile);
109108
logFormat = getString("log-format", logFormat);
110109
registerHelp = getBool("register-help", registerHelp);
111-
wandItem = getString("wand-item", wandItem).toLowerCase(Locale.ROOT);
112-
try {
113-
wandItem = LegacyMapper.getInstance().getItemFromLegacy(Integer.parseInt(wandItem)).id();
114-
} catch (Throwable ignored) {
115-
// This is just for compatibility with old configs, ignore errors
116-
}
110+
wandItem = convertLegacyItem(getString("wand-item", wandItem)).toLowerCase(Locale.ROOT);
117111
superPickaxeDrop = getBool("super-pickaxe-drop-items", superPickaxeDrop);
118112
superPickaxeManyDrop = getBool("super-pickaxe-many-drop-items", superPickaxeManyDrop);
119113
useInventory = getBool("use-inventory", useInventory);
120114
useInventoryOverride = getBool("use-inventory-override", useInventoryOverride);
121115
useInventoryCreativeOverride = getBool("use-inventory-creative-override", useInventoryCreativeOverride);
122-
navigationWand = getString("nav-wand-item", navigationWand).toLowerCase(Locale.ROOT);
123-
try {
124-
navigationWand = LegacyMapper.getInstance().getItemFromLegacy(Integer.parseInt(navigationWand)).id();
125-
} catch (Throwable ignored) {
126-
// This is just for compatibility with old configs, ignore errors
127-
}
116+
navigationWand = convertLegacyItem(getString("nav-wand-item", navigationWand)).toLowerCase(Locale.ROOT);
128117
navigationWandMaxDistance = getInt("nav-wand-distance", navigationWandMaxDistance);
129118
navigationUseGlass = getBool("nav-use-glass", navigationUseGlass);
130119
scriptTimeout = getInt("scripting-timeout", scriptTimeout);

worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/config/ConfigurateConfiguration.java

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import com.sk89q.worldedit.LocalSession;
2525
import com.sk89q.worldedit.session.SessionManager;
2626
import com.sk89q.worldedit.util.report.Unreported;
27-
import com.sk89q.worldedit.world.registry.LegacyMapper;
2827
import org.apache.logging.log4j.Logger;
2928
import org.spongepowered.configurate.CommentedConfigurationNode;
3029
import org.spongepowered.configurate.ConfigurationOptions;
@@ -63,12 +62,7 @@ public void load() {
6362

6463
profile = node.node("debug").getBoolean(profile);
6564
traceUnflushedSessions = node.node("debugging", "trace-unflushed-sessions").getBoolean(traceUnflushedSessions);
66-
wandItem = node.node("wand-item").getString(wandItem).toLowerCase(Locale.ROOT);
67-
try {
68-
wandItem = LegacyMapper.getInstance().getItemFromLegacy(Integer.parseInt(wandItem)).id();
69-
} catch (Throwable ignored) {
70-
// This is just for old configs, so ignore errors
71-
}
65+
wandItem = convertLegacyItem(node.node("wand-item").getString(wandItem)).toLowerCase(Locale.ROOT);
7266

7367
defaultChangeLimit = Math.max(-1, node.node("limits", "max-blocks-changed", "default").getInt(defaultChangeLimit));
7468
maxChangeLimit = Math.max(-1, node.node("limits", "max-blocks-changed", "maximum").getInt(maxChangeLimit));
@@ -115,12 +109,8 @@ public void load() {
115109
useInventoryOverride = node.node("use-inventory", "allow-override").getBoolean(useInventoryOverride);
116110
useInventoryCreativeOverride = node.node("use-inventory", "creative-mode-overrides").getBoolean(useInventoryCreativeOverride);
117111

118-
navigationWand = node.node("navigation-wand", "item").getString(navigationWand).toLowerCase(Locale.ROOT);
119-
try {
120-
navigationWand = LegacyMapper.getInstance().getItemFromLegacy(Integer.parseInt(navigationWand)).id();
121-
} catch (Throwable ignored) {
122-
// This is just for old configs, so ignore errors
123-
}
112+
navigationWand = convertLegacyItem(node.node("navigation-wand", "item").getString(navigationWand)).toLowerCase(Locale.ROOT);
113+
124114
navigationWandMaxDistance = node.node("navigation-wand", "max-distance").getInt(navigationWandMaxDistance);
125115
navigationUseGlass = node.node("navigation", "use-glass").getBoolean(navigationUseGlass);
126116

0 commit comments

Comments
 (0)