Closed
Description
Describe the bug
When a player attempts to plunder a town, the will not be able to plunder due a console error. There is no messaging but a console log is provided.
[02:21:45 ERROR]: Could not pass event TownyBuildEvent to SiegeWar v2.12.1
java.lang.NullPointerException: Cannot invoke "com.palmergames.bukkit.towny.object.economy.AccountObserver.withdrew(com.palmergames.bukkit.towny.object.economy.Account, double, String)" because "observer" is null
at Towny-0.100.3.7.jar/com.palmergames.bukkit.towny.object.economy.Account.notifyObserversWithdraw(Account.java:269) ~[Towny-0.100.3.7.jar:?]
at Towny-0.100.3.7.jar/com.palmergames.bukkit.towny.object.economy.Account.withdraw(Account.java:96) ~[Towny-0.100.3.7.jar:?]
at Towny-0.100.3.7.jar/com.palmergames.bukkit.towny.object.economy.Account.payTo(Account.java:149) ~[Towny-0.100.3.7.jar:?]
at SiegeWar-2.12.1.jar/com.gmail.goosius.siegewar.playeractions.PlunderTown.createPlunderForNation(PlunderTown.java:207) ~[SiegeWar-2.12.1.jar:?]
at SiegeWar-2.12.1.jar/com.gmail.goosius.siegewar.playeractions.PlunderTown.plunderTown(PlunderTown.java:106) ~[SiegeWar-2.12.1.jar:?]
at SiegeWar-2.12.1.jar/com.gmail.goosius.siegewar.playeractions.PlunderTown.processPlunderTownRequest(PlunderTown.java:45) ~[SiegeWar-2.12.1.jar:?]
at SiegeWar-2.12.1.jar/com.gmail.goosius.siegewar.playeractions.PlaceBlock.evaluatePlaceChest(PlaceBlock.java:355) ~[SiegeWar-2.12.1.jar:?]
at SiegeWar-2.12.1.jar/com.gmail.goosius.siegewar.playeractions.PlaceBlock.evaluateSiegeWarPlaceBlockRequest(PlaceBlock.java:79) ~[SiegeWar-2.12.1.jar:?]
at SiegeWar-2.12.1.jar/com.gmail.goosius.siegewar.listeners.SiegeWarActionListener.onBlockBuild(SiegeWarActionListener.java:40) ~[SiegeWar-2.12.1.jar:?]
at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor298.execute(Unknown Source) ~[?:?]
at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:77) ~[folia-api-1.20.6-R0.1-SNAPSHOT.jar:?]
at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:77) ~[folia-api-1.20.6-R0.1-SNAPSHOT.jar:1.20.6-5-d797082]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[folia-api-1.20.6-R0.1-SNAPSHOT.jar:?]
at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:54) ~[folia-1.20.6.jar:1.20.6-5-d797082]
at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:131) ~[folia-1.20.6.jar:1.20.6-5-d797082]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:628) ~[folia-api-1.20.6-R0.1-SNAPSHOT.jar:?]
at Towny-0.100.3.7.jar/com.palmergames.bukkit.util.BukkitTools.fireEvent(BukkitTools.java:373) ~[Towny-0.100.3.7.jar:?]
at Towny-0.100.3.7.jar/com.palmergames.bukkit.towny.event.executors.TownyActionEventExecutor.isAllowedAction(TownyActionEventExecutor.java:80) ~[Towny-0.100.3.7.jar:?]
at Towny-0.100.3.7.jar/com.palmergames.bukkit.towny.event.executors.TownyActionEventExecutor.canBuild(TownyActionEventExecutor.java:204) ~[Towny-0.100.3.7.jar:?]
at Towny-0.100.3.7.jar/com.palmergames.bukkit.towny.listeners.TownyBlockListener.onBlockPlace(TownyBlockListener.java:89) ~[Towny-0.100.3.7.jar:?]
at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor96.execute(Unknown Source) ~[?:?]
at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:77) ~[folia-api-1.20.6-R0.1-SNAPSHOT.jar:?]
at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:77) ~[folia-api-1.20.6-R0.1-SNAPSHOT.jar:1.20.6-5-d797082]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[folia-api-1.20.6-R0.1-SNAPSHOT.jar:?]
at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:54) ~[folia-1.20.6.jar:1.20.6-5-d797082]
at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:131) ~[folia-1.20.6.jar:1.20.6-5-d797082]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:628) ~[folia-api-1.20.6-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.event.CraftEventFactory.callBlockPlaceEvent(CraftEventFactory.java:448) ~[folia-1.20.6.jar:1.20.6-5-d797082]
at net.minecraft.world.item.ItemStack.useOn(ItemStack.java:467) ~[folia-1.20.6.jar:1.20.6-5-d797082]
at net.minecraft.server.level.ServerPlayerGameMode.useItemOn(ServerPlayerGameMode.java:602) ~[folia-1.20.6.jar:1.20.6-5-d797082]
at net.minecraft.server.network.ServerGamePacketListenerImpl.handleUseItemOn(ServerGamePacketListenerImpl.java:1979) ~[folia-1.20.6.jar:1.20.6-5-d797082]
at net.minecraft.network.protocol.game.ServerboundUseItemOnPacket.handle(ServerboundUseItemOnPacket.java:44) ~[folia-1.20.6.jar:1.20.6-5-d797082]
at net.minecraft.network.protocol.game.ServerboundUseItemOnPacket.handle(ServerboundUseItemOnPacket.java:11) ~[folia-1.20.6.jar:1.20.6-5-d797082]
at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$1(PacketUtils.java:57) ~[folia-1.20.6.jar:1.20.6-5-d797082]
at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$2(PacketUtils.java:85) ~[folia-1.20.6.jar:1.20.6-5-d797082]
at io.papermc.paper.threadedregions.EntityScheduler.executeTick(EntityScheduler.java:173) ~[folia-1.20.6.jar:1.20.6-5-d797082]
at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1688) ~[folia-1.20.6.jar:1.20.6-5-d797082]
at io.papermc.paper.threadedregions.TickRegions$ConcreteRegionTickHandle.tickRegion(TickRegions.java:407) ~[folia-1.20.6.jar:1.20.6-5-d797082]
at io.papermc.paper.threadedregions.TickRegionScheduler$RegionScheduleHandle.runTick(TickRegionScheduler.java:404) ~[folia-1.20.6.jar:1.20.6-5-d797082]
at ca.spottedleaf.concurrentutil.scheduler.SchedulerThreadPool$TickThreadRunner.run(SchedulerThreadPool.java:525) ~[folia-1.20.6.jar:1.20.6-5-d797082]
at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]
To Reproduce
Steps to reproduce the behavior:
- Enable Towny
towny-server
account in the towny configuration. - Verify you have an actual account and balance in
towny-server
- Set
plunder_paid_over_time: 'true'
in the siege war configuration. - Attempt to plunder a town.
plunder:
amount_per_plot: '4.0'
plunder_paid_over_time: 'true'
number_of_payments: '6'
Expected behavior
The Plunder is paid over time instead of disabled.
Screenshots
If applicable, add screenshots to help explain your problem.
Versions (please complete the following information):
- Towny: 0.100.3.7
- SiegeWar: 2.12.1
- Spigot/Paper: Folia 1.20.6 Build Suggestion: Siegewar - Add mid-siege explosions config #5