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
pls help me!
@Squlli
Oh wow, i see - yes, that is a problem - I will check it out.
My idea was to not introduce any unneeded dependencies, but I seem to have broken that as I've been adding functionality. I'm busy working on making it run fine on plain vanilla bukkit.. So 1.0.6 should solve your headaches :)
@CmdrDats
i dont need permissions!? but why crash it? :( are there some requirements?
doesnt work :S 1. i copy the memory-stone.jar in the plugin folder. 2. than i started the server, then there was an error. 3. after that i install the permissions.
but it doesn work:(
@Squlli
Hi Squlli,
I've had a similar problem numerous times, they really should fix that in the yml library. You just have a tab instead of spaces in your permissions.yml file, probably just before the 'memorystone.op' - remove all the whitespace in front of it and use space bar instead of tab to add it back in. That should sort your problem out :)
As for a tutorial on installing permissions, to be honest, the server I run doesn't have any permissions, so I have no personal use or much experience with it (except for implementation testing). So I'll leave that to the guru's :)
Hei i hope you understand me, im from germany. I dont know who to install the permissions?! i try it with a permissions plugin.
groups: Default: default: true info: prefix: '' suffix: '' build: true inheritance: permissions: - 'foo.bar' - 'memorystone.op' - 'memorystone.build' - 'memorystone.break' - 'memorystone.use' - 'memorystone.usefree' - 'memorystone.useonothers' - 'memorystone.usewithoutcooldown' - 'memorystone.useinstantly' - 'memorystone.allmemorized' - 'memorystone.create' - 'memorystone.create.local' - 'memorystone.create.global' - 'memorystone.create.crossworld' - 'memorystone.create.crossworldgloval' - 'memorystone.create.noteleport'
but it doesent work. what do i wrong?
thank you
04:21 PM [WARNING] Server permissions file permissions.yml is not valid YAML: while scanning for the next token found character '\t' that cannot start any token in "<reader>", line 70, column 1: - 'memorystone.op' ^
_______
Can you make a toturial how to install?
@SirMonsterSlayer
Done! :)
Get Iconomy please ! I really love this idea it's unique and fun!
@brokensoul101
Hmm, that's not good - could you send me a PM or create me an issue (under Tickets) with the following information :
Your CraftBukkit Version Which was the last working version of MemoryStone? the original file? A full log from when you startup your server A list of plugins that you currently have on your server Your locations and structures.yml files.. in case Any other info you think that would be useful.
I need to try recreate this issue on my side so I can decisively fix it :) Is anybody else having this issue? Please also send me this info so it's quicker to figure out what's wrong. Thanks.
It seems that for some reason the new version dose not want to rebuild the structuretypes.yml at least for me, im not sure why, the original version works fine but both 1.0.2 and 1.0.4 don't want to rebuild any of the files they didn't even create the config file =(
@Tylui
Thanks for the bug report - I've managed to reproduce it so will look into it. I've also added a ticket for the permission you wanted :)
@Kaiemi
Those both fantastic ideas - I will be sure to have them implemented in the next version!
(Feature Requests?)
I would love for the ability to have stones support multiple worlds. As for how this could be done, depending on how you build the MemoryStone it would be either a local (limited to the current world) or global (works across all worlds) stone. IE different block layouts. On big servers/worlds this would help save the list from being cluttered in addition to making it fit a more RP-esque environment (IE not all of the stones are powerful enough to send you anywhere in the world).
I would also like for it to only work if you are within a certain range of an existing stones. I think this would add to the atmosphere of the plugin.
Liking the plugin so far, thanks for it!
@CmdrDats
Okay I thought I was done being annoying but how about this: A permission for someone to have ALL locations memorized, regardless of in fact memorizing them. >_>
Do you have other plugins? :)
EDIT: Aha! I've got a bug for you...! It might be a Spoutcraft bug but still. When you right click with a feather, then quickly open a chest, the context menu disappears and you can't open it back up...
@DreadfulFellow
Thanks! I'm glad you like it!
@Tylui
hehe, I'll fix that up :) Ye, I'm very chuffed at how well SpoutCraft worked for this.
With the multiworld support, I'm thinking of making a configuration option to limit teleporting to only the world you're in (so no cross-world teleporting, with perhaps an permission exception), then on top of that to allow you to enter names of the worlds you'd like MemoryStone to work in, if empty it'll just run on whatever is on the server.
I could get more fancy, but I think that should cover most of the needs?
@CmdrDats
Literally the only thing I could see is that when loading, it says "loaded 6 structure". It's missing an "s"! :O End of World Times are near!
Seriously though, you're an extremely thorough plugin author. Can you precede console messages from your plugin with [MemoryStone]? If only all plugins would do this- the world would be a safer place.!
And the Spoutcraft support is simply amazing. Actually, I had Spout, but never used Spoutcraft until this plugin; I think you've opened my eyes to a whole new realm of possibilities!
And the only thing I can think of in terms of improvement is instead of limiting to a single world in configurations, it'd be neat if there were permissions to limit use in a certain world "memorystone.useinworld.*; memorystone.useinworld.<worldname>" or some such thing.
Wow, this is an awesome plugin. I think the item consumption keeps it balanced also. I'm sure this will make a lot of players happy. ( <3 the Permissions ) :D GJ
@Tylui
Great :) Not irritating at all, thanks for the feedback! I want to know what everyone else wants so I can make this plugin awesome. I've added two permissions, one for zero cooldowns and another for instant casting - just need to test and do one or two more things and I'll release it :)
Thanks for pointing out the "1.0.0" oversight. I've been updating the version number in my pom.xml, but forgot about it for my plugin.yml, where it really matters.
I can make arrows just fine, so it probably is just some other plugin messing you around.. :)
Let me know if you have any other cool ideas? Btw - I hope you're using Spout.. because the next version includes awesome SpoutCraft support (works normal without it though, so don't stress ;) )
@CmdrDats
Yay :) Permissions seem to work perfectly! I'm probably just being irritating now, but how about cooldown-free permissions also?
Also two minor bugs you might wanna know about... It says "Memory Stone v1.0.0" when loading still, and I can't seem to make arrows when my recall item is a feather... I'll test some more to see if I can make anything when it's set to other items.
EDIT: Apparently I can't seem to make feathers no matter what... Must be some other plugin... Humm...
Sorry for asking - but what is the point for the plugin?
@Tylui
Cool - glad the item consumption works for you :) I will be sure to implement the free travel permission though!