Re-Code
sekwah41 opened this issue ยท 13 comments
Here are the tasks needed for the
Ok so I'm going to make a list of features planned for the initial release. Please if anything is missing that you would consider core ping me or respond.
This is what is considered as the core features, so some may be missing and replaced or added as they were later
- Command tags
- Trigger block tags
- Destination tags
- Sort all command permissions and tag permissions surrounding testing.
- Message tag
- Add default warp message and config to say where they should show
- Delay tag
- Disable gateway beacons in portal regions
- Bungee tag
- Proxy/Server tag
- Permission tag
- Portal protection
- Portal disable liquid physics
- Portal disable mob spawning
- Nether portal checks (avoid going to nether)
- Fire portals don't keep you set on fire
- Gateway blocks and end portals don't trigger default behaviour
- Destination create
- Destination remove
- Portal create
- Portal remove
- Portal file conversion to new format
- Portal selector
- Placeholder blocks for portals, end and gateway
- Help Menus
- Stop portal blocks being smashed in active portals
- Update permissions in the plugin.yml
These are the indented platforms to support at least eventually
Core
- Spigot
- Paper (possibly using some of the extra optimisations, plus properly testing paper specific bugs)
- Velocity
- Bungee
Extended
- Folia
- Forge
- Fabric
Will likely switch the non base release tasks to a separate ticket
Not in the last few weeks though I have the base tag system and most things ready with a few bugs for spigot. I just need to add bungee and velocity support. Then it's bug testing and finishing off a few more of the base tags.
-
Error when reloading an invalid configuration(Will be fixed with change to yml)
Caused by: com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Unterminated array at line 27 column 5 path $.a.[2]
- Strings in tags cause an internal error due to autocomplete
[13:00:27 ERROR]: Exception when username attempted to tab complete advancedportals create name:test3 command:"d
org.bukkit.command.CommandException: Unhandled exception during tab completion for command '/advancedportals create name:test3 command:"d' in plugin AdvancedPortals v1.0.0
at org.bukkit.command.PluginCommand.tabComplete(PluginCommand.java:150) ~[PaperCrane-API-1.20.1-R0.1-SNAPSHOT.jar:?]
at org.bukkit.command.Command.tabComplete(Command.java:93) ~[PaperCrane-API-1.20.1-R0.1-SNAPSHOT.jar:?]
at org.bukkit.command.SimpleCommandMap.tabComplete(SimpleCommandMap.java:240) ~[PaperCrane-API-1.20.1-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_20_R1.CraftServer.tabCompleteCommand(CraftServer.java:2420) ~[papercrane-1.20.1.jar:git-Paper-"c09094b"]
at org.bukkit.craftbukkit.v1_20_R1.CraftServer.tabComplete(CraftServer.java:2392) ~[papercrane-1.20.1.jar:git-Paper-"c09094b"]
at org.bukkit.craftbukkit.v1_20_R1.command.BukkitCommandWrapper.getSuggestions(BukkitCommandWrapper.java:74) ~[papercrane-1.20.1.jar:git-Paper-"c09094b"]
at com.mojang.brigadier.tree.ArgumentCommandNode.listSuggestions(ArgumentCommandNode.java:71) ~[brigadier-1.1.8.jar:git-Paper-"c09094b"]
at com.mojang.brigadier.CommandDispatcher.getCompletionSuggestions(CommandDispatcher.java:602) ~[papercrane-1.20.1.jar:?]
at com.mojang.brigadier.CommandDispatcher.getCompletionSuggestions(CommandDispatcher.java:582) ~[papercrane-1.20.1.jar:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleCustomCommandSuggestions$6(ServerGamePacketListenerImpl.java:922) ~[?:?]
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[papercrane-1.20.1.jar:git-Paper-"c09094b"]
at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1337) ~[papercrane-1.20.1.jar:git-Paper-"c09094b"]
at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:197) ~[papercrane-1.20.1.jar:git-Paper-"c09094b"]
at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1314) ~[papercrane-1.20.1.jar:git-Paper-"c09094b"]
at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1307) ~[papercrane-1.20.1.jar:git-Paper-"c09094b"]
at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[?:?]
at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1285) ~[papercrane-1.20.1.jar:git-Paper-"c09094b"]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1173) ~[papercrane-1.20.1.jar:git-Paper-"c09094b"]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:317) ~[papercrane-1.20.1.jar:git-Paper-"c09094b"]
at java.lang.Thread.run(Thread.java:840) ~[?:?]
```
I believe better error logging will prevent most Nether checks as currently, if there is an error somewhere in the configuration or creation, it will send you there.
The plan is for now to get the main system out, some parts may be rough and I will re-organise it as I go but the main API's or data used by plugins should not change drastically.
The re-code will be based off the initial re-code but with a slight re-structure.
Look into the best way to use/setup guice https://stackoverflow.com/questions/3404871/guice-inject-field-in-class-not-created-by-guice
For now, the injection method seems a bit best for just getting it working for our needs. Luckily due to the structure of the plugin, it shouldn't be too hard to re-do the references if need be.
Once this is ready I need to make an announcement saying some features may be slightly different or missing, so please raise issues or discuss on the discord.
Actually I'll keep open as I'd like to also look at moving dependencies via the shadow plugin so they don't clash. Also I need to setup the release pipeline.