mirror of
https://github.com/Xiao-MoMi/craft-engine.git
synced 2025-12-19 15:09:15 +00:00
添加深度合并map的选项
This commit is contained in:
@@ -52,7 +52,7 @@ The code you contribute will be open-sourced under the GPLv3 license. If you pre
|
|||||||
### 🌍 Translations
|
### 🌍 Translations
|
||||||
1. Clone this repository.
|
1. Clone this repository.
|
||||||
2. Create a new language file in: `/common-files/src/main/resources/translations`
|
2. Create a new language file in: `/common-files/src/main/resources/translations`
|
||||||
3. Once done, submit a **pull request** for review. We appreciate your contributions!
|
3. Once done, submit a **pull request** to **dev** branch for review. We appreciate your contributions!
|
||||||
|
|
||||||
## Differences Between Versions
|
## Differences Between Versions
|
||||||
| Version | Official Support | Max Players | Dev Builds |
|
| Version | Official Support | Max Players | Dev Builds |
|
||||||
@@ -76,7 +76,7 @@ repositories {
|
|||||||
```
|
```
|
||||||
```kotlin
|
```kotlin
|
||||||
dependencies {
|
dependencies {
|
||||||
compileOnly("net.momirealms:craft-engine-core:0.0.56")
|
compileOnly("net.momirealms:craft-engine-core:0.0.57")
|
||||||
compileOnly("net.momirealms:craft-engine-bukkit:0.0.56")
|
compileOnly("net.momirealms:craft-engine-bukkit:0.0.57")
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
@@ -52,8 +52,7 @@ resource-pack:
|
|||||||
- "@vanilla_textures"
|
- "@vanilla_textures"
|
||||||
bypass-models:
|
bypass-models:
|
||||||
- "@vanilla_models"
|
- "@vanilla_models"
|
||||||
bypass-sounds:
|
bypass-sounds: []
|
||||||
- "@vanilla_sounds"
|
|
||||||
bypass-equipments: []
|
bypass-equipments: []
|
||||||
# Validate if there are any errors in the resource pack, such as missing textures or models
|
# Validate if there are any errors in the resource pack, such as missing textures or models
|
||||||
validate:
|
validate:
|
||||||
|
|||||||
@@ -104,22 +104,27 @@ public class MiscUtils {
|
|||||||
public static void deepMergeMaps(Map<String, Object> baseMap, Map<String, Object> mapToMerge) {
|
public static void deepMergeMaps(Map<String, Object> baseMap, Map<String, Object> mapToMerge) {
|
||||||
for (Map.Entry<String, Object> entry : mapToMerge.entrySet()) {
|
for (Map.Entry<String, Object> entry : mapToMerge.entrySet()) {
|
||||||
String key = entry.getKey();
|
String key = entry.getKey();
|
||||||
Object value = entry.getValue();
|
if (!key.isEmpty() && key.charAt(0) == '$') {
|
||||||
if (baseMap.containsKey(key)) {
|
Object value = entry.getValue();
|
||||||
Object existingValue = baseMap.get(key);
|
baseMap.put(key.substring(1), value);
|
||||||
if (existingValue instanceof Map && value instanceof Map) {
|
} else {
|
||||||
Map<String, Object> existingMap = (Map<String, Object>) existingValue;
|
Object value = entry.getValue();
|
||||||
Map<String, Object> newMap = (Map<String, Object>) value;
|
if (baseMap.containsKey(key)) {
|
||||||
deepMergeMaps(existingMap, newMap);
|
Object existingValue = baseMap.get(key);
|
||||||
} else if (existingValue instanceof List && value instanceof List) {
|
if (existingValue instanceof Map && value instanceof Map) {
|
||||||
List<Object> existingList = (List<Object>) existingValue;
|
Map<String, Object> existingMap = (Map<String, Object>) existingValue;
|
||||||
List<Object> newList = (List<Object>) value;
|
Map<String, Object> newMap = (Map<String, Object>) value;
|
||||||
existingList.addAll(newList);
|
deepMergeMaps(existingMap, newMap);
|
||||||
|
} else if (existingValue instanceof List && value instanceof List) {
|
||||||
|
List<Object> existingList = (List<Object>) existingValue;
|
||||||
|
List<Object> newList = (List<Object>) value;
|
||||||
|
existingList.addAll(newList);
|
||||||
|
} else {
|
||||||
|
baseMap.put(key, value);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
baseMap.put(key, value);
|
baseMap.put(key, value);
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
baseMap.put(key, value);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user