MemoryStone
Memorize and teleport to special Memory Stone structures in game using your compass.
This is a great for exploration: You can head in a direction and explore the depths of caves, but when you want to go home it's a simple teleport out. Also, because you have to find the Memory Stones first, it makes exploration of existing servers with pre-setup Memory Stones a little more rewarding.
I would find that I would build myself a little home and maybe explore a little bit, but not too far in case I get lost.. I'd also find very interesting parts of my world, but would never return there because it's too far or I just can't find it again. Now it's a matter of building Memory Stones where significant marking points are. Have a castle in the sky? No need for ladders..
Changes in 1.1.0 & 1.0.9
- Interaction with other sign based plugins sometimes throws NPE's onSignChange event.
- pointCompassOnly config option if you don't want teleportation, but just set compass to destination.
- Fixed small quirk where memorizing a stone would select that stone to teleport to instead of leaving it as it was before.
- Fixed a pretty show-stopping bug where the compass totally didn't work. Whoops.
Changes in 1.0.8
- Fixed up an NPE when only one location is memorized and you try teleport stone to stone from it
- Fixed a small bug if you use lava buckets in water to create your memory stones.
Changes in 1.0.7
- Set the default distanceLimit in structureTypes.yml to infinite on all default structure types. This was tripping a lot of people up.
- Replaced lightningEffect config option with effects.lightningOnCreate and effects.lightningOnBreak
- Added effects.lightningOnTeleportSource and effects.lightningOnTeleportDestination for effects when teleporting
- Allow for teleportItem to be set to NONE, which disabled teleporting with an item.
- Added stonetostone.enabled, to enable teleporting directly from a Memory Stone (without compass)
- Added stonetostone.item and stonetostone.maxUses if you want to have people pay for stonetostone teleporting
- Remove 'already memorized' message if stonetostone.enabled
- Fixed up a charges left bug (was rolling over to 3 charges regardless of max uses)
- Default language refers to <material> now instead of compass (lang.chargesleft, lang.consumed, lang.teleportitemnotfound)
Download
If you are upgrading from older than 1.0.5, you need to remove the structuretypes.yml to so that it can regenerate and include the new teleportation, memorization and build costs..
Installation
Simply put the memory-stone.jar into your plugins folder. Upon first run, you'll see MemoryStone/structuretypes.yml that you could play around with if you'd like to customize the memory stone structure on your server.
When you start creating and memorizing Memory Stones, you will also see locations.yml and structures.yml files - they are for storing the extra player and physical structure data for your worlds.
There's also a configuration.yml file generated, scroll down to the bottom to see the configuration options available.
Setup
Create a 3x3 Stone slab with a 3 high Obsidian pillar in the middle like so :
Put a sign somewhere on it and enter the first line of the sign as the name you'd like to give the memory stone :
And if all is well, you'll get a green 'Memory Stone' sign :
Structure Types
Please see the image library here to see all the different structure setups
There are a few different structures, basically :
- Local: Teleport from your location to a Local Memory stone in your current world within distance
- Global: Teleport from where you are to a larger range in the current world, but doesn't need to be memorized first
- Crossworld: Teleport from any world to any crossworld stone. Distance doesn't matter.
- Global Crossworld: Same as a crossworld teleport, but you don't need to find and memorize it first.
- NoTeleport: Players can't teleport out while within a certain distance of these.
Economy Support
As of 1.0.5 with economy support, when setting up a sign, you can enter a memorization cost / teleportation cost like so :
When you complete that, it will add the preconfigured base costs and display that on the sign :
Usage
All of the following needs to be done with a compass in hand:
Left click on the *sign* of a memory stone. You'll get a confirmation to say that you have successfully memorized the location.
If you have Spout installed (and Spoutcraft client), you can right click to bring up the following screen - select destination and it'll teleport you there:
Similarly, you can hit a shortkey key (default 'C') to show that screen as long as you have a compass in your inventory somewhere. If you have Spout on the server and running Spoutcraft :)
If you don't have Spout installed, you can right click to teleport back to the stone you've just memorized. You need to stand still for 3 seconds after you've activated teleporting, and if you have multiple memory stones memorized, you can left click to cycle to your destination.
As of 1.0.7, if you have glowstone dust in your inventory (configurable) you can left click on a memory stone sign to cycle through destinations and right click to teleport without the use of a compass. If you have Spout & Spoutcraft, you only need to right click on the sign.
Configuration Options
In the configuration.yml file, you can change these options to customize MemoryStone for your server:
- lang.* - This is all the text the players will see from this plugin.
- teleportItem - Configure to use something different to a compass if you like. Accepts names or typeId's
- castingTime - The time the player (and target if teleporting another player) needs to stand still for until teleport happens.
- cooldownTime - The cooldown after teleporting successfully, in seconds.
- fizzleCooldownTime - The cooldown after fizzling (player cancelled teleportation somehow), in seconds.
- maxUsesPerItem - How many charges an item has before it is consumed. If this is set to zero, it will be unlimited.
lightningEffect - Whether to show the lightning effect when a Memory Stone structure is setup correctly.No longer supported as of 1.0.7, see effects.*- sortByDistance - If true, sorts the location list by distance instead of alphabetically
- economy.enabled - Enable economy support. You may have economy plugged in but don't want to use it for memory stones
- economy.ownerGetsPaid - The person who setup this memory stone will get paid whatever anyone spends on this memory stone
- economy.addCustomValue - Allows a person setting up a memory stone to specify extra costs (above base costs) on placing the sign.
Added in 1.0.7:
- effects.lightningOnCreate - Lightning effect on creation of memory stones
- effects.lightningOnBreak - Lightning effect on breaking of memory stones
- effects.lightningOnTeleportSource - Lightning effect when teleporting (player source location)
- effects.lightningOnTeleportDestination - Lightning effect when teleporting (player destination location)
- stonetostone.enabled - Enable stone to stone teleportation
- stonetostone.item - Item to consume on stone to stone teleporting - set to NONE if you don't want it to consume anything
- stonetostone.maxuses - Maximum number of uses on the item to consume before destroying it - set to zero for infinite or to 1 for a single use.
Permissions
- memorystone.*: Gives access to all normal MemoryStone permissions
- memorystone.op: Allows free, zero casting time and no cooldown to user, default: false
- memorystone.build: Allows user to build Memory Stones, default: true
- memorystone.break: Allows user to break Memory Stones, default: true
- memorystone.use: Allows user to teleport to Memory Stones, default: true
- memorystone.usestonetostone: Allows user to use stone to stone teleportation
- memorystone.usefree: Allows user to teleport without costing charges (if applicable), default: false
- memorystone.useonothers: Allows user to teleport others, default: true
- memorystone.usewithoutcooldown: Allows user to teleport without cooldowns, default: false
- memorystone.useinstantly: Allows user to teleport without casting time, default: false
- memorystone.allmemorized : User will doesn't need to memorize stones.
- memorystone.create.*: Can create any structure
- memorystone.create.local: Can create local memory stones
- memorystone.create.global: Can create global memory stones
- memorystone.create.crossworld: Can create crossworld memory stones
- memorystone.create.crossworldglobal: Can create crossworld global memory stones
- memorystone.create.noteleport: Can create noteleport zone stones
Known Plugin Incompatibilities
- SpoutTrade: Because of using the right-click on players, it requests a trade and teleports.. Not sure how to stop SpoutTrade from firing.
Credits
Some shout out to some awesome devs out there!
- The Bukkit team
- The Spout team - Go install Spout and Spoutcraft. Now. Believe me, it's a better place.
- tprk77 for HealingTotem - I used his awesome structure code - this should really be in the Core Bukkit code.
- krinsdeath for ChestSync - I used some of his coding ideas and signage code.
- The guys who built BlueTelepads - Their code helped me get the yaw and pitch correct.
- Nijikokun for Register - Awesome work!
Also, credit goes to the following people for their fantastic input:
Tylui, PhantomX, Kaiemi, hammerKlavier and SirMonsterSlayer
Hi, this plugin is amazing but since the server update it no longer works :( When are you going to update it for the new server?
Hey hey! After a long delay, it's-a me. My server was a ghost town for months, but it sounds like I've accidentally drummed up a little renewed interest in Minecraft among my friends. I updated to the newest Bukkit, and it appears MemoryStone doesn't want to play ball. :( You can have a stack trace if you want.
Is there a posibility to limit how many memory stones each player can build?
And is there a posibility to allow ONLY stone-to-stone teleport (and disallow the anywhere-to-stone thing)?
Hi there. This plugin is absolutely awesome, and is actually the main core workings of my server that I am in the process of creating.
This is THE closest method I am most comfortable with for having some kind of 'Town Portal' system like that of Diablo.
I am using this plugin in conjuction with the Catacombs plugins so I can have a 'Portal Stone' at the start of each level of the catacomb. The whole thing is packed with customised loot that can be sold to various Citizens plugin NPCs.
I have found no issue with your excellent plugin with the latest version of Craftbukkit apart from after teleporting with lightning effects, you get a clientside-only flaming head! Lol...
Thank you for putting so many configurable options in this plugin, I would be completely lost without it! Looking forward to seeing what you come up with next! :D
Hi guys,
Yes, this plugin is pretty inactive at the moment - I have been incredibly busy learning a new language called Clojure and am busy building a mod for Bukkit to add Clojure mod support directly into the server.
My first two mods built on that will be revamps of both my MemoryStone and BuildingPlanner mods.
PS. I am still around though, so if you're wanting stuff fixed, the code is open and on github - I will be accepting pull requests!
Hola! Tylui reporting in - Works fine in b1597 (MC 1.0) and as soon as a recommended build is out I'll let you know how 1.1 is. Anyway, I hope you haven't abandoned this completely; I'm totally in love with this plugin as you may know :)
EDIT: Also, I has another idea if it's not too complicated already. I'd like to see different items for different types of structures. I want it to be expensive for my players to go crossworld but nice and cheap to teleport within the same world.
@cmdrdats are you going to update it any time soon?
I've been putting off making pull requests in case you had refactored code sitting on your machine.
I'd like to suggest an alternative method to memorizing locations. It makes it difficult for players using creative to memorize locations since they'd be breaking the sign and destroying the memory stone from left clicking.
prices to teleport/memorize are bugged (it appears 200/50 even if you set them for free, and when you add an amount, the amount is addes to 200 / 50)
ex: set 100/25 and appear 300/75
ah, and money are not decreased if you pay..
@andune
Hi there,
I've uploaded an untested update to this, based on arpenz' stacktrace. Just commented out the setBgVisible() line - get it over here and let me know if that fixes the issue.
https:github.com/downloads/CmdrDats/MemoryStone/memory-stone.jar
Let me know how that goes.
Cheers,
Any chance of an update for 1.0 and latest Spout client? I really miss having this working on my server.
Compass teleports seem to work fine for those without Spout client, but for those with Spout client, get errors like those posted below. A dirty shame to actually penalize my Spoutcraft users with LESS functionality, so I've had to turn this off for now and my players really miss it.
Great mod, really looking forward to an update!!
ok so right now i can get this to work on my server with spout , and set them up. but i can't use the stones with the spout craft client, teleport won't work, but i can memorize. rightclick causes errors in the console. -but i can use it with my normal minecraft client. is it possible to disable the spout features, in the config , so i can get it to work with everyone that uses the spout craft client swell as the normal one? love the plugin
Please fix the memory stones :)
All I can say is:
this is weard. what is the cheat to teleport to the memory stone?
Hey I've had a look at the source code for SpoutTrade and I think you'll have to get in contact with the dev as the priority of his player interact event is normal so you could set yours to low and then cancel the event HOWEVER he doesn't check if the event is cancelled first. So all he needs to do is check to see if the event is cancelled and you set the event to cancelled after doing whatever it is you do and all will be well :) (if you don't understand any of that I can try to explain better lol)
@SirMonsterSlayer
yep, usefree is for both teleport and memorization :) Also, you can add teleportcost and memorizecost to the stone types in the structuretypes.yml file
The usefree node, does this allow the teleportation for free or also the memorization ?
I'm taking everything back. It seems that the update of spout didn't work, we were still on 409. Anyways big THANKS =)
@SirMonsterSlayer
That's really strange - i've tested it on the latest Spout (dev), updated SpoutCraft and Bukkit and it worked perfectly for me - does the server log show anything? Any other info you can give me to reproduce this issue?