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
|
||||
1. Clone this repository.
|
||||
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
|
||||
| Version | Official Support | Max Players | Dev Builds |
|
||||
@@ -76,7 +76,7 @@ repositories {
|
||||
```
|
||||
```kotlin
|
||||
dependencies {
|
||||
compileOnly("net.momirealms:craft-engine-core:0.0.56")
|
||||
compileOnly("net.momirealms:craft-engine-bukkit:0.0.56")
|
||||
compileOnly("net.momirealms:craft-engine-core:0.0.57")
|
||||
compileOnly("net.momirealms:craft-engine-bukkit:0.0.57")
|
||||
}
|
||||
```
|
||||
@@ -52,8 +52,7 @@ resource-pack:
|
||||
- "@vanilla_textures"
|
||||
bypass-models:
|
||||
- "@vanilla_models"
|
||||
bypass-sounds:
|
||||
- "@vanilla_sounds"
|
||||
bypass-sounds: []
|
||||
bypass-equipments: []
|
||||
# Validate if there are any errors in the resource pack, such as missing textures or models
|
||||
validate:
|
||||
|
||||
@@ -104,22 +104,27 @@ public class MiscUtils {
|
||||
public static void deepMergeMaps(Map<String, Object> baseMap, Map<String, Object> mapToMerge) {
|
||||
for (Map.Entry<String, Object> entry : mapToMerge.entrySet()) {
|
||||
String key = entry.getKey();
|
||||
Object value = entry.getValue();
|
||||
if (baseMap.containsKey(key)) {
|
||||
Object existingValue = baseMap.get(key);
|
||||
if (existingValue instanceof Map && value instanceof Map) {
|
||||
Map<String, Object> existingMap = (Map<String, Object>) existingValue;
|
||||
Map<String, Object> newMap = (Map<String, Object>) value;
|
||||
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);
|
||||
if (!key.isEmpty() && key.charAt(0) == '$') {
|
||||
Object value = entry.getValue();
|
||||
baseMap.put(key.substring(1), value);
|
||||
} else {
|
||||
Object value = entry.getValue();
|
||||
if (baseMap.containsKey(key)) {
|
||||
Object existingValue = baseMap.get(key);
|
||||
if (existingValue instanceof Map && value instanceof Map) {
|
||||
Map<String, Object> existingMap = (Map<String, Object>) existingValue;
|
||||
Map<String, Object> newMap = (Map<String, Object>) value;
|
||||
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 {
|
||||
baseMap.put(key, value);
|
||||
}
|
||||
} else {
|
||||
baseMap.put(key, value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user