Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

java.lang.NullPointerException: ComponentPhase root cannot be null #649

Open
2 of 4 tasks
Azodox opened this issue Mar 4, 2024 · 1 comment
Open
2 of 4 tasks
Assignees
Labels
bug Something isn't working

Comments

@Azodox
Copy link

Azodox commented Mar 4, 2024

Is there an existing issue for this?

  • I have searched the existing issues

🐛 Describe the bug

I know it's not the first issue about this error but it was marked as fixed and deployed in 3.1.0, however, it's the version i'm using, so maybe it has not been deployed yet?

java.lang.NullPointerException: ComponentPhase root cannot be null
2024-03-04T14:54:43.064207338Z 	at java.util.Objects.requireNonNull(Unknown Source) ~[?:?]
2024-03-04T14:54:43.064210313Z 	at fr.azodox.lib.inventoryframework.component.AbstractComponent.getRoot(AbstractComponent.java:69) ~[get-the-beacon-0.1.1.jar:?]
2024-03-04T14:54:43.064212558Z 	at fr.azodox.lib.inventoryframework.component.PaginationImpl.toString(PaginationImpl.java:666) ~[get-the-beacon-0.1.1.jar:?]
2024-03-04T14:54:43.064214681Z 	at fr.azodox.lib.inventoryframework.state.DefaultStateValueHost.initializeState(DefaultStateValueHost.java:62) ~[get-the-beacon-0.1.1.jar:?]
2024-03-04T14:54:43.064216765Z 	at fr.azodox.lib.inventoryframework.context.ContextOpenInterceptor.intercept(ContextOpenInterceptor.java:30) ~[get-the-beacon-0.1.1.jar:?]
2024-03-04T14:54:43.064218809Z 	at fr.azodox.lib.inventoryframework.context.ContextOpenInterceptor.intercept(ContextOpenInterceptor.java:15) ~[get-the-beacon-0.1.1.jar:?]
2024-03-04T14:54:43.064220843Z 	at fr.azodox.lib.inventoryframework.pipeline.PipelineContext.loop(PipelineContext.java:43) ~[get-the-beacon-0.1.1.jar:?]
2024-03-04T14:54:43.064222887Z 	at fr.azodox.lib.inventoryframework.pipeline.PipelineContext.proceed(PipelineContext.java:53) ~[get-the-beacon-0.1.1.jar:?]
2024-03-04T14:54:43.064224911Z 	at fr.azodox.lib.inventoryframework.pipeline.PipelineContext.execute(PipelineContext.java:59) ~[get-the-beacon-0.1.1.jar:?]
2024-03-04T14:54:43.064226974Z 	at fr.azodox.lib.inventoryframework.pipeline.Pipeline.execute(Pipeline.java:128) ~[get-the-beacon-0.1.1.jar:?]
2024-03-04T14:54:43.064228978Z 	at fr.azodox.lib.inventoryframework.context.OpenContext.simulateOpen(OpenContext.java:187) ~[get-the-beacon-0.1.1.jar:?]
2024-03-04T14:54:43.064233256Z 	at fr.azodox.lib.inventoryframework.PlatformView.open(PlatformView.java:82) ~[get-the-beacon-0.1.1.jar:?]
2024-03-04T14:54:43.064235300Z 	at fr.azodox.lib.inventoryframework.IFViewFrame.internalOpen(IFViewFrame.java:156) ~[get-the-beacon-0.1.1.jar:?]
2024-03-04T14:54:43.064237314Z 	at fr.azodox.lib.inventoryframework.ViewFrame.open(ViewFrame.java:111) ~[get-the-beacon-0.1.1.jar:?]
2024-03-04T14:54:43.064249156Z 	at fr.azodox.lib.inventoryframework.ViewFrame.open(ViewFrame.java:73) ~[get-the-beacon-0.1.1.jar:?]
2024-03-04T14:54:43.064251300Z 	at fr.azodox.lib.inventoryframework.ViewFrame.open(ViewFrame.java:61) ~[get-the-beacon-0.1.1.jar:?]
2024-03-04T14:54:43.064254836Z 	at fr.azodox.gtb.game.Game.openTeamChoiceView(Game.kt:79) ~[get-the-beacon-0.1.1.jar:?]
2024-03-04T14:54:43.064256930Z 	at fr.azodox.gtb.listener.inventory.PlayerInteractionListener.onInteract(PlayerInteractionListener.kt:24) ~[get-the-beacon-0.1.1.jar:?]
2024-03-04T14:54:43.064258974Z 	at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor4.execute(Unknown Source) ~[?:?]
2024-03-04T14:54:43.064260958Z 	at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:77) ~[paper-api-1.20.4-R0.1-SNAPSHOT.jar:?]
2024-03-04T14:54:43.064262952Z 	at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:81) ~[paper-api-1.20.4-R0.1-SNAPSHOT.jar:git-Paper-446]
2024-03-04T14:54:43.064264975Z 	at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[paper-api-1.20.4-R0.1-SNAPSHOT.jar:?]
2024-03-04T14:54:43.064267981Z 	at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:54) ~[paper-1.20.4.jar:git-Paper-446]
2024-03-04T14:54:43.064270015Z 	at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:126) ~[paper-1.20.4.jar:git-Paper-446]
2024-03-04T14:54:43.064272008Z 	at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:615) ~[paper-api-1.20.4-R0.1-SNAPSHOT.jar:?]
2024-03-04T14:54:43.064273992Z 	at org.bukkit.craftbukkit.v1_20_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:593) ~[paper-1.20.4.jar:git-Paper-446]
2024-03-04T14:54:43.064276016Z 	at org.bukkit.craftbukkit.v1_20_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:549) ~[paper-1.20.4.jar:git-Paper-446]
2024-03-04T14:54:43.064278040Z 	at org.bukkit.craftbukkit.v1_20_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:544) ~[paper-1.20.4.jar:git-Paper-446]
2024-03-04T14:54:43.064280064Z 	at org.bukkit.craftbukkit.v1_20_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:540) ~[paper-1.20.4.jar:git-Paper-446]
2024-03-04T14:54:43.064282087Z 	at net.minecraft.server.network.ServerGamePacketListenerImpl.handleUseItem(ServerGamePacketListenerImpl.java:1993) ~[?:?]
2024-03-04T14:54:43.064284061Z 	at net.minecraft.network.protocol.game.ServerboundUseItemPacket.handle(ServerboundUseItemPacket.java:32) ~[?:?]
2024-03-04T14:54:43.064286055Z 	at net.minecraft.network.protocol.game.ServerboundUseItemPacket.a(ServerboundUseItemPacket.java:8) ~[?:?]
2024-03-04T14:54:43.064288249Z 	at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:54) ~[?:?]
2024-03-04T14:54:43.064290293Z 	at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.20.4.jar:git-Paper-446]
2024-03-04T14:54:43.064292256Z 	at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
2024-03-04T14:54:43.064296073Z 	at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
2024-03-04T14:54:43.064298087Z 	at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1455) ~[paper-1.20.4.jar:git-Paper-446]
2024-03-04T14:54:43.064300041Z 	at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:194) ~[paper-1.20.4.jar:git-Paper-446]
2024-03-04T14:54:43.064301994Z 	at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
2024-03-04T14:54:43.064303928Z 	at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1432) ~[paper-1.20.4.jar:git-Paper-446]
2024-03-04T14:54:43.064305892Z 	at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1355) ~[paper-1.20.4.jar:git-Paper-446]
2024-03-04T14:54:43.064307865Z 	at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[?:?]
2024-03-04T14:54:43.064309789Z 	at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1333) ~[paper-1.20.4.jar:git-Paper-446]
2024-03-04T14:54:43.064311743Z 	at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1222) ~[paper-1.20.4.jar:git-Paper-446]
2024-03-04T14:54:43.064456552Z 	at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319) ~[paper-1.20.4.jar:git-Paper-446]

Error thrown when trying to open a View which is a paginated view

✔️ Expected behavior

The view should open.

👣 Steps to Reproduce

Here's how I open it:

    fun openTeamChoiceView(player: Player) {
        val viewFrame = ViewFrame.create(plugin)
        viewFrame.with(GameTeamChoiceView(this.teams)).register()
        viewFrame.open(GameTeamChoiceView::class.java, player)
    }

And here's how I create my view:

package fr.azodox.gtb.game.team.view

import fr.azodox.gtb.game.team.GameTeam
import fr.azodox.gtb.lang.LanguageCore
import fr.azodox.gtb.util.ItemBuilder
import me.devnatan.inventoryframework.View
import me.devnatan.inventoryframework.ViewConfigBuilder
import me.devnatan.inventoryframework.component.Pagination
import me.devnatan.inventoryframework.state.State

class GameTeamChoiceView(private val teams: List<GameTeam>) : View() {

    private lateinit var paginationState: State<Pagination>
    override fun onInit(config: ViewConfigBuilder) {
        config.cancelOnDrag()
        config.cancelOnClick()
        config.cancelOnPickup()
        config.cancelOnDrop()

        config.size(3 * 9)
        config.title(
            LanguageCore.languages["fr-fr"]!!.message("lobby.team.choice.title")
        )
        this.paginationState = paginationState(teams.toMutableList()) { ctx, builder, _, team ->
            val itemBuilder = ItemBuilder(team.icon, 1).displayName(team.displayName)

            if (team.contains(ctx.player.uniqueId)) {
                itemBuilder.lore(
                    LanguageCore.languages["fr-fr"]!!
                        .message("lobby.team.choice.lore.already-in")
                        .replaceText {
                            it.match("%team%").replacement(team.name)
                            it.match("%size%").replacement(team.size.toString())
                        }
                )
            }else {
                itemBuilder.lore(
                    LanguageCore.languages["fr-fr"]!!
                        .message("lobby.team.choice.lore.not.joined")
                        .replaceText {
                            it.match("%team%").replacement(team.name)
                            it.match("%size%").replacement(team.size.toString())
                        }
                )
            }

            builder.withItem(
                itemBuilder.build()
            ).onClick { context ->
                val player = context.player
                if (!team.contains(player.uniqueId)) {
                    team.join(player.uniqueId)

                    player.sendMessage(
                        LanguageCore.languages["fr-fr"]!!
                            .message("lobby.team.choice.joined")
                            .replaceText {
                                it.match("%team%").replacement(team.name)
                            }
                    )
                }else{
                    team.leave(player.uniqueId)

                    player.sendMessage(
                        LanguageCore.languages["fr-fr"]!!
                            .message("lobby.team.choice.left")
                            .replaceText {
                                it.match("%team%").replacement(team.name)
                            }
                    )
                }
                context.closeForPlayer()
            }
        }
        config.scheduleUpdate(20L)
    }
}

💻 Platform

  • Bukkit
  • Sponge
  • Other

⭐ Server Version

1.20.4

📚 Library Version

implementation 'me.devnatan:inventory-framework-platform-bukkit:3.1.0-rc'

✍️ Additional context

No response

@Azodox Azodox added the bug Something isn't working label Mar 4, 2024
@github-project-automation github-project-automation bot moved this to 📋 Backlog in Inventory Framework Mar 4, 2024
@DevNatan DevNatan moved this from 📋 Backlog to 🏗 In progress in Inventory Framework Mar 4, 2024
@DevNatan
Copy link
Owner

Thx!! Working on it 🤙🏽

@DevNatan DevNatan self-assigned this Mar 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
Status: 🏗 In progress
Development

No branches or pull requests

2 participants