Inactive [MECH] SignLink v1.24 - Show text on signs based on keys [2320]

Discussion in 'Inactive/Unsupported Plugins' started by bergerkiller, Sep 3, 2011.

  1. Offline

    bergerkiller

    [​IMG]

    Description

    This plugin acts as a bridge between plugins and signs to easily display text on signs. Instead of entering commands, clicking the sign, or any other routine plugins could use, players can enter 'variables', key values starting (and ending) with %, to show information at that spot.

    It also includes features no other plugin is needed for, such as custom text and ticker values you can set in values.yml. Signs are stored on file, they survive reloads and server restarts.

    A simple video showing what it does:


    See WIKI page for more information

    Configuration

    The linkedsigns.txt contains information of where signs are located. The values.yml sets the (standard) usable keys. If your ticker message does not 'flow' over all signs, add more spaces at the end or start of your message. This is simply how it works. :)
    Show Spoiler

    Code:
    # In here you can set default values for this plugin.
    # The ticker property can be LEFT, RIGHT or NONE and sets the direction message is 'ticked'.
    # tickerInterval sets the amount of ticks (1/20 of a second) are between the ticker update.
    # The value is the thing to display or tick.
    # To use colors in your text, use the § sign followed up by a value from 0 - F.
    # Example: §cRed to display a red colored 'Red' message.
    # You can find all color codes on the internet (they may use & there, ignore that!)
    sign:
        ticker: NONE
        value: This is a regular message you can set and is updated only once.
    test:
        tickerInterval: 3
        ticker: LEFT
        value: 'This is a test message being ticked from right to left. '


    time and date formats

    These can be set in the config.yml file:
    You can find more help on the format on the internet, search for 'system date format'.

    pauses

    As for 1.o1 you can set ticker pauses. This example shows the test message, with a pause of 10 ticks (2 * 5) after each word.
    Show Spoiler
    Code:
    test:
        tickerInterval: 2
        ticker: LEFT
        pauseDelays: [5, 3, 2, 5, 8, 6, 7, 5, 6, 3, 6]
        pauseDurations: [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]
        value: 'This is a test message being ticked from right to left. '

    Simply put: it ticks as long as the first delay, then pauses the duration, then goes to the next pause segment. This does not reset after ticking the full line, so try to use delays the length of the entire String. (or use none)

    Permissions and commands

    Use /togglesignupdate to turn sign updating on or off, just in case someone made a huge amount of updating signs that causes lag. Use /reloadsignlink to reload the values.yml.
    Permission nodes (Bukkit permissions):
    Code:
        signlink.addsign:
            description: Allows you to build signs containing variables
            default: op
        signlink.toggleupdate:
            description: Allows you to set if signs are being updated or not
            default: op
        signlink.reload:
            description: Allows you to reload the values.yml
            default: op
    TODO
    - Fix values.yml to allow multiple player-specific values (90% done)
    - Commands to set variables and tickers
    - Possible to set time and date formats

    Plugins that use SignLink

    TrainCarts (arrival signs)
    WebAuctionPlus

    Download

    Download SignLink from GitHub
    View the source code at GitHub

    Changelog

    Show your appreciation for my plugins by donating
    [​IMG]
     
    woodzy and fromgate like this.
  2. Offline

    bergerkiller

    Flenix if you are a plugin developer, it is very easy to use SignLink to show values on signs. Just do this:
    Code:
    Variables.get("name").setValue("this is the value for name");
    But no, I haven't added other 'time' like variables...probably because it requires special care.
     
  3. Offline

    Flenix

    Oh so I'd just stick that into any plugin and it'd put that on the sign?


    I have a lot of work to be doing :D
     
  4. Offline

    bergerkiller

    Flenix yup, you can put %name% on the sign, and your plugin can then control the text on all signs with %name% on the sign. Fairly simple system, which I made like that on purpose. :)
     
  5. Offline

    gabriel11798

    Broken with bukkit 2117 (awesome plugin btw, here's a diamond [diamond])
     
  6. Offline

    grant1222

    Dude this is so freaking sweet. Use it on my server, and it really impresses everyone! Keep it up!
     
  7. Offline

    ledhead900

    bergerkiller
    1.2.4 Dev 2117 produces
    Code:
    2012-03-25 07:36:56 [SEVERE] Could not pass event BlockPlaceEvent to SignLink
    org.bukkit.event.EventException
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:303)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:459)
    at org.bukkit.craftbukkit.event.CraftEventFactory.callBlockPlaceEvent(CraftEventFactory.java:101)
    at net.minecraft.server.ItemSign.interactWith(ItemSign.java:60)
    at net.minecraft.server.ItemStack.placeItem(ItemStack.java:83)
    at net.minecraft.server.ItemInWorldManager.interact(ItemInWorldManager.java:289)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:636)
    at net.minecraft.server.Packet15Place.handle(SourceFile:39)
    at net.minecraft.server.NetworkManager.b(NetworkManager.java:229)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113)
    at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78)
    at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:554)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:452)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:490)
    Caused by: java.lang.NoSuchMethodError: org.bukkit.event.block.BlockBreakEvent.<init>(Lorg/bukkit/block/Block;Lorg/bukkit/entity/Player;)V
    at com.bergerkiller.bukkit.sl.SLListener.onBlockPlace(SLListener.java:43)
    at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301)
    ... 14 more 
    When attempting to edit a sign with a sign, possibly other conflicts.
     
  8. Offline

    bergerkiller

    Ok I got that error fixed and 'left' ticking text now properly remains colored at the start. (it no longer flickers from colored to black)

    The only issue I have atm is that the editing 'packet' with the new text doesn't seem to work. I can vaguely remember the team saying that they stopped the 'text changing when redstone changes', and I feel like this is the cause of this. Now finding out where the blockade is...only afraid it is at the client. :/

    EDIT

    Uploaded 1.21 (see GitHub). Sign editing pretty much broke with 1.2.4 after *someone* decided to block all incoming sign update packets for the sign you are editing. It was impossible to send the clicked-signs text to the client to make them able to edit them. Therefore I also added an option to disable the feature, as it currently gives you an empty sign when clicked. Changes are still redirected though...
     
  9. Offline

    ledhead900

    Damn well nice try. going to have to disable it is a dupe issue now.

    Where was the blockade at you never mentioned.
     
  10. Offline

    bergerkiller

    ledhead900 dupe issue? And the blockade is at the client. It no longer updates the sign text it is currently editing. (where window is up for)
     
  11. Offline

    ledhead900

    Well when you hit a sign with a sign to edit it it places a sign in front of it and this sign remains even once you exit the edit as the edit does not work I cannot see the text on the old sign I just see a blank sign appear for editing so I exit the edit and the new sign remains.

    Wait nvm I was in creative mode so it just never used up the sign to begin with.
     
  12. Offline

    bergerkiller

    ledhead900 you can always disable sign editing in the config. (esp since placing it again is pretty much the same now...)
     
  13. Offline

    ledhead900

    Yea I knew about that sorry to waste your time, I thought it was a dupe, but I was in creative mode so the sign it placed to edit stayed in inventory.

    Real shame tho, I quite miss the ability to quickly make a sign adjustment, I don't use command based sign editors as they are imo utterly pointless it takes longer to use the command than it does to smash a sign and re type it.
     
  14. Offline

    bergerkiller

    Updated it to 1.22 for R1.0, as CraftBukkit decided to revert the 'BlockDestroy' event signature again. (tiresome...)
     
  15. Offline

    BoorMachine

    the %playername% sign dont work good. when you first make the sign it works perfect but when the server reloads/restarts it doesnt show the playername but only %playername%.
     
  16. Offline

    bergerkiller

    BoorMachine do you properly stop the server using /stop? If no, use that command, if yes, it could be a write access problem and it is unable to save the information to file.
     
  17. Offline

    BoorMachine

    im using a hosted server to run my files, theres an gui to stop & start the server.
     
  18. Offline

    bergerkiller

    Updated SignLink. BoorMachine it is quite possible that your issue is now fixed. SignLink had several issues with signs not updating and neither did they properly set the text on the signs from what was set.

    This and many other fixes are in 1.23. (see changelog for all changes)
     
  19. Offline

    BoorMachine

    thanks, il try it out :)
     
  20. Offline

    MacGyver420

    bergerkiller

    Im having the same issue as BoorMachine, after a restart variables wont function until i completely redo the sign. Yep im stopping it property :p Happens with both 1.22 and 1.23.
     
  21. Offline

    gabriel11798

    When i try to edit a sign, it doesn't display the already written text, and when i try to write something else (ignoring the empty sign) it doesn't apply it to the sign. Bukkki 1.2.5-Ro.1 Signlink v1.23 (when i use spoutcraft, it displays the already written text on the sign, but still doesn't fix the problem)
     
  22. Offline

    MacGyver420

    BoorMachine

    Check and see if youve got an old linkedsigns.txt file, i found one and once i got rid of it signs started saving again. Like its saving to the .txt version but loading from the .yml if youve got both.
     
  23. Offline

    bergerkiller

    gabriel11798 known unfixable bug, I failed to fix the sign editing feature as it was, after the client stopped responding to update messages while editing the sign. You'll have to use command-based editing for now :/
     
  24. Offline

    gabriel11798

    . . . . . . crap
     
  25. Offline

    RyGuy147

    Colors not working.
     
  26. Offline

    bergerkiller

    They are working RyGuy147 unless you can tell me exactly where and how they are not working. Added &f and it made it perfectly white.
     
  27. Offline

    boduzapho

    Getting these pretty often (Bukkit 1.2.5)

    5/9/2012 2:55:11 PM [SEVERE] [SignLink] An error occured while updating the signs:
    5/9/2012 2:55:11 PM [SEVERE] java.util.ConcurrentModificationException
    5/9/2012 2:55:11 PM [SEVERE]at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
    5/9/2012 2:55:11 PM [SEVERE]at java.util.ArrayList$Itr.next(Unknown Source)
    5/9/2012 2:55:11 PM [SEVERE]at org.bukkit.craftbukkit.CraftWorld.getPlayers(CraftWorld.java:637)
    5/9/2012 2:55:11 PM [SEVERE]at com.bergerkiller.bukkit.sl.VirtualSign.update(VirtualSign.java:336)
    5/9/2012 2:55:11 PM [SEVERE]at com.bergerkiller.bukkit.sl.VirtualSign.update(VirtualSign.java:282)
    5/9/2012 2:55:11 PM [SEVERE]at com.bergerkiller.bukkit.sl.VirtualSign.updateAll(VirtualSign.java:102)
    5/9/2012 2:55:11 PM [SEVERE]at com.bergerkiller.bukkit.sl.SignLink$2.run(SignLink.java:163)
    5/9/2012 2:55:11 PM [SEVERE]at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:126)
     
  28. Offline

    bergerkiller

    boduzapho check your plugins, you have a plugin that is altering the player list from another thread. Are you using a plugin that somehow schedules or delays player kicking or teleportation?
     
  29. Offline

    kjellyo1

    How to install NoLagg and this?
     
  30. Offline

    bergerkiller

    kjellyo1 put the jar file (and the folder) into the 'plugins' folder. The 'plugins' folder is next to the server itself (CraftBukkit.jar). If you don't have this folder, first launch the server once, or make this folder yourself.
     
  31. Offline

    dibujaron

    I asked for this before, but can someone give me an overview of how to work this? the wiki page is gone... :(
     

Share This Page