Giter VIP home page Giter VIP logo

teleportationrunes's People

Contributors

blufenix avatar fm-96 avatar schwamm007 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

teleportationrunes's Issues

Issues With Teleporting On Horseback

Reported by players on my server, but I'm having trouble isolating and duplicating it. The reported issue, if you enter a sending pad that has 3 blocks vertical airspace and a solid ceiling above while on horseback, the pad will spam the message "left the teleport area". Testing myself, I can't get it to spam the message, but it does do it once or twice before the teleport finally activates.

I did find another issue during my testing though. Teleporting on horseback to one of my distant pads results in me arriving without my horse and me floating in air unable to move. Other players see me on horseback as expected, but I'm unable to move and don't see my horse. Relogging fixes the issue and the horse is present. However, when trying to do this from a local sender (short distance) to that same receiver, it behaves as expected. Sending and receiving pads are buried one block down, though I've tried removing that cover on the sender and it doesn't make a difference.

Is this plugin still being maintained?

This is one of my favorite plugins, found it recently and loaded it into my 1.16.4 server successfully.
Will this plugin be updated to future versions of Minecraft, if required?

Sorry for logging an issue :)

Scroll of Warp not consumed if it is dropped or its inventory slot changes

Steps to reproduce

  1. Activate an attuned Scroll of Warp.
  2. During the teleport delay either drop the used Scroll on the ground, or just move it to a different slot in your inventory.
  3. The teleport will go through, but the Scroll will not be consumed. If it was dropped, it remains on the floor. If it was moved to a different inventory slot, it remains in that slot.

Proposed solution

I'm not familiar with Spigot's API, so I don't know if it's easy/possible to keep track of an item after it's been moved.

An alternative solution would be that the teleport gets canceled if you stop holding the Scroll of Warp during the delay (just like if you step off a teleporter). Especially when dropping the Scroll entirely, this would make more sense to me than the Scroll you're no longer holding successfully teleporting you.

Another alternative would be to consume the Scroll of Warp immediately upon starting the teleport. If you don't want the teleport to be cancelable, this seems like the easiest solution.

Do not enforce XP requirements when player is in creative mode

When you look at how e.g. Anvils work in vanilla Minecraft, they do not enforce XP requirements for players in creative mode.

This plugin should work the same way. Players in creative mode should be able to use any teleporter/Scroll of Warp regardless of how much XP they have, and using them should not subtract any XP from them.

NullPointerException when trying to move waypoint

When trying to activate a waypoint with a signature that has previously been used, an error is thrown in some cases:

(1. and 2. work as intended, and are just listed for comparison.)

  1. Previous waypoint with that signature still exists in the world. -> You get a message telling you that signature is already in use.
  2. Previous waypoint with that signature had its signature changed. -> The new waypoint is activated with that signature.
  3. Previous waypoint no longer exists (i.e. one or more of its lapis blocks have been removed). -> The below error is thrown.
java.lang.NullPointerException: Cannot read field "status" because "conflictInWorld" is null
        at net.blufenix.teleportationrunes.TeleportationRunes.handleBookOfEnderAction(TeleportationRunes.java:156) ~[TeleportationRunes.jar:?]
        at net.blufenix.teleportationrunes.TeleportationRunes.onPlayerInteractEvent(TeleportationRunes.java:133) ~[TeleportationRunes.jar:?]
        at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor1.execute(Unknown Source) ~[?:?]
        at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:75) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:?]
        at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:git-Paper-182]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:670) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.craftbukkit.v1_19_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:544) ~[paper-1.19.2.jar:git-Paper-182]
        at net.minecraft.server.level.ServerPlayerGameMode.useItemOn(ServerPlayerGameMode.java:525) ~[?:?]
        at net.minecraft.server.network.ServerGamePacketListenerImpl.handleUseItemOn(ServerGamePacketListenerImpl.java:1968) ~[?:?]
        at net.minecraft.network.protocol.game.ServerboundUseItemOnPacket.handle(ServerboundUseItemOnPacket.java:37) ~[?:?]
        at net.minecraft.network.protocol.game.ServerboundUseItemOnPacket.a(ServerboundUseItemOnPacket.java:9) ~[?:?]
        at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$1(PacketUtils.java:51) ~[?:?]
        at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.19.2.jar:git-Paper-182]
        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:1341) ~[paper-1.19.2.jar:git-Paper-182]
        at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:185) ~[paper-1.19.2.jar:git-Paper-182]
        at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
        at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1318) ~[paper-1.19.2.jar:git-Paper-182]
        at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1311) ~[paper-1.19.2.jar:git-Paper-182]
        at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[?:?]
        at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1289) ~[paper-1.19.2.jar:git-Paper-182]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1177) ~[paper-1.19.2.jar:git-Paper-182]
        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:305) ~[paper-1.19.2.jar:git-Paper-182]
        at java.lang.Thread.run(Thread.java:833) ~[?:?]

Runes cross worlds?

Hey mate,
We built a sender in the overworld and a receiver in the nether and it did not link. I'm assuming cross-world teleportation doesn't work?

Add inbound particle effects...

Request: add particles effects around receiving pad to indicate someone is about to teleport in.

Some players are scheming to bury receivers in a few places so they can teleport in to randomly surprise players. While I do think this can be a legitimate use, I'd like to have some (optional) indication to nearby players that a player is about to arrive via teleport (if they're not paying attention and get surprised, that's they're own fault). I think activating the particle effects around the center of the receiving pad at the same time they're activated around the teleporting player would be a good way to deal with this.

Cost not displaying before teleport (1.17.1)

Just updated to Paper 1.17.1. Plugin still works, but for some reason the cost message is no longer displaying. Already tried clearing out the plugin config and db, resetting it, no change. Also removed all other plugins, no change.

Minor bugs

  • Using book to activate sender doesn't consume book.
  • Renaming attuned scroll at anvil renders scroll non-functional.
  • Breaking and rebuilding receiver causes message on first use of existing sender or attuned scroll that receiver "has been damaged or destroyed", but teleport succeeds anyway.

Error trying to attune

Really want to use this plugin, players are looking forward to it, but I'm getting errors when trying to activate a waypoint or attune a scroll. Silly thing is, if I'm reading this right, it doesn't even look like its an error in the plugin but rather with java itself. I'm hoping you'd have better insight on this than I.

Activation

[02:05:18 ERROR]: Could not pass event PlayerInteractEvent to TeleportationRunes v2.0.0
java.lang.IllegalStateException: Current state = RESET, new state = FLUSHED
        at java.nio.charset.CharsetDecoder.throwIllegalStateException(CharsetDecoder.java:996) ~[?:?]
        at java.nio.charset.CharsetDecoder.flush(CharsetDecoder.java:679) ~[?:?]
        at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:808) ~[?:?]
        at java.nio.charset.Charset.decode(Charset.java:811) ~[?:?]
        at org.sqlite.core.NativeDB.utf8ByteBufferToString(NativeDB.java:507) ~[patched_1.16.5.jar:git-Paper-775]
        at org.sqlite.core.NativeDB.column_name(NativeDB.java:239) ~[patched_1.16.5.jar:git-Paper-775]
        at org.sqlite.core.DB.column_names(DB.java:733) ~[patched_1.16.5.jar:git-Paper-775]
        at org.sqlite.jdbc3.JDBC3Statement.getResultSet(JDBC3Statement.java:131) ~[patched_1.16.5.jar:git-Paper-775]
        at org.sqlite.jdbc3.JDBC3Statement.executeQuery(JDBC3Statement.java:73) ~[patched_1.16.5.jar:git-Paper-775]
        at net.blufenix.common.SimpleDatabase.rawQuery(SimpleDatabase.java:108) ~[?:?]
        at net.blufenix.common.SimpleDatabase.query(SimpleDatabase.java:90) ~[?:?]
        at net.blufenix.teleportationrunes.WaypointDB.getWaypointFromLocation(WaypointDB.java:98) ~[?:?]
        at net.blufenix.teleportationrunes.Waypoint.fromLocation(Waypoint.java:46) ~[?:?]
        at net.blufenix.teleportationrunes.TeleportationRunes.handleBookOfEnderAction(TeleportationRunes.java:132) ~[?:?]
        at net.blufenix.teleportationrunes.TeleportationRunes.onPlayerInteractEvent(TeleportationRunes.java:125) ~[?:?]
        at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor27.execute(Unknown Source) ~[?:?]
        at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[patched_1.16.5.jar:git-Paper-775]
        at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[patched_1.16.5.jar:git-Paper-775]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[patched_1.16.5.jar:git-Paper-775]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:624) ~[patched_1.16.5.jar:git-Paper-775]
        at org.bukkit.craftbukkit.v1_16_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:549) ~[patched_1.16.5.jar:git-Paper-775]
        at net.minecraft.server.v1_16_R3.PlayerInteractManager.a(PlayerInteractManager.java:499) ~[patched_1.16.5.jar:git-Paper-775]
        at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:1714) ~[patched_1.16.5.jar:git-Paper-775]
        at net.minecraft.server.v1_16_R3.PacketPlayInUseItem.a(PacketPlayInUseItem.java:32) ~[patched_1.16.5.jar:git-Paper-775]
        at net.minecraft.server.v1_16_R3.PacketPlayInUseItem.a(PacketPlayInUseItem.java:10) ~[patched_1.16.5.jar:git-Paper-775]
        at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:35) ~[patched_1.16.5.jar:git-Paper-775]
        at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18) ~[patched_1.16.5.jar:git-Paper-775]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.16.5.jar:git-Paper-775]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.16.5.jar:git-Paper-775]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.16.5.jar:git-Paper-775]
        at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:1266) ~[patched_1.16.5.jar:git-Paper-775]
        at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:1259) ~[patched_1.16.5.jar:git-Paper-775]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119) ~[patched_1.16.5.jar:git-Paper-775]
        at net.minecraft.server.v1_16_R3.MinecraftServer.sleepForTick(MinecraftServer.java:1220) ~[patched_1.16.5.jar:git-Paper-775]
        at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1134) ~[patched_1.16.5.jar:git-Paper-775]
        at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:291) ~[patched_1.16.5.jar:git-Paper-775]
        at java.lang.Thread.run(Thread.java:831) [?:?]

Attune

[02:13:20 ERROR]: Could not pass event PlayerInteractEvent to TeleportationRunes v2.0.0
java.lang.IllegalStateException: Current state = RESET, new state = FLUSHED
        at java.nio.charset.CharsetDecoder.throwIllegalStateException(CharsetDecoder.java:996) ~[?:?]
        at java.nio.charset.CharsetDecoder.flush(CharsetDecoder.java:679) ~[?:?]
        at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:808) ~[?:?]
        at java.nio.charset.Charset.decode(Charset.java:811) ~[?:?]
        at org.sqlite.core.NativeDB.utf8ByteBufferToString(NativeDB.java:507) ~[patched_1.16.5.jar:git-Paper-775]
        at org.sqlite.core.NativeDB.column_name(NativeDB.java:239) ~[patched_1.16.5.jar:git-Paper-775]
        at org.sqlite.core.DB.column_names(DB.java:733) ~[patched_1.16.5.jar:git-Paper-775]
        at org.sqlite.jdbc3.JDBC3Statement.getResultSet(JDBC3Statement.java:131) ~[patched_1.16.5.jar:git-Paper-775]
        at org.sqlite.jdbc3.JDBC3Statement.executeQuery(JDBC3Statement.java:73) ~[patched_1.16.5.jar:git-Paper-775]
        at net.blufenix.common.SimpleDatabase.rawQuery(SimpleDatabase.java:108) ~[?:?]
        at net.blufenix.common.SimpleDatabase.query(SimpleDatabase.java:90) ~[?:?]
        at net.blufenix.teleportationrunes.WaypointDB.getWaypointFromLocation(WaypointDB.java:98) ~[?:?]
        at net.blufenix.teleportationrunes.Waypoint.fromLocation(Waypoint.java:46) ~[?:?]
        at net.blufenix.teleportationrunes.TeleportationRunes.handleScrollOfWarpAction(TeleportationRunes.java:166) ~[?:?]
        at net.blufenix.teleportationrunes.TeleportationRunes.onPlayerInteractEvent(TeleportationRunes.java:127) ~[?:?]
        at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor27.execute(Unknown Source) ~[?:?]
        at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[patched_1.16.5.jar:git-Paper-775]
        at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[patched_1.16.5.jar:git-Paper-775]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[patched_1.16.5.jar:git-Paper-775]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:624) ~[patched_1.16.5.jar:git-Paper-775]
        at org.bukkit.craftbukkit.v1_16_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:549) ~[patched_1.16.5.jar:git-Paper-775]
        at net.minecraft.server.v1_16_R3.PlayerInteractManager.a(PlayerInteractManager.java:499) ~[patched_1.16.5.jar:git-Paper-775]
        at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:1714) ~[patched_1.16.5.jar:git-Paper-775]
        at net.minecraft.server.v1_16_R3.PacketPlayInUseItem.a(PacketPlayInUseItem.java:32) ~[patched_1.16.5.jar:git-Paper-775]
        at net.minecraft.server.v1_16_R3.PacketPlayInUseItem.a(PacketPlayInUseItem.java:10) ~[patched_1.16.5.jar:git-Paper-775]
        at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:35) ~[patched_1.16.5.jar:git-Paper-775]
        at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18) ~[patched_1.16.5.jar:git-Paper-775]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.16.5.jar:git-Paper-775]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.16.5.jar:git-Paper-775]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.16.5.jar:git-Paper-775]
        at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:1266) ~[patched_1.16.5.jar:git-Paper-775]
        at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:1259) ~[patched_1.16.5.jar:git-Paper-775]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119) ~[patched_1.16.5.jar:git-Paper-775]
        at net.minecraft.server.v1_16_R3.MinecraftServer.sleepForTick(MinecraftServer.java:1220) ~[patched_1.16.5.jar:git-Paper-775]
        at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1134) ~[patched_1.16.5.jar:git-Paper-775]
        at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:291) ~[patched_1.16.5.jar:git-Paper-775]
        at java.lang.Thread.run(Thread.java:831) [?:?]

There is also a warning on server start that should probably be noted as well...

[01:51:41 INFO]: [TeleportationRunes] Loading TeleportationRunes v2.0.0
[01:51:41 WARN]: java.lang.ClassCastException: class jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast t                                                                                       o class java.net.URLClassLoader (jdk.internal.loader.ClassLoaders$AppClassLoader and java.net.URLClassLoader are in m                                                                                       odule java.base of loader 'bootstrap')
[01:51:41 WARN]:        at net.blufenix.common.JarUtils.addClassPath(JarUtils.java:89)
[01:51:41 WARN]:        at net.blufenix.common.JarUtils.loadLibs(JarUtils.java:29)
[01:51:41 WARN]:        at net.blufenix.teleportationrunes.TeleportationRunes.onLoad(TeleportationRunes.java:41)
[01:51:41 WARN]:        at org.bukkit.craftbukkit.v1_16_R3.CraftServer.loadPlugins(CraftServer.java:399)
[01:51:41 WARN]:        at net.minecraft.server.v1_16_R3.DedicatedServer.init(DedicatedServer.java:269)
[01:51:41 WARN]:        at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1069)
[01:51:41 WARN]:        at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:291)
[01:51:41 WARN]:        at java.base/java.lang.Thread.run(Thread.java:831)

I REALLY hope your still supporting this plugin as I've not found any (compatible) others that offer a player buildable (non-command-line) teleportation solution like this. Also hoping 1.17 doesn't break it further.

OpenJDK16, Paper 1.16.5

Suggestions / Requests

@BLuFeNiX With the plugin working now, I'd like to make a few suggestions / requests if you're open to it.

  • YML option to customize the book and scroll recipes. Since my server is well past end-game, end pearls are readily abundant and easy to acquire. I'd like the ability to modify the recipe to include components that are a bit more work to acquire (ie: ghast tears) or require more of said materials (ie: eight pearls and a book vs just one).
  • YML option to modify the "charge up" time before the teleportation occurs. Optionally make it a customizable calculation based on distance being travelled (the way you do with cost).
  • YML option to disable or change the teleportation effects (specifically the lightning). I happen to like it so far, but I can also see it being an annoyance to others. An option to have no sounds / effects, or alternatively use the endermen swoops, upon teleportation would be appreciated.
  • Haven't tried yet, but does teleportation work between worlds? If not, please? Add a YML configurable 'additional charge' (and additional charge up time) to the calculated teleportation cost.
  • Cost calculation, can this use any basic math functions? Ceiling, floor, absolute value, modulo?
  • And just for some OPTIONAL random teleportation shenanigans / player torment... a configurable (distance influenced) random chance the teleport will 'malfunction' and 'drop' you somewhere part way between origin and destination. Hey, this a faster alternative to nether highway travel, but since magic is involved, use at your own risk, MWUAHAHAHA!!

Thanks for all your work on this!

Lead Duplication Bug

Reported by players on my server. Leads are duplicating when used to lead a horse through a teleporter. We've haven't tired other animals yet.

Lead a horse into a teleporter. Teleport completes, horse is still on lead with you at the receiver pad. However, if you go back to the sender pad, you'll now find a lead on the ground.

(most of my players don't use horses, so it's not surprising we're just now discovering this)

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.