9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-25 18:09:27 +00:00

优化non-italic-tag处理

This commit is contained in:
XiaoMoMi
2025-07-08 20:16:12 +08:00
parent 43e8187a08
commit a740917e28
6 changed files with 50 additions and 12 deletions

View File

@@ -2441,8 +2441,8 @@ public class PacketConsumers {
user.addResourcePackUUID(data.uuid());
}
FastNMS.INSTANCE.method$ServerConfigurationPacketListenerImpl$returnToWorld(packetListener);
}).exceptionally(throwable -> {
CraftEngine.instance().logger().warn("Failed to handle ClientboundFinishConfigurationPacket", throwable);
}).exceptionally(t -> {
CraftEngine.instance().logger().warn("Failed to handle ClientboundFinishConfigurationPacket", t);
FastNMS.INSTANCE.method$ServerConfigurationPacketListenerImpl$returnToWorld(packetListener);
return null;
});

View File

@@ -140,6 +140,8 @@ resource-pack:
item:
# Make custom-model-data and item-model clientside by default
client-bound-model: false
# Add a <!i> tag on custom name and lore
non-italic-tag: false
equipment:
# The sacrificed-vanilla-armor argument determines which vanilla armor gets completely removed (loses all its trims)

View File

@@ -509,14 +509,21 @@ public abstract class AbstractItemManager<I> extends AbstractModelGenerator impl
ExternalItemProvider<I> provider = AbstractItemManager.this.getExternalItemProvider(plugin);
return new ExternalModifier<>(id, Objects.requireNonNull(provider, "Item provider " + plugin + " not found"));
}, "external");
registerDataType((obj) -> {
String name = obj.toString();
return new CustomNameModifier<>(name);
}, "custom-name");
registerDataType((obj) -> {
String name = obj.toString();
return new ItemNameModifier<>(name);
}, "item-name", "display-name");
if (VersionHelper.isOrAbove1_20_5()) {
registerDataType((obj) -> {
String name = obj.toString();
return new CustomNameModifier<>(name);
}, "custom-name");
registerDataType((obj) -> {
String name = obj.toString();
return new ItemNameModifier<>(name);
}, "item-name", "display-name");
} else {
registerDataType((obj) -> {
String name = obj.toString();
return new CustomNameModifier<>(name);
}, "custom-name", "item-name", "display-name");
}
registerDataType((obj) -> {
List<String> lore = MiscUtils.getAsStringList(obj);
return new LoreModifier<>(lore);

View File

@@ -4,6 +4,7 @@ import net.momirealms.craftengine.core.item.ComponentKeys;
import net.momirealms.craftengine.core.item.Item;
import net.momirealms.craftengine.core.item.ItemBuildContext;
import net.momirealms.craftengine.core.item.NetworkItemHandler;
import net.momirealms.craftengine.core.plugin.config.Config;
import net.momirealms.craftengine.core.util.AdventureHelper;
import net.momirealms.craftengine.core.util.VersionHelper;
import net.momirealms.sparrow.nbt.CompoundTag;
@@ -13,7 +14,15 @@ public class CustomNameModifier<I> implements ItemDataModifier<I> {
private final String argument;
public CustomNameModifier(String argument) {
this.argument = argument;
if (Config.addNonItalicTag()) {
if (argument.startsWith("<!i>")) {
this.argument = argument;
} else {
this.argument = "<!i>" + argument;
}
} else {
this.argument = argument;
}
}
@Override

View File

@@ -4,18 +4,32 @@ import net.momirealms.craftengine.core.item.ComponentKeys;
import net.momirealms.craftengine.core.item.Item;
import net.momirealms.craftengine.core.item.ItemBuildContext;
import net.momirealms.craftengine.core.item.NetworkItemHandler;
import net.momirealms.craftengine.core.plugin.config.Config;
import net.momirealms.craftengine.core.util.AdventureHelper;
import net.momirealms.craftengine.core.util.VersionHelper;
import net.momirealms.sparrow.nbt.CompoundTag;
import net.momirealms.sparrow.nbt.Tag;
import java.util.ArrayList;
import java.util.List;
public class LoreModifier<I> implements ItemDataModifier<I> {
private final List<String> argument;
public LoreModifier(List<String> argument) {
this.argument = argument;
if (Config.addNonItalicTag()) {
List<String> processed = new ArrayList<>(argument.size());
for (String arg : argument) {
if (arg.startsWith("<!i>")) {
processed.add(arg);
} else {
processed.add("<!i>" + arg);
}
}
this.argument = processed;
} else {
this.argument = argument;
}
}
@Override

View File

@@ -146,6 +146,7 @@ public class Config {
protected boolean image$intercept_packets$item;
protected boolean item$client_bound_model;
protected boolean item$non_italic_tag;
protected String equipment$sacrificed_vanilla_armor$type;
protected Key equipment$sacrificed_vanilla_armor$asset_id;
@@ -344,6 +345,7 @@ public class Config {
// item
item$client_bound_model = config.getBoolean("item.client-bound-model", false);
item$non_italic_tag = config.getBoolean("item.non-italic-tag", false);
// block
block$sound_system$enable = config.getBoolean("block.sound-system.enable", true);
@@ -747,6 +749,10 @@ public class Config {
return instance.chunk_system$cache_system;
}
public static boolean addNonItalicTag() {
return instance.item$non_italic_tag;
}
public static boolean fastInjection() {
return instance.chunk_system$injection$use_fast_method;
}