hafarooki / explosionreversal Goto Github PK
View Code? Open in Web Editor NEWA lightweight plugin for Minecraft servers which makes blocks destroyed by explosions regenerate.
License: MIT License
A lightweight plugin for Minecraft servers which makes blocks destroyed by explosions regenerate.
License: MIT License
looks like there's already an older (abandoned?) plugin with this name, hinders search results, only way to search this is to search it along with my name. a new name would be a good idea (wouldn't need to break anything, could automatically rename files etc). can't really think of a good one yet though
That way users can claim an area and do whatever explosion stuff they want inside their base.
On Spigot 1.16.4 I occasionally run into an error that fills up the log files quickly.
[Server thread/WARN]: [ExplosionRegen] Task #14 for ExplosionRegen v4.0.0 generated an exception
java.lang.IllegalArgumentException: Cannot spawn an entity for org.bukkit.entity.Item
at org.bukkit.craftbukkit.v1_16_R3.CraftWorld.createEntity(CraftWorld.java:1779) ~[server.jar:git-Spigot-f011ca2-3af81c7]
at org.bukkit.craftbukkit.v1_16_R3.CraftWorld.spawn(CraftWorld.java:1804) ~[server.jar:git-Spigot-f011ca2-3af81c7]
at org.bukkit.craftbukkit.v1_16_R3.CraftWorld.spawn(CraftWorld.java:1389) ~[server.jar:git-Spigot-f011ca2-3af81c7]
at org.bukkit.craftbukkit.v1_16_R3.CraftWorld.spawnEntity(CraftWorld.java:652) ~[server.jar:git-Spigot-f011ca2-3af81c7]
at net.starlegacy.explosionregen.Regeneration.regenerateEntity(Regeneration.java:90) ~[?:?]
at net.starlegacy.explosionregen.Regeneration.regenerateEntities(Regeneration.java:79) ~[?:?]
at net.starlegacy.explosionregen.Regeneration.pulse(Regeneration.java:21) ~[?:?]
at net.starlegacy.explosionregen.ExplosionRegenPlugin.lambda$scheduleRegen$0(ExplosionRegenPlugin.java:44) ~[?:?]
at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftTask.run(CraftTask.java:81) ~[server.jar:git-Spigot-f011ca2-3af81c7]
at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:400) ~[server.jar:git-Spigot-f011ca2-3af81c7]
at net.minecraft.server.v1_16_R3.MinecraftServer.b(MinecraftServer.java:1059) ~[server.jar:git-Spigot-f011ca2-3af81c7]
at net.minecraft.server.v1_16_R3.DedicatedServer.b(DedicatedServer.java:355) ~[server.jar:git-Spigot-f011ca2-3af81c7]
at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1007) ~[server.jar:git-Spigot-f011ca2-3af81c7]
at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:846) ~[server.jar:git-Spigot-f011ca2-3af81c7]
at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$0(MinecraftServer.java:164) ~[server.jar:git-Spigot-f011ca2-3af81c7]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_261]
Chests, furnaces and any other block with an inventory does not regenerate with the contents pre-explosion.
Sorting the list of blocks / entities to regen would help add to the aesthetic, as well as make it easier to not get stuck in holes.
Typically regening from the bottom up is preferred, and respawning entities last.
That said, if you wanted something better, then using a 'reverse flood fill' of connected non air non liquid blocks would be ideal, but difficult to implement.
Hi, I'm not sure if this is intentional, but even lowering the delay to below 5 mins, all content inside the chests disappear completely after regeneration. Is this intended, or is there any way to fix? Thanks
I really need to configure it but the minecraft server in 1.15.2 rejects it and returns the file to its initial state, here is the information I enter:
(I just want to regen the grass and dirt and stone blocks)
regen_delay: 0.1
placement_intensity: 0.1
ignored_entities:
ignored_materials:
included_materials:
Thank you in advance for your help!
The plugin doesn't support 1.16.1, explosions behave like normal
hi!
was wondering if its possible to have an ignore list or support chain explosions from TNT
primed TNT will treat other TNT around it as another block and regen it back.
so far, this is working great for me! thank you a lot.
Issue #1, adding block by block placement is a good start. However the main reason to regenerate things piece by piece is to keep players and mobs from getting trapped inside the explosion regen zone and dieing of suffocation. Right now it looks cool, but the blocks seem to regen from closest to the point of explosion to the farthest away from the explosion which almost always ends with anything inside a creeper, ghast, or wither "pit" suffocating because the "ceiling" regenerates before the "floor". This also means anything with gravity that WAS on the surface is now buried and/or glitched under the ground (for example as per #14 armor stands are now regened but sometimes fall into the ground because the blocks they were on did not come back yet).
To make this a more useful feature the blocks need to regenerate in a specific order. From the inside out. Farthest from impact to closest to impact in other words.
Getting the below error message using PaperMC 1.14.1 #42 (https://papermc.io/api/v1/paper/1.14.1/42/download)
[18:28:28 WARN]: java.io.IOException: Unable to delete C:\Minecraft\.\creative\data\explosion_regen.dat_tmp [18:28:28 WARN]: at com.google.common.io.Files.move(Files.java:485) [18:28:28 WARN]: at net.starlegacy.explosionregen.WorldData.save(WorldData.java:137) [18:28:28 WARN]: at net.starlegacy.explosionregen.ExplosionRegenPlugin.onWorldSave(ExplosionRegenPlugin.java:48) [18:28:28 WARN]: at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor25.execute(Unknown Source) [18:28:28 WARN]: at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) [18:28:28 WARN]: at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) [18:28:28 WARN]: at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) [18:28:28 WARN]: at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:534) [18:28:28 WARN]: at net.minecraft.server.v1_14_R1.WorldServer.save(WorldServer.java:758) [18:28:28 WARN]: at net.minecraft.server.v1_14_R1.MinecraftServer.saveChunks(MinecraftServer.java:672) [18:28:28 WARN]: at net.minecraft.server.v1_14_R1.MinecraftServer.a(MinecraftServer.java:1079) [18:28:28 WARN]: at net.minecraft.server.v1_14_R1.MinecraftServer.run(MinecraftServer.java:904) [18:28:28 WARN]: at java.lang.Thread.run(Thread.java:748)
REMOVED
sometimes only one chest's items restores
Hi, I am aware that this is probably entirely down to me being new to programming in java but I hope you'll bear with me nonetheless, I am currently trying to make a plugin that can regenerate broken and placed blocks, This plugin for I think clear reasons seems ideal for what I need to do, as far as I can tell it should be a matter of linking into block place and break events and saving their data in the same way as the explosions already implemented, I feel fairly comfortable with that however I am struggling to get the plugin to compile having downloaded the source code, these are the errors I'm getting:
I have already dealt with some dependency errors and the ones that remain all seem to reside inside 'NMSWrapper_v1_16_R3'. Honestly after looking through all the classes that's also the one I'm having the hardest time understanding.
I just don't know where to find or how to properly install the packages however hopefully after getting this sorted i'll have a better grasp of the issue.
I'm going to attach a bit of the code however if you want access to more just ask and I'll upload it - I haven't changed anything about the file itself that I'm aware of except for changing the first line to package 'me.blocks119.aurauriaregenerator.nms;' along with similar simple path changes in other files.
Many thanks in advance.
Nano
This plugin doesn't really benefit from the features of Kotlin, so it may as well be remade in Java to vastly reduce the jar file size.
Hello, your super plugin has a problem, the chests have no more objects when they reappear.
It would be cool if at least they drop them : )
Hello.
The plugin works great but constantly spaming an exception messages in the log journal:
[00:11:03 WARN]: [ExplosionRegen] Task #8 for ExplosionRegen v4.0.0 generated an exception
java.lang.IllegalArgumentException: Cannot spawn an entity for org.bukkit.entity.Item
at org.bukkit.craftbukkit.v1_16_R1.CraftWorld.createEntity(CraftWorld.java:1791) ~[spigot-1.16.1.jar:git-Spigot-0509002-7c03d25]
at org.bukkit.craftbukkit.v1_16_R1.CraftWorld.spawn(CraftWorld.java:1816) ~[spigot-1.16.1.jar:git-Spigot-0509002-7c03d25]
at org.bukkit.craftbukkit.v1_16_R1.CraftWorld.spawn(CraftWorld.java:1403) ~[spigot-1.16.1.jar:git-Spigot-0509002-7c03d25]
at org.bukkit.craftbukkit.v1_16_R1.CraftWorld.spawnEntity(CraftWorld.java:647) ~[spigot-1.16.1.jar:git-Spigot-0509002-7c03d25]
at net.starlegacy.explosionregen.Regeneration.regenerateEntity(Regeneration.java:90) ~[?:?]
at net.starlegacy.explosionregen.Regeneration.regenerateEntities(Regeneration.java:79) ~[?:?]
at net.starlegacy.explosionregen.Regeneration.pulse(Regeneration.java:21) ~[?:?]
at net.starlegacy.explosionregen.ExplosionRegenPlugin.lambda$scheduleRegen$0(ExplosionRegenPlugin.java:44) ~[?:?]
at org.bukkit.craftbukkit.v1_16_R1.scheduler.CraftTask.run(CraftTask.java:81) ~[spigot-1.16.1.jar:git-Spigot-0509002-7c03d25]
at org.bukkit.craftbukkit.v1_16_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:400) ~[spigot-1.16.1.jar:git-Spigot-0509002-7c03d25]
at net.minecraft.server.v1_16_R1.MinecraftServer.b(MinecraftServer.java:1061) ~[spigot-1.16.1.jar:git-Spigot-0509002-7c03d25]
at net.minecraft.server.v1_16_R1.DedicatedServer.b(DedicatedServer.java:354) ~[spigot-1.16.1.jar:git-Spigot-0509002-7c03d25]
at net.minecraft.server.v1_16_R1.MinecraftServer.a(MinecraftServer.java:1009) ~[spigot-1.16.1.jar:git-Spigot-0509002-7c03d25]
at net.minecraft.server.v1_16_R1.MinecraftServer.v(MinecraftServer.java:848) ~[spigot-1.16.1.jar:git-Spigot-0509002-7c03d25]
at net.minecraft.server.v1_16_R1.MinecraftServer.lambda$0(MinecraftServer.java:164) ~[spigot-1.16.1.jar:git-Spigot-0509002-7c03d25]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_261]
It is a big hindrance to read logs and seems to be putting some load on the server.
I am attempting to compile to project on Debian, and I get the following build error:
FAILURE: Build failed with an exception.
* Where:
Build file '/home/robby/Documents/Important-Folders/programming/minecraft-plugins/ExplosionRegen/build.gradle' line: 11
* What went wrong:
A problem occurred evaluating root project 'ExplosionRegen'.
> Could not find method content() for arguments [build_3kvmd138cqv17dtnc4y4mmchw$_run_closure1$_closure3$_closure5@48610ed] on object of type org.gradle.api.internal.artifacts.repositories.DefaultMavenArtifactRepository.
I'm using openjdk version 1.8.0_242, and I installed maven with apt.
I do not remember TNT regenerating before. Now with 3.0 and a fresh config TNT and TNT minecarts now regenerate their explosions and I do not see a config option to disable this.
It would be neat to have config options to determine what explosions are or are not regenerated, but at the very least have player created explosions such as TNT should not regenerate by default.
This issue is tangential to issue #1 and issue #27. Blocks are absolutely regenerating in the correct order, and blocks with gravity are not struggling during this progress.
However, players, mobs, and other entities that follow gravity (such as minecarts and armor stands) are trapped when the explosion regenerates. To make this plugin safe for players, pets, and so it does not trap entities within blocks, I think it has to have some collision check during the regeneration.
I have tried several entities but have been unsuccessful in getting the new feature "regenerating additional entities" to work. It is successfully regenerating armor stands but any entities beyond that seem to not function as intended.
I have included my config as a .txt just in case the actual issue is just that I have used my configuration file incorrectly.
config.txt
Items with inherent NBT data such as signs, shulker boxes, banners, and paintings, are not regenerated the same way they explode. Shulkers are emptied, paintings randomly re-assigned, sign text is removed, heads become Steve, etc.
A shulker box being emptied could be devastating, so I can't yet use this plugin in good conscience.
note: this seems heavily related or the same as #38, #40, and #42.
The inventory of a placed shulker box isn't restored when the plugin restores destroyed blocks
armor stands are technically an entity AND a block, but they currently explode and then dont come back which should definitely be fixed.
The timings set in the config are either unclear or incorrect as when I time it the blocks begin to regen at approximately 24 seconds and finish at around 30 seconds when regen_delay is set to 1.0 (meaning there should be an entire minute before they even start regenerating, and they finish in half of that).
If this is intended then the config should be more clear but I believe this is an error.
If blocks are towards the edge of an explosion that would normally be regenerated they will sometimes (unable to tell the exact circumstances besides "near the edge") drop an item instead of being "destroyed" and then when the explosion radius is regenerated that block will not be regenerated. This does avoid duping but if the dropped item is not noticed it could be left there and despawn, or in some cases even be buried inside of the regenerated area.
Blocks should always be destroyed so they can properly regenerate.
https://gyazo.com/f91d5e5b78b148a6b46988d7619ec38a
Getting this error, like the title says.
When paintings are regenerated successfully they do not seem to regenerate as the same painting they started as. However, from my testing it seems that depending on the order things regenerate in, sometimes they attempt to regenerate before the blocks they were placed on and instead do not regenerate at all
Beds aren't considered entities and therefore their explosions cannot be ignored.
When testing it's really handy to reload plugin configurations rather then reloading or restarting the entire server.
The following exception is being thrown every few minutes on the server console, I saw another issue here closed that pertained to a similar error, but in this case, it has to do with world_the_end and renaming a temporal file rather than deleting it
It also seems to be causing skips and general instability on my spigot server, running on Windows 10, using the latest release to date (2.3.0)
[04:24:51] [Server thread/WARN]: java.nio.file.FileSystemException: .\world_the_end\data\explosion_regen.dat_tmp -> .\world_the_end\data\explosion_regen.dat: The process cannot access the file because it is being used by another process.
[04:24:51] [Server thread/WARN]: at sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
[04:24:51] [Server thread/WARN]: at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
[04:24:51] [Server thread/WARN]: at sun.nio.fs.WindowsFileCopy.move(Unknown Source)
[04:24:51] [Server thread/WARN]: at sun.nio.fs.WindowsFileSystemProvider.move(Unknown Source)
[04:24:51] [Server thread/WARN]: at java.nio.file.Files.move(Unknown Source)
[04:24:51] [Server thread/WARN]: at net.starlegacy.explosionregen.WorldData.save(WorldData.java:138)
[04:24:51] [Server thread/WARN]: at net.starlegacy.explosionregen.ExplosionRegenPlugin.onWorldSave(ExplosionRegenPlugin.java:48)
[04:24:51] [Server thread/WARN]: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[04:24:51] [Server thread/WARN]: at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
[04:24:51] [Server thread/WARN]: at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[04:24:51] [Server thread/WARN]: at java.lang.reflect.Method.invoke(Unknown Source)
[04:24:51] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:316)
[04:24:51] [Server thread/WARN]: at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70)
[04:24:51] [Server thread/WARN]: at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:529)
[04:24:51] [Server thread/WARN]: at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:514)
[04:24:51] [Server thread/WARN]: at net.minecraft.server.v1_14_R1.WorldServer.save(WorldServer.java:747)
[04:24:51] [Server thread/WARN]: at net.minecraft.server.v1_14_R1.MinecraftServer.saveChunks(MinecraftServer.java:646)
[04:24:51] [Server thread/WARN]: at net.minecraft.server.v1_14_R1.MinecraftServer.a(MinecraftServer.java:990)
[04:24:51] [Server thread/WARN]: at net.minecraft.server.v1_14_R1.MinecraftServer.run(MinecraftServer.java:815)
[04:24:51] [Server thread/WARN]: at java.lang.Thread.run(Unknown Source)
I want explosions to regen in the overworld, but not the nether or the end.
Can you add an ignored-worlds config option?
ignored-worlds: []
Likely implemented by assigning a random delay to each block on explode for additional regeneration delay, configurable
[22:56:02 INFO]: This server is running CraftBukkit version git-Spigot-379750e-eaf0bac (MC: 1.16.2) (Implementing API version 1.16.2-R0.1-SNAPSHOT)
[22:56:02 INFO]: You are 1 version(s) behind
[22:56:06 INFO]: ExplosionRegen version 4.0.0
[22:56:06 INFO]: Authors: MicleBrick, SijmenSchoon and rsammelson
Exploding custom heads results in steve heads when they repair.
When added as a regenerating entity, item frames cause exceptions to be spammed.
[23:02:04] [Server thread/WARN]: [ExplosionRegen] Task #163 for ExplosionRegen v4.0.0 generated an exception
java.lang.IllegalArgumentException: Cannot spawn hanging entity for org.bukkit.entity.ItemFrame at Location{world=CraftWorld{name=world-1.16.2},x=191.5,y=66.5,z=-74.96875,pitch=0.0,yaw=0.0} (no free face)
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:383) ~[spigot-1.16.2.jar:git-Spigot-379750e-eaf0bac]
at org.bukkit.craftbukkit.v1_16_R2.CraftWorld.createEntity(CraftWorld.java:1750) ~[spigot-1.16.2.jar:git-Spigot-379750e-eaf0bac]
at org.bukkit.craftbukkit.v1_16_R2.CraftWorld.spawn(CraftWorld.java:1804) ~[spigot-1.16.2.jar:git-Spigot-379750e-eaf0bac]
at org.bukkit.craftbukkit.v1_16_R2.CraftWorld.spawn(CraftWorld.java:1389) ~[spigot-1.16.2.jar:git-Spigot-379750e-eaf0bac]
at org.bukkit.craftbukkit.v1_16_R2.CraftWorld.spawnEntity(CraftWorld.java:652) ~[spigot-1.16.2.jar:git-Spigot-379750e-eaf0bac]
at net.starlegacy.explosionregen.Regeneration.regenerateEntity(Regeneration.java:90) ~[?:?]
at net.starlegacy.explosionregen.Regeneration.regenerateEntities(Regeneration.java:79) ~[?:?]
at net.starlegacy.explosionregen.Regeneration.pulse(Regeneration.java:21) ~[?:?]
at net.starlegacy.explosionregen.ExplosionRegenPlugin.lambda$scheduleRegen$0(ExplosionRegenPlugin.java:44) ~[?:?]
at org.bukkit.craftbukkit.v1_16_R2.scheduler.CraftTask.run(CraftTask.java:81) ~[spigot-1.16.2.jar:git-Spigot-379750e-eaf0bac]
at org.bukkit.craftbukkit.v1_16_R2.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:400) ~[spigot-1.16.2.jar:git-Spigot-379750e-eaf0bac]
at net.minecraft.server.v1_16_R2.MinecraftServer.b(MinecraftServer.java:1059) ~[spigot-1.16.2.jar:git-Spigot-379750e-eaf0bac]
at net.minecraft.server.v1_16_R2.DedicatedServer.b(DedicatedServer.java:352) ~[spigot-1.16.2.jar:git-Spigot-379750e-eaf0bac]
at net.minecraft.server.v1_16_R2.MinecraftServer.a(MinecraftServer.java:1007) ~[spigot-1.16.2.jar:git-Spigot-379750e-eaf0bac]
at net.minecraft.server.v1_16_R2.MinecraftServer.w(MinecraftServer.java:846) ~[spigot-1.16.2.jar:git-Spigot-379750e-eaf0bac]
at net.minecraft.server.v1_16_R2.MinecraftServer.lambda$0(MinecraftServer.java:164) ~[spigot-1.16.2.jar:git-Spigot-379750e-eaf0bac]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_251]
There is an options file in the repository, which has explanations for every parameter, but the default generated options file only has one comment. Can this be fixed so the comments show in the generated file?
Plugin won't restore the container's items, please fix it.
[15:13:14] [Server thread/ERROR]: Could not pass event WorldSaveEvent to ExplosionRegen v2.0.0
org.bukkit.event.EventException: null
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:320) ~[spigot-1.14.1.jar:git-Spigot-03bd4b0-c45c0a9]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[spigot-1.14.1.jar:git-Spigot-03bd4b0-c45c0a9]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:520) [spigot-1.14.1.jar:git-Spigot-03bd4b0-c45c0a9]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:505) [spigot-1.14.1.jar:git-Spigot-03bd4b0-c45c0a9]
at net.minecraft.server.v1_14_R1.WorldServer.save(WorldServer.java:749) [spigot-1.14.1.jar:git-Spigot-03bd4b0-c45c0a9]
at net.minecraft.server.v1_14_R1.MinecraftServer.saveChunks(MinecraftServer.java:636) [spigot-1.14.1.jar:git-Spigot-03bd4b0-c45c0a9]
at net.minecraft.server.v1_14_R1.MinecraftServer.a(MinecraftServer.java:976) [spigot-1.14.1.jar:git-Spigot-03bd4b0-c45c0a9]
at net.minecraft.server.v1_14_R1.MinecraftServer.run(MinecraftServer.java:801) [spigot-1.14.1.jar:git-Spigot-03bd4b0-c45c0a9]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_121]
Caused by: java.lang.NoClassDefFoundError: it/unimi/dsi/fastutil/objects/Object2IntOpenHashMap
at net.starlegacy.explosionregen.WorldData.save(WorldData.java:104) ~[?:?]
at net.starlegacy.explosionregen.ExplosionRegenPlugin.onWorldSave(ExplosionRegenPlugin.java:48) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_121]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_121]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_121]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_121]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:316) ~[spigot-1.14.1.jar:git-Spigot-03bd4b0-c45c0a9]
... 8 more
Caused by: java.lang.ClassNotFoundException: it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap
at java.net.URLClassLoader.findClass(Unknown Source) ~[?:1.8.0_121]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:135) ~[spigot-1.14.1.jar:git-Spigot-03bd4b0-c45c0a9]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:81) ~[spigot-1.14.1.jar:git-Spigot-03bd4b0-c45c0a9]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_121]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_121]
at net.starlegacy.explosionregen.WorldData.save(WorldData.java:104) ~[?:?]
at net.starlegacy.explosionregen.ExplosionRegenPlugin.onWorldSave(ExplosionRegenPlugin.java:48) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_121]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_121]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_121]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_121]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:316) ~[spigot-1.14.1.jar:git-Spigot-03bd4b0-c45c0a9]
Hey!
Good job on the plugin, nice to see some up to date fresh plugin. Let me get to the point;
I want to allow TNT explosions without it regenerating, but I'd like creeper explosions to regenerate.
Consider adding this feature in the config.
Thanks a lot for your work!
Kattemannen
A quality of life improvement would be to add a regeneration speed parameter. It is not needed for functionality, but currently there is only really a "delay" parameter, and it would be nice to have both a delay and speed parameter (ex: wait 30 seconds, then over 30 seconds place blocks back).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.