cmdrdats / memorystone Goto Github PK
View Code? Open in Web Editor NEWBuild Memory Stones to teleport to using the Compass in Minecraft
Build Memory Stones to teleport to using the Compass in Minecraft
Same as iConomy, but specific support for BOSEconomy
Same as iConomy, but specific support for rEconomy
Would the program freak out if there was more then 1 structure for each type of memorystone?
If not I was thinking we could add in a free memory stone structure as an example of having multiple configurations.
Also I don't understand the structure files very well,
structuretypes:
- structure:
- z: 1
material: STONE
y: 0
x: 1
**trimmed**
- z: 1
material: OBSIDIAN
y: 1
x: 1
rotator: NONE
name: Memory Stone
metadata:
distanceLimit: '0'
memorizecost: '200'
teleportcost: '50'
global: 'false'
buildcost: '1000'
type: MEMORYSTONE
permissionRequired: memorystone.create.local
Is it possible to reformat them at all to this: it would make it a Lot more readable but probably break compatibility....
structuretypes:
- structure:
name: Memory Stone
rotator: NONE
metadata:
distanceLimit: '0'
memorizecost: '200'
teleportcost: '50'
global: 'false'
buildcost: '1000'
type: MEMORYSTONE
permissionRequired: memorystone.create.local
- material: STONE
x: 1
y: 0
z: 1
**trimmed**
- material: OBSIDIAN
x: 1
y: 1
z: 1
The commit Bukkit/Bukkit@7a06777 from the beginning of february removes some deprecated code which the MemoryStone-plugin relies on.
From updating spout on server build: 502. Broken in spoutcraft build: 710. Still works as normal in original minecraft.
When pressing 'c' no longer brings up list, and shows this error in console. (Bukkit build: 1337)
[SEVERE] Could not pass event CUSTOM_EVENT to MemoryStone
java.lang.NoSuchMethodError: org.getspout.spoutapi.gui.GenericPopup.setBgVisible(Z)Lorg/getspout/spoutapi/gui/GenericScreen;
at za.dats.bukkit.memorystone.ui.SpoutLocationPopupManager$LocationPopup.updatePage(SpoutLocationPopupManager.java:60)
at za.dats.bukkit.memorystone.ui.SpoutLocationPopupManager$LocationPopup.createPopup(SpoutLocationPopupManager.java:134)
at za.dats.bukkit.memorystone.ui.SpoutLocationPopupManager.showPopup(SpoutLocationPopupManager.java:159)
at za.dats.bukkit.memorystone.CompassManager.fireTeleportWithItem(CompassManager.java:676)
at za.dats.bukkit.memorystone.CompassManager$2.onKeyReleasedEvent(CompassManager.java:224)
at org.getspout.spoutapi.event.input.InputListener.onCustomEvent(InputListener.java:54)
at org.bukkit.plugin.java.JavaPluginLoader$96.execute(JavaPluginLoader.java:934)
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:339)
at org.getspout.spoutapi.packet.PacketKeyPress.run(PacketKeyPress.java:77)
at org.getspout.spout.packet.CustomPacket.a(CustomPacket.java:130)
at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:92)
at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java:501)
at net.minecraft.server.NetworkListenThread.a(SourceFile:108)
at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:471)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:374)
at net.minecraft.server.ThreadServerApplication.run(SourceFile:417)
Also when clicking on a sign to cycle through destination it shows this error:
[SEVERE] Could not pass event PLAYER_INTERACT to MemoryStone
java.lang.NoSuchMethodError: org.getspout.spoutapi.gui.GenericPopup.setBgVisible(Z)Lorg/getspout/spoutapi/gui/GenericScreen;
at za.dats.bukkit.memorystone.ui.SpoutLocationPopupManager$LocationPopup.updatePage(SpoutLocationPopupManager.java:60)
at za.dats.bukkit.memorystone.ui.SpoutLocationPopupManager$LocationPopup.createPopup(SpoutLocationPopupManager.java:134)
at za.dats.bukkit.memorystone.ui.SpoutLocationPopupManager.showPopup(SpoutLocationPopupManager.java:159)
at za.dats.bukkit.memorystone.CompassManager.fireTeleportWithItem(CompassManager.java:676)
at za.dats.bukkit.memorystone.CompassManager.fireTeleportFromBlock(CompassManager.java:652)
at za.dats.bukkit.memorystone.CompassManager.onPlayerInteract(CompassManager.java:741)
at org.bukkit.plugin.java.JavaPluginLoader$11.execute(JavaPluginLoader.java:330)
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:339)
at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:171)
at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:142)
at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:560)
at net.minecraft.server.Packet15Place.a(SourceFile:57)
at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:92)
at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java:501)
at net.minecraft.server.NetworkListenThread.a(SourceFile:108)
at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:471)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:374)
at net.minecraft.server.ThreadServerApplication.run(SourceFile:417)
Thanks
2 different solutions would be to add another permission for compass transportation, or to assume that memorystone.use is for compass transportation.
If in a stack.
Where you teleport from and another option for where you teleport to.
Thanks for adding the distance feature, I'm now eager to get this working and installed on my server.
I was testing this locally and found that if I have the 'memorystone.allmemorized' permission, I can use the compass to left-click to swap between memorized stones fine. If I don't have this permission, then despite memorizing the stones, it won't let me change to anything but the closest stone.
if someone worldedits or creates a memory stone by otherwise means.
so clashes badly with the plugin creeper heal.
memory stones are still able to be teleported to while destroyed, and when rebuilt by something other then a player, the memory stone has no protection.
So I've edited the structuretypes.yml file to customize the default shape and blocks to be used in a standard memorystone like this:
- structure:
- z: 1
material: OBSIDIAN
y: 1
x: 1
- z: 1
material: GLOWSTONE
y: 3
x: 1
- z: 1
material: BEDROCK
y: 0
x: 1
- z: 1
material: OBSIDIAN
y: 2
x: 1
rotator: NONE
name: Memory Stone
metadata:
distanceLimit: '0'
memorizecost: '200'
teleportcost: '50'
global: 'false'
buildcost: '1000'
type: MEMORYSTONE
permissionRequired: memorystone.create.local
The structure works fine and memorystones are created, which function normally.
However upon reloading the server the existing stones do not load and I receive these errors:
19:26:59 [INFO] [MemoryStone] loaded 1 structure types
19:26:59 [WARNING] [MemoryStone] New: structure was bad
19:26:59 [WARNING] [MemoryStone] A structure couldn't be loaded
19:26:59 [INFO] [MemoryStone] Loaded 0 structure(s)
Upon reverting the structuretypes.yml to default it works fine and reloads the structures on server reload.
tnt will blow up signs attached to memory stones, but not blow up memory stones.
I was expecting the memorystones and signs to be protected from non permission players and all other forms of destruction.
Along with a configurable message "Your compass is acting strange..."
Compasses point off from the center of the stone, this could be due to a bug, design, or the origin being off on the structure?
Id suggest that the compass should point to the origin of the structure if it doesn't already. If the origin is where the players spawn then for more "realism" compasses should point at the block that the sign is attached to, or otherwise find the center of the memory stone.
Just wondering why you don't support the register API from what I can see, register would allow you to remove dependencies to iconomy 4 5 6 and boseconomy and instead just rely upon the register api, there are also more economy plugins that work with register then just the ones i have listed.
Implement auto-memorization of free stones when close.
Was so confused at first that after standing at the stone that I had not memorized it.
Only need signs for setting up memory stones
Same as iConomy, but specific support for Essentials economy
To be honest this project while coded well has become messy and disorganized, I'm wondering if it would be easier to re-code it with these latest features as opposed to trying to re-factor it.
Cool plugin, I love the "must find a stone first to use it" mechanic. However, I want to be able to set some limits on how people can use stones even once they've been found. The simplest one would be that they have to be standing on a stone to teleport to another one, this prevents them from "free teleporting" anywhere in the world to any stone. They have to get to the nearest stone first.
Thanks for considering.
Possibly to do with added interference code.
http://dev.bukkit.org/server-mods/iconomy/
The option to entirely disable using a compass - so if you set the material to NONE, you can't use your compass anymore (no ad-hoc teleporting)
Memorize a memory stone by punching it for the first time. (with or without a compass)
Add a setting for stone-to-stone teleportation
Punching a memorized stone's sign will scroll through your destinations (without spoutcraft)
Right clicking the sign will then teleport you to destination (without spoutcraft)
With spoutcraft, right clicking the sign will show teleport screen.
Add a new optional setting for material cost if using stone-to-stone teleport
Add permission nodes for using stone-to-stone teleport
On my server I have somewhere around 13 global stones and 20+ normal ones. However atm the plugin is only showing the first 5 totems and no others.
With user of iConomy 6 I've got the following issue: The first tap on a Local memory Stone (I don't use/allow others) works good: Stone is memorized and the fee is payed to the owner. But if I have stone-to-stone enabled (which I can't turn off somehow) and Itap the sign to find the correct target I have too pay the memo-fee on every click.
Hopoe that can get fixed soon as this is the best teleporot plugin oout there!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.