Giter Club home page Giter Club logo

invsync's People

Contributors

brainstone avatar haedhutner avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

invsync's Issues

crash when attempting to sync inventory with unsupported items

Issue Description:

I have 2 sponge servers. One is moded, while the other is original.
If a player keeps items extended by mods then switch to the original server, InvSync will crash and out-of-sync.

  • Minecraft: 1.11.2
  • InvSync: 0.6.14
  • Sponge: 1.10.2-2281-5.2.0-BETA-2394
  • Other related mods:
    forge-1.10.2-12.18.3.2281
    ThermalExpansion-1.10.2-5.1.3.4

Your most recent log or stack trace file where the issue was present:

[18:18:24 ERROR] [Sponge]: The Scheduler tried to run the task invsync-S-2 owned by Plugin{id=invsync, name=Inventory Sync, version=0.6.14, description=This plugin synchronizes the player inventory with a database, url=https://github.com/BrainStone/InvSync, authors=[The_BrainStone], source=mods/InvSync-0.6.14.jar}, but an error occured.
java.util.NoSuchElementException: No value present
        at java.util.Optional.get(Optional.java:135) ~[?:1.8.0_131]
        at org.spongepowered.common.item.inventory.SpongeItemStackBuilder.fromContainer(SpongeItemStackBuilder.java:168) ~[SpongeItemStackBuilder.class:1.10.2-5.2.0-BETA-387]
        at world.jnc.invsync.util.serializer.InventorySerializer.deserializeItemStack(InventorySerializer.java:79) ~[InventorySerializer.class:0.6.14]
        at world.jnc.invsync.util.serializer.InventorySerializer.deserializeInventory(InventorySerializer.java:56) ~[InventorySerializer.class:0.6.14]
        at world.jnc.invsync.util.serializer.PlayerSerializer.deserializePlayer(PlayerSerializer.java:133) ~[PlayerSerializer.class:0.6.14]
        at world.jnc.invsync.event.PlayerEvents.loadPlayer(PlayerEvents.java:154) ~[PlayerEvents.class:0.6.14]
        at world.jnc.invsync.event.PlayerEvents.access$200(PlayerEvents.java:33) ~[PlayerEvents.class:0.6.14]
        at world.jnc.invsync.event.PlayerEvents$WaitingForPreviousServerToFinish.accept(PlayerEvents.java:194) ~[PlayerEvents$WaitingForPreviousServerToFinish.class:0.6.14]
        at world.jnc.invsync.event.PlayerEvents$WaitingForPreviousServerToFinish.accept(PlayerEvents.java:166) ~[PlayerEvents$WaitingForPreviousServerToFinish.class:0.6.14]
        at org.spongepowered.common.scheduler.SchedulerBase.lambda$startTask$0(SchedulerBase.java:183) ~[SchedulerBase.class:1.10.2-5.2.0-BETA-387]
        at org.spongepowered.common.scheduler.SyncScheduler.executeTaskRunnable(SyncScheduler.java:81) ~[SyncScheduler.class:1.10.2-5.2.0-BETA-387]
        at org.spongepowered.common.scheduler.SchedulerBase.startTask(SchedulerBase.java:179) ~[SchedulerBase.class:1.10.2-5.2.0-BETA-387]
        at org.spongepowered.common.scheduler.SchedulerBase.processTask(SchedulerBase.java:165) ~[SchedulerBase.class:1.10.2-5.2.0-BETA-387]
        at java.util.concurrent.ConcurrentHashMap$ValuesView.forEach(ConcurrentHashMap.java:4707) [?:1.8.0_131]
        at org.spongepowered.common.scheduler.SchedulerBase.runTick(SchedulerBase.java:108) [SchedulerBase.class:1.10.2-5.2.0-BETA-387]
        at org.spongepowered.common.scheduler.SyncScheduler.tick(SyncScheduler.java:51) [SyncScheduler.class:1.10.2-5.2.0-BETA-387]
        at org.spongepowered.common.scheduler.SpongeScheduler.tickSyncScheduler(SpongeScheduler.java:191) [SpongeScheduler.class:1.10.2-5.2.0-BETA-387]
        at net.minecraft.server.dedicated.DedicatedServer.handler$onTick$zob000(SourceFile:1253) [ld.class:?]
        at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(SourceFile:340) [ld.class:?]
        at net.minecraft.server.MinecraftServer.func_71217_p(SourceFile:554) [MinecraftServer.class:?]
        at net.minecraft.server.MinecraftServer.run(SourceFile:458) [MinecraftServer.class:?]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_131]

Is there any possibility to avoid this kind of crash and block unsupported items?

Plugin not properly saving on server shutdown

Issue Description:

Player's inventory don't sync when I restart my server.
Maybe the inventory not be Accurate save in mysql

Steps to reproduce:

I have a clock.
add two sword .
restart server.
reentry server found two sword not be sync
...


Affected Versions (Do not use "latest"):

  • Minecraft: 1.12.2
  • InvSync: latest
  • Sponge: 3472
  • Other related mods:
	| State     | ID                                | Version                     | Source                                             | Signature                                |
	|:--------- |:--------------------------------- |:--------------------------- |:-------------------------------------------------- |:---------------------------------------- |
	| UCHIJAAAA | minecraft                         | 1.12.2                      | minecraft.jar                                      | None                                     |
	| UCHIJAAAA | mcp                               | 9.42                        | minecraft.jar                                      | None                                     |
	| UCHIJAAAA | FML                               | 8.0.99.99                   | forge-1.12.2-14.23.4.2705-universal.jar            | e3c3d50c7c986df74c645c0ac54639741c90a557 |
	| UCHIJAAAA | forge                             | 14.23.4.2705                | forge-1.12.2-14.23.4.2705-universal.jar            | e3c3d50c7c986df74c645c0ac54639741c90a557 |
	| UCHIJAAAA | jecharacters                      | 1.12.0-2.3.2                | JustEnoughCharacters-1.12.0-2.3.2.jar              | None                                     |
	| UCHIJAAAA | spongeapi                         | 7.1.0-ff990df               | [核心]spongeforge-1.12.2-2705-7.1.0-BETA-3472.jar    | None                                     |
	| UCHIJAAAA | sponge                            | 1.12.2-2705-7.1.0-BETA-3472 | [核心]spongeforge-1.12.2-2705-7.1.0-BETA-3472.jar    | 6729a677746f8cf63ef31881f913ed15d431b7f0 |
	| UCHIJAAAA | openmodscore                      | 0.11.5                      | minecraft.jar                                      | None                                     |
	| UCHIJAAAA | foamfixcore                       | 7.7.4                       | minecraft.jar                                      | None                                     |
	| UCHIJAAAA | catclearlag                       | 0.8.3                       | [插件]CatClearLag-0.8.3.jar                          | None                                     |
	| UCHIJAAAA | placeholderapi                    | 4.4                         | [插件]PlaceholderAPI-4.4.jar                         | None                                     |
	| UCHIJAAAA | command-utils                     | 2.2.4                       | [插件]command-utils-2.2.4.jar                        | None                                     |
	| UCHIJAAAA | commandsync                       | 2.5                         | [插件]CommandSync.jar                                | None                                     |
	| UCHIJAAAA | pjc                               | 0.2.2                       | [插件]projectcore-7.1.0-0.2.2.jar                    | None                                     |
	| UCHIJAAAA | easykits                          | 0.2.0                       | [插件]easykits-7.1.0-0.2.0.jar                       | None                                     |
	| UCHIJAAAA | economylite                       | 2.15.0                      | [插件]EconomyLite-7.1.0-2.15.0.jar                   | None                                     |
	| UCHIJAAAA | nucleus                           | 1.6.0-S7.1                  | [插件]Nucleus-1.6.0-S7.1-MC1.12.2-plugin.jar         | None                                     |
	| UCHIJAAAA | nucleus-gluon                     | 1.0.4                       | [插件]Gluon-1.0.4.jar                                | None                                     |
	| UCHIJAAAA | holograms                         | 3.1.5                       | [插件]holograms-3.1.5.jar                            | None                                     |
	| UCHIJAAAA | hunger-keeper                     | 1.0.0                       | [插件]HungerKeeper-1.0.0.jar                         | None                                     |
	| UCHIJAAAA | invsync                           | 0.6.17                      | [插件]InvSync-0.6.17.jar                             | None                                     |
	| UCHIJAAAA | itemchat                          | 1.4.0                       | [插件]ItemChat-1.4.0.jar                             | None                                     |
	| UCHIJAAAA | joincommand                       | 1.1                         | [插件]JoinCommand-1.0-SNAPSHOT.jar                   | None                                     |
	| UCHIJAAAA | kt-skript                         | 1.1.3                       | [插件]kt-skript-1.1.3.jar                            | None                                     |
	| UCHIJAAAA | langswitch                        | 1.2                         | [插件]LangSwitch-1.2.jar                             | None                                     |
	| UCHIJAAAA | linkme                            | 1.4.0                       | [插件]LinkMe-1.4.0.jar                               | None                                     |
	| UCHIJAAAA | luckperms                         | 4.2.40                      | [插件]LuckPerms-Sponge-4.2.40.jar                    | None                                     |
	| UCHIJAAAA | mmcrestrict                       | 1.5.1                       | [插件]MMCRestrict-1.5.1-API-7.jar                    | None                                     |
	| UCHIJAAAA | multichat                         | 1.5                         | [插件]multichat-1.5.jar                              | None                                     |
	| UCHIJAAAA | noportal                          | 0.1.1                       | [插件]NoPortal-0.1.2.jar                             | None                                     |
	| UCHIJAAAA | npcs                              | 3.0.0                       | [插件]NPCs-3.0.0-1.12.2.jar                          | None                                     |
	| UCHIJAAAA | pixelautomessages                 | 1.0.3                       | [插件]PixelAutoMessages-1.0.3-b15.jar                | None                                     |
	| UCHIJAAAA | pjb                               | 0.2.0                       | [插件]projectborders-7.1.0-0.2.0.jar                 | None                                     |
	| UCHIJAAAA | inspector                         | 0.6.5                       | [插件]Re-Inspector-0.1.jar                           | None                                     |
	| UCHIJAAAA | serverteleport                    | 0.1.0-SNAPSHOT              | [插件]ServerTeleport-0.1.0-SNAPSHOT.jar              | None                                     |
	| UCHIJAAAA | stopspread                        | 0.1.1                       | [插件]StopSpread-0.1.1.jar                           | None                                     |
	| UCHIJAAAA | vshop                             | 1.9                         | [插件]VillagerShops-1.9.jar                          | None                                     |
	| UCHIJAAAA | virtualchest                      | 1.0.0-rc-1                  | [插件]VirtualChest-1.0.0-rc-1.jar                    | None                                     |
	| UCHIJAAAA | actuallyadditions                 | 1.12.2-r140                 | ActuallyAdditions-1.12.2-r140.jar                  | None                                     |
	| UCHIJAAAA | appliedenergistics2               | rv5-stable-11               | appliedenergistics2-rv5-stable-11.jar              | None                                     |
	| UCHIJAAAA | bdlib                             | 1.14.3.12                   | bdlib-1.14.3.12-mc1.12.2.jar                       | None                                     |
	| UCHIJAAAA | ae2stuff                          | 0.7.0.4                     | ae2stuff-0.7.0.4-mc1.12.2.jar                      | None                                     |
	| UCHIJAAAA | applecore                         | 3.1.3                       | AppleCore-mc1.12.2-3.1.3.jar                       | None                                     |
	| UCHIJAAAA | crafttweaker                      | 4.1.9                       | CraftTweaker2-1.12-4.1.9.jar                       | None                                     |
	| UCHIJAAAA | mtlib                             | 3.0.5                       | MTLib-3.0.5.jar                                    | None                                     |
	| UCHIJAAAA | modtweaker                        | 4.0.12                      | modtweaker-4.0.12.jar                              | None                                     |
	| UCHIJAAAA | jei                               | 4.11.0.204                  | jei_1.12.2-4.11.0.204.jar                          | None                                     |
	| UCHIJAAAA | appleskin                         | 1.0.9                       | AppleSkin-mc1.12-1.0.9.jar                         | None                                     |
	| UCHIJAAAA | betterbuilderswands               | 0.12.0                      | BetterBuildersWands-1.12-0.12.0.251.jar            | None                                     |
	| UCHIJAAAA | betterquesting                    | 3.5.266                     | BetterQuesting-3.5.266.jar                         | None                                     |
	| UCHIJAAAA | codechickenlib                    | 3.2.0.345                   | CodeChickenLib-1.12.2-3.2.0.345-universal.jar      | f1850c39b2516232a2108a7bd84d1cb5df93b261 |
	| UCHIJAAAA | redstoneflux                      | 2.0.2                       | RedstoneFlux-1.12-2.0.2.3-universal.jar            | 8a6abf2cb9e141b866580d369ba6548732eff25f |
	| UCHIJAAAA | brandonscore                      | 2.4.3                       | BrandonsCore-1.12.2-2.4.3.168-universal.jar        | None                                     |
	| UCHIJAAAA | chameleon                         | 1.12-4.1.3                  | Chameleon-1.12-4.1.3.jar                           | None                                     |
	| UCHIJAAAA | chisel                            | MC1.12.2-0.2.1.35           | Chisel-MC1.12.2-0.2.1.35.jar                       | None                                     |
	| UCHIJAAAA | cofhcore                          | 4.5.2                       | CoFHCore-1.12.2-4.5.2.19-universal.jar             | None                                     |
	| UCHIJAAAA | cofhworld                         | 1.2.0                       | CoFHWorld-1.12.2-1.2.0.5-universal.jar             | 8a6abf2cb9e141b866580d369ba6548732eff25f |
	| UCHIJAAAA | mantle                            | 1.12-1.3.2.24               | Mantle-1.12-1.3.2.24.jar                           | None                                     |
	| UCHIJAAAA | endercore                         | 1.12.2-0.5.35               | EnderCore-1.12.2-0.5.35.jar                        | None                                     |
	| UCHIJAAAA | thermalfoundation                 | 2.5.0                       | ThermalFoundation-1.12.2-2.5.0.19-universal.jar    | 8a6abf2cb9e141b866580d369ba6548732eff25f |
	| UCHIJAAAA | draconicevolution                 | 2.3.12                      | Draconic-Evolution-1.12.2-2.3.12.297-universal.jar | None                                     |
	| UCHIJAAAA | thermalexpansion                  | 5.5.0                       | ThermalExpansion-1.12.2-5.5.0.29-universal.jar     | 8a6abf2cb9e141b866580d369ba6548732eff25f |
	| UCHIJAAAA | enderio                           | 5.0.29                      | EnderIO-1.12.2-5.0.29.jar                          | None                                     |
	| UCHIJAAAA | enderiointegrationtic             | 5.0.29                      | EnderIO-1.12.2-5.0.29.jar                          | None                                     |
	| UCHIJAAAA | twilightforest                    | 3.8.654                     | twilightforest-1.12.2-3.8.654-universal.jar        | None                                     |
	| UCHIJAAAA | tconstruct                        | 1.12.2-2.10.1.87            | TConstruct-1.12.2-2.10.1.87.jar                    | None                                     |
	| UCHIJAAAA | conarm                            | 1.0.1.2                     | conarm-1.12.2-1.0.1.2.jar                          | 5d5b8aee896a4f5ea3f3114784742662a67ad32f |
	| UCHIJAAAA | containerfix                      | 1.0                         | ContainerFix+MC1.12.2+v1.0.jar                     | None                                     |
	| UCHIJAAAA | crafttweakerjei                   | 2.0.2                       | CraftTweaker2-1.12-4.1.9.jar                       | None                                     |
	| UCHIJAAAA | cucumber                          | 1.1.0                       | cucumber-1.12-1.1.0.jar                            | None                                     |
	| UCHIJAAAA | eiorteis                          | 1.12.2-3.0                  | eiorteis-3.0.jar                                   | None                                     |
	| UCHIJAAAA | enderiobase                       | 5.0.29                      | EnderIO-1.12.2-5.0.29.jar                          | None                                     |
	| UCHIJAAAA | enderioconduits                   | 5.0.29                      | EnderIO-1.12.2-5.0.29.jar                          | None                                     |
	| UCHIJAAAA | enderioconduitsappliedenergistics | 5.0.29                      | EnderIO-1.12.2-5.0.29.jar                          | None                                     |
	| UCHIJAAAA | enderioconduitsopencomputers      | 5.0.29                      | EnderIO-1.12.2-5.0.29.jar                          | None                                     |
	| UCHIJAAAA | enderioconduitsrefinedstorage     | 5.0.29                      | EnderIO-1.12.2-5.0.29.jar                          | None                                     |
	| UCHIJAAAA | enderiointegrationforestry        | 5.0.29                      | EnderIO-1.12.2-5.0.29.jar                          | None                                     |
	| UCHIJAAAA | enderiointegrationticlate         | 5.0.29                      | EnderIO-1.12.2-5.0.29.jar                          | None                                     |
	| UCHIJAAAA | ftblib                            | 5.2.0.30                    | FTBLib-5.2.0.30.jar                                | None                                     |
	| UCHIJAAAA | enderiomachines                   | 5.0.29                      | EnderIO-1.12.2-5.0.29.jar                          | None                                     |
	| UCHIJAAAA | enderiopowertools                 | 5.0.29                      | EnderIO-1.12.2-5.0.29.jar                          | None                                     |
	| UCHIJAAAA | enderstorage                      | 2.4.4.132                   | EnderStorage-1.12.2-2.4.4.132-universal.jar        | f1850c39b2516232a2108a7bd84d1cb5df93b261 |
	| UCHIJAAAA | exnihilocreatio                   | 1.12-0.2.4                  | exnihilocreatio-1.12-0.2.4.jar                     | None                                     |
	| UCHIJAAAA | excompressum                      | 3.0.22                      | ExCompressum_1.12.2-3.0.22.jar                     | None                                     |
	| UCHIJAAAA | extracells                        | 2.5.13                      | ExtraCells-1.12.2-2.5.13a60.jar                    | None                                     |
	| UCHIJAAAA | extrautils2                       | 1.0                         | extrautils2-1.12-1.8.5.jar                         | None                                     |
	| UCHIJAAAA | zerocore                          | 1.12-0.1.2.2                | zerocore-1.12-0.1.2.2.jar                          | None                                     |
	| UCHIJAAAA | bigreactors                       | 1.12.2-0.4.5.49             | ExtremeReactors-1.12.2-0.4.5.49.jar                | None                                     |
	| UCHIJAAAA | fastleafdecay                     | v14                         | FastLeafDecay-v14.jar                              | None                                     |
	| UCHIJAAAA | foamfix                           | 0.9.9.1-1.12.2              | foamfix-0.9.9.1-1.12.2-anarchy.jar                 | None                                     |
	| UCHIJAAAA | ftbutilities                      | 5.2.0.32                    | FTBUtilities-5.2.0.32.jar                          | None                                     |
	| UCHIJAAAA | grimoireofgaia                    | 1.6.3                       | GrimoireOfGaia3-1.12.2-1.6.3.jar                   | None                                     |
	| UCHIJAAAA | infernalmobs                      | 1.7.5                       | InfernalMobs-1.12.2.jar                            | None                                     |
	| UCHIJAAAA | inventorytweaks                   | 1.63+release.109.220f184    | InventoryTweaks-1.63.jar                           | 55d2cd4f5f0961410bf7b91ef6c6bf00a766dcbe |
	| UCHIJAAAA | jaopca                            | 1.12.2-2.2.8.91             | JAOPCA-1.12.2-2.2.8.91.jar                         | None                                     |
	| UCHIJAAAA | oredictinit                       | 1.12.2-2.2.1.68             | JAOPCA-1.12.2-2.2.8.91.jar                         | None                                     |
	| UCHIJAAAA | longerdays                        | 1.0.4                       | longerdays-1.0.4.jar                               | None                                     |
	| UCHIJAAAA | lostcities                        | 2.0.11                      | lostcities-1.12-2.0.11.jar                         | None                                     |
	| UCHIJAAAA | mekanism                          | 1.12.2-9.4.13.349           | Mekanism-1.12.2-9.4.13.349.jar                     | None                                     |
	| UCHIJAAAA | mysticalagriculture               | 1.6.12                      | mysticalagriculture-1.12-1.6.12.jar                | None                                     |
	| UCHIJAAAA | mysticalagradditions              | 1.2.8                       | mysticalagradditions-1.12-1.2.8.jar                | None                                     |
	| UCHIJAAAA | nonetherportals                   | 1.0.0                       | nonetherPortals_v1.0.0formc1.12.2.jar              | None                                     |
	| UCHIJAAAA | openmods                          | 0.11.5                      | OpenModsLib-1.12.2-0.11.5.jar                      | d2a9a8e8440196e26a268d1f3ddc01b2e9c572a5 |
	| UCHIJAAAA | openblocks                        | 1.7.6                       | OpenBlocks-1.12.2-1.7.6.jar                        | d2a9a8e8440196e26a268d1f3ddc01b2e9c572a5 |
	| UCHIJAAAA | p455w0rdslib                      | 2.0.29                      | p455w0rdslib-1.12-2.0.29.jar                       | None                                     |
	| UCHIJAAAA | plustic                           | 6.5.2.0                     | plustic-6.5.2.0.jar                                | None                                     |
	| UCHIJAAAA | questbook                         | 3.1.1-1.12                  | questbook-3.1.1-1.12.jar                           | None                                     |
	| UCHIJAAAA | roughmobs                         | 2.0.0                       | roughmobs2-1.12.2_2.0.9.jar                        | None                                     |
	| UCHIJAAAA | bq_standard                       | 3.4.143                     | StandardExpansion-3.4.143.jar                      | None                                     |
	| UCHIJAAAA | storagedrawers                    | 1.12-5.3.5                  | StorageDrawers-1.12.2-5.3.7.jar                    | None                                     |
	| UCHIJAAAA | thermalcultivation                | 0.3.0                       | ThermalCultivation-1.12.2-0.3.0.7-universal.jar    | 8a6abf2cb9e141b866580d369ba6548732eff25f |
	| UCHIJAAAA | thermaldynamics                   | 2.5.1                       | ThermalDynamics-1.12.2-2.5.1.14-universal.jar      | 8a6abf2cb9e141b866580d369ba6548732eff25f |
	| UCHIJAAAA | thermalinnovation                 | 0.3.0                       | ThermalInnovation-1.12.2-0.3.0.7-universal.jar     | 8a6abf2cb9e141b866580d369ba6548732eff25f |
	| UCHIJAAAA | tinkersjei                        | 1.0                         | tinkersjei-1.0.jar                                 | None                                     |
	| UCHIJAAAA | tinkertoolleveling                | 1.12.2-1.0.5.DEV.30c7957    | TinkerToolLeveling-1.12.2-1.0.5.jar                | None                                     |
	| UCHIJAAAA | treegrowingsimulator              | 0.0.4                       | TreeGrowingSimulator2017-1.0.1.jar                 | None                                     |
	| UCHIJAAAA | wct                               | 3.9.67                      | WirelessCraftingTerminal-1.12.2-3.9.67.jar         | None                                     |
	| UCHIJAAAA | wrapup                            | 1.12-1.1.3                  | WrapUp-1.12-1.1.3.jar                              | None                                     |

Synchronizing PotionEffects not working

Issue Description:

The newly added feature of potion synchronzing is not working because of another sponge bug.

What happens:

The potion effects get stored in the database but not put on the player.

What you expected to happen:

That the potion effects get put on the player correctly.

Steps to reproduce:

  1. Give self potion effect.
  2. Leave server
  3. Edit player data to change effect
  4. Log back in to notice that the effect did not get overridden by database

Affected Versions (Do not use "latest"):

  • Minecraft: 1.11.2
  • InvSync: 0.5.32
  • Sponge: spongevanilla-1.11.2-7.0.0-BETA-263

See SpongePowered/Sponge#1276

Synchronizing experience not working

Issue Description:

Synchronizing of everything is working fine, except of the experience. It always get set to 0 in the database.

What happens:

When storing the playerdata the experience gets set to 0.

What you expected to happen:

That the experience gets stored correctly

Steps to reproduce:

  1. Give self 100L of experience.
  2. Leave server.
  3. Check database or join
  4. -> 0 levels of experience

Affected Versions:

  • Minecraft: 1.11.2
  • InvSync: 0.4.0-beta
  • Sponge: 1.11.2-6.0.0-BETA-243

Using with 1.11.2

Hello,

It is possible to use your plugin with minecraft 1.11.2 ?

Thanks for reply :)

Database is insert NBT tag on items that have no NBT tags

Issue Description:

InvSync is inserting a 0 NBt tag causing items to be considered separate. For example, minecraft:goldingot is becoming minecraft:goldingot with NBT tags 0 on logout. This results in two items essentially.

Screenshot:
image
image

What happens:

Results in two items, one with no NBT data and one with 0 NBT tags

What you expected to happen:

Both items to have null NBT data and combine into stacks

Steps to reproduce:

  1. Setup DB sync
  2. get a gold ingot and throw it on the ground, meanwhile put another one in your inventory and log out then back in
  3. pickup and compare the ingots, one will have nul NBT data and the other 0 NBT tags
    ...

Affected Versions (Do not use "latest"):

  • Minecraft: 1.12.2
  • InvSync: InvSync-0.6.19.298-DEV.jar
  • Sponge: spongeforge-1.12.2-2768-7.1.6-RC3643.jar
  • Other related mods: NA, forge is present
  • IMPORTANT: MariaDB is used instead of MySQL due to Redhat Licensing.

Your most recent log or stack trace file where the issue was present:

Most relevent log:

[21:03:39] [Server thread/INFO] [invsync]: {"potion_effects":{"data":[]},"mod.baubles":{"data":[]},"game_mode":{"data":"minecraft:survival"},"health":{"data":20.0},"ender_chest":{"data":[]},"inventory":{"selectedSlot":0,"inventory":[{"slot":0,"stack":{"ContentVersion":1,"ItemType":"minecraft:diamond_pickaxe","Count":1,"UnsafeDamage":2,"UnsafeData":{}}},{"slot":1,"stack":{"ContentVersion":1,"ItemType":"minecraft:cobblestone","Count":64,"UnsafeDamage":0,"UnsafeData":{}}}]},"experience":{"experience_since_level":20,"experience_level":11},"version":1,"hunger":{"saturation":1.0,"food_level":20}}
[21:03:39] [Server thread/DEBUG] [invsync]: Preparing statement: REPLACE INTO invsync_inventories (UUID, Active, Data) VALUES (?, FALSE, ?)
[21:03:39] [Server thread/DEBUG] [invsync]: Saving inventory for player Iron_Phildo69 (64f2ebea-4b08-4cbb-b288-7a772381ed27)
[21:03:39] [Server thread/INFO] [net.minecraft.server.dedicated.DedicatedServer]: Iron_Phildo69 left the game

PostgreSQL support.

Hi, I was wondering if you could implement support for PostgreSQL or perhaps if you would accept a pull request and let me do it.

Baubles Duping

Issue Description:

When placing a ring into a baubles slot, and connecting to another server on my network it appears. However, if i remove it from the slot and connect to another server, it dupes the ring.

Steps to reproduce:

  1. Place a bauble into the slot
  2. Connect to another server on my network
  3. Remove the bauble from the slot
  4. Connect to another server on my network and check baubles slots.
    ...

Affected Versions (Do not use "latest"):

  • Minecraft: 1.12.2
  • InvSync: 0.6.19.298-DEV
  • Sponge: 7.1.6-RC3616
  • Other related mods:
  • Botania: 1.10-360

Passwords with @ in them break the MySQL JDBC URL

Issue Description:

When a MySQL password contains the @ character it messes up the JDBC URL.

What happens:

The connection cannot be established, as now the hostname gets a prefix of sorts.

What you expected to happen:

That the password gets escaped properly

Steps to reproduce:

  1. Set MySQL password to contain @
  2. Configure MySQL storage options
  3. Start server
  4. Watch it fail

Affected Versions (Do not use "latest"):

  • Minecraft: 1.12.2
  • InvSync: 0.6.19.298-DEV
  • Sponge: spongeforge-1.12.2-2825-7.1.6

Your most recent log or stack trace file where the issue was present:

[21:47:34] [Server thread/ERROR] [com.zaxxer.hikari.pool.HikariPool]: HikariPool-2 - Exception during pool initialization.
java.sql.SQLNonTransientConnectionException: Could not connect to address=([email protected])(port=3306)(type=master) : [email protected]
	at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.get(ExceptionMapper.java:156) ~[ExceptionMapper.class:1.12.2-2825-7.1.6]
	at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.getException(ExceptionMapper.java:118) ~[ExceptionMapper.class:1.12.2-2825-7.1.6]
	at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.throwException(ExceptionMapper.java:92) ~[ExceptionMapper.class:1.12.2-2825-7.1.6]
	at org.mariadb.jdbc.Driver.connect(Driver.java:111) ~[Driver.class:1.12.2-2825-7.1.6]
	at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:112) ~[DriverDataSource.class:1.12.2-2825-7.1.6]
	at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:118) ~[DriverDataSource.class:1.12.2-2825-7.1.6]
	at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:358) ~[PoolBase.class:1.12.2-2825-7.1.6]
	at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:201) ~[PoolBase.class:1.12.2-2825-7.1.6]
	at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:443) [HikariPool.class:1.12.2-2825-7.1.6]
	at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:514) [HikariPool.class:1.12.2-2825-7.1.6]
	at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:111) [HikariPool.class:1.12.2-2825-7.1.6]
	at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:72) [HikariDataSource.class:1.12.2-2825-7.1.6]
	at org.spongepowered.common.service.sql.SqlServiceImpl$1.load(SqlServiceImpl.java:138) [SqlServiceImpl$1.class:1.12.2-2825-7.1.6]
	at org.spongepowered.common.service.sql.SqlServiceImpl$1.load(SqlServiceImpl.java:123) [SqlServiceImpl$1.class:1.12.2-2825-7.1.6]
	at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3716) [minecraft_server.1.12.2.jar:?]
	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2424) [minecraft_server.1.12.2.jar:?]
	at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2298) [minecraft_server.1.12.2.jar:?]
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2211) [minecraft_server.1.12.2.jar:?]
	at com.google.common.cache.LocalCache.get(LocalCache.java:4154) [minecraft_server.1.12.2.jar:?]
	at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4158) [minecraft_server.1.12.2.jar:?]
	at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5147) [minecraft_server.1.12.2.jar:?]
	at org.spongepowered.common.service.sql.SqlServiceImpl.getDataSource(SqlServiceImpl.java:163) [SqlServiceImpl.class:1.12.2-2825-7.1.6]
	at org.spongepowered.common.service.sql.SqlServiceImpl.getDataSource(SqlServiceImpl.java:144) [SqlServiceImpl.class:1.12.2-2825-7.1.6]
	at world.jnc.invsync.util.database.DatabaseConnection.getDataSource(DatabaseConnection.java:28) [DatabaseConnection.class:0.6.19.298-DEV]
	at world.jnc.invsync.util.database.DatabaseConnection.getDataSource(DatabaseConnection.java:46) [DatabaseConnection.class:0.6.19.298-DEV]
	at world.jnc.invsync.util.database.DatabaseConnection.connect(DatabaseConnection.java:42) [DatabaseConnection.class:0.6.19.298-DEV]
	at world.jnc.invsync.util.database.DatabaseConnection.<init>(DatabaseConnection.java:34) [DatabaseConnection.class:0.6.19.298-DEV]
	at world.jnc.invsync.util.database.MysqlDatabaseConnection.<init>(MysqlDatabaseConnection.java:17) [MysqlDatabaseConnection.class:0.6.19.298-DEV]
	at world.jnc.invsync.util.database.DataSource.<init>(DataSource.java:56) [DataSource.class:0.6.19.298-DEV]
	at world.jnc.invsync.InventorySync.init(InventorySync.java:135) [InventorySync.class:0.6.19.298-DEV]
	at org.spongepowered.common.event.listener.GameInitializationEventListener_InventorySync_init82.handle(Unknown Source) [?:?]
	at org.spongepowered.common.event.RegisteredListener.handle(RegisteredListener.java:95) [RegisteredListener.class:1.12.2-2825-7.1.6]
	at org.spongepowered.mod.event.SpongeModEventManager.post(SpongeModEventManager.java:385) [SpongeModEventManager.class:1.12.2-2825-7.1.6]
	at org.spongepowered.mod.event.SpongeModEventManager.extendedPost(SpongeModEventManager.java:458) [SpongeModEventManager.class:1.12.2-2825-7.1.6]
	at org.spongepowered.mod.event.SpongeModEventManager.post(SpongeModEventManager.java:419) [SpongeModEventManager.class:1.12.2-2825-7.1.6]
	at org.spongepowered.common.SpongeImpl.postEvent(SpongeImpl.java:252) [SpongeImpl.class:1.12.2-2825-7.1.6]
	at org.spongepowered.mod.SpongeMod.onStateEvent(SpongeMod.java:339) [SpongeMod.class:1.12.2-2825-7.1.6]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_211]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_211]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_211]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_211]
	at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91) [minecraft_server.1.12.2.jar:?]
	at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150) [minecraft_server.1.12.2.jar:?]
	at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76) [minecraft_server.1.12.2.jar:?]
	at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399) [minecraft_server.1.12.2.jar:?]
	at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71) [minecraft_server.1.12.2.jar:?]
	at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116) [minecraft_server.1.12.2.jar:?]
	at com.google.common.eventbus.EventBus.post(EventBus.java:217) [minecraft_server.1.12.2.jar:?]
	at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:219) [LoadController.class:?]
	at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:197) [LoadController.class:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_211]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_211]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_211]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_211]
	at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91) [minecraft_server.1.12.2.jar:?]
	at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150) [minecraft_server.1.12.2.jar:?]
	at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76) [minecraft_server.1.12.2.jar:?]
	at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399) [minecraft_server.1.12.2.jar:?]
	at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71) [minecraft_server.1.12.2.jar:?]
	at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116) [minecraft_server.1.12.2.jar:?]
	at com.google.common.eventbus.EventBus.post(EventBus.java:217) [minecraft_server.1.12.2.jar:?]
	at net.minecraftforge.fml.common.LoadController.redirect$onPost$zza000(LoadController.java:553) [LoadController.class:?]
	at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:136) [LoadController.class:?]
	at net.minecraftforge.fml.common.Loader.initializeMods(Loader.java:744) [Loader.class:?]
	at net.minecraftforge.fml.server.FMLServerHandler.finishServerLoading(FMLServerHandler.java:108) [FMLServerHandler.class:?]
	at net.minecraftforge.fml.common.FMLCommonHandler.onServerStarted(FMLCommonHandler.java:338) [FMLCommonHandler.class:?]
	at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:219) [nz.class:?]
	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:486) [MinecraftServer.class:?]
	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_211]
Caused by: java.sql.SQLException: Could not connect to address=([email protected])(port=3306)(type=master) : [email protected]
	at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1036) ~[AbstractConnectProtocol.class:1.12.2-2825-7.1.6]
	at org.mariadb.jdbc.internal.util.Utils.retrieveProxy(Utils.java:483) ~[Utils.class:1.12.2-2825-7.1.6]
	at org.mariadb.jdbc.Driver.connect(Driver.java:106) ~[Driver.class:1.12.2-2825-7.1.6]
	... 65 more
Caused by: java.net.UnknownHostException: [email protected]
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184) ~[?:1.8.0_211]
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[?:1.8.0_211]
	at java.net.Socket.connect(Socket.java:589) ~[?:1.8.0_211]
	at java.net.Socket.connect(Socket.java:538) ~[?:1.8.0_211]
	at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connect(AbstractConnectProtocol.java:401) ~[AbstractConnectProtocol.class:1.12.2-2825-7.1.6]
	at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1029) ~[AbstractConnectProtocol.class:1.12.2-2825-7.1.6]
	at org.mariadb.jdbc.internal.util.Utils.retrieveProxy(Utils.java:483) ~[Utils.class:1.12.2-2825-7.1.6]
	at org.mariadb.jdbc.Driver.connect(Driver.java:106) ~[Driver.class:1.12.2-2825-7.1.6]
	... 65 more

Feature - Import/Export to file

As said in the topic header, I would like to see a setup kinda like luck perms where you can export inventories to a file and then import them later on as a way to backup player inventories easily.

Gamemode synchronizing doesn't work

Issue Description:

When enabled the synchronizing of the gamemode is not working at all.

What happens:

All other data except the gamemode get synchronized correctly!

What you expected to happen:

That the gamemode switches

Steps to reproduce:

  1. Change your gamemode
  2. Change server
  3. New gamemode not switched on new server

Affected Versions (Do not use "latest"):

  • Minecraft: 1.11.2
  • InvSync: 0.5.42
  • Sponge: 1.11.2-7.0.0-BETA-264

Serialize inventories to NBT

Issue Description:

Instead of of serializing the invetories into an ObjectStream and HOCON use NBT instead.

Notes:

  • DataFormats.NBT
  • GZIPOutputStream

Permissions don't work - without permissions mod

Issue Description:

I run a sponge forge server (network under velocity) with the Foolcraft3 pack. Without a permissions mod, the invsync defaults all non-op players to having no permissions. this means players can't sync inventories between our two servers.

To get this to work for our use case I had to modify the snapshot code:
src/main/java/world/jnc/invsync/util/serializer/module/BaseSyncModule.java line 72
return isEnabled();

We removed all player based checks and this works for our specific use case.

I have not tested this with a permissions plugin... we don't currently run one.

What happens:

Use plugin without permissions plugin. All non-op players don't have permission to inventory sync.

What you expected to happen:

Use plugin without permissions plugin. Plugin syncs any modules set to "enabled" in the config.

Steps to reproduce:

  1. two spongeforge servers
  2. no permissions plugins
  3. enable desired modules
  4. join as non op.
  5. join other server: debug: true shows hasPermission: false (might not be exact error text)

Affected Versions (Do not use "latest"):

  • Minecraft: 1.12.x
  • InvSync: InvSync-0.6.19.294-SNAPSHOT.jar all the way back to atleast sep 2018 release
  • Sponge: spongeforge-1.12.2-2768-7.1.5.jar
  • Other related mods: Foolcraft 3 Pack - I don't think it was related. (we pull out clump mod and add dynmap)

Your most recent log or stack trace file where the issue was present:

I don't have this info... I think the issue is described adequately above.


I may have missed how to configure the permissions listed in the README.md either in the plugin.conf or sponge/global.conf but that information was not readily apparent in the documentation if so.

should add save player inventory task

if server was crash and shut down

player inventory data cant save to database

some player's inventory data will back to long time ago

u should add save player inventory task

Such as when the world is saving(SaveWorldEvent),to save online player inventory data

BUG,laster version

version: InvSync-0.6.18.204-dev
forge: forge-1.12.2-14.23.4.2705-universal
sponge: spongeforge-1.12.2-2705-7.1.0-BETA-3458
minecraft: 1.12.2

Describe:

Server can't start

What happens:

net.minecraftforge.fml.common.LoaderExceptionModCrash: Caught exception from Inventory Sync (invsync)
Caused by: java.lang.NoClassDefFoundError: org/bstats/sponge/Metrics$CustomChart
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Unknown Source)
	at org.spongepowered.mod.plugin.SpongeModPluginContainer.constructMod(SpongeModPluginContainer.java:280)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91)
	at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150)
	at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76)
	at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399)
	at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71)
	at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116)
	at com.google.common.eventbus.EventBus.post(EventBus.java:217)
	at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:218)
	at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:196)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91)
	at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150)
	at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76)
	at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399)
	at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71)
	at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116)
	at com.google.common.eventbus.EventBus.post(EventBus.java:217)
	at net.minecraftforge.fml.common.LoadController.redirect$onPost$zza000(LoadController.java:560)
	at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:135)
	at net.minecraftforge.fml.common.Loader.loadMods(Loader.java:593)
	at net.minecraftforge.fml.server.FMLServerHandler.beginServerLoading(FMLServerHandler.java:97)
	at net.minecraftforge.fml.common.FMLCommonHandler.onServerStart(FMLCommonHandler.java:332)
	at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:125)
	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:486)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.bstats.sponge.Metrics$CustomChart
	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	... 35 more
Caused by: java.lang.NullPointerException
	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182)
	... 37 more

Add Thaumcraft 6 Player data support

Hi,

First thank you for your work, it's greatly appreciated. This plugin makes everything possible on our server :)

I was wondering if it would be possible to add thaumcraft support by storing it's Playerdata in the database to support cross server play? I imagine this isn't easy but thought I'd ask. The items themselves work across servers but the player data does not.

Many thanks for your work :)

Console Spam On Login

Issue Description:

Basically, after installing the plugin, without doing anything to it in the config, and logging into the server, it just constantly throws the same error, over and over very rapidly.
Nothing else, really. After putting the mod into the server and logging in, i noticed the TPS was down to about 3 or so, and i checked the console and it was just this error.

First was trying to use with Pixelmon, but also tested in a server with just Sponge and InvSync.

Produces error with default settings and after changing database file path.

Affected Versions:

  • Minecraft: 1.10.2
  • InvSync: InvSync-0.5.19-beta
  • Sponge: spongeforge-1.10.2-2281-5.2.0-BETA-2300

Your most recent log or stack trace file where the issue was present:

https://pastebin.com/Gj0UaZ32

Armor enchantments can flip between servers

Issue Description:

I added another minecraft instance running the same modpack. Players complained that when the logged into the new instance, the enchantments changed on their armor.

They gave a specific example of obsidian boots that originally had a multijump IV enchantment, but it synced as beheading IV on the new server.

I was able to reproduce it. This is the json for the boots:

{"stack":{"ContentVersion":1,"ItemType":"mekanismtools:obsidianboots","UnsafeDamage":0,"Count":1,"UnsafeData":{"ench":[{"lvl":4,"id":105}],"RepairCost":1,"ForgeCaps":{"astralsorcery:cap_item_amulet_holder":{"AS_Amulet_HolderLeast":-6587230391593753591,"AS_Amulet_HolderMost":3320807983800733515}}}}

I discovered that the enchantment ids are mapped to enchantments in the level.dat file, under FML/Registries/minecraft:enchantments/ids. Enchantment id 105 was mapped to different things on the two servers. The original server has been through many modpack upgrades, and I suspect that's why it had a different enchantment id mapping.

I worked around this by copying the enchantment id mapping from level.dat on the source server to the target server. This will fix it for player inventory, but now the enchantments will be wrong on loot they get from dungeons (because I already pregenned the world).

Ideally invsync would serialize the enchantment ids as enchantment names.

Affected Versions (Do not use "latest"):

  • Minecraft: 1.11.2
  • InvSync: InvSync-0.6.19.311-DEV.jar
  • Sponge: aaaa-spongeforge-1.12.2-2825-7.1.6.jar
  • Other related mods: Modpack DD&SS 5.2

Issue connecting to db

Issue Description:

Having issue having inventorysync connect correctly to the db at least I think that is the issue.

What happens:

https://pastebin.com/hAMytgRJ

What you expected to happen:

Steps to reproduce:

  1. start server

Affected Versions (Do not use "latest"):

  • Minecraft: 1.12.2
  • InvSync: InvSync-0.6.17
  • Sponge: spongeforge-1.12.2-2705-7.1.0-BETA-3361
  • Other related mods:

Your most recent log or stack trace file where the issue was present:

https://pastebin.com/hAMytgRJ

Botania flower bag contents are lost

Issue Description:

On logoff, InvSync is not persisting the contents of the botania flower bag, when the bag is directly in the player's inventory. The player.dat file has the bag contents. When the player logs back in, their inventory is loaded from the InvSync database, and the bag contents are lost.

The flower bag contents are not lost if it is inside of a backpack.

Steps to reproduce:

  1. Install botania
  2. Get a flower bag
  3. Put a flower in the flower bag
  4. Log off
  5. Log in.

Affected Versions (Do not use "latest"):

  • Minecraft: forge-1.12.2-14.23.5.2807-universal.jar
  • InvSync: InvSync-0.6.19.280-DEV.jar
  • Sponge: aaaa-spongeforge-1.12.2-2768-7.1.6-RC3596.jar
  • Modpack: DD&SS version 4.7
  • Other related mods:
> /sponge plugins 
[02:36:10] [Server thread/INFO] [minecraft/DedicatedServer]: Plugins (9): Minecraft, Minecraft Coder Pack, SpongeAPI, Sponge, Inventory Sync, JdaLibraryLoader, LuckPerms, UltimateChat, spark

Your most recent log or stack trace file where the issue was present:

In this log, you can see the player logs off, then a server backup is started.

I copied the hex data from the mysql database:

$ mysql --binary-as-hex -uminecraft -p
MariaDB [dd_ss_invsync]> use dd_ss_invsync;
MariaDB [dd_ss_invsync]> SELECT * FROM invsync_inventories where UUID=0x8189ca6f92524683ac29556125d44470\G

I converted the hex string into a binary file:

$ xxd -r -p 2019-03-16-00\:04\:42.txt > 2019-03-16-00\:04\:42.dat

I dumped the nbt data from inside it, and it shows the flower bag is empty:

$ cat ~/.local/bin/nbtutil 
#!/bin/bash
TERM=xterm mono $HOME/nbtexplorer/NBTUtil.exe "$@"
$ nbtutil --path 2019-03-16-00:04:42.dat --printtree
...
   |   + 2 entries
   |   | + slot: 4
   |   | + stack: 4 entries
   |   |   + ContentVersion: 1
   |   |   + Count: 1
   |   |   + UnsafeDamage: 0
   |   |   + ItemType: botania:flowerbag
   |   + 2 entries

However the player.dat file I restored from the backup shows the bag is non-empty:

$  nbtutil --path 8189ca6f-9252-4683-ac29-556125d44470.dat --printtree
   | + 5 entries
   | | + Count: 1
   | | + Slot: 4
   | | + Damage: 0
   | | + id: botania:flowerbag
   | | + ForgeCaps: 2 entries
   | |   + Parent: 16 entries
   | |   | + 4 entries
   | |   | | + Count: 4
   | |   | | + Damage: 0
   | |   | | + Slot: 0
   | |   | | + id: botania:flower
   | |   | + 4 entries
   | |   | | + Count: 12
   | |   | | + Damage: 1
   | |   | | + Slot: 1
   | |   | | + id: botania:flower
...

Later the player was able to reproduce the problem with just the flower bag in their inventory.

Connection is not available, request timed out after 30000ms.

Issue Description:

Some times InvSync can't connect to sql server and lose inventory. Manual connection is worked fine.

What happens:

Steps to reproduce:

  1. Set wait_timeout = 30 in my.cnf
  2. Try to play more than one minute
  3. Leave server

Affected Versions (Do not use "latest"):

  • Minecraft: 1.10.2
  • InvSync: 0.6.17
  • Sponge: 1.10.2-2281-5.2.0-BETA-2558
  • Other related mods:

Full log on pastebin:

https://pastebin.com/raw/tNBAFB0s

[11:34:40] [Server thread/ERROR] [invsync]: Reconnecting failed!
java.sql.SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after 30000ms.
        at com.zaxxer.hikari.pool.HikariPool.createTimeoutException(HikariPool.java:548) ~[HikariPool.class:1.10.2-2281-5.2.0-BETA-2558]
        at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:186) ~[HikariPool.class:1.10.2-2281-5.2.0-BETA-2558]
        at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:145) ~[HikariPool.class:1.10.2-2281-5.2.0-BETA-2558]
        at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:83) ~[HikariDataSource.class:1.10.2-2281-5.2.0-BETA-2558]
        at world.jnc.invsync.util.database.DatabaseConnection.reconnect(DatabaseConnection.java:49) ~[DatabaseConnection.class:0.6.17]
        at world.jnc.invsync.util.database.DatabaseConnection.verifyConnection(DatabaseConnection.java:65) [DatabaseConnection.class:0.6.17]
        at world.jnc.invsync.util.database.DataSource.saveInventory(DataSource.java:77) [DataSource.class:0.6.17]
        at world.jnc.invsync.event.PlayerEvents.savePlayer(PlayerEvents.java:163) [PlayerEvents.class:0.6.17]
        at world.jnc.invsync.event.PlayerEvents.onPlayerLeave(PlayerEvents.java:59) [PlayerEvents.class:0.6.17]
        at org.spongepowered.common.event.listener.DisconnectListener_PlayerEvents_onPlayerLeave51.handle(Unknown Source) [?:?]
        at org.spongepowered.common.event.RegisteredListener.handle(RegisteredListener.java:95) [RegisteredListener.class:1.10.2-2281-5.2.0-BETA-2558]
        at org.spongepowered.mod.event.SpongeModEventManager.post(SpongeModEventManager.java:313) [SpongeModEventManager.class:1.10.2-2281-5.2.0-BETA-2558]
        at org.spongepowered.mod.event.SpongeModEventManager.post(SpongeModEventManager.java:297) [SpongeModEventManager.class:1.10.2-2281-5.2.0-BETA-2558]
        at org.spongepowered.mod.event.SpongeModEventManager.post(SpongeModEventManager.java:338) [SpongeModEventManager.class:1.10.2-2281-5.2.0-BETA-2558]
        at org.spongepowered.mod.event.SpongeModEventManager.post(SpongeModEventManager.java:326) [SpongeModEventManager.class:1.10.2-2281-5.2.0-BETA-2558]
        at org.spongepowered.common.SpongeImpl.postEvent(SpongeImpl.java:143) [SpongeImpl.class:1.10.2-2281-5.2.0-BETA-2558]
        at net.minecraft.network.NetHandlerPlayServer.redirect$onDisconnectHandler$zhf000(NetHandlerPlayServer.java:2284) [me.class:?]
        at net.minecraft.network.NetHandlerPlayServer.func_147231_a(NetHandlerPlayServer.java:802) [me.class:?]
        at net.minecraft.network.NetworkManager.func_179293_l(NetworkManager.java:455) [eo.class:?]
        at net.minecraft.network.NetworkSystem.func_151269_c(NetworkSystem.java:213) [md.class:?]
        at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:732) [MinecraftServer.class:?]
        at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:387) [ld.class:?]
        at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:613) [MinecraftServer.class:?]
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:471) [MinecraftServer.class:?]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_131]
[11:34:40] [Server thread/WARN] [com.zaxxer.hikari.pool.ProxyConnection]: HikariPool-1 - Connection org.mariadb.jdbc.MariaDbConnection@1bbd1537 marked as broken because of SQLSTATE(08), ErrorCode(-1)

Backpacks not syncing

Issue Description:

When transferring between my servers, the items inside of a Backpack from the Backpack mod do not transfer.

What happens:

The items do not appear, but show up when i go back to the server that i placed the items in it

What you expected to happen:

The items inside would transfer

Steps to reproduce:

  1. Place items into a backpack
  2. Connect to another server on the network
  3. Check backpack
    ...

Affected Versions (Do not use "latest"):

  • Minecraft: 1.12.2
  • InvSync: 0.6.19.298-DEV
  • Sponge: 7.1.6-RC3616
  • Other related mods:
  • Backpack: 3.0.2

about password urlencode

Issue Description:

my password has !@- chars..

What happens:

jdbc got wrong password
same bug with user

Steps to reproduce:

  1. change your mysql password, and some html chars

Affected Versions

  • Minecraft: 1.12.2
  • InvSync: 0.6.18
  • Sponge: 7.1
  • Other related mods: ...

Your most recent log or stack trace file where the issue was present:

acceess denied for xxx@ip .

SQL Manager.

Issue Description:

Since the new version of sponge, there are problems with the database

What happens:

The plugin is no longer functional since the new version of sponge, several plugin using a database are also affected by that like EconomyLite. Flibio/EconomyLite#90

Steps to reproduce:

  1. start server

Affected Versions (Do not use "latest"):

  • Minecraft: 1.11.2
  • InvSync: 0.6.17
  • Sponge: 1.12.2-2705-7.1.0-BETA-3361
  • Other related mods:

Your most recent log or stack trace file where the issue was present:

https://pastebin.com/3BBtDku1
(There is also the EconomyLite problem, you have to go a little lower for InvSync)

[Or stack trace here (Remove this if you don't put anything here!)]

Only one instance of the plugin can work with a H2 database

Issue Description:

When multiple servers try to access the same H2 database only one will succeed and get the lock

What happens:

Only one server can access the database

What you expected to happen:

That multiple servers can access the same database

Steps to reproduce:

  1. Start two servers configured to use the same H2 database.
  2. One will fail, one not

Affected Versions:

  • Minecraft: 1.11.2
  • InvSync: 0.4.6-beta
  • Sponge: 1.11.2-6.0.0-BETA-253

Database connection sometimes times out and should be reconnected

Issue Description:

After a longer period of time the database connection times out. The plugin should try to reconnect.

What happens:

When the connection times out no database actions happen

What you expected to happen:

That the database connection gets reestablished

Steps to reproduce:

  1. Start server with plugin
  2. Wait a day
  3. Login on server
  4. Watch database requests fail

Affected Versions (Do not use "latest"):

  • Minecraft: 1.11.2
  • InvSync: 0.4.0-beta
  • Sponge: 1.11.2-6.0.0-BETA-243

Your most recent log or stack trace file where the issue was present:

[17:03:55 ERROR] [invsync]: Could not save invetory for player KennyTheKing (2a095566-a563-4207-a747-846f171dd779)
java.sql.SQLException: execute() is called on closed connection
        at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.prolog(AbstractQueryProtocol.java:1239) ~[2017-04-11-18-38-13-spongevanilla-1.11.2-6.0.0-BETA-243.jar:1.11.2-6.0.0-BETA-243]
        at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.prologProxy(AbstractQueryProtocol.java:1223) ~[2017-04-11-18-38-13-spongevanilla-1.11.2-6.0.0-BETA-243.jar:1.11.2-6.0.0-BETA-243]
        at org.mariadb.jdbc.MariaDbServerPreparedStatement.executeQueryProlog(MariaDbServerPreparedStatement.java:332) ~[2017-04-11-18-38-13-spongevanilla-1.11.2-6.0.0-BETA-243.jar:1.11.2-6.0.0-BETA-243]
        at org.mariadb.jdbc.MariaDbServerPreparedStatement.executeInternal(MariaDbServerPreparedStatement.java:390) ~[2017-04-11-18-38-13-spongevanilla-1.11.2-6.0.0-BETA-243.jar:1.11.2-6.0.0-BETA-243]
        at org.mariadb.jdbc.MariaDbServerPreparedStatement.execute(MariaDbServerPreparedStatement.java:359) ~[2017-04-11-18-38-13-spongevanilla-1.11.2-6.0.0-BETA-243.jar:1.11.2-6.0.0-BETA-243]
        at org.mariadb.jdbc.MariaDbServerPreparedStatement.executeUpdate(MariaDbServerPreparedStatement.java:348) ~[2017-04-11-18-38-13-spongevanilla-1.11.2-6.0.0-BETA-243.jar:1.11.2-6.0.0-BETA-243]
        at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate(ProxyPreparedStatement.java:61) ~[2017-04-11-18-38-13-spongevanilla-1.11.2-6.0.0-BETA-243.jar:1.11.2-6.0.0-BETA-243]
        at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate(HikariProxyPreparedStatement.java) ~[2017-04-11-18-38-13-spongevanilla-1.11.2-6.0.0-BETA-243.jar:1.11.2-6.0.0-BETA-243]
        at world.jnc.invsync.DataSource.saveInventory(DataSource.java:94) [DataSource.class:?]
        at world.jnc.invsync.PlayerEvents.savePlayer(PlayerEvents.java:114) [PlayerEvents.class:?]
        at world.jnc.invsync.PlayerEvents.onPlayerLeave(PlayerEvents.java:53) [PlayerEvents.class:?]
        at org.spongepowered.common.event.listener.DisconnectListener_PlayerEvents_onPlayerLeave34.handle(Unknown Source) [?:?]
        at org.spongepowered.common.event.RegisteredListener.handle(RegisteredListener.java:95) [RegisteredListener.class:1.11.2-6.0.0-BETA-243]
        at org.spongepowered.common.event.SpongeEventManager.post(SpongeEventManager.java:305) [SpongeEventManager.class:1.11.2-6.0.0-BETA-243]
        at org.spongepowered.common.event.SpongeEventManager.post(SpongeEventManager.java:319) [SpongeEventManager.class:1.11.2-6.0.0-BETA-243]
        at org.spongepowered.common.SpongeImpl.postEvent(SpongeImpl.java:133) [SpongeImpl.class:1.11.2-6.0.0-BETA-243]
        at net.minecraft.network.NetHandlerPlayServer.redirect$onDisconnectHandler$zgk000(SourceFile:2002) [mi.class:?]
        at net.minecraft.network.NetHandlerPlayServer.func_147231_a(SourceFile:733) [mi.class:?]
        at net.minecraft.network.NetworkManager.func_179293_l(SourceFile:382) [er.class:?]
        at net.minecraft.network.NetworkSystem.func_151269_c(SourceFile:215) [mh.class:?]
        at net.minecraft.server.MinecraftServer.func_71190_q(SourceFile:1603) [MinecraftServer.class:?]
        at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(SourceFile:335) [lh.class:?]
        at net.minecraft.server.MinecraftServer.func_71217_p(SourceFile:562) [MinecraftServer.class:?]
        at net.minecraft.server.MinecraftServer.run(SourceFile:466) [MinecraftServer.class:?]
        at java.lang.Thread.run(Thread.java:745) [?:1.8.0_121]

Reloading causes inventories not to be saved

Issue Description:

When the plugin gets reloaded while players are online they enter a "corrupted" state, that when they disconnect their inventories don't sync.

What happens:

Player's inventories don't save when they were online when the plugin was reloaded.

What you expected to happen:

That reloading the plugin won't break the synchronization.

Steps to reproduce:

  1. Join server
  2. Reload plugins with /sponge plugins reload
  3. Leave
  4. Notice InvSync not syncing with error message below

Affected Versions (Do not use "latest"):

  • Minecraft: 1.12.2
  • InvSync: 0.6.19.315 (and before)
  • Sponge: spongeforge-1.12.2-2825-7.1.6

Your most recent log or stack trace file where the issue was present:

[23:17:12] [Server thread/WARN] [invsync]: Serializing data of Guniek (088e2178-d984-4279-a3dd-5d2031e29dc1) has been cancelled, due to them not having joined fully.

Food list not synced with latest solcarrot version

Issue Description:

The solcarrot syncing doesn't work any more, because the com.cazsius.solcarrot.handler.HandlerCapability class was renamed to com.cazsius.solcarrot.handler.CapabilityHandler, but InvSync is still using the old name.

What happens:

[06:49:40] [Server thread/ERROR] [Sponge]: The Scheduler tried to run the task invsync-S-1 owned by Plugin{id=invsync, name=Inventory Sync, version=0.6.19.280-DEV, description=This plugin synchronizes the player inventory with a database, url=https://github.com/AuraDevelopmentTeam/InvSync, authors=[The_BrainStone], source=/home/minecraft/dd_ss/nodetest/server/./mods/plugins/InvSync-0.6.19.280-DEV.jar}, but an error occured.
java.lang.NoClassDefFoundError: com/cazsius/solcarrot/handler/HandlerCapability
        at world.jnc.invsync.util.serializer.module.mod.SolCarrotSyncModule$Helper.deserialize(SolCarrotSyncModule.java:93) ~[SolCarrotSyncModule$Helper.class:0.6.19.280-DEV]
        at world.jnc.invsync.util.serializer.module.mod.SolCarrotSyncModule$Helper.access$100(SolCarrotSyncModule.java:38) ~[SolCarrotSyncModule$Helper.class:0.6.19.280-DEV]
        at world.jnc.invsync.util.serializer.module.mod.SolCarrotSyncModule.deserialize(SolCarrotSyncModule.java:34) ~[SolCarrotSyncModule.class:0.6.19.280-DEV]
        at world.jnc.invsync.util.serializer.module.BaseSyncModule.deserialize(BaseSyncModule.java:86) ~[BaseSyncModule.class:0.6.19.280-DEV]
        at world.jnc.invsync.util.serializer.PlayerSerializer.deserializePlayer(PlayerSerializer.java:159) ~[PlayerSerializer.class:0.6.19.280-DEV]
        at world.jnc.invsync.event.PlayerEvents.loadPlayer(PlayerEvents.java:168) ~[PlayerEvents.class:0.6.19.280-DEV]
        at world.jnc.invsync.event.PlayerEvents.access$200(PlayerEvents.java:34) ~[PlayerEvents.class:0.6.19.280-DEV]
        at world.jnc.invsync.event.PlayerEvents$WaitingForPreviousServerToFinish.accept(PlayerEvents.java:210) ~[PlayerEvents$WaitingForPreviousServerToFinish.class:0.6.19.280-DEV]
        at world.jnc.invsync.event.PlayerEvents$WaitingForPreviousServerToFinish.accept(PlayerEvents.java:180) ~[PlayerEvents$WaitingForPreviousServerToFinish.class:0.6.19.280-DEV]
        at org.spongepowered.common.scheduler.SchedulerBase.lambda$startTask$0(SchedulerBase.java:192) ~[SchedulerBase.class:1.12.2-2768-7.1.6-RC3596]
        at org.spongepowered.common.scheduler.SyncScheduler.executeTaskRunnable(SyncScheduler.java:74) ~[SyncScheduler.class:1.12.2-2768-7.1.6-RC3596]
        at org.spongepowered.common.scheduler.SchedulerBase.startTask(SchedulerBase.java:183) ~[SchedulerBase.class:1.12.2-2768-7.1.6-RC3596]
        at org.spongepowered.common.scheduler.SchedulerBase.processTask(SchedulerBase.java:169) ~[SchedulerBase.class:1.12.2-2768-7.1.6-RC3596]
        at java.util.concurrent.ConcurrentHashMap$ValuesView.forEach(ConcurrentHashMap.java:4707) [?:1.8.0_201]
        at org.spongepowered.common.scheduler.SchedulerBase.runTick(SchedulerBase.java:112) [SchedulerBase.class:1.12.2-2768-7.1.6-RC3596]
        at org.spongepowered.common.scheduler.SyncScheduler.tick(SyncScheduler.java:47) [SyncScheduler.class:1.12.2-2768-7.1.6-RC3596]
        at org.spongepowered.common.scheduler.SpongeScheduler.tickSyncScheduler(SpongeScheduler.java:189) [SpongeScheduler.class:1.12.2-2768-7.1.6-RC3596]
        at org.spongepowered.mod.SpongeMod.onTick(SpongeMod.java:404) [SpongeMod.class:1.12.2-2768-7.1.6-RC3596]
        at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_696_SpongeMod_onTick_ServerTickEvent.invoke(.dynamic) [?:?]
        at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) [ASMEventHandler.class:?]
        at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:746) [EventBus.class:?]
        at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:696) [EventBus.class:?]
        at net.minecraftforge.fml.common.FMLCommonHandler.onPreServerTick(FMLCommonHandler.java:279) [FMLCommonHandler.class:?]
        at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:657) [MinecraftServer.class:?]
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526) [MinecraftServer.class:?]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_201]
Caused by: java.lang.ClassNotFoundException: com.cazsius.solcarrot.handler.HandlerCapability
        at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191) ~[launchwrapper-1.12.jar:?]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_201]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_201]
        ... 26 more
Caused by: java.lang.NullPointerException

What you expected to happen:

The simplest way to fix this is to have InvSync use CapabilityHandler and only work with recent versions of the solcarrot mod.

The alternative that I'm not in favor of is to clone the serializer so that one version works with the latest solcarrot and the other works with the old solcarrot.

Achievements get announced when they get synchronized

Issue Description:

When achievments are synchronized they get announced as if the player just got them.

What happens:

When the server synchronizes the achievements, new ones get announced.

What you expected to happen:

No announcements

Steps to reproduce:

  1. Get some achievements
  2. Leave server
  3. Delete stats file
  4. Join server
  5. Get greeted by achievement got message(s)

Affected Versions (Do not use "latest"):

  • Minecraft: 1.11.2
  • InvSync: 0.5.19-beta
  • Sponge: 1.11.2-6.0.0-BETA-253

V0id's Smart Backpack contents lost

Issue Description:

After logging out and logging back in, the contents of backpacks from the V0id's smart Backpacks mod are lost. The mod is storing the backpack contents in the ForgeCaps tag.

As this bug describes, the ForgeCaps are lost by Sponge:
#37

v0id backpack has an option to equip the backpack using a button. The equipped backpack does not show up any where in the inventory, but it can be accessed with a button. Equipped backpacks are not saved by invsync. So their contents are not lost but their contents are not transferred between servers either.

Steps to reproduce:

  1. Get a backpack
  2. Put something in it.
  3. Log out.
  4. Log back in and the contents are lost.

Affected Versions (Do not use "latest"):

  • Minecraft: 1.11.2
  • InvSync: InvSync-0.6.19.307-DEV.jar
  • Sponge: spongeforge-1.12.2-2768-7.1.6-RC3616.jar
  • Other related mods: V0id's Smart Backpacks-1.0.6.jar

Your most recent log or stack trace file where the issue was present:

Before logging out:

$ nbtutil --path 2e15e144-51b9-4f4b-a495-74dc0765a409.dat --printtree
...
   | + 6 entries
   | | + Count: 1
   | | + Slot: 1
   | | + Damage: 0
   | | + id: v0idssmartbackpacks:backpack
   | | + ForgeCaps: 2 entries
   | | | + astralsorcery:cap_item_amulet_holder: 2 entries
   | | | | + AS_Amulet_HolderLeast: -6587230391593753591
   | | | | + AS_Amulet_HolderMost: 3320807983800733515
   | | | + Parent: 5 entries
   | | |   + color: 0
   | | |   + energy: 0
   | | |   + maxEnergy: 0
   | | |   + inventory: 2 entries
   | | |   | + Size: 18
   | | |   | + Items: 1 entry
   | | |   |   + 6 entries
   | | |   |     + Count: 1
   | | |   |     + Damage: 12
   | | |   |     + Slot: 0
   | | |   |     + id: minecraft:iron_pickaxe
   | | |   |     + ForgeCaps: 1 entry
   | | |   |     | + astralsorcery:cap_item_amulet_holder: 0 entries
   | | |   |     + tag: 1 entry
   | | |   |       + pickletweaks: 1 entry
   | | |   |         + BlocksBroken: 17
   | | |   + upgrades: 2 entries
   | | |     + Size: 5
   | | |     + Items: 0 entries
   | | + tag: 2 entries
   | |   + backpack_tag: 4 entries
   | |   | + color: 0
   | |   | + energy: 0
   | |   | + energyMax: 0
   | |   | + upgrades: 2 entries
   | |   |   + Size: 5
   | |   |   + Items: 0 entries
   | |   + vsb:nbtItemHandler: 2 entries
   | |     + Size: 18
   | |     + Items: 1 entry
   | |       + 6 entries
   | |         + Count: 1
   | |         + Damage: 12
   | |         + Slot: 0
   | |         + id: minecraft:iron_pickaxe
   | |         + ForgeCaps: 1 entry
   | |         | + astralsorcery:cap_item_amulet_holder: 0 entries
   | |         + tag: 1 entry
   | |           + pickletweaks: 1 entry
   | |             + BlocksBroken: 17
...

After logging out and back in the ForgeCaps are lost:

$ nbtutil --path 2e15e144-51b9-4f4b-a495-74dc0765a409.dat --printtree
...
   + Inventory: 3 entries
   | + 6 entries
   | | + Count: 1
   | | + Slot: 1
   | | + Damage: 0
   | | + id: v0idssmartbackpacks:backpack
   | | + ForgeCaps: 2 entries
   | | | + astralsorcery:cap_item_amulet_holder: 2 entries
   | | | | + AS_Amulet_HolderLeast: -6587230391593753591
   | | | | + AS_Amulet_HolderMost: 3320807983800733515
   | | | + Parent: 5 entries
   | | |   + color: 0
   | | |   + energy: 0
   | | |   + maxEnergy: 0
   | | |   + inventory: 2 entries
   | | |   | + Size: 18
   | | |   | + Items: 0 entries
   | | |   + upgrades: 2 entries
   | | |     + Size: 5
   | | |     + Items: 0 entries
   | | + tag: 2 entries
   | |   + backpack_tag: 4 entries
   | |   | + color: 0
   | |   | + energy: 0
   | |   | + energyMax: 0
   | |   | + upgrades: 2 entries
   | |   |   + Size: 5
   | |   |   + Items: 0 entries
   | |   + vsb:nbtItemHandler: 2 entries
   | |     + Size: 18
   | |     + Items: 1 entry
   | |       + 6 entries
   | |         + Count: 1
   | |         + Damage: 12
   | |         + Slot: 0
   | |         + id: minecraft:iron_pickaxe
   | |         + ForgeCaps: 1 entry
   | |         | + astralsorcery:cap_item_amulet_holder: 0 entries
   | |         + tag: 1 entry
   | |           + pickletweaks: 1 entry
   | |             + BlocksBroken: 17
...

Console spam when synchronization fails

Issue Description:

When the synchronization fails for any reason the console is spammed like crazy.

What happens:

Console spam when an exception occurs during synchronization

What you expected to happen:

The error appearing only once.

Steps to reproduce:

  1. Do anything to trigger an exception during the synchronization (like putting in an error manually)
  2. Join (to trigger synchronization)
  3. Watch the console spam...

Affected Versions (Do not use "latest"):

  • Minecraft: 1.11.2
  • InvSync: 0.5.42
  • Sponge: SpongeVanilla-1.11.2-7.0.0-BETA-268

Special chars in the MySQL password do not work

Issue Description:

Special characters like : in the password do not work.

What happens:

The MySQL login fails.

What you expected to happen:

The MySQL login to succeed.

Steps to reproduce:

  1. Set MySQL password for user to a password containing ;
  2. Enter password in config
  3. Authentification fails

Affected Versions

  • Minecraft: 1.11.2
  • InvSync: 0.3.8-beta
  • Sponge: 1.11.2-6.0.0-BETA-243

When switching servers by bungeecord, the inventory gets loaded from the database before the new data is written

Issue Description:

When switching servers over bungeecord, the new server loads the inventory from the database before the old one has saved it to the database

What happens:

The inventory that is stored in the database before the switch gets loaded then the inventory from the old server gets stored.

What you expected to happen:

That the inventory gets stored in the database before it gets loaded again.

Steps to reproduce:

  1. Create a bungeecord server for two (or more) sponge servers
  2. Install InvSync on both (and set them up to use a common data source)
  3. Switch servers
  4. Inventories stay the same but the correct inventory is stored in database

Affected Versions

  • Minecraft: 1.11.2
  • InvSync: 0.3.8-beta
  • Sponge: 1.11.2-6.0.0-BETA-243
  • Other related mods: Bungeecord

Turn unsupported items into an placeholder

Unssupported items should be turned into an placeholder item. You should not be able to use the item. Also when deserializing the data should become the original data.

Add ability to set a auto-save timer

Just as the title says, i'd like to see a feature of allowing server owners to set a time on which the plugin will auto-save the inventories to the database.

Seperate Inventories Not Syncing

Issue Description:

I have 2 seperate servers, Plugin loads fine with no errors, but when going between the servers they are not syncing. And i have 2 seperate inventories. I have setup the Databases and table correctly. And was working until i did a restart.

Steps to reproduce:

  1. Start server 1
  2. Start server 2
  3. Fill inventory on server 1
  4. Move to server 2
  5. Items on server 1 do not get transferred to server 2
    ...

Affected Versions (Do not use "latest"):

  • Paper 1.14.3 ver 129
  • InvSync: 109b

Your most recent log or stack trace file where the issue was present:

No Errors

How to use h2 absolute path ?

Issue Description:

because no matter how I set up, it can't connect to MySQL.

What happens:

can't use mysql ,but h2 is ok. other plugins can use mysql.

What you expected to happen:

I want to use mysql or use h2 to make two server Inventory synchronize.

Steps to reproduce:

...


Affected Versions (Do not use "latest"):

  • Minecraft: 1.12.2
  • InvSync-0.6.17
  • spongeforge-1.12.2-2611-7.1.0-BETA-2955
  • Other related mods: flexiblelogin-0.16.8 chatmanage holograms-3.1 griefprevention-1.12.2-4.3.0.526 LuckPerms-Sponge-4.1.20 NewHonor Nucleus-1.2.2-S7.0-MC1.12.2-plugin PixelAutoMessages-1.0.2-b11 PlaceholderAPI-4.4 projectcore-7.0.0-0.2.1 VirtualChest-0.4.8

Your most recent log or stack trace file where the issue was present:

[pastebin/gist/etc link here]

[Or stack trace here (Remove this if you don't put anything here!)]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.