diff --git a/src/main/java/com/atsuishio/superbwarfare/data/gun/DefaultGunData.java b/src/main/java/com/atsuishio/superbwarfare/data/gun/DefaultGunData.java index a56fd615a..7e4757da3 100644 --- a/src/main/java/com/atsuishio/superbwarfare/data/gun/DefaultGunData.java +++ b/src/main/java/com/atsuishio/superbwarfare/data/gun/DefaultGunData.java @@ -6,6 +6,8 @@ import java.util.List; import java.util.Set; public class DefaultGunData { + @SerializedName("ID") + public String id = ""; @SerializedName("RecoilX") public double recoilX; diff --git a/src/main/java/com/atsuishio/superbwarfare/data/gun/GunData.java b/src/main/java/com/atsuishio/superbwarfare/data/gun/GunData.java index dc90d8db7..d6a866321 100644 --- a/src/main/java/com/atsuishio/superbwarfare/data/gun/GunData.java +++ b/src/main/java/com/atsuishio/superbwarfare/data/gun/GunData.java @@ -55,7 +55,7 @@ public class GunData { this.item = gunItem; this.stack = stack; var id = stack.getDescriptionId(); - this.id = id.substring(id.lastIndexOf(".") + 1); + this.id = id.substring(id.indexOf(".") + 1).replace('.', ':'); var customData = stack.get(DataComponents.CUSTOM_DATA); this.tag = customData != null ? customData.copyTag() : new CompoundTag(); diff --git a/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java b/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java index 0666dc91e..7f221d500 100644 --- a/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java +++ b/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java @@ -32,16 +32,16 @@ public class GunsTool { gunsData.clear(); GunData.dataCache.invalidateAll(); - // TODO 将枪械ID挪至JSON数据内 for (var entry : manager.listResources("guns", file -> file.getPath().endsWith(".json")).entrySet()) { - var id = entry.getKey(); var attribute = entry.getValue(); + try { Gson gson = new Gson(); var data = gson.fromJson(new InputStreamReader(attribute.open()), DefaultGunData.class); - var path = id.getPath(); - gunsData.put(path.substring(5, path.length() - 5), data); + if (!gunsData.containsKey(data.id)) { + gunsData.put(data.id, data); + } } catch (Exception e) { Mod.LOGGER.error(e.getMessage()); } diff --git a/src/main/resources/data/superbwarfare/guns/aa_12.json b/src/main/resources/data/superbwarfare/guns/aa_12.json index a8aa7165d..0afe58534 100644 --- a/src/main/resources/data/superbwarfare/guns/aa_12.json +++ b/src/main/resources/data/superbwarfare/guns/aa_12.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:aa_12", "Spread": 3.5, "RecoilX": 0.006, "RecoilY": 0.018, diff --git a/src/main/resources/data/superbwarfare/guns/ak_12.json b/src/main/resources/data/superbwarfare/guns/ak_12.json index a63ec9e4f..503d4e0a2 100644 --- a/src/main/resources/data/superbwarfare/guns/ak_12.json +++ b/src/main/resources/data/superbwarfare/guns/ak_12.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:ak_12", "MinZoom": 1.25, "MaxZoom": 6, "Spread": 3.5, diff --git a/src/main/resources/data/superbwarfare/guns/ak_47.json b/src/main/resources/data/superbwarfare/guns/ak_47.json index 44de94909..7768b606c 100644 --- a/src/main/resources/data/superbwarfare/guns/ak_47.json +++ b/src/main/resources/data/superbwarfare/guns/ak_47.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:ak_47", "MinZoom": 1.25, "MaxZoom": 6, "Spread": 4, diff --git a/src/main/resources/data/superbwarfare/guns/aurelia_sceptre.json b/src/main/resources/data/superbwarfare/guns/aurelia_sceptre.json index 89e71f4e2..b80334c91 100644 --- a/src/main/resources/data/superbwarfare/guns/aurelia_sceptre.json +++ b/src/main/resources/data/superbwarfare/guns/aurelia_sceptre.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:aurelia_sceptre", "Spread": 0.5, "RecoilX": 0, "RecoilY": 0, diff --git a/src/main/resources/data/superbwarfare/guns/bocek.json b/src/main/resources/data/superbwarfare/guns/bocek.json index 2c6d8b37f..20aed4326 100644 --- a/src/main/resources/data/superbwarfare/guns/bocek.json +++ b/src/main/resources/data/superbwarfare/guns/bocek.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:bocek", "Spread": 4, "Headshot": 2.5, "Damage": 48, diff --git a/src/main/resources/data/superbwarfare/guns/devotion.json b/src/main/resources/data/superbwarfare/guns/devotion.json index f3c328c79..aa8f95097 100644 --- a/src/main/resources/data/superbwarfare/guns/devotion.json +++ b/src/main/resources/data/superbwarfare/guns/devotion.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:devotion", "DefaultZoom": 2, "Spread": 5, "RecoilX": 0.0018, diff --git a/src/main/resources/data/superbwarfare/guns/glock_17.json b/src/main/resources/data/superbwarfare/guns/glock_17.json index 82125567b..5cb2e24dd 100644 --- a/src/main/resources/data/superbwarfare/guns/glock_17.json +++ b/src/main/resources/data/superbwarfare/guns/glock_17.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:glock_17", "Spread": 2.5, "RecoilX": 0.004, "RecoilY": 0.013, diff --git a/src/main/resources/data/superbwarfare/guns/glock_18.json b/src/main/resources/data/superbwarfare/guns/glock_18.json index b42748ed5..bdf7d2428 100644 --- a/src/main/resources/data/superbwarfare/guns/glock_18.json +++ b/src/main/resources/data/superbwarfare/guns/glock_18.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:glock_18", "Spread": 2.5, "RecoilX": 0.004, "RecoilY": 0.013, diff --git a/src/main/resources/data/superbwarfare/guns/hk_416.json b/src/main/resources/data/superbwarfare/guns/hk_416.json index 2c1c1dc23..f97c2271a 100644 --- a/src/main/resources/data/superbwarfare/guns/hk_416.json +++ b/src/main/resources/data/superbwarfare/guns/hk_416.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:hk_416", "MinZoom": 1.25, "MaxZoom": 6, "Spread": 3.5, diff --git a/src/main/resources/data/superbwarfare/guns/homemade_shotgun.json b/src/main/resources/data/superbwarfare/guns/homemade_shotgun.json index 34147e254..655c07d82 100644 --- a/src/main/resources/data/superbwarfare/guns/homemade_shotgun.json +++ b/src/main/resources/data/superbwarfare/guns/homemade_shotgun.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:homemade_shotgun", "Spread": 4, "RecoilX": 0.005, "RecoilY": 0.026, diff --git a/src/main/resources/data/superbwarfare/guns/hunting_rifle.json b/src/main/resources/data/superbwarfare/guns/hunting_rifle.json index c98f67141..d716fd38e 100644 --- a/src/main/resources/data/superbwarfare/guns/hunting_rifle.json +++ b/src/main/resources/data/superbwarfare/guns/hunting_rifle.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:hunting_rifle", "Spread": 7, "RecoilX": 0.004, "RecoilY": 0.04, diff --git a/src/main/resources/data/superbwarfare/guns/insidious.json b/src/main/resources/data/superbwarfare/guns/insidious.json index 24db4bb44..6a911258b 100644 --- a/src/main/resources/data/superbwarfare/guns/insidious.json +++ b/src/main/resources/data/superbwarfare/guns/insidious.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:insidious", "Spread": 4, "RecoilX": 0.006, "RecoilY": 0.011, diff --git a/src/main/resources/data/superbwarfare/guns/javelin.json b/src/main/resources/data/superbwarfare/guns/javelin.json index 5c374f3b6..791662916 100644 --- a/src/main/resources/data/superbwarfare/guns/javelin.json +++ b/src/main/resources/data/superbwarfare/guns/javelin.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:javelin", "DefaultZoom": 3, "Spread": 5, "Magazine": 1, diff --git a/src/main/resources/data/superbwarfare/guns/k_98.json b/src/main/resources/data/superbwarfare/guns/k_98.json index 1a2d477e5..78b946013 100644 --- a/src/main/resources/data/superbwarfare/guns/k_98.json +++ b/src/main/resources/data/superbwarfare/guns/k_98.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:k_98", "Spread": 5, "RecoilX": 0.002, "RecoilY": 0.063, diff --git a/src/main/resources/data/superbwarfare/guns/m_1911.json b/src/main/resources/data/superbwarfare/guns/m_1911.json index 72656aa0a..29114b1f2 100644 --- a/src/main/resources/data/superbwarfare/guns/m_1911.json +++ b/src/main/resources/data/superbwarfare/guns/m_1911.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:m_1911", "Spread": 2.5, "RecoilX": 0.006, "RecoilY": 0.018, diff --git a/src/main/resources/data/superbwarfare/guns/m_4.json b/src/main/resources/data/superbwarfare/guns/m_4.json index 99b0dc734..a33256332 100644 --- a/src/main/resources/data/superbwarfare/guns/m_4.json +++ b/src/main/resources/data/superbwarfare/guns/m_4.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:m_4", "MinZoom": 4, "MaxZoom": 8, "Spread": 4, diff --git a/src/main/resources/data/superbwarfare/guns/m_60.json b/src/main/resources/data/superbwarfare/guns/m_60.json index 4456bfe63..9b8a92a2f 100644 --- a/src/main/resources/data/superbwarfare/guns/m_60.json +++ b/src/main/resources/data/superbwarfare/guns/m_60.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:m_60", "Spread": 5, "RecoilX": 0.004, "RecoilY": 0.014, diff --git a/src/main/resources/data/superbwarfare/guns/m_79.json b/src/main/resources/data/superbwarfare/guns/m_79.json index b2d754f01..ff57c1c30 100644 --- a/src/main/resources/data/superbwarfare/guns/m_79.json +++ b/src/main/resources/data/superbwarfare/guns/m_79.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:m_79", "Spread": 3.5, "RecoilX": 0.004, "RecoilY": 0.023, diff --git a/src/main/resources/data/superbwarfare/guns/m_870.json b/src/main/resources/data/superbwarfare/guns/m_870.json index b5e810601..59abffda2 100644 --- a/src/main/resources/data/superbwarfare/guns/m_870.json +++ b/src/main/resources/data/superbwarfare/guns/m_870.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:m_870", "Spread": 3, "RecoilX": 0.009, "RecoilY": 0.04, diff --git a/src/main/resources/data/superbwarfare/guns/m_98b.json b/src/main/resources/data/superbwarfare/guns/m_98b.json index e2e8d7f34..7894e1727 100644 --- a/src/main/resources/data/superbwarfare/guns/m_98b.json +++ b/src/main/resources/data/superbwarfare/guns/m_98b.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:m_98b", "DefaultZoom": 6, "MinZoom": 4, "MaxZoom": 8, diff --git a/src/main/resources/data/superbwarfare/guns/marlin.json b/src/main/resources/data/superbwarfare/guns/marlin.json index 8a87f7e7a..92fc869a0 100644 --- a/src/main/resources/data/superbwarfare/guns/marlin.json +++ b/src/main/resources/data/superbwarfare/guns/marlin.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:marlin", "Spread": 2, "RecoilX": 0.004, "RecoilY": 0.031, diff --git a/src/main/resources/data/superbwarfare/guns/minigun.json b/src/main/resources/data/superbwarfare/guns/minigun.json index 236e18a1b..8d77a3227 100644 --- a/src/main/resources/data/superbwarfare/guns/minigun.json +++ b/src/main/resources/data/superbwarfare/guns/minigun.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:minigun", "Spread": 1.5, "RecoilX": 0.003, "RecoilY": 0.02, diff --git a/src/main/resources/data/superbwarfare/guns/mk_14.json b/src/main/resources/data/superbwarfare/guns/mk_14.json index 917409a76..3175c5c78 100644 --- a/src/main/resources/data/superbwarfare/guns/mk_14.json +++ b/src/main/resources/data/superbwarfare/guns/mk_14.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:mk_14", "MinZoom": 1.25, "MaxZoom": 6, "Spread": 5, diff --git a/src/main/resources/data/superbwarfare/guns/mosin_nagant.json b/src/main/resources/data/superbwarfare/guns/mosin_nagant.json index 2766f57b8..6bab82da1 100644 --- a/src/main/resources/data/superbwarfare/guns/mosin_nagant.json +++ b/src/main/resources/data/superbwarfare/guns/mosin_nagant.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:mosin_nagant", "DefaultZoom": 3.5, "Spread": 4.8, "RecoilX": 0.002, diff --git a/src/main/resources/data/superbwarfare/guns/mp_443.json b/src/main/resources/data/superbwarfare/guns/mp_443.json index 82125567b..39ba3a7cb 100644 --- a/src/main/resources/data/superbwarfare/guns/mp_443.json +++ b/src/main/resources/data/superbwarfare/guns/mp_443.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:mp_443", "Spread": 2.5, "RecoilX": 0.004, "RecoilY": 0.013, diff --git a/src/main/resources/data/superbwarfare/guns/ntw_20.json b/src/main/resources/data/superbwarfare/guns/ntw_20.json index 80fb01371..efe2cd437 100644 --- a/src/main/resources/data/superbwarfare/guns/ntw_20.json +++ b/src/main/resources/data/superbwarfare/guns/ntw_20.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:ntw_20", "MinZoom": 1.25, "MaxZoom": 6, "Spread": 8, diff --git a/src/main/resources/data/superbwarfare/guns/qbz_95.json b/src/main/resources/data/superbwarfare/guns/qbz_95.json index 3ea7d89aa..3166c198c 100644 --- a/src/main/resources/data/superbwarfare/guns/qbz_95.json +++ b/src/main/resources/data/superbwarfare/guns/qbz_95.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:qbz_95", "MinZoom": 4, "MaxZoom": 8, "Spread": 3.7, diff --git a/src/main/resources/data/superbwarfare/guns/rpg.json b/src/main/resources/data/superbwarfare/guns/rpg.json index 42ee363f5..2a509c719 100644 --- a/src/main/resources/data/superbwarfare/guns/rpg.json +++ b/src/main/resources/data/superbwarfare/guns/rpg.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:rpg", "Spread": 5, "RecoilX": 0.008, "RecoilY": 0.018, diff --git a/src/main/resources/data/superbwarfare/guns/rpk.json b/src/main/resources/data/superbwarfare/guns/rpk.json index 61d0a7e11..fd98becc2 100644 --- a/src/main/resources/data/superbwarfare/guns/rpk.json +++ b/src/main/resources/data/superbwarfare/guns/rpk.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:rpk", "MinZoom": 1.25, "MaxZoom": 6, "Spread": 5.5, diff --git a/src/main/resources/data/superbwarfare/guns/secondary_cataclysm.json b/src/main/resources/data/superbwarfare/guns/secondary_cataclysm.json index 05711d4ca..7663ebb48 100644 --- a/src/main/resources/data/superbwarfare/guns/secondary_cataclysm.json +++ b/src/main/resources/data/superbwarfare/guns/secondary_cataclysm.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:secondary_cataclysm", "Spread": 5, "RecoilX": 0.004, "RecoilY": 0.023, diff --git a/src/main/resources/data/superbwarfare/guns/sentinel.json b/src/main/resources/data/superbwarfare/guns/sentinel.json index d28bc6e93..b0fc36176 100644 --- a/src/main/resources/data/superbwarfare/guns/sentinel.json +++ b/src/main/resources/data/superbwarfare/guns/sentinel.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:sentinel", "DefaultZoom": 3, "Spread": 6, "RecoilX": 0.007, diff --git a/src/main/resources/data/superbwarfare/guns/sks.json b/src/main/resources/data/superbwarfare/guns/sks.json index 764e8a06b..330865d0a 100644 --- a/src/main/resources/data/superbwarfare/guns/sks.json +++ b/src/main/resources/data/superbwarfare/guns/sks.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:sks", "Spread": 4.5, "RecoilX": 0.004, "RecoilY": 0.015, diff --git a/src/main/resources/data/superbwarfare/guns/svd.json b/src/main/resources/data/superbwarfare/guns/svd.json index 6f7f0bacf..5a53f3a1b 100644 --- a/src/main/resources/data/superbwarfare/guns/svd.json +++ b/src/main/resources/data/superbwarfare/guns/svd.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:svd", "MinZoom": 4, "MaxZoom": 8, "Spread": 5.5, diff --git a/src/main/resources/data/superbwarfare/guns/taser.json b/src/main/resources/data/superbwarfare/guns/taser.json index 417ba5ae3..de76f21b9 100644 --- a/src/main/resources/data/superbwarfare/guns/taser.json +++ b/src/main/resources/data/superbwarfare/guns/taser.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:taser", "Spread": 2, "RecoilX": 0.0001, "RecoilY": 0.002, diff --git a/src/main/resources/data/superbwarfare/guns/trachelium.json b/src/main/resources/data/superbwarfare/guns/trachelium.json index 47d1e24d9..8bf4ff7c7 100644 --- a/src/main/resources/data/superbwarfare/guns/trachelium.json +++ b/src/main/resources/data/superbwarfare/guns/trachelium.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:trachelium", "Spread": 3, "RecoilX": 0.005, "RecoilY": 0.032, diff --git a/src/main/resources/data/superbwarfare/guns/vector.json b/src/main/resources/data/superbwarfare/guns/vector.json index 2d673d16a..db23b8784 100644 --- a/src/main/resources/data/superbwarfare/guns/vector.json +++ b/src/main/resources/data/superbwarfare/guns/vector.json @@ -1,4 +1,5 @@ { + "ID": "superbwarfare:vector", "Spread": 2.3, "RecoilX": 0, "RecoilY": 0.007,