Closed mjiangmc closed 1 month ago
This seems to be an error in the server that when we try to get the head for the player, it cannot be retrieved because the name is in Chinese. Does Minecraft allow Chinese names for players?
I could put in some code to just return a generic Steve head, but I'd like to know if Chinese names are possible or not.
This seems to be an error in the server that when we try to get the head for the player, it cannot be retrieved because the name is in Chinese. Does Minecraft allow Chinese names for players?
I could put in some code to just return a generic Steve head, but I'd like to know if Chinese names are possible or not.
I used a special core that supports characters other than English as player names:https://github.com/Winds-Studio/Leaf
这似乎是服务器中的一个错误,当我们尝试获取播放器的头部时,由于名称是中文的,因此无法检索。Minecraft 是否允许玩家使用中文名字?
我可以输入一些代码来返回一个通用的史蒂夫头像,但我想知道中文名字是否可行。
He is an English name, but I don't understand why there is an error:
[16:31:28 INFO]: Aolmo issued server command: /is challenges
[16:31:31 ERROR]: Could not pass event InventoryClickEvent to BentoBox v2.4.3-SNAPSHOT-b2683
java.lang.IllegalArgumentException: The name of the profile contains invalid characters: 啊啊啊qwq
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:220) ~[guava-33.2.1-jre.jar:?]
at org.bukkit.craftbukkit.profile.CraftPlayerProfile.validateSkullProfile(CraftPlayerProfile.java:42) ~[?:?]
at org.bukkit.craftbukkit.inventory.CraftMetaSkull.setOwnerProfile(CraftMetaSkull.java:234) ~[?:?]
at BentoBox-2.4.3-SNAPSHOT-b2683.jar/world.bentobox.bentobox.util.heads.HeadCache.getPlayerHead(HeadCache.java:102) ~[BentoBox-2.4.3-SNAPSHOT-b2683.jar:?]
at BentoBox-2.4.3-SNAPSHOT-b2683.jar/world.bentobox.bentobox.util.heads.HeadGetter.getHead(HeadGetter.java:93) ~[BentoBox-2.4.3-SNAPSHOT-b2683.jar:?]
at BentoBox-2.4.3-SNAPSHOT-b2683.jar/world.bentobox.bentobox.api.panels.Panel.makePanel(Panel.java:104) ~[BentoBox-2.4.3-SNAPSHOT-b2683.jar:?]
at BentoBox-2.4.3-SNAPSHOT-b2683.jar/world.bentobox.bentobox.api.panels.TemplatedPanel.generatePanel(TemplatedPanel.java:67) ~[BentoBox-2.4.3-SNAPSHOT-b2683.jar:?]
at BentoBox-2.4.3-SNAPSHOT-b2683.jar/world.bentobox.bentobox.api.panels.TemplatedPanel.(TemplatedPanel.java:52) ~[BentoBox-2.4.3-SNAPSHOT-b2683.jar:?]
at BentoBox-2.4.3-SNAPSHOT-b2683.jar/world.bentobox.bentobox.api.panels.builders.TemplatedPanelBuilder.build(TemplatedPanelBuilder.java:150) ~[BentoBox-2.4.3-SNAPSHOT-b2683.jar:?]
at Visit-1.6.0.jar/world.bentobox.visit.panels.player.VisitPanel.build(VisitPanel.java:134) ~[Visit-1.6.0.jar:?]
at Visit-1.6.0.jar/world.bentobox.visit.panels.player.VisitPanel.lambda$createNextButton$1(VisitPanel.java:199) ~[Visit-1.6.0.jar:?]
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[?:?]
at Visit-1.6.0.jar/world.bentobox.visit.panels.player.VisitPanel.lambda$createNextButton$2(VisitPanel.java:192) ~[Visit-1.6.0.jar:?]
at BentoBox-2.4.3-SNAPSHOT-b2683.jar/world.bentobox.bentobox.listeners.PanelListenerManager.lambda$onInventoryClick$0(PanelListenerManager.java:56) ~[BentoBox-2.4.3-SNAPSHOT-b2683.jar:?]
at java.base/java.util.Optional.ifPresent(Optional.java:178) ~[?:?]
at BentoBox-2.4.3-SNAPSHOT-b2683.jar/world.bentobox.bentobox.listeners.PanelListenerManager.onInventoryClick(PanelListenerManager.java:54) ~[BentoBox-2.4.3-SNAPSHOT-b2683.jar:?]
at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor812.execute(Unknown Source) ~[?:?]
at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:77) ~[paper-mojangapi-1.21-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:72) ~[paper-mojangapi-1.21-R0.1-SNAPSHOT.jar:?]
at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:60) ~[leaf-1.21.jar:1.21-DEV-5692cf0]
at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:131) ~[leaf-1.21.jar:1.21-DEV-5692cf0]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:629) ~[paper-mojangapi-1.21-R0.1-SNAPSHOT.jar:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.handleContainerClick(ServerGamePacketListenerImpl.java:3247) ~[?:?]
at net.minecraft.network.protocol.game.ServerboundContainerClickPacket.handle(ServerboundContainerClickPacket.java:69) ~[?:?]
at net.minecraft.network.protocol.game.ServerboundContainerClickPacket.a(ServerboundContainerClickPacket.java:33) ~[?:?]
at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:55) ~[?:?]
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[leaf-1.21.jar:1.21-DEV-5692cf0]
at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:152) ~[?:?]
at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1555) ~[leaf-1.21.jar:1.21-DEV-5692cf0]
at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:190) ~[leaf-1.21.jar:1.21-DEV-5692cf0]
at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:125) ~[?:?]
at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1533) ~[leaf-1.21.jar:1.21-DEV-5692cf0]
at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1526) ~[leaf-1.21.jar:1.21-DEV-5692cf0]
at net.minecraft.util.thread.BlockableEventLoop.runAllTasks(BlockableEventLoop.java:114) ~[?:?]
at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1642) ~[leaf-1.21.jar:1.21-DEV-5692cf0]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1318) ~[leaf-1.21.jar:1.21-DEV-5692cf0]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:320) ~[leaf-1.21.jar:1.21-DEV-5692cf0]
at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]
[16:31:32 ERROR]: Could not pass event InventoryClickEvent to BentoBox v2.4.3-SNAPSHOT-b2683
java.lang.IllegalArgumentException: The name of the profile contains invalid characters: 啊啊啊qwq
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:220) ~[guava-33.2.1-jre.jar:?]
at org.bukkit.craftbukkit.profile.CraftPlayerProfile.validateSkullProfile(CraftPlayerProfile.java:42) ~[?:?]
at org.bukkit.craftbukkit.inventory.CraftMetaSkull.setOwnerProfile(CraftMetaSkull.java:234) ~[?:?]
at BentoBox-2.4.3-SNAPSHOT-b2683.jar/world.bentobox.bentobox.util.heads.HeadCache.getPlayerHead(HeadCache.java:102) ~[BentoBox-2.4.3-SNAPSHOT-b2683.jar:?]
at BentoBox-2.4.3-SNAPSHOT-b2683.jar/world.bentobox.bentobox.util.heads.HeadGetter.getHead(HeadGetter.java:93) ~[BentoBox-2.4.3-SNAPSHOT-b2683.jar:?]
at BentoBox-2.4.3-SNAPSHOT-b2683.jar/world.bentobox.bentobox.api.panels.Panel.makePanel(Panel.java:104) ~[BentoBox-2.4.3-SNAPSHOT-b2683.jar:?]
at BentoBox-2.4.3-SNAPSHOT-b2683.jar/world.bentobox.bentobox.api.panels.TemplatedPanel.generatePanel(TemplatedPanel.java:67) ~[BentoBox-2.4.3-SNAPSHOT-b2683.jar:?]
at BentoBox-2.4.3-SNAPSHOT-b2683.jar/world.bentobox.bentobox.api.panels.TemplatedPanel.(TemplatedPanel.java:52) ~[BentoBox-2.4.3-SNAPSHOT-b2683.jar:?]
at BentoBox-2.4.3-SNAPSHOT-b2683.jar/world.bentobox.bentobox.api.panels.builders.TemplatedPanelBuilder.build(TemplatedPanelBuilder.java:150) ~[BentoBox-2.4.3-SNAPSHOT-b2683.jar:?]
at Visit-1.6.0.jar/world.bentobox.visit.panels.player.VisitPanel.build(VisitPanel.java:134) ~[Visit-1.6.0.jar:?]
at Visit-1.6.0.jar/world.bentobox.visit.panels.player.VisitPanel.lambda$createPreviousButton$7(VisitPanel.java:281) ~[Visit-1.6.0.jar:?]
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[?:?]
at Visit-1.6.0.jar/world.bentobox.visit.panels.player.VisitPanel.lambda$createPreviousButton$8(VisitPanel.java:274) ~[Visit-1.6.0.jar:?]
at BentoBox-2.4.3-SNAPSHOT-b2683.jar/world.bentobox.bentobox.listeners.PanelListenerManager.lambda$onInventoryClick$0(PanelListenerManager.java:56) ~[BentoBox-2.4.3-SNAPSHOT-b2683.jar:?]
at java.base/java.util.Optional.ifPresent(Optional.java:178) ~[?:?]
at BentoBox-2.4.3-SNAPSHOT-b2683.jar/world.bentobox.bentobox.listeners.PanelListenerManager.onInventoryClick(PanelListenerManager.java:54) ~[BentoBox-2.4.3-SNAPSHOT-b2683.jar:?]
at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor812.execute(Unknown Source) ~[?:?]
at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:77) ~[paper-mojangapi-1.21-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:72) ~[paper-mojangapi-1.21-R0.1-SNAPSHOT.jar:?]
at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:60) ~[leaf-1.21.jar:1.21-DEV-5692cf0]
at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:131) ~[leaf-1.21.jar:1.21-DEV-5692cf0]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:629) ~[paper-mojangapi-1.21-R0.1-SNAPSHOT.jar:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.handleContainerClick(ServerGamePacketListenerImpl.java:3247) ~[?:?]
at net.minecraft.network.protocol.game.ServerboundContainerClickPacket.handle(ServerboundContainerClickPacket.java:69) ~[?:?]
at net.minecraft.network.protocol.game.ServerboundContainerClickPacket.a(ServerboundContainerClickPacket.java:33) ~[?:?]
at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:55) ~[?:?]
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[leaf-1.21.jar:1.21-DEV-5692cf0]
at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:152) ~[?:?]
at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1555) ~[leaf-1.21.jar:1.21-DEV-5692cf0]
at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:190) ~[leaf-1.21.jar:1.21-DEV-5692cf0]
at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:125) ~[?:?]
at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1533) ~[leaf-1.21.jar:1.21-DEV-5692cf0]
at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1526) ~[leaf-1.21.jar:1.21-DEV-5692cf0]
at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:135) ~[?:?]
at net.minecraft.server.MinecraftServer.managedBlock(MinecraftServer.java:1484) ~[leaf-1.21.jar:1.21-DEV-5692cf0]
at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1491) ~[leaf-1.21.jar:1.21-DEV-5692cf0]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1338) ~[leaf-1.21.jar:1.21-DEV-5692cf0]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:320) ~[leaf-1.21.jar:1.21-DEV-5692cf0]
at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]```
Even though his name is in English characters the Top Ten, still has some Chinese ones. The error is:
The name of the profile contains invalid characters: 啊啊啊qwq
- maybe it is a joke name meaning "aaaaah, I'm sad"!
Anyway, to fix this I will have to filter these characters.
This is a Paper thing. From 1.20.6, these characters were not allowed but a fix PR was put in and there should be a setting somewhere on the server to allow these.
I'm trying to see if it's in a config somewhere....
I added some code to avoid the error. If the head cannot be obtained, then the generic head will be shown. Try the SNAPSHOT on ci.bentobox.world.
@mjiangmc Does the SNAPSHOT work for you?
@mjiangmc Does the SNAPSHOT work for you?
Thank you, I haven't found any bugs in the latest version :)
Expected behavior
Compatible with Chinese names
Observed/Actual behavior
Using the/is top command to open the leaderboard and then closing it again will result in an error message and the leaderboard cannot be opened again. Triggering this error will prevent the use of the invite player feature in the top right corner of/is team
Steps/models to reproduce
BentoBox version
Plugin list
Other
Server Core:[03:04:38 INFO]: Checking version, please wait... [03:04:38 INFO]: This server is running Leaf version 1.21-DEV-ver/1.21@5692cf0 (2024-08-09T11:58:29Z) (Implementing API version 1.21-R0.1-SNAPSHOT)