9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2026-01-06 15:52:03 +00:00

字体字符id自动分配

This commit is contained in:
XiaoMoMi
2025-09-29 00:26:57 +08:00
parent 7d24430a40
commit 5c06d8af13
53 changed files with 676 additions and 574 deletions

View File

@@ -13,7 +13,7 @@ import net.momirealms.craftengine.bukkit.api.BukkitAdaptors;
import net.momirealms.craftengine.core.item.CustomItem;
import net.momirealms.craftengine.core.item.ItemBuildContext;
import net.momirealms.craftengine.core.plugin.CraftEngine;
import net.momirealms.craftengine.core.util.MCUtils;
import net.momirealms.craftengine.core.util.MiscUtils;
import net.momirealms.craftengine.core.util.ReflectionUtils;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
@@ -42,7 +42,7 @@ public class MythicItemDrop extends ItemDrop implements IItemDrop {
context = ItemBuildContext.of(player);
}
}
int amountInt = MCUtils.fastFloor(amount + 0.5F);
int amountInt = MiscUtils.fastFloor(amount + 0.5F);
ItemStack itemStack = this.customItem.buildItemStack(context, amountInt);
return adapt(itemStack).amount(amountInt);
}

View File

@@ -362,7 +362,7 @@ public final class BukkitBlockManager extends AbstractBlockManager {
// 注册服务端侧的真实方块
private void registerServerSideCustomBlocks(int count) {
// 这个会影响全局调色盘
if (MCUtils.ceilLog2(this.vanillaBlockStateCount + count) == MCUtils.ceilLog2(this.vanillaBlockStateCount)) {
if (MiscUtils.ceilLog2(this.vanillaBlockStateCount + count) == MiscUtils.ceilLog2(this.vanillaBlockStateCount)) {
PalettedContainer.NEED_DOWNGRADE = false;
}
try {

View File

@@ -20,7 +20,7 @@ import net.momirealms.craftengine.core.item.context.UseOnContext;
import net.momirealms.craftengine.core.plugin.context.PlayerOptionalContext;
import net.momirealms.craftengine.core.sound.SoundData;
import net.momirealms.craftengine.core.util.AdventureHelper;
import net.momirealms.craftengine.core.util.MCUtils;
import net.momirealms.craftengine.core.util.MiscUtils;
import net.momirealms.craftengine.core.util.ResourceConfigUtils;
import net.momirealms.craftengine.core.world.BlockPos;
import net.momirealms.craftengine.core.world.CEWorld;
@@ -166,7 +166,7 @@ public class SimpleStorageBlockBehavior extends BukkitBlockBehavior implements E
}
}
signal /= (float) inventory.getSize();
return MCUtils.lerpDiscrete(signal, 0, 15);
return MiscUtils.lerpDiscrete(signal, 0, 15);
}
}
return 0;
@@ -194,7 +194,7 @@ public class SimpleStorageBlockBehavior extends BukkitBlockBehavior implements E
@Override
public BlockBehavior create(CustomBlock block, Map<String, Object> arguments) {
String title = arguments.getOrDefault("title", "").toString();
int rows = MCUtils.clamp(ResourceConfigUtils.getAsInt(arguments.getOrDefault("rows", 1), "rows"), 1, 6);
int rows = MiscUtils.clamp(ResourceConfigUtils.getAsInt(arguments.getOrDefault("rows", 1), "rows"), 1, 6);
Map<String, Object> sounds = (Map<String, Object>) arguments.get("sounds");
boolean hasAnalogOutputSignal = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("has-signal", true), "has-signal");
SoundData openSound = null;

View File

@@ -171,7 +171,7 @@ public class ShulkerHitBox extends AbstractHitBox {
}
private static float getPhysicalPeek(float peek) {
return 0.5F - MCUtils.sin((0.5F + peek) * 3.1415927F) * 0.5F;
return 0.5F - MiscUtils.sin((0.5F + peek) * 3.1415927F) * 0.5F;
}
public boolean interactionEntity() {

View File

@@ -17,7 +17,6 @@ import net.momirealms.craftengine.core.block.ImmutableBlockState;
import net.momirealms.craftengine.core.block.UpdateOption;
import net.momirealms.craftengine.core.block.properties.Property;
import net.momirealms.craftengine.core.item.Item;
import net.momirealms.craftengine.core.util.MCUtils;
import net.momirealms.craftengine.core.util.MiscUtils;
import org.bukkit.Material;
import org.bukkit.block.Block;
@@ -119,7 +118,7 @@ public class DebugStickListener implements Listener {
}
private static <T> T getRelative(Iterable<T> elements, @Nullable T current, boolean inverse) {
return inverse ? MCUtils.findPreviousInIterable(elements, current) : MCUtils.findNextInIterable(elements, current);
return inverse ? MiscUtils.findPreviousInIterable(elements, current) : MiscUtils.findNextInIterable(elements, current);
}
private static <T extends Comparable<T>> String getNameHelper(ImmutableBlockState state, Property<T> property) {

View File

@@ -474,9 +474,9 @@ public class ItemEventListener implements Listener {
if (foodData == null) return;
event.setCancelled(true);
int oldFoodLevel = player.getFoodLevel();
if (foodData.nutrition() != 0) player.setFoodLevel(MCUtils.clamp(oldFoodLevel + foodData.nutrition(), 0, 20));
if (foodData.nutrition() != 0) player.setFoodLevel(MiscUtils.clamp(oldFoodLevel + foodData.nutrition(), 0, 20));
float oldSaturation = player.getSaturation();
if (foodData.saturation() != 0) player.setSaturation(MCUtils.clamp(oldSaturation, 0, 10));
if (foodData.saturation() != 0) player.setSaturation(MiscUtils.clamp(oldSaturation, 0, 10));
}
private boolean cancelEventIfHasInteraction(PlayerInteractEvent event, BukkitServerPlayer player, InteractionHand hand) {

View File

@@ -12,7 +12,6 @@ import net.momirealms.craftengine.bukkit.util.InventoryUtils;
import net.momirealms.craftengine.bukkit.util.LegacyInventoryUtils;
import net.momirealms.craftengine.core.plugin.CraftEngine;
import net.momirealms.craftengine.core.plugin.gui.*;
import net.momirealms.craftengine.core.util.ReflectionUtils;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@@ -23,11 +22,9 @@ import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryCloseEvent;
import org.bukkit.event.inventory.InventoryDragEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.inventory.InventoryView;
import org.bukkit.inventory.MenuType;
public class BukkitGuiManager implements GuiManager, Listener {
private static final boolean useNewOpenInventory = ReflectionUtils.getDeclaredMethod(InventoryView.class, void.class, new String[]{"open"}) != null;
// private static final boolean useNewOpenInventory = ReflectionUtils.getDeclaredMethod(InventoryView.class, void.class, new String[]{"open"}) != null;
private static BukkitGuiManager instance;
private final BukkitCraftEngine plugin;
@@ -46,21 +43,21 @@ public class BukkitGuiManager implements GuiManager, Listener {
HandlerList.unregisterAll(this);
}
@SuppressWarnings("UnstableApiUsage")
// @SuppressWarnings("UnstableApiUsage")
@Override
public void openInventory(net.momirealms.craftengine.core.entity.player.Player player, GuiType guiType) {
Player bukkitPlayer = (Player) player.platformPlayer();
if (useNewOpenInventory) {
switch (guiType) {
case ANVIL -> MenuType.ANVIL.create(bukkitPlayer).open();
case LOOM -> MenuType.LOOM.create(bukkitPlayer).open();
case ENCHANTMENT -> MenuType.ENCHANTMENT.create(bukkitPlayer).open();
case CRAFTING -> MenuType.CRAFTING.create(bukkitPlayer).open();
case CARTOGRAPHY -> MenuType.CARTOGRAPHY_TABLE.create(bukkitPlayer).open();
case SMITHING -> MenuType.SMITHING.create(bukkitPlayer).open();
case GRINDSTONE -> MenuType.GRINDSTONE.create(bukkitPlayer).open();
}
} else {
// if (useNewOpenInventory) {
// switch (guiType) {
// case ANVIL -> MenuType.ANVIL.create(bukkitPlayer).open();
// case LOOM -> MenuType.LOOM.create(bukkitPlayer).open();
// case ENCHANTMENT -> MenuType.ENCHANTMENT.create(bukkitPlayer).open();
// case CRAFTING -> MenuType.CRAFTING.create(bukkitPlayer).open();
// case CARTOGRAPHY -> MenuType.CARTOGRAPHY_TABLE.create(bukkitPlayer).open();
// case SMITHING -> MenuType.SMITHING.create(bukkitPlayer).open();
// case GRINDSTONE -> MenuType.GRINDSTONE.create(bukkitPlayer).open();
// }
// } else {
switch (guiType) {
case ANVIL -> LegacyInventoryUtils.openAnvil(bukkitPlayer);
case LOOM -> LegacyInventoryUtils.openLoom(bukkitPlayer);
@@ -70,7 +67,7 @@ public class BukkitGuiManager implements GuiManager, Listener {
case ENCHANTMENT -> LegacyInventoryUtils.openEnchanting(bukkitPlayer);
case CARTOGRAPHY -> LegacyInventoryUtils.openCartographyTable(bukkitPlayer);
}
}
// }
}
@Override

View File

@@ -16,7 +16,7 @@ import net.momirealms.craftengine.core.plugin.network.EntityPacketHandler;
import net.momirealms.craftengine.core.plugin.network.NMSPacketEvent;
import net.momirealms.craftengine.core.plugin.network.NetWorkUser;
import net.momirealms.craftengine.core.util.FriendlyByteBuf;
import net.momirealms.craftengine.core.util.MCUtils;
import net.momirealms.craftengine.core.util.MiscUtils;
import net.momirealms.craftengine.core.util.VersionHelper;
import net.momirealms.craftengine.core.world.Vec3d;
import org.bukkit.inventory.ItemStack;
@@ -89,8 +89,8 @@ public class ProjectilePacketHandler implements EntityPacketHandler {
buf.writeDouble(y);
buf.writeDouble(z);
if (VersionHelper.isOrAbove1_21_9()) buf.writeLpVec3(movement);
buf.writeByte(MCUtils.packDegrees(MCUtils.clamp(-MCUtils.unpackDegrees(xRot), -90.0F, 90.0F)));
buf.writeByte(MCUtils.packDegrees(-MCUtils.unpackDegrees(yRot)));
buf.writeByte(MiscUtils.packDegrees(MiscUtils.clamp(-MiscUtils.unpackDegrees(xRot), -90.0F, 90.0F)));
buf.writeByte(MiscUtils.packDegrees(-MiscUtils.unpackDegrees(yRot)));
buf.writeByte(yHeadRot);
buf.writeVarInt(data);
if (!VersionHelper.isOrAbove1_21_9()) buf.writeShort(xa);
@@ -142,12 +142,12 @@ public class ProjectilePacketHandler implements EntityPacketHandler {
short xa = FastNMS.INSTANCE.field$ClientboundMoveEntityPacket$xa(packet);
short ya = FastNMS.INSTANCE.field$ClientboundMoveEntityPacket$ya(packet);
short za = FastNMS.INSTANCE.field$ClientboundMoveEntityPacket$za(packet);
float xRot = MCUtils.unpackDegrees(FastNMS.INSTANCE.field$ClientboundMoveEntityPacket$xRot(packet));
float yRot = MCUtils.unpackDegrees(FastNMS.INSTANCE.field$ClientboundMoveEntityPacket$yRot(packet));
float xRot = MiscUtils.unpackDegrees(FastNMS.INSTANCE.field$ClientboundMoveEntityPacket$xRot(packet));
float yRot = MiscUtils.unpackDegrees(FastNMS.INSTANCE.field$ClientboundMoveEntityPacket$yRot(packet));
boolean onGround = FastNMS.INSTANCE.field$ClientboundMoveEntityPacket$onGround(packet);
return FastNMS.INSTANCE.constructor$ClientboundMoveEntityPacket$PosRot(
entityId, xa, ya, za,
MCUtils.packDegrees(-yRot), MCUtils.packDegrees(MCUtils.clamp(-xRot, -90.0F, 90.0F)),
MiscUtils.packDegrees(-yRot), MiscUtils.packDegrees(MiscUtils.clamp(-xRot, -90.0F, 90.0F)),
onGround
);
}