Towny Classic

Towny Classic

3.1k Downloads

Conversion of legacy economy fails

alekso56 opened this issue · 6 comments

commented

What steps will reproduce the problem?

[16:33:51 WARN]: [Towny] Async task for Towny v0.101.0.0 generated an exception
java.lang.NullPointerException: Cannot invoke "java.util.UUID.version()" because "this.uuid" is null
        at Towny-0.101.0.0.jar/com.palmergames.bukkit.towny.object.economy.Account.asOfflinePlayer(Account.java:462) ~[Towny-0.101.0.0.jar:?]
        at Towny-0.101.0.0.jar/com.palmergames.bukkit.towny.object.economy.adapter.VaultEconomyAdapter.hasAccount(VaultEconomyAdapter.java:32) ~[Towny-0.101.0.0.jar:?]
        at Towny-0.101.0.0.jar/com.palmergames.bukkit.towny.command.TownyAdminCommand.lambda$parseAdminConvertEconomyCommand$18(TownyAdminCommand.java:2985) ~[Towny-0.101.0.0.jar:?]
        at Towny-0.101.0.0.jar/com.palmergames.bukkit.towny.scheduling.TaskScheduler.lambda$runAsync$9(TaskScheduler.java:114) ~[Towny-0.101.0.0.jar:?]
        at Towny-0.101.0.0.jar/com.palmergames.bukkit.towny.scheduling.impl.FoliaTaskScheduler.lambda$runAsync$6(FoliaTaskScheduler.java:126) ~[Towny-0.101.0.0.jar:?]
        at io.papermc.paper.threadedregions.scheduler.FoliaAsyncScheduler$AsyncScheduledTask.run(FoliaAsyncScheduler.java:217) ~[paper-1.21.3.jar:?]
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
        at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]

What is the expected output?

More than 50% progress before it exits.

Towny version

v0.101.0.0

Server version

1.21.3

Please use Pastebin.com to link the following files

  1. Your full server startup from the logs\latest.log:
  2. Your Towny config.yml:
  3. Your townyperms.yml:
  4. Your log's error:

(optional) If this is to do with permissions,
5. Your permissions file:

(optional) If this is to do with chat,
6. Your chatconfig.yml:
7. Your channels.yml:

commented
commented
commented

Im using essentialsx, 2.21.0-dev+149-424816e.

commented
[17:31:59] [Server thread/INFO]: alekso56 issued server command: /townyadmin eco convert modern
[17:32:00] [Server thread/INFO]: alekso56 issued server command: /towny:confirm
[17:32:13] [Folia Async Scheduler Thread #4/INFO]: [Essentials] Created a User for alekso56 (246b09e6-60f3-4daa-a28c-60a4ae28e71e) for non Bukkit type: com.earth2me.essentials.OfflinePlayerStub
[17:32:13] [Folia Async Scheduler Thread #4/WARN]: [Essentials] Essentials will not log any more warnings for com.earth2me.essentials.OfflinePlayerStub. Please report this to the EssentialsX team.
[17:32:13] [Folia Async Scheduler Thread #4/WARN]: [Towny] Async task for Towny v0.101.0.0 generated an exception
java.lang.NullPointerException: Cannot invoke "java.util.UUID.version()" because "this.uuid" is null
	at Towny-0.101.0.0.jar/com.palmergames.bukkit.towny.object.economy.Account.asOfflinePlayer(Account.java:462) ~[Towny-0.101.0.0.jar:?]
	at Towny-0.101.0.0.jar/com.palmergames.bukkit.towny.object.economy.adapter.VaultEconomyAdapter.hasAccount(VaultEconomyAdapter.java:32) ~[Towny-0.101.0.0.jar:?]
	at Towny-0.101.0.0.jar/com.palmergames.bukkit.towny.command.TownyAdminCommand.lambda$parseAdminConvertEconomyCommand$18(TownyAdminCommand.java:2985) ~[Towny-0.101.0.0.jar:?]
	at Towny-0.101.0.0.jar/com.palmergames.bukkit.towny.scheduling.TaskScheduler.lambda$runAsync$9(TaskScheduler.java:114) ~[Towny-0.101.0.0.jar:?]
	at Towny-0.101.0.0.jar/com.palmergames.bukkit.towny.scheduling.impl.FoliaTaskScheduler.lambda$runAsync$6(FoliaTaskScheduler.java:126) ~[Towny-0.101.0.0.jar:?]
	at io.papermc.paper.threadedregions.scheduler.FoliaAsyncScheduler$AsyncScheduledTask.run(FoliaAsyncScheduler.java:217) ~[paper-1.21.3.jar:?]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
	at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]

commented

Turn on debug_mode in the towny config and then try converting again, the log should show more information.

commented

It basicly prints this:

[02:40:26 INFO]: Found 7555 accounts to convert. Beginning conversion now.
[17:32:13] [Folia Async Scheduler Thread #4/INFO]: [Essentials] Created a User for alekso56 (246b09e6-60f3-4daa-a28c-60a4ae28e71e) for non Bukkit type: com.earth2me.essentials.OfflinePlayerStub
[17:32:13] [Folia Async Scheduler Thread #4/WARN]: [Essentials] Essentials will not log any more warnings for com.earth2me.essentials.OfflinePlayerStub. Please report this to the EssentialsX team.
[Towny] Creating new account for 246b09e6-60f3-4daa-a28c-60a4ae28e71e 
 [Towny] Setting balance of account 246b09e6-60f3-4daa-a28c-60a4ae28e71e to 300.0

untill randomly this error appears after "setting balance of account"
so it clearly does not get the uuid from whatever essentials or offline player is feeding it, maybe just a username.

[02:40:26 DEBUG]: [Towny] Setting balance of account 3d1d4125-922c-47b4-ae8c-e863ff654f43 to 300.0
[02:40:26 WARN]: [Towny] Async task for Towny v0.101.0.0 generated an exception
java.lang.NullPointerException: Cannot invoke "java.util.UUID.version()" because "this.uuid" is null
       at Towny-0.101.0.0.jar/com.palmergames.bukkit.towny.object.economy.Account.asOfflinePlayer(Account.java:462) ~[Towny-0.101.0.0.jar:?]
       at Towny-0.101.0.0.jar/com.palmergames.bukkit.towny.object.economy.adapter.VaultEconomyAdapter.hasAccount(VaultEconomyAdapter.java:32) ~[Towny-0.101.0.0.jar:?]
       at Towny-0.101.0.0.jar/com.palmergames.bukkit.towny.command.TownyAdminCommand.lambda$parseAdminConvertEconomyCommand$18(TownyAdminCommand.java:2985) ~[Towny-0.101.0.0.jar:?]
       at Towny-0.101.0.0.jar/com.palmergames.bukkit.towny.scheduling.TaskScheduler.lambda$runAsync$9(TaskScheduler.java:114) ~[Towny-0.101.0.0.jar:?]
       at Towny-0.101.0.0.jar/com.palmergames.bukkit.towny.scheduling.impl.FoliaTaskScheduler.lambda$runAsync$6(FoliaTaskScheduler.java:126) ~[Towny-0.101.0.0.jar:?]
       at io.papermc.paper.threadedregions.scheduler.FoliaAsyncScheduler$AsyncScheduledTask.run(FoliaAsyncScheduler.java:217) ~[paper-1.21.3.jar:?]
       at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
       at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
       at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]

It could also be that the player data does not exist, since the world was wiped with all playerdata.