EbonJaeger / perworldinventory-kt

Multi-world inventory plugin for Spigot written in Kotlin.
MIT License
46 stars 35 forks source link

Essentials bug + question #118

Open SliderKP opened 5 years ago

SliderKP commented 5 years ago

Perworldinventory version 2.0.1 EssentialsX latest dev. Spigot 1.12

When a user without /sethome (essentialsX) try to go /home, he loss their inventory, EssentialsX reported to me, that was solved, but any plugin that manipulates the inventories, can be the problem, any possible plugin is PWI.

second problem: When i try to use /gamerule keepinventory true, or any plugin to keep inventory (pvpmanager for example) this function not work, and items dissapear, not dropped, not keep in owner inventory.

Question: if i try to update to latest LEGACY version, There should not be problems of inventory losses right?

I really appreciate the work they do with PWI, and apologies for my English, I'm from Argentina.

EbonJaeger commented 5 years ago

For the first issue, are players losing inventories when going to their homes? If so, are their homes on another world? Can you show the contents of your worlds.yml file?

Second issue: PWI respects the keep inventory gamerule on death, so if you're having issues with it, it's from another plugin.

Third: Correct, upgrading the plugin version should have no issue in that regard.

SliderKP commented 5 years ago

In this CASE user lost their inventory: [16:08:47 INFO]: SliderKP issued server command: /sudo AngelGR201016 home [16:08:50 INFO]: [PerWorldInventory] [FINE] onPlayerTeleport: 'AngelGR201016' going teleporting to another world [16:08:50 INFO]: [PerWorldInventory] [DEBUG] onPlayerTeleport: worldFrom='nether', worldTo='spawn' [16:08:50 INFO]: [PerWorldInventory] [FINE] onPlayerChangedWorld: AngelGR201016 changed worlds [16:08:50 INFO]: [PerWorldInventory] [DEBUG] onPlayerChangedWorld: Both groups are the same: 'Group{name='default', worlds=[survival, flatgrass, materiales, world, flat, end, Ciudad2.0, nether, InframundoNuevo, FactionsNuevo, Factions2.0, Quest, spawn, ciudad, EndNuevo, ArenasPvP, ParcelasRebornNuevo, WarpsNuevos], defaultGameMode='survival', respawnWorld='null', isConfigured='true'}'

world.yml:

groups:
  default:
    worlds:
    - survival
    - flatgrass
    - materiales
    - world
    - flat
    - end
    - Ciudad2.0
    - nether
    - InframundoNuevo
    - FactionsNuevo
    - Factions2.0
    - Quest
    - spawn
    - ciudad
    - EndNuevo
    - ArenasPvP
    - ParcelasRebornNuevo
    - WarpsNuevos
  evento:
    worlds:
    - eventos
  torneo:
    worlds:
    - MundoAire
  parkour:
    worlds:
    - parkour
    - sumo
  juegos:
    worlds:
    - juegos
    - AridLake
    default-gamemode: SURVIVAL

Config.yml

# Set the level of debug messages shown by PWI.
# INFO: Print general messages
# FINE: Print more detailed messages about what the plugin is doing
# DEBUG: Print detailed messages about everything
logging-level: 'DEBUG'
# If true, the server will change player's gamemodes when entering a world
# The gamemode set is configured in the worlds.yml file
manage-gamemodes: false
# If true, players will have different inventories for each gamemode
separate-gamemode-inventories: false
# If true, any worlds that are not in the worlds.yml configuration file will share the same inventory
share-if-unconfigured: false
# True if PWI should set the respawn world when a player dies
manage-death-respawn: false
# Attempt to figure out which world a player last logged off in
# and save/load the correct data if that world is different.
# REQUIRES MC 1.9.2 OR NEWER
load-data-on-join: true
# Disables bypass regardless of permission
# Defaults to false
disable-bypass: false
# Set the duration in minutes for player profile information to be cached
cache-duration: 10
# Set the maximum number of player profiles that can be cached at any given time
cache-maximum-limit: 1000
# Disables the nagging message when a world is created on the fly
# Intended for users who know what their doing, and don't need to have worlds configured
disable-nag-message: false
metrics:
    # Choose whether or not to enable metrics sending.
    # See https://bstats.org/getting-started for details.
    enable: false
    # Send the number of configured groups.
    # No group names will be sent!
    send-number-of-groups: false
    # Send the total number of worlds on the server.
    send-number-of-worlds: false
# All settings for players are here:
player:
    # Save and load players' economy balances. Requires Vault!
    economy: false
    # Load players' ender chests
    ender-chest: true
    # Load players' inventory
    inventory: true
    # All options for player stats are here:
    stats:
        # Load if a player is able to fly
        can-fly: true
        # Load the player's display name
        display-name: false
        # Load a player's exhaustion level
        exhaustion: true
        # Load how much exp a player has
        exp: true
        # Load a player's hunger level
        food: true
        # Load if a player is flying
        flying: true
        # Load how much health a player has
        health: true
        # Load what level the player is
        level: true
        # Load all the potion effects of the player
        potion-effects: true
        # Load the saturation level of the player
        saturation: true
        # Load a player's fall distance
        fall-distance: true
        # Load the fire ticks a player has
        fire-ticks: true
        # Load the maximum amount of air a player can have
        max-air: true
        # Load the current remaining air a player has
        remaining-air: true

and i get this bug with latest legacy dev:

[17:40:36 INFO]: UUID of player Kiri_Dayo is 92ac8dc6-11f1-3cde-99cb-0cfbaf85975b
[17:40:36 ERROR]: Could not pass event PlayerSpawnLocationEvent to PerWorldInventory v2.2.2-legacy
org.bukkit.event.EventException: null
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[overcraft.jar:git-Spigot-642f6d2-57ab4cf]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[overcraft.jar:git-Spigot-642f6d2-57ab4cf]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:500) [overcraft.jar:git-Spigot-642f6d2-57ab4cf]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:485) [overcraft.jar:git-Spigot-642f6d2-57ab4cf]
        at net.minecraft.server.v1_12_R1.PlayerList.a(PlayerList.java:123) [overcraft.jar:git-Spigot-642f6d2-57ab4cf]
        at protocolsupport.zplatform.impl.spigot.network.handler.SpigotLoginListenerPlay.joinGame(SpigotLoginListenerPlay.java:124) [ProtocolSupport.jar:?]
        at protocolsupport.protocol.packet.handler.AbstractLoginListenerPlay.tryJoin(AbstractLoginListenerPlay.java:132) [ProtocolSupport.jar:?]
        at protocolsupport.protocol.packet.handler.AbstractLoginListenerPlay.tick(AbstractLoginListenerPlay.java:94) [ProtocolSupport.jar:?]
        at protocolsupport.zplatform.impl.spigot.network.handler.SpigotLoginListenerPlay.e(SpigotLoginListenerPlay.java:70) [ProtocolSupport.jar:?]
        at net.minecraft.server.v1_12_R1.NetworkManager.a(NetworkManager.java:233) [overcraft.jar:git-Spigot-642f6d2-57ab4cf]
        at net.minecraft.server.v1_12_R1.ServerConnection.c(ServerConnection.java:140) [overcraft.jar:git-Spigot-642f6d2-57ab4cf]
        at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:845) [overcraft.jar:git-Spigot-642f6d2-57ab4cf]
        at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:406) [overcraft.jar:git-Spigot-642f6d2-57ab4cf]
        at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:679) [overcraft.jar:git-Spigot-642f6d2-57ab4cf]
        at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:577) [overcraft.jar:git-Spigot-642f6d2-57ab4cf]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_201]
Caused by: java.lang.ClassCastException: java.lang.Float cannot be cast to java.lang.Double
        at me.ebonjaeger.perworldinventory.serialization.LocationSerializer.deserialize(LocationSerializer.kt:38) ~[?:?]
        at me.ebonjaeger.perworldinventory.data.FlatFile.getLogout(FlatFile.kt:148) ~[?:?]
        at me.ebonjaeger.perworldinventory.listener.player.PlayerSpawnLocationListener.onPlayerSpawn(PlayerSpawnLocationListener.kt:31) ~[?:?]
        at sun.reflect.GeneratedMethodAccessor869.invoke(Unknown Source) ~[?:?]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_201]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_201]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[overcraft.jar:git-Spigot-642f6d2-57ab4cf]
        ... 15 more