Code Monkey home page Code Monkey logo

waypoints's Introduction

Waypoints

Support Discord Modrinth Downloads Spiget Downloads

Ever had the problem, that you were on a long trip and can't find your base?

You could set a warp with a conventional plugin at your home and simply teleport back. But if you want to keep the survival experience of not being able to teleport like that, this plugin could be just what your server needs!

Direction Indicators

So, instead of just bringing the player back where he started, this plugin shows him the direction he has to walk, so he can explore the world even more. To show the player the direction you can configure multiple direction indicators to guide the player to his destination.

Bossbar Indicator

A compass will be visible at the top of the screen, with a highlighter marking in which direction the waypoint is

Beacon

When the waypoint is in render distance, a beacon beam will appear at the location of the waypoint to make it easier to pinpoint the location of the waypoint.

Trail

The plugin attempts to find a suitable path for you to walk and then shows it to you with particles.

Hologram

Floating text like in the mods.

Blinking Block

When the player is closer to the waypoint, the beacon will be replaced with a block sequence that will repeat. This is to help him get to the exact location.

Compass

It won't get any simpler than that if the player owns a compass. It will have the waypoint as it's target and points into that direction.

Actionbar Indicator

This is comparable to the compass but doesn't require one. It will show the rough direction with small sections in the action bar of the player. If the player is too far left, the sections in the right will light up and vice versa.

Particles

Particles appear at the feet of the player pointing into the direction of the waypoint

Player tracking

Although disabled by default, when enabled adds a menu to the GUI where the player can choose another player to track. Now the compass, actionbar indicator and particles will help guide the player to the tracked player.

  • Players can choose to hide themselves in the menu to others (if enabled)
  • Players must show themselves to others in order to track a player (if enabled)
  • The player that gets tracked receives a notification who started tracking him (if enabled)

Languages

The plugin is shipping translations for the following languages:

  • English
  • German
  • Italian (by marcotech81)
  • Simplified Chinese (by SnowCutieOwO)
  • Traditional Chinese (by ItzTheBear)
  • Brazilian Portuguese (partial, by gaugt980131gg2)

And if your language is not there, the plugin is fully translatable

Other notable features

  • Open the GUI by sneaking and right-clicking with a compass (by default)
  • Set custom icons for waypoints and folders by clicking on their icon. The item in your main hand will be used
  • Limit the amount of waypoints and folders a player can have
  • Customizable teleport prices and price increases the more the player teleports (With Vault support)
  • Direction indicators customizable
  • Items in GUI fully customizable
  • SQLite data storage

Integrations

Videos

DonKolia made a small video series of this plugins functionality where he demonstrates the basic functionality and all the available pointers. It is in Spanish but with English subtitles: Link to playlist

Commands

/waypoints - Opens the GUI

/waypoints select <Name> - Select an additional waypoint

/waypoints deselectAll - Deselect all selected waypoints

/waypoints teleport <Name> - Teleport to waypoints (if allowed)

/waypoints set <Name> - Create a waypoint only the player himself can see

/waypoints setPublic <Name> - Create a waypoint visible for everyone

/waypoints setPermission <Permission> <Name> - Create a waypoint only visible for players with the given permission

/waypoints setTemporary <X> <Y> <Z> - Create a waypoint that is only visible for the time he is online

/waypoints other <Name> - View the waypoints of another player

/waypoints statistics - Look at some rudimentary statistics about the database

/waypoints reload - Reload the configuration. (/reload is not supported)

Scripting

/waypointsscript deselectWaypoint <Player-Name> - Deselect the current waypoints of a player with a command

/waypointsscript selectWaypoint <Player-Name> <Waypoint-UUID> - Set the waypoint selection of a player with a command

/waypointsscript temporaryWaypoint <Player-Name> <X> <Y> <Z> [Beacon-Color] - Create a temporary waypoint for the player

/waypointsscript uuid <Search-Query> - Search for waypoints by their name to get the uuid of them

Permissions

waypoints.command.use* - Allows the player to use the /waypoints command and open the GUI

waypoints.command.other - Allows the player to use the /waypoints other command

waypoints.command.statistics - Allows the player to use the /waypoints statistics command

waypoints.command.reload - Allows the player to use the /waypoints reload command

waypoints.command.scripting - Allows the player to use the /waypointsscript command and get the UUID of waypoints

waypoints.modify.private* - Allows the player to create, alter and delete private waypoints

waypoints.modify.public - Allows the player to create, alter and delete public waypoints

waypoints.modify.permission - Allows the player to create, alter, delete and always see permission waypoints

waypoints.modify.anywhere - Allows the player to place waypoints wherever they want, ignoring disabled worlds

waypoints.modify.other - Allows the player to modify the waypoints of another player when using /waypoints other

waypoints.unlimited - Allows the player to create more waypoints and folders than the limit in the config

waypoints.temporaryWaypoint* - Allows the player to create a waypoint that is only visible for the time he is online

waypoints.temporaryWaypoint.other* - Allows the player to create a waypoint for select players that is only visible for the time they is online

waypoints.teleport.private - Allows the player to teleport to private waypoints

waypoints.teleport.public - Allows the player to teleport to public waypoints

waypoints.teleport.permission - Allows the player to teleport to permission waypoints

waypoints.tracking.enabled* - Allows the player to use the player tracking feature

waypoints.tracking.trackAll - Allows the player to track players that are hidden

waypoints.updateNotification - The player receives a notification after a server restart if a new Version is found

*: These permissions are granted to all players by default

Configuration

Almost everything is configurable. To have a look at the current configuration file click here

Also, you can change every piece of text to other languages or just change the colors. English Translation File

Additional notes

Metrics

This plugin uses bStats to collect basic metrics about the usage of this plugin. You can, of course, opt-out of this if you wish. For further information have a look at "What data is collected?" and "Disabling bStats" over here.

To view the metrics of this plugin, go here.

License

This plugin is licensed under the MIT license. For more information on it, you can read this.

Supported Minecraft versions

Because I don't have the time or motivation to support a lot of versions, and it is generally advised to update to the latest stable Paper versions, only the latest stable Paper version is supported, with previous versions if applicable

Java version

Java 21 is the minimum required version.

waypoints's People

Contributors

chunkiuu avatar snowcutieowo avatar sytm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

waypoints's Issues

Create temporary waypoints with command

Allow the creation of temporary waypoints that are only valid while the player is online.

They can be created by typing /waypoint setSession X Y Z. They have the generic name "Session Waypoint"

Public folders for better orientation

I'll be running a city roleplay-like server with usage of waypoints, they are great for quick orientation in town. However, it would be great if there could be public folders (just like private ones) - this would greatly improve readability if there are many public waypoints.

Thanks for reply!

[Feature request] Disable creation of private on-death waypoints.

Is your feature request related to a problem? Please describe.
There are other plugins that offer extensive commands and features in regards to death events and getting back to the death location.

Describe the solution you'd like
Death waypoints should be able to be disabled in the configuration file, or a permission should be created to handle the feature on a per-player basis.

Describe alternatives you've considered
I don't know of any.

Additional context
In my server I use a death chest plugin which can teleport players to their last death location;
it can also signal players the death location via particles and fireworks.

GUI Menu Blocks can be duplicated

For some reason, the Blocks such as Hopper, Ender Chest and Chest can be taken from the GUI menu if you quickly take one, close menu, then place down the block. This can lead to infinite Obsidian, Ender Chests, Chests, Hoppers, etc. We've had to disable the plugin until this can be fixed.
2022-04-13_15 28 06

We are running Waypoints 3.3.1, didnt see anything in further updates about this issue.

Ability to make existing waypoint public

It would be nice if an existing waypoint could be made public. Since the public waypoints already show up as a folder, it would make sense to just be able to move an existing waypoint to the public folder in order to make it public.

Question

I have the plugin on my server. It works for me, but my friends can’t use the public waypoints. How can I fix that?

Add more tests

Like stated above, add more unit tests. Possibly using mocking providers and stuff

bug

I went to try to put the latest version and start the world and it gave this error I'll leave a photo
waypoints

Some translations are missing messages (java.lang.IllegalArgumentException)

Describe the bug
The plugin throws an error during enabling process.

[22:17:26] [Server thread/INFO]: [Waypoints] Enabling Waypoints v2.9.2
[22:17:26] [Server thread/ERROR]: Error occurred while enabling Waypoints v2.9.2 (Is it up to date?)
java.lang.IllegalArgumentException: Some translations are missing messages. Check the console for more details
	at de.md5lukas.commons.messages.MessageStore.<init>(MessageStore.java:58) ~[?:?]
	at de.md5lukas.waypoints.Waypoints.loadMessages(Waypoints.java:189) ~[?:?]
	at de.md5lukas.waypoints.Waypoints.onEnable(Waypoints.java:126) ~[?:?]
	at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[patched_1.16.5.jar:git-Paper-439]
	at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:380) ~[patched_1.16.5.jar:git-Paper-439]
	at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:483) ~[patched_1.16.5.jar:git-Paper-439]
	at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugin(CraftServer.java:501) ~[patched_1.16.5.jar:git-Paper-439]
	at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugins(CraftServer.java:415) ~[patched_1.16.5.jar:git-Paper-439]
	at net.minecraft.server.v1_16_R3.MinecraftServer.loadWorld(MinecraftServer.java:464) ~[patched_1.16.5.jar:git-Paper-439]
	at net.minecraft.server.v1_16_R3.DedicatedServer.init(DedicatedServer.java:239) ~[patched_1.16.5.jar:git-Paper-439]
	at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:935) ~[patched_1.16.5.jar:git-Paper-439]
	at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:173) ~[patched_1.16.5.jar:git-Paper-439]
	at java.lang.Thread.run(Thread.java:834) [?:?]
[22:17:26] [Server thread/INFO]: [Waypoints] Disabling Waypoints v2.9.2

Also Md5-LukasCommon plugin throws an error about translations:

[22:17:26] [Server thread/ERROR]: [Md5Lukas-Commons] The following messages are missing: 
[22:17:26] [Server thread/ERROR]: [Md5Lukas-Commons] Language: de
[22:17:26] [Server thread/ERROR]: [Md5Lukas-Commons] chatAction.getId
command.scripting.help.title
command.scripting.help.clearWaypoint
command.scripting.help.selectWaypoint
command.scripting.clearWaypoint.wrongUsage
command.scripting.selectWaypoint.wrongUsage
inventory.waypoint.public.getId.displayName
inventory.waypoint.public.getId.description
inventory.waypoint.permission.getId.displayName
inventory.waypoint.permission.getId.description
[22:17:26] [Server thread/ERROR]: [Md5Lukas-Commons] Language: ru
[22:17:26] [Server thread/ERROR]: [Md5Lukas-Commons] chatAction.getId
command.scripting.help.title
command.scripting.help.clearWaypoint
command.scripting.help.selectWaypoint
command.scripting.clearWaypoint.wrongUsage
command.scripting.selectWaypoint.wrongUsage
inventory.waypoint.public.getId.displayName
inventory.waypoint.public.getId.description
inventory.waypoint.permission.getId.displayName
inventory.waypoint.permission.getId.description
[22:17:26] [Server thread/ERROR]: [Md5Lukas-Commons] Language: en
[22:17:26] [Server thread/ERROR]: [Md5Lukas-Commons] chatAction.getId
command.scripting.help.title
command.scripting.help.clearWaypoint
command.scripting.help.selectWaypoint
command.scripting.clearWaypoint.wrongUsage
command.scripting.selectWaypoint.wrongUsage
inventory.waypoint.public.getId.displayName
inventory.waypoint.public.getId.description
inventory.waypoint.permission.getId.displayName
inventory.waypoint.permission.getId.description

To Reproduce

  1. Have PaperMC #439 release installed.
  2. Install Md5Lukas-Commons 1.2-b10
  3. Install Waypoints 2.9.2
  4. Try to run the server

Expected behavior
The plugin is enabled during the startup

Server environment:

  • OS: macOS Catalina 10.15.7 (19H114)
  • Java Version: 11 (I don't know the exact version, but I think I can ask my hosting provider if needed)
  • PaperMC #439
  • Md5Lukas-Commons 1.2-b10
  • Waypoints 2.9.2

Ability to disable Connected Worlds

Please add possibility to disable Connected Worlds so that only waypoints from overworld are shown in overworld, and only from nether in nether.

An error ocurred

the /waypoint menu worked before but after moving it to my main pc (from server to pc) it doesnt work anymore
windows 10 1909
papermc 1.15.2
plugin 2.6.2 logs are from 2.6.1 but they are the same i think

[21:43:48 INFO]: TheGamerX issued server command: /waypoint
[21:43:48 ERROR]: [Md5Lukas-Commons] Couldn't load player store for player with the uuid 867ae82b-6910-3bdb-949d-91041a5a360f
java.util.concurrent.ExecutionException: java.io.EOFException
        at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:502) ~[patched_1.15.2.jar:git-Paper-126]
        at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:461) ~[patched_1.15.2.jar:git-Paper-126]
        at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:78) ~[patched_1.15.2.jar:git-Paper-126]
        at com.google.common.util.concurrent.Uninterruptibles.getUninterruptibly(Uninterruptibles.java:142) ~[patched_1.15.2.jar:git-Paper-126]
        at com.google.common.cache.LocalCache$Segment.getAndRecordStats(LocalCache.java:2461) ~[patched_1.15.2.jar:git-Paper-126]
        at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2425) ~[patched_1.15.2.jar:git-Paper-126]
        at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2298) ~[patched_1.15.2.jar:git-Paper-126]
        at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2211) ~[patched_1.15.2.jar:git-Paper-126]
        at com.google.common.cache.LocalCache.get(LocalCache.java:4154) ~[patched_1.15.2.jar:git-Paper-126]
        at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4158) ~[patched_1.15.2.jar:git-Paper-126]
        at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5147) ~[patched_1.15.2.jar:git-Paper-126]
        at de.md5lukas.commons.data.PlayerStore.getPlayerStore(PlayerStore.java:77) ~[?:?]
        at de.md5lukas.waypoints.data.WPPlayerData.lambda$getPlayerData$0(WPPlayerData.java:43) ~[?:?]
        at java.util.HashMap.compute(Unknown Source) ~[?:1.8.0_231]
        at de.md5lukas.waypoints.data.WPPlayerData.getPlayerData(WPPlayerData.java:41) ~[?:?]
        at de.md5lukas.waypoints.gui.WaypointProvider.<init>(WaypointProvider.java:187) ~[?:?]
        at de.md5lukas.waypoints.gui.GUIManager.openGUI(GUIManager.java:34) ~[?:?]
        at de.md5lukas.waypoints.command.WaypointsCommand.onCommand(WaypointsCommand.java:69) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[patched_1.15.2.jar:git-Paper-126]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:159) ~[patched_1.15.2.jar:git-Paper-126]
        at org.bukkit.craftbukkit.v1_15_R1.CraftServer.dispatchCommand(CraftServer.java:742) ~[patched_1.15.2.jar:git-Paper-126]
        at net.minecraft.server.v1_15_R1.PlayerConnection.handleCommand(PlayerConnection.java:1825) ~[patched_1.15.2.jar:git-Paper-126]
        at net.minecraft.server.v1_15_R1.PlayerConnection.a(PlayerConnection.java:1633) ~[patched_1.15.2.jar:git-Paper-126]
        at net.minecraft.server.v1_15_R1.PacketPlayInChat.a(PacketPlayInChat.java:47) ~[patched_1.15.2.jar:git-Paper-126]
        at net.minecraft.server.v1_15_R1.PacketPlayInChat.a(PacketPlayInChat.java:5) ~[patched_1.15.2.jar:git-Paper-126]
        at net.minecraft.server.v1_15_R1.PlayerConnectionUtils.lambda$ensureMainThread$0(PlayerConnectionUtils.java:23) ~[patched_1.15.2.jar:git-Paper-126]
        at net.minecraft.server.v1_15_R1.TickTask.run(SourceFile:18) ~[patched_1.15.2.jar:git-Paper-126]
        at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.15.2.jar:git-Paper-126]
        at net.minecraft.server.v1_15_R1.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.15.2.jar:git-Paper-126]
        at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.15.2.jar:git-Paper-126]
        at net.minecraft.server.v1_15_R1.MinecraftServer.ba(MinecraftServer.java:1038) ~[patched_1.15.2.jar:git-Paper-126]
        at net.minecraft.server.v1_15_R1.MinecraftServer.executeNext(MinecraftServer.java:1031) ~[patched_1.15.2.jar:git-Paper-126]
        at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119) ~[patched_1.15.2.jar:git-Paper-126]
        at net.minecraft.server.v1_15_R1.MinecraftServer.sleepForTick(MinecraftServer.java:1015) ~[patched_1.15.2.jar:git-Paper-126]
        at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:938) ~[patched_1.15.2.jar:git-Paper-126]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_231]
Caused by: java.io.EOFException
        at java.io.DataInputStream.readUnsignedShort(Unknown Source) ~[?:1.8.0_231]
        at java.io.DataInputStream.readUTF(Unknown Source) ~[?:1.8.0_231]
        at java.io.DataInputStream.readUTF(Unknown Source) ~[?:1.8.0_231]
        at de.md5lukas.commons.tags.LocationTag.load(LocationTag.java:38) ~[?:?]
        at de.md5lukas.nbt.Tag.readNamedTag(Tag.java:157) ~[?:?]
        at de.md5lukas.nbt.tags.CompoundTag.load(CompoundTag.java:50) ~[?:?]
        at de.md5lukas.nbt.Tag.readNamedTag(Tag.java:157) ~[?:?]
        at de.md5lukas.nbt.tags.CompoundTag.load(CompoundTag.java:50) ~[?:?]
        at de.md5lukas.nbt.Tag.readNamedTag(Tag.java:157) ~[?:?]
        at de.md5lukas.nbt.tags.CompoundTag.load(CompoundTag.java:50) ~[?:?]
        at de.md5lukas.nbt.Tag.readNamedTag(Tag.java:157) ~[?:?]
        at de.md5lukas.nbt.NbtIo.read(NbtIo.java:85) ~[?:?]
        at de.md5lukas.nbt.NbtIo.readCompressed(NbtIo.java:32) ~[?:?]
        at de.md5lukas.nbt.NbtIo.readCompressed(NbtIo.java:47) ~[?:?]
        at de.md5lukas.commons.data.PlayerStore$1.load(PlayerStore.java:70) ~[?:?]
        at de.md5lukas.commons.data.PlayerStore$1.load(PlayerStore.java:66) ~[?:?]
        at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3716) ~[patched_1.15.2.jar:git-Paper-126]
        at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2424) ~[patched_1.15.2.jar:git-Paper-126]
        ... 30 more
[21:43:48 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'waypoint' in plugin Waypoints v2.6.1
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[patched_1.15.2.jar:git-Paper-126]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:159) ~[patched_1.15.2.jar:git-Paper-126]
        at org.bukkit.craftbukkit.v1_15_R1.CraftServer.dispatchCommand(CraftServer.java:742) ~[patched_1.15.2.jar:git-Paper-126]
        at net.minecraft.server.v1_15_R1.PlayerConnection.handleCommand(PlayerConnection.java:1825) ~[patched_1.15.2.jar:git-Paper-126]
        at net.minecraft.server.v1_15_R1.PlayerConnection.a(PlayerConnection.java:1633) ~[patched_1.15.2.jar:git-Paper-126]
        at net.minecraft.server.v1_15_R1.PacketPlayInChat.a(PacketPlayInChat.java:47) ~[patched_1.15.2.jar:git-Paper-126]
        at net.minecraft.server.v1_15_R1.PacketPlayInChat.a(PacketPlayInChat.java:5) ~[patched_1.15.2.jar:git-Paper-126]
        at net.minecraft.server.v1_15_R1.PlayerConnectionUtils.lambda$ensureMainThread$0(PlayerConnectionUtils.java:23) ~[patched_1.15.2.jar:git-Paper-126]
        at net.minecraft.server.v1_15_R1.TickTask.run(SourceFile:18) ~[patched_1.15.2.jar:git-Paper-126]
        at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.15.2.jar:git-Paper-126]
        at net.minecraft.server.v1_15_R1.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.15.2.jar:git-Paper-126]
        at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.15.2.jar:git-Paper-126]
        at net.minecraft.server.v1_15_R1.MinecraftServer.ba(MinecraftServer.java:1038) ~[patched_1.15.2.jar:git-Paper-126]
        at net.minecraft.server.v1_15_R1.MinecraftServer.executeNext(MinecraftServer.java:1031) ~[patched_1.15.2.jar:git-Paper-126]
        at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119) ~[patched_1.15.2.jar:git-Paper-126]
        at net.minecraft.server.v1_15_R1.MinecraftServer.sleepForTick(MinecraftServer.java:1015) ~[patched_1.15.2.jar:git-Paper-126]
        at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:938) ~[patched_1.15.2.jar:git-Paper-126]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_231]
Caused by: java.lang.NullPointerException
        at de.md5lukas.waypoints.data.WPPlayerData.<init>(WPPlayerData.java:60) ~[?:?]
        at de.md5lukas.waypoints.data.WPPlayerData.lambda$getPlayerData$0(WPPlayerData.java:45) ~[?:?]
        at java.util.HashMap.compute(Unknown Source) ~[?:1.8.0_231]
        at de.md5lukas.waypoints.data.WPPlayerData.getPlayerData(WPPlayerData.java:41) ~[?:?]
        at de.md5lukas.waypoints.gui.WaypointProvider.<init>(WaypointProvider.java:187) ~[?:?]
        at de.md5lukas.waypoints.gui.GUIManager.openGUI(GUIManager.java:34) ~[?:?]
        at de.md5lukas.waypoints.command.WaypointsCommand.onCommand(WaypointsCommand.java:69) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[patched_1.15.2.jar:git-Paper-126]
        ... 17 more
>

plugins
image

No limit to manual waypoint creation

When adding a custom waypoint (shift + left-click on create waypoint), there should be a limit for the coordinates that can be set:

  • max ±29999999 for the x and z coords
  • min -63 (1.18) or 1 (1.17-) for the y coord
  • max 319 (1.18) or 255 (1.17-) for the y coord

Why?

Because it can crash servers (based on a real experience).

Per waypoint custom dynmap icons

This can be done via a AnvilGUI promt where you can enter the icon id.

Also a new event for Icon update should be added so the change can be propagated

No way of getting waypoint UUID

I am unable to rename a waypoint from the GUI and I can't find a way of obtaining the UUID of a waypoint from a command. How can I rename or change the item of a waypoint?

I am playing on 1.17.

Inventory items lost using anvil GUI

Description
I've noticed a bug where inventory items are permanently lost if the anvil GUI is not used correctly. If any item is shift-cliked while using the anvil GUI, the item is inserted into the second slot and can no longer be returned to the player. Example video.

Impact
This is not an issue with normal use, however it can be very unfortunate if valuable items are lost if someone accidentally shift-clicks one of their items.

Steps to reproduce
Open GUI, add new waypoint or folder to open anvil GUI, then shift-click an item within the inventory to insert it into the second anvil slot. It is also possible to insert an item into the second anvil slot by repeatedly left-clicking it with a selected item. The inserted item is then lost.

System
Java 1.8
Minecraft version 1.15.2
Paper latest version (for now anyway): Paper-121 (API version 1.15.2-R0.1-SNAPSHOT)
Plugin version: 2.6.1

Error logs
No logs or errors displayed in console.

Save last selected waypoint

When a player leaves the server and / or the server is restarted, the last selected waypoint of a player should be selected again.

Plugin doesn't work after install

Describe the bug
Both plugins I need are loaded and show when I do /pl. I can tab commands but when I enter them I get no response. In console it says: "Shinee__ issued server command: /waypoints". I gave my role every waypoints permission and also I'm OP.

To Reproduce
I downloaded Md5Lukas-Commons and Waypoints
Steps to reproduce the behavior (example):

  1. waypoints folder appears
  2. tried several /waypoints commands
  3. added every permission
  4. reinstalled

Expected behavior
I exptect to get a menu or a list wich commands I can use or an error feedback.

Server environment(please complete the following information):

  • I'm hosting on MC-Host24 so I dont have a clue

Additional context
My Plugins: BetterSleeping3, LuckPerms, Md5Lukas-Commons, Minepacks, DeadChest, ChairStairs, Waypoints

Nether Tunnel Support

Is your feature request related to a problem? Please describe.
I just started using this plugin and noticed that it doesn't play very well with nether highways/tunnels etc

Describe the solution you'd like
A way to link locations with a respective nether portal. So when you choose a location you can be directed to the nearest nether portal and then to the location's nether portal.

Describe alternatives you've considered
The ability for the location indicaters to still operate when in the nether EG a beacon at 25 25 instead of 200 200.
image

No support for multiple worlds

Describe the bug
On our server we have multiple overworlds (with usage of Multiverse), and every time a player has set navigation to the waypoint, which is located in other world, console would get spammed with one error (shown below).

To Reproduce
Steps to reproduce the behavior (example):

  1. Select waypoint in the first overworld
  2. Teleport to other overworld
  3. Read the console

Expected behavior
A Waypoint would get deselected.

Server environment(please complete the following information):

  • OS: Ubuntu 18.04
  • Java Version: 8u241

Additional context
Error message:
[22:00:42 WARN]: [Waypoints] Task #1284247 for Waypoints v2.9.1 generated an exception java.lang.IllegalArgumentException: Cannot measure distance between mining_world and building_world at org.bukkit.Location.distanceSquared(Location.java:510) ~[patched_1.16.3.jar:git-Paper-253] at de.md5lukas.waypoints.display.WaypointAvailabilityChecker.update(WaypointAvailabilityChecker.java:48) ~[?:?] at de.md5lukas.waypoints.display.WaypointDisplay$AllWaypointDisplays.lambda$show$2(WaypointDisplay.java:128) ~[?:?] at org.bukkit.craftbukkit.v1_16_R2.scheduler.CraftTask.run(CraftTask.java:99) ~[patched_1.16.3.jar:git-Paper-253] at org.bukkit.craftbukkit.v1_16_R2.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:468) ~[patched_1.16.3.jar:git-Paper-253] at net.minecraft.server.v1_16_R2.MinecraftServer.b(MinecraftServer.java:1296) ~[patched_1.16.3.jar:git-Paper-253] at net.minecraft.server.v1_16_R2.DedicatedServer.b(DedicatedServer.java:371) ~[patched_1.16.3.jar:git-Paper-253] at net.minecraft.server.v1_16_R2.MinecraftServer.a(MinecraftServer.java:1211) ~[patched_1.16.3.jar:git-Paper-253] at net.minecraft.server.v1_16_R2.MinecraftServer.w(MinecraftServer.java:999) ~[patched_1.16.3.jar:git-Paper-253] at net.minecraft.server.v1_16_R2.MinecraftServer.lambda$a$0(MinecraftServer.java:177) ~[patched_1.16.3.jar:git-Paper-253] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_241]

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Error type: baseBranch not found
Message: The following configured baseBranch could not be found: dev

Dynmap integration?

Any chance dynmap integration could be added, such that waypoints showed up on dynmap if installed? I guess maybe just public ones would be appropriate.

Plugin fails to load on server startup

Describe the bug:
The plugin does not load on server startup, thus being unusable.

To Reproduce:

  1. Start the server using this command in the terminal inside the server directory (change RAM amount if you need to):

java -Xms16G -Xmx16G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=40 -XX:G1MaxNewSizePercent=50 -XX:G1HeapRegionSize=16M -XX:G1ReservePercent=15 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=20 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar purpurclip-1.16.5-1081.jar nogui

  1. Look carefully at the console for this error (image is under screenshots section)

Expected behavior:
The plugin loads normally on server startup.

Screenshots:
Screen Shot 2021-05-15 at 6 15 39 PM

Server environment:

  • OS: Pop OS 20.10 (an Ubuntu derivative)

  • Java Version: AdoptOpenJDK 11.0.11 w/ Hotspot VM

  • Server version: Purpur 1.16.5 build 1081

  • Plugin version: 2.92 (from the spigot page)

  • Dependency version: 1.2-SNAPSHOT (from the spigot page)

  • Plugin list:

Plugins (43): AngelChest, AureliumSkills, BetterInvisibility*, BetterSleeping3, ChatFilter, ContainerPassthrough, CoreProtect, DiscordSRV, DynaTech, EconomyShopGUI, ElectricSpawners, Emoji*, Essentials, ExoticGarden, ExtraGear, FoxyMachines, GeneticChickengineering, GrassAttack*, GriefPrevention, GSit, InfinityExpansion, InteractionVisualizer, InteractiveChat, InteractiveChatDiscordSrvAddon, LightAPI, LuckPerms, MagicXpansion, Md5Lukas-Commons, Pl3xMap, PlaceholderAPI, ProtocolLib, SFCalc, SimpleEgg, SimpleMaterialGenerators, SimpleUtils, Slimefun, SlimefunOreChunks, SlimefunWarfare, SoulJars, spark, SurvivalInvisiframes, Vault, Waypoints

1.19

Console errors on 1.19.

[14:14:00] [Server thread/ERROR]: Could not pass event InventoryClickEvent to Waypoints v3.4.1 java.lang.IllegalArgumentException: Could not find packet for type SPAWN_ENTITY_LIVING at com.comphenix.protocol.injector.packet.PacketRegistry.lambda$getPacketClassFromType$0(PacketRegistry.java:376) ~[ProtocolLib.jar:?] at java.util.Optional.orElseThrow(Optional.java:403) ~[?:?] at com.comphenix.protocol.injector.packet.PacketRegistry.getPacketClassFromType(PacketRegistry.java:376) ~[ProtocolLib.jar:?] at com.comphenix.protocol.injector.StructureCache.newPacket(StructureCache.java:98) ~[ProtocolLib.jar:?] at com.comphenix.protocol.events.PacketContainer.<init>(PacketContainer.java:113) ~[ProtocolLib.jar:?] at de.md5lukas.waypoints.util.Hologram.<init>(HologramManager.kt:100) ~[waypoints-3.4.1.jar:?] at de.md5lukas.waypoints.util.HologramManager.createHologram(HologramManager.kt:27) ~[waypoints-3.4.1.jar:?] at de.md5lukas.waypoints.pointer.variants.HologramPointer.update$lambda-1(HologramPointer.kt:30) ~[waypoints-3.4.1.jar:?] at java.util.HashMap.computeIfAbsent(HashMap.java:1220) ~[?:?] at de.md5lukas.waypoints.pointer.variants.HologramPointer.update(HologramPointer.kt:28) ~[waypoints-3.4.1.jar:?] at de.md5lukas.waypoints.pointer.Pointer.show(Pointer.kt:14) ~[waypoints-3.4.1.jar:?] at de.md5lukas.waypoints.pointer.PointerManagerImpl.show(PointerManagerImpl.kt:143) ~[waypoints-3.4.1.jar:?] at de.md5lukas.waypoints.pointer.PointerManagerImpl.enable(PointerManagerImpl.kt:108) ~[waypoints-3.4.1.jar:?] at de.md5lukas.waypoints.gui.pages.WaypointPage$updatePage$6.invoke(WaypointPage.kt:185) ~[waypoints-3.4.1.jar:?] at de.md5lukas.waypoints.gui.pages.WaypointPage$updatePage$6.invoke(WaypointPage.kt:182) ~[waypoints-3.4.1.jar:?] at de.md5lukas.waypoints.kinvs.items.GUIItem.click(GUIItem.kt:16) ~[waypoints-3.4.1.jar:?] at de.md5lukas.waypoints.kinvs.GUI.onClick(GUI.kt:31) ~[waypoints-3.4.1.jar:?] at de.md5lukas.waypoints.kinvs.GUIManager.onInventoryClick(GUIManager.kt:75) ~[waypoints-3.4.1.jar:?] at com.destroystokyo.paper.event.executor.MethodHandleEventExecutor.execute(MethodHandleEventExecutor.java:37) ~[paper-api-1.19-R0.1-SNAPSHOT.jar:?] at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[paper-api-1.19-R0.1-SNAPSHOT.jar:git-Paper-8] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[paper-api-1.19-R0.1-SNAPSHOT.jar:?] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:664) ~[paper-api-1.19-R0.1-SNAPSHOT.jar:?] at net.minecraft.server.network.ServerGamePacketListenerImpl.handleContainerClick(ServerGamePacketListenerImpl.java:3047) ~[?:?] at net.minecraft.network.protocol.game.ServerboundContainerClickPacket.handle(ServerboundContainerClickPacket.java:58) ~[?:?] at net.minecraft.network.protocol.game.ServerboundContainerClickPacket.handle(ServerboundContainerClickPacket.java:23) ~[?:?] at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$1(PacketUtils.java:51) ~[?:?] at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.19.jar:git-Paper-8] 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:1358) ~[paper-1.19.jar:git-Paper-8] at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:183) ~[paper-1.19.jar:git-Paper-8] at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?] at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1335) ~[paper-1.19.jar:git-Paper-8] at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1328) ~[paper-1.19.jar:git-Paper-8] at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[?:?] at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1306) ~[paper-1.19.jar:git-Paper-8] at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1191) ~[paper-1.19.jar:git-Paper-8] at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:302) ~[paper-1.19.jar:git-Paper-8] at java.lang.Thread.run(Thread.java:833) ~[?:?] [14:14:01] [Server thread/WARN]: [Waypoints] Task #16 for Waypoints v3.4.1 generated an exception java.lang.IllegalArgumentException: Could not find packet for type SPAWN_ENTITY_LIVING at com.comphenix.protocol.injector.packet.PacketRegistry.lambda$getPacketClassFromType$0(PacketRegistry.java:376) ~[ProtocolLib.jar:?] at java.util.Optional.orElseThrow(Optional.java:403) ~[?:?] at com.comphenix.protocol.injector.packet.PacketRegistry.getPacketClassFromType(PacketRegistry.java:376) ~[ProtocolLib.jar:?] at com.comphenix.protocol.injector.StructureCache.newPacket(StructureCache.java:98) ~[ProtocolLib.jar:?] at com.comphenix.protocol.events.PacketContainer.<init>(PacketContainer.java:113) ~[ProtocolLib.jar:?] at de.md5lukas.waypoints.util.Hologram.<init>(HologramManager.kt:100) ~[waypoints-3.4.1.jar:?] at de.md5lukas.waypoints.util.HologramManager.createHologram(HologramManager.kt:27) ~[waypoints-3.4.1.jar:?] at de.md5lukas.waypoints.pointer.variants.HologramPointer.update$lambda-1(HologramPointer.kt:30) ~[waypoints-3.4.1.jar:?] at java.util.HashMap.computeIfAbsent(HashMap.java:1220) ~[?:?] at de.md5lukas.waypoints.pointer.variants.HologramPointer.update(HologramPointer.kt:28) ~[waypoints-3.4.1.jar:?] at de.md5lukas.waypoints.pointer.PointerTask.run(PointerTask.kt:12) ~[waypoints-3.4.1.jar:?] at org.bukkit.craftbukkit.v1_19_R1.scheduler.CraftTask.run(CraftTask.java:101) ~[paper-1.19.jar:git-Paper-8] at org.bukkit.craftbukkit.v1_19_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:483) ~[paper-1.19.jar:git-Paper-8] at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1490) ~[paper-1.19.jar:git-Paper-8] at net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:446) ~[paper-1.19.jar:git-Paper-8] at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1414) ~[paper-1.19.jar:git-Paper-8] at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1187) ~[paper-1.19.jar:git-Paper-8] at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:302) ~[paper-1.19.jar:git-Paper-8] at java.lang.Thread.run(Thread.java:833) ~[?:?]

AnvilGUI to create waypoints does not appear

The GUI for creating and naming a waypoint does not appear after clicking the torch.

This is what showed up on the console:
06.10 13:15:49 [Server] ERROR Could not pass event InventoryClickEvent to Waypoints v2.9.2

Error when loading at server 1.16.5 Spigot start: java.lang.NoClassDefFoundError: kotlin/collections/CollectionsKt

Describe the bug
Dear Developers,

Thank you very much for the project.

I'm sorry, but for some reason the plugin (v3.2.0) doesn't load on Spigot-1.16.5. The log part:

[01:39:09] [Server thread/INFO]: [Waypoints] Enabling Waypoints v3.2.0                                                                                                                                                                 [32/1849]
[01:39:09] [Server thread/ERROR]: Error occurred while enabling Waypoints v3.2.0 (Is it up to date?)
java.lang.NoClassDefFoundError: kotlin/collections/CollectionsKt
        at de.md5lukas.waypoints.config.general.CustomIconFilterConfiguration.<init>(CustomIconFilterConfiguration.kt:16) ~[?:?]
        at de.md5lukas.waypoints.config.general.GeneralConfiguration.<init>(GeneralConfiguration.kt:20) ~[?:?]
        at de.md5lukas.waypoints.config.WaypointsConfiguration.<init>(WaypointsConfiguration.kt:12) ~[?:?]
        at de.md5lukas.waypoints.WaypointsPlugin.loadConfiguration(WaypointsPlugin.kt:86) ~[?:?]
        at de.md5lukas.waypoints.WaypointsPlugin.onEnable(WaypointsPlugin.kt:65) ~[?:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:351) ~[spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:480) ~[spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
        at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugin(CraftServer.java:494) ~[spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
        at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugins(CraftServer.java:408) ~[spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.MinecraftServer.loadWorld(MinecraftServer.java:435) ~[spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.DedicatedServer.init(DedicatedServer.java:218) ~[spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:809) ~[spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$0(MinecraftServer.java:164) ~[spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
        at java.lang.Thread.run(Thread.java:832) [?:?]
Caused by: java.lang.ClassNotFoundException: kotlin.collections.CollectionsKt
        at java.net.URLClassLoader.findClass(URLClassLoader.java:435) ~[?:?]
        at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:167) ~[spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
        at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:96) ~[spigot-1.16.5.jar:2991-Spigot-018b9a0-f3f3094]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:589) ~[?:?]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[?:?]
        ... 15 more

Just to clarify, is the issue local? If so, is it known how to resolve it?

Best and kind regards

To Reproduce
Steps to reproduce the behavior:

  1. Download the plugin;
  2. Put to .../spigot-1.16.5_server/plugins/;
  3. Start the server;
  4. The error message appears in the server console log.

Expected behavior
The plugin loads.

  • I am using the latest version of Waypoints available

Allow creation of waypoints using coordinates

It would be nice, if users could create a Waypoint from coordinates instead of waling there.

The format would be something like (world/)x/y/z and if the worldname is omitted, the current world is used.

Waypoints fails to load with dynmap

Aww crap, I got really excited for waypoints on my map, but having a bit of an issue.

Describe the bug
Crash when loading with Dynmap installed.

To Reproduce
Steps to reproduce the behavior:
Start server with Dynmap 3.3-beta-1, and Waypoints 3.2.0 on paper 1.18.1 build 69

Expected behavior
Waypoints to load.

Screenshots
If applicable, add screenshots to help explain your problem.

Additional context

[23:31:44 ERROR]: Error occurred while enabling Waypoints v3.2.0 (Is it up to date?)
java.lang.NullPointerException: markerApi.getMarkerIcon(…integrations.dynmap.icon) must not be null
        at de.md5lukas.waypoints.integrations.DynMapIntegration.setupDynMap(DynMapIntegration.kt:37) ~[Waypoints-LATEST-[v3.2.0].jar:?]
        at de.md5lukas.waypoints.WaypointsPlugin.initIntegrations(WaypointsPlugin.kt:154) ~[Waypoints-LATEST-[v3.2.0].jar:?]
        at de.md5lukas.waypoints.WaypointsPlugin.onEnable(WaypointsPlugin.kt:74) ~[Waypoints-LATEST-[v3.2.0].jar:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264) ~[paper-api-1.18.1-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:370) ~[paper-api-1.18.1-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:500) ~[paper-api-1.18.1-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.craftbukkit.v1_18_R1.CraftServer.enablePlugin(CraftServer.java:563) ~[paper-1.18.1.jar:git-Paper-69]
        at org.bukkit.craftbukkit.v1_18_R1.CraftServer.enablePlugins(CraftServer.java:477) ~[paper-1.18.1.jar:git-Paper-69]
        at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:727) ~[paper-1.18.1.jar:git-Paper-69]
        at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:503) ~[paper-1.18.1.jar:git-Paper-69]
        at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:313) ~[paper-1.18.1.jar:git-Paper-69]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1202) ~[paper-1.18.1.jar:git-Paper-69]
        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:317) ~[paper-1.18.1.jar:git-Paper-69]
        at java.lang.Thread.run(Thread.java:833) ~[?:?
  • I am using the latest version of Waypoints available

[Feature request] Hologram support

Is your feature request related to a problem? Please describe.
Right now, waypoints' beacons disappear when the player gets too close in favor of a blinking block. I'd like if the plugin had a way of showing the beacon beam crossing the actual XYZ location, and to show a hologram at the exact location of the waypoint.

Describe the solution you'd like
Holograms support, to display waypoints in a more "traditional" fashion, inspired by minimap mods like Xaero's Minimap, VoxelMap and JourneyMap.

Describe alternatives you've considered
The blinking block is fancy but not fancy enough.

Additional context
There is none. I assume we all know how traditional waypoints' beams and holograms look like.

Use YAML for language customization

To implement this functionality this is the TODO:

  • Finish spigot-i18n
  • Remove the deprecated parts from md5-commons
  • Convert .msg files to .yml
  • Implement spigot-i18n into plugin

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.