mirror of
https://github.com/Xiao-MoMi/craft-engine.git
synced 2025-12-28 03:19:14 +00:00
修复toast字体丢失
This commit is contained in:
@@ -533,7 +533,6 @@ public class BukkitServerPlayer extends Player {
|
||||
if (optionalCustomState.isPresent()) {
|
||||
ImmutableBlockState customState = optionalCustomState.get();
|
||||
Item<ItemStack> tool = getItemInHand(InteractionHand.MAIN_HAND);
|
||||
boolean isCorrectTool = FastNMS.INSTANCE.method$ItemStack$isCorrectToolForDrops(tool.getLiteralObject(), blockState);
|
||||
// 如果自定义方块在服务端侧未使用正确的工具,那么需要还原挖掘速度
|
||||
if (!BlockStateUtils.isCorrectTool(customState, tool)) {
|
||||
progress *= customState.settings().incorrectToolSpeed();
|
||||
|
||||
@@ -21,17 +21,16 @@ import org.jetbrains.annotations.Nullable;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
public class ToastFunction<CTX extends Context> extends AbstractConditionalFunction<CTX> {
|
||||
private final PlayerSelector<CTX> selector;
|
||||
private final TextProvider toast;
|
||||
private final String toast;
|
||||
private final java.util.function.Function<Player, Item<?>> icon;
|
||||
private final AdvancementType advancementType;
|
||||
|
||||
public ToastFunction(List<Condition<CTX>> predicates,
|
||||
@Nullable PlayerSelector<CTX> selector,
|
||||
TextProvider toast,
|
||||
String toast,
|
||||
java.util.function.Function<Player, Item<?>> icon,
|
||||
AdvancementType advancementType) {
|
||||
super(predicates);
|
||||
@@ -44,11 +43,11 @@ public class ToastFunction<CTX extends Context> extends AbstractConditionalFunct
|
||||
@Override
|
||||
public void runInternal(CTX ctx) {
|
||||
if (this.selector == null) {
|
||||
ctx.getOptionalParameter(DirectContextParameters.PLAYER).ifPresent(it -> it.sendToast(AdventureHelper.miniMessage().deserialize(this.toast.get(ctx), ctx.tagResolvers()), this.icon.apply(it), this.advancementType));
|
||||
ctx.getOptionalParameter(DirectContextParameters.PLAYER).ifPresent(it -> it.sendToast(AdventureHelper.miniMessage().deserialize(this.toast, ctx.tagResolvers()), this.icon.apply(it), this.advancementType));
|
||||
} else {
|
||||
for (Player viewer : this.selector.get(ctx)) {
|
||||
RelationalContext relationalContext = ViewerContext.of(ctx, PlayerOptionalContext.of(viewer));
|
||||
viewer.sendToast(AdventureHelper.miniMessage().deserialize(this.toast.get(relationalContext), relationalContext.tagResolvers()), this.icon.apply(viewer), this.advancementType);
|
||||
viewer.sendToast(AdventureHelper.miniMessage().deserialize(this.toast, relationalContext.tagResolvers()), this.icon.apply(viewer), this.advancementType);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -78,7 +77,7 @@ public class ToastFunction<CTX extends Context> extends AbstractConditionalFunct
|
||||
return new ToastFunction<>(
|
||||
getPredicates(arguments),
|
||||
PlayerSelectors.fromObject(arguments.get("target"), conditionFactory()),
|
||||
TextProviders.fromString(toast),
|
||||
toast,
|
||||
player -> CraftEngine.instance().itemManager().createWrappedItem(item, player),
|
||||
advancementType
|
||||
);
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package net.momirealms.craftengine.core.plugin.text.minimessage;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.minimessage.Context;
|
||||
import net.kyori.adventure.text.minimessage.ParsingException;
|
||||
import net.kyori.adventure.text.minimessage.tag.Tag;
|
||||
@@ -12,7 +11,6 @@ import net.momirealms.craftengine.core.util.Key;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
public class ImageTag implements TagResolver {
|
||||
@@ -34,9 +32,9 @@ public class ImageTag implements TagResolver {
|
||||
if (arguments.hasNext()) {
|
||||
int row = arguments.popOr("No argument row provided").asInt().orElseThrow(() -> ctx.newException("Invalid argument number", arguments));
|
||||
int column = arguments.popOr("No argument column provided").asInt().orElseThrow(() -> ctx.newException("Invalid argument number", arguments));
|
||||
return Tag.selfClosingInserting(Component.empty().children(List.of(optional.get().componentAt(row,column))));
|
||||
return Tag.selfClosingInserting(optional.get().componentAt(row,column));
|
||||
} else {
|
||||
return Tag.selfClosingInserting(Component.empty().children(List.of(optional.get().componentAt(0,0))));
|
||||
return Tag.selfClosingInserting(optional.get().componentAt(0,0));
|
||||
}
|
||||
} else {
|
||||
throw ctx.newException("Invalid image id", arguments);
|
||||
|
||||
Reference in New Issue
Block a user