Plugin Résolu Serveur Ktor problème avec l'ItemMeta

  • Auteur de la discussion Auteur de la discussion VG07
  • Date de début Date de début

VG07

Massacreur de Mouton
23 Mars 2020
36
1
18
23
Bonjour,
Je fais un serveur KTOR qui vise à de permettre au joueur d'acheter des objets IG avec de l'argent IG pour cela, j'utilise l'api spigot en 1.20 . J'utilise aussi cette classe, mais j'ai l'erreur ci-dessous lorsque j'utilise la méthode getItemMeta() ou en Kotlin .itemMeta. J'aimerais savoir comment faire pour ne plus avoir cette erreur et que la méthode fromJson(string: String?):ItemStack? fonctionne normalement à noter que j'ai aussi un NullPointerException lorsque j'utilise la méthode toJson(itemStack: ItemStack): String si besoin ici est mon projet que j'ai mis sur GitHub. Merci par avance pour le temps que vous passerez à chercher une solution.

Code:
java.lang.NullPointerException: null
    at org.bukkit.Bukkit.getItemFactory(Bukkit.java:1608)
    at org.bukkit.inventory.ItemStack.getItemMeta(ItemStack.java:550)
    at fr.plaglefleau.serialization.JsonItemStack.fromJson(JsonItemStack.kt:278)
    at fr.plaglefleau.bdd_MySql.Gestion.updateInventory(Gestion.kt:815)
    at fr.plaglefleau.plugins.RoutingKt$configureRouting$1$3$1$1$7.invokeSuspend(Routing.kt:588)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.internal.DispatchedContinuation.resumeWith(DispatchedContinuation.kt:205)
    at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:135)
    at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:109)
    at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:11)
    at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:59)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
    at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
    at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    at io.ktor.server.netty.EventLoopGroupProxy$Companion.create$lambda$1$lambda$0(NettyApplicationEngine.kt:296)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.base/java.lang.Thread.run(Thread.java:834)
2023-07-09 03:46:51.495 [eventLoopGroupProxy-4-1] TRACE io.ktor.server.sessions.Sessions - Sending session data for /api/client/updateInventory: connect
2023-07-09 03:46:51.496 [eventLoopGroupProxy-4-1] TRACE i.k.s.p.c.ContentNegotiation - Skipping response body transformation from HttpStatusCode to OutgoingContent for the PUT /api/client/updateInventory request because the HttpStatusCode type is ignored. See [ContentNegotiationConfig::ignoreType].
 
Dernière édition:
J'ai regardé un peu plus profondément dans le code de l'api spigot. On ne peut donc probablement pas faire d'itemStack, car il nous faut l'itemMeta et que l'itemMeta est construit à partir du serveur Minecraft.
 
Dernière édition:
Salut,

Si un modérateur peut mettre ce post en non solvable
Ce tag n'existe pas vraiment..
Tu peux mettre le préfix "Résolu" et au pire les personnes qui tombent sur ce poste verront que tu n'as pas trouvé de solution :/

Je n'aime pas trop le Kotlin (et n'ai pas trop l'habitude de le lire), mais j'ai vu que tu utilisais le "pseudo" du joueur... Ce n'est pas la meilleur solution, vu qu'il y a moyen de changer de pseudo.
Il vaut mieux utiliser l'UUID.


Cordialement,
Detobel36