From 05fcb7b1aad5d3b2232933dcb5dd53e79f0b150e Mon Sep 17 00:00:00 2001 From: md678685 Date: Sat, 25 Aug 2018 18:38:50 +0100 Subject: [PATCH] Refactor to allow items to be added after first load --- .../net/ess3/nms/flattened/FlatItemDbProvider.java | 13 ++++++++++++- .../src/net/ess3/nms/ids/LegacyItemDbProvider.java | 12 ++++++++++-- .../src/net/ess3/nms/ItemDbProvider.java | 11 +++++++++-- 3 files changed, 31 insertions(+), 5 deletions(-) diff --git a/nms/FlattenedProvider/src/net/ess3/nms/flattened/FlatItemDbProvider.java b/nms/FlattenedProvider/src/net/ess3/nms/flattened/FlatItemDbProvider.java index 14709ba66..f6bce8baf 100644 --- a/nms/FlattenedProvider/src/net/ess3/nms/flattened/FlatItemDbProvider.java +++ b/nms/FlattenedProvider/src/net/ess3/nms/flattened/FlatItemDbProvider.java @@ -98,8 +98,13 @@ public class FlatItemDbProvider extends ItemDbProvider { return null; } + private void resetDb() { + primaryNames.clear(); + names.clear(); + } + @Override - public void rebuild(List lines) { + public void addFrom(List lines) { String json = lines.stream() .filter(line -> !line.startsWith("#")) .collect(Collectors.joining("\n")); @@ -124,6 +129,12 @@ public class FlatItemDbProvider extends ItemDbProvider { } } + @Override + public void rebuild(List lines) { + resetDb(); + addFrom(lines); + } + private void addAlias(String primaryName, String alias) { List aliasList; diff --git a/nms/IdProvider/src/net/ess3/nms/ids/LegacyItemDbProvider.java b/nms/IdProvider/src/net/ess3/nms/ids/LegacyItemDbProvider.java index d0debf44b..1705bca39 100644 --- a/nms/IdProvider/src/net/ess3/nms/ids/LegacyItemDbProvider.java +++ b/nms/IdProvider/src/net/ess3/nms/ids/LegacyItemDbProvider.java @@ -174,13 +174,15 @@ public class LegacyItemDbProvider extends ItemDbProvider { return nameList; } - @Override - public void rebuild(List lines) { + private void resetDb() { durabilities.clear(); items.clear(); names.clear(); primaryNames.clear(); + } + @Override + public void addFrom(List lines) { lines.stream() .filter(line -> line.length() > 0 && !(line.charAt(0) == '#')) .map(this::parseLine) @@ -192,6 +194,12 @@ public class LegacyItemDbProvider extends ItemDbProvider { } } + @Override + public void rebuild(List lines) { + resetDb(); + addFrom(lines); + } + private ItemData parseLine(String line) { String itemName = null; int numeric = -1; diff --git a/nms/NMSProvider/src/net/ess3/nms/ItemDbProvider.java b/nms/NMSProvider/src/net/ess3/nms/ItemDbProvider.java index ca82c8726..442e8e561 100644 --- a/nms/NMSProvider/src/net/ess3/nms/ItemDbProvider.java +++ b/nms/NMSProvider/src/net/ess3/nms/ItemDbProvider.java @@ -20,9 +20,16 @@ public abstract class ItemDbProvider implements Provider { private PotionMetaProvider potionMetaProvider; /** - * Rebuild the item database, using the given lines of a file. + * Populate the item database using the given lines of data. * - * @param lines The lines of the file from which the database should be built. + * @param lines The lines of data from which the database should be populated + */ + public abstract void addFrom(List lines); + + /** + * Reset the database and rebuild it from the given lines of data. + * + * @param lines The lines of the file from which the database should be built */ public abstract void rebuild(List lines);