DiviningRod gives you programmable compasses that can point to any location, object, or player. Predefined compasses help you find players with specific characteristics. New targets can be created by placing signs. Use this plugin to tell others about interesting places or to find people to play with.

The compasses are represented by divining rods which are represented by glowing sticks that wiggle. Every divining rod has a tag which tells it where to point to. If a tag has multiple targets, the most relevant will be used. While holding a divining, the distance to the target will be shown in the item name. Walk around to cause the rod to wiggle and update the distance. Create new targets by writing hashtags on signs.

More Plugins Source Download

Usage

A divining rod is created by converting a wooden stick. Use the command /find <tag> while holding a stick item in game. A new tag can be assigned by reusing the command. /find stick reverts the divining rod to a regular stick. If the player has no item in hand, a stick will be given automatically.

Multiple rods with different tags can be created, stored in chests and given to other players. Use different sticks to avoid retyping commands. A right click will show the distance in the console, in case the chat is covering the distance. This also shows the number of targets which can be found with the current tag.

If you don't want to be found, use the command /dr hide on to stop any divining rod from eading to you. /dr hide off reverses the process and /dr hide shows the current setting.

Available tags

spawn

Points to spawn.

player

Points to the nearest players.

op

Points to the nearest operator.

@<user>

Points to the player with the given name.

#<tag>

Points to the nearest sign containing the given hashtag.

If Epilog is installed, the following tags are available also:

pro

Points to the server's most experienced player.

socializer

Points to the server's most social player.

explorer

Points to the player having traveled the furthest.

miner

Points to the player having broken the most blocks.

builder

Points to the player having placed the most blocks.

loner

Points to the least social player. Alias for -socializer

settler

Points to the player having traveled the least. Alias for -explorer

noob

Points to the server's newest player. Alias for -pro

friend

Points to a player to be friends with. Currently alias for socializer

More tags will be introduced in future plugin versions. New tags based on data analysis can be added in the future by the Epilog logging server if the Epilog plugin is installed. Use the whitelist configuration to avoid previously unknown tags.

Advanced

Some features are disabled by default to prevent unexpected behavior. Enable and disable them with the commands /dr advanced on and /dr advanced off.

If a target points to more than one target, they are ordered by distance or relevance. The list can be reversed by prepending the tag with a minus sign. -player will for example lead you to the furthest player.

Advanced mode allows you to cycle thru the list of targets. A right click while holding shift will ignore the current top target and show you the next best match. When using the player tag, second closest player will be targeted, then the third and so forth. All targets are reenabled when no more targets are left.

Using the -player tag will never let you reach a target if there are more than 3 players in the same world. A different player will be targeted as soon as you are to close to the previous target. To solve this problem, a target can be locked with a left click while holding shift. This also allows to keep looking for a sign location after the sign has been destroyed.

The color of the item name turns yellow if there are ignored targets and green if the target is locked. This will help you figuring out why the divining rod doesn't show the expected target. All modifications are removed when right clicking in lock mode (left click, right click while holding shift).

The modifications will apply to all rods with the same tag. The modifications are saved between logins, but will be reset if the server restarts or when deactivating advanced mode. To avoid accidentally breaking blocks, no blocks can be broken while holding shift in advanced mode.

The distance to the target ignores the height difference by default. Use the command /dr 3d on to get the actual distance.

/find is an alias of /dr and the two commands are interchangeable.

More on hashtag signs

The hashtags don't actually point to the sign, but the block the sign is attached to. Multiple tags can be used by either putting several hashtags in one sign or placing additional signs on a block. The targets are removed if the sign or the block breaks. If the block is destroyed by fire, the removal might be delayed.

Hashtags created while the plugin is inactive are not registered. To update and see all registered hashtags for a block, right click the block or an attached sign while holding a divining rod.

Configuration

The following options can be set in plugins/DiviningRod/config.yml. Default values are shown in blue.

sign-tags   true

Enables tags created by placing signs using the #<tag> syntax.

player-name-tags   true

Enables tags pointing to specific players using the @<name> syntax.

give-sticks   true

Will give players a free stick when trying to set a tag empty handed.

tag-blacklist   ''

All tags listed (separated by space) will be disabled. Does not affect sign tags.

tag-whitelist   ''

If this property contains one or more tags (separated by space), all other tags will be disabled. Does not affect sign tags.

aliases   []

Defines aliases to existing tags. Aliases are able to circumvent the whitelist and blacklist. Aliases can not point to other aliases. The example will define 3 new tags.

aliases:
	portal: '#portal'
	admin: '@stepmuel'
	friend: '-explorer'

Changelog

# 0.0.3

* initial release

# 0.0.4

* new tag: spawn
* new tags based on player attributes can be set by Epilog

# 0.1.0

* sends usage statistics to http://mcstats.org/
* show 2d distance per default (ignoring height difference)
* tag aliases
* new command alias: find
* player interface improvements
* player gets a stick when setting a tag empty handed
* bugfix: respect blacklist/whitelist for sign tags

# 0.1.1

* if the target is a player, show the username on right click
* code refactoring
* bugfix: remember usage statistics after restart