[INACTIVE][FUN/ADMN] Spyer 1.5_1 - invisibility for moderating and pvp!(alternative to Vanish) SPOUT

Discussion in 'Inactive/Unsupported Plugins' started by nickguletskii, Feb 27, 2011.

  1. Offline

    nickguletskii

    SPYER HAS A NEW HOME!

    WARNING! THIS PLUGIN REQUIRES SERVER SIDE SPOUT! CLIENTS DO NOT HAVE TO DOWNLOAD ANYTHING!
    WARNING! OLD PERMISSION SYSTEM IS NOT SUPPORTED! YOU WILL NEED A BUKKIT PERMISSIONS STANDARD COMPLIANT PERMISSIONS SYSTEM!
    Hotfixed SpyerFun on 16th of August. Version number of the jar didn't change. Fixed a bunch of bugs.
    SpyerFun - a plugin that allows playersto become invisible for some time. Each second the player "eats" one item out of the stack he is holding (hider item, sugar by default). While invisible, mob can and will still attack the player, although other players (exceptions are implemented) can not. The player will reappear when he either runs out of the hider item or switches to another item in his action bar, e.g. a sword.
    SpyerAdmin - a plugin that allows moderators to hide themselves for an unlimited amount of time, as well as simulating them leaving. This is a constantly updated alternative to Vanish, with much more features and configurations!
    Thanks to brafenschlug for this hilarious video of moderators playing pranks on players!

    Features:
    • Now uses Spout! This plugin is no longer CPU heavy!
    • Allows players to become invisible for a set amount of time!
    • Adds more fun to PVP.
    • Allows administrators to hide themselves and simulate them quitting! Overrides msg,r and list.
    • Stops players from picking things up while using SpyerAdmin (see the configuration section)
    • Knocks players out from invisibility (SpyerFun) when they get damaged (see the configuration section)
    • Knocks players out from invisibility (SpyerFun) when they left-click a block (see the configuration section)
    • Now reload friendly!
    How to use (SpyerAdmin):
    • Use /spy to become and stop being invisible (toggled).
    • Use /quit to simulate you quitting/joining (toggled).
    • Place 1 piece of the indicator item into your quickbar. It will indicate if you are hidden or not. By default it is glowstone that turns into sulphur. You can configure that in plugins/Spyer/SpyerAdmin.conf.
    How to use (SpyerFun):
    • Right click with the "hider" item, every second it will eat up one item from the stack.
    • To add/change "hider" items, go to plugins/Spyer/items.yml. You'll see something like this:
      Code:
      {352: 3000, 353: 1000}
      Items are separated by commas. The ID is the right value, and the time of usage (per block) in milliseconds(HAS to be dividable by 50!). So if I want to add clay to work for 10 seconds per piece, I will do something like
      Code:
      {352: 3000, 353: 1000, 337: 10000}
      Note: by default, bones and sugar are used.
    Installation instructions, downloads:

    Install server-side Spout. No Spout client required.
    Extract the contents of the bundle(Spyer.zip) into the plugins folder.
    Bundle downloads:
    Download
    Download command line installer
    Github
    jars (open)

    Instructions for different setups:
    • Essentials: Download SpyerInstaller, put it in the server directory and run it from terminal(console). Go to configuration->4.
    • Vanilla Bukkit: go to (server directory)/plugins/Spyer. Open repo.conf, replace everything with
      Code:
      http://dl.dropbox.com/u/16258042/SpyerAdminRepos/Vanilla/
    • CommandBook: Special version for you! semi-direct Replace SpyerAdminConmmands.jar with this version!
    Configuring:

    List of permissions:
    1. spyer.spy (Players who have this have access to the /spy and /quit commands, without permissions checks for op powers)
    2. spyer.seeAll (Players who have this can see people who are hidden, without permissions checks for op powers)
    3. spyer.fun (Players who have this can use SpyerFun, without permissions defaults to true)
    4. spyer.stopmobs.admin (Stops moderators from being attacked by mobs while hidden)
    5. spyer.stopmobs.fun (Stops players from being attacked by mobs while hidden)
    Files:
    • spyer.yml - responsible for holding timing data. If syncWithScheduler is true, the plugin will use the bukkit's scheduler (recommended). If false, use Java timers. refreshRate defines the time in ticks (in milliseconds if syncWithScheduler = false). Add the optional field coolDown and set its value to your cooldown time in milliseconds (for SpyerFun, time in between invisibility uses). Add pickUp: true to allow picking up items while hidden in SpyerAdmin. To knock out people from SpyerFun when they damage an entity, add "onDamage: true". To knock out people from SpyerFun when they left click a block, add "onBlock: true". To stop invisible players (SpyerFun) from damaging other living entities, add "noDamage: true". Boolean "wait" allows/disallows the plugin to delay reloading to give them time to hide.
    • repo.conf - holds the url of the repository from which SpyerAdmin will update the script.
    • script.js - compatibility layer between plugins. e.g. Essentials script will simulate Essentials commands, Vanilla script will simulate the normal minecraft commands.
    • items.yml - holds the list of items used in SpyerFun
    • SpyerAdmin.conf - holds indicator item ids for SpyerAdmin
    Modifying scripts:
    1. Comment out all the lines in repo.conf.
    2. Modify the script.
    3. If you want to update the script, you can get it from [repopath]/script.js
    Version: v1.5_1

    Known issues
    • If you get a NullPointer when enabled (that contains something like "at nickguletskii200.SpyerAdmin.CustomHandling.<init>(Unknown Source)", then download this and put it into your jre's lib directory. You might also need to install Rhino. Disclaimer: this file is a part of the OpenJDK package.
    Changelog (open)

    Version 1.5
    • Migrated to Spout packet filtering. Timers are now only used for indicators(admin) and item deduction(fun). You can decrease the tick rate now if you want.
    • 1.5_1 Fixed the whole bundle. Nasty bug didn't appear in testing!
    Version 1.4
    • Separated SpyerAdmin into two modules.
    • July 17th - now using bukkit permissions API. Blind update. If you got this plugin before build 1000, then you have the old version. If you got it after build 1000, new version.
    Version 1.3
    • Made plugins reload friendly.
    • _1 Essentials 2.3 compatibility added through autoupdate.
    • _2 Fixed default item pickup. Now doesn't pick up items by default.
    • _3 Added noDamage property for SpyerFun.
    Version 1.2
    • Improved performance.
    • Added position checks.
    Version 1.1
    • Some little customisation upgrades.
    • Some hotfixes.
    • Improved SpyerFun's invisibility system.
    Version 1.0
    • Added mob targeting control.
    • Hotfix: fixed(hopefully) the log spam!
    • Small feature added (13/05/11): cooldown times for SpyerFun.
    Version 0.9
    • Permissions support!
    • Cleaned up code.
    Version 0.8
    • Added indicators.
    • You can now do /spy [on|off] to force.
    • Invisibility persists when you reconnect.
    • Fixed updater to work with Windows.
    • 0.8_1 fixed some problems with commands.
    • 0.8_2 major fixes.
    Version 0.7 (SpyerAdmin only for now)
    • Automatic script updating.
    • Better logging (will help me get rid of bugs) (coming soon)
    Version 0.6
    • Scripting support! That means no more compile-time library linking and more compatibility!
    • Multiple item support for SpyerFun added!
    Version 0.5
    • Added refreshrate and sync method variables. See the usage instructions to learn how to cofnigure them.
    Version 0.4


    • Extended functionality of /quit. Overrides msg and list commands of essentials.
    Version 0.3
    • A rewrite, separated packages. Hopefully removed all known bugs.
    • 0.3_1 Separated in-game configurations into another package.
    • 0.3_2 Fixed some bugs.
    • 0.3_21 Fixed some exceptions, small fix.
    Version 0.2
    • Shadow moderation ("addspy <player>" - allows player to hide with "spy" and "quit", "removespy <player>" - opposite. "addseeall <player>" - allows player to see hidden players, "removeseeall <player>" - oppiste. "spy" - hides you until called again. "quit" - hides and removes you from the list of players.
    • Click in the air now works
    • Migrated to SnakeYaml, no more jars!
    • 0.2_1 upgraded to remove double invisibility, quit now fully simulates player leaving.
    • 0.2_2 fixed player reappearing after "spying".
    • 0.2_3 huuuuuuuge bugfixes!
    • 0.2_4 fixed some bugs, one known: you have to say "/spy" twice to hide after using sugar/other hider item.
    Version 0.1
    • Release



    TODO
    • Some technical cleanups
    • Suggest more!
    Credits (no particular order)
    These people helped me by posting a lot of descriptive bug reports, removing bugs from scripts, making videos, cooperating with debugging and helping other users understand my horrible documentation ;)
    • The PC Tech Guy
    • Sparx
    • Tim Yong
    • Greylocke
    • KevinHouse
    • aidan matzko
    • brafenschlug
    • Nelien
     
  2. Offline

    lishid

    Hm..... do you know the plugin Dynmap?(source code hosted on GitHub)

    Is there a way to hide myself in game AND on the map with one single command?

    Basically, I need to send a command "/dynmap hide" to hide my icon on the map and "/dynmap show" to show my icon.

    so dynmap must be using some methods to get the player list
    is it possible to hook up into it?
     
  3. Offline

    nickguletskii

    I just can't be bothered to look through this ball of noodles. Is it very very very inconvenient?
     
  4. Offline

    lishid

    lol not that much, but it's possible that other plugins use these methods?
    I'll look into the code to see what method they are using...
     
  5. Offline

    nickguletskii

    They all probably use getOnlinePlayers or a method that uses it (like getPlayer). The only way to kill all rabbits in one shot is modifying bukkit.
     
  6. Offline

    lishid

    hm...okay... (so sad...)
     
  7. Offline

    GhostToast

    thanks for this plugin, works like a charm. surprised i didn't find this sooner. was using Vanish, which was fun, but this is great with the various options. just using it for admin/monitoring, but being able to type /quit makes it all the more amazing.
     
  8. Offline

    nickguletskii

    Can anyone confirm that this is working properly on build 602?

    EDIT: Forgot to thank for the great response, just didn't want to bump my own thread earlier.

    Thank you very much! If you have any suggestions, please PM me!
     
  9. Offline

    GhostToast

    i'm using 567 and the plugin version before you updated for 602. right now if i hide (using for admins), and someone logs and back on, they will see me no matter what. even if i /spy and /spy again to hide/unhide. sometimes my armor vanishes i guess.
     
  10. Offline

    nickguletskii

    Confirmed. Silly me, when I was cleaning up I removed hooks to playerJoin event!
    EDIT: Fixed.
     
  11. Offline

    GhostToast

    Thanks but now I can't use this because the only version available is for 602, and I'm just not ready for that move yet
     
  12. Offline

    Flenix

    Any chance of adding a permissions node? I know this has its own but i'm using it as part of a Races setup for our server (namely an assassin class) - everything else is in Permissions and it'd just be nice to have it all in one place :)

    Also, an idea: Maybe have a config file where you can set various items to "eat" for varied length, say one sugar gives one second invisibility, whereas 1 redstone would give 5 seconds? so a stack of redstone would vanish you for over 5 minutes, but is not as easy to get as the sugar which is a shorter time.
     
  13. Offline

    nickguletskii

    Permissions will be implemented when the official permissions system will come out. Working with the permissions plugin is a pain.

    Good idea! I think I'll wait until bukkit releases their persistence though, as I really don't like the idea of having commands changing this.

    Can anyone confirm that this now works on build 618 or similar (Minecraft server 1.4)? Fixed some exceptions that appeared out of nowhere...

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 10, 2016
  14. Offline

    Reterg

    Yep. Appears to be working this time. Before I was getting exceptions when ever a player joined or left the server. Despite the exceptions, it still seemed to work. I was the only player on though so not sure.

    In any case. This new version seems to be working with CB 617 and no errors in the console
     
  15. Offline

    nickguletskii

    Yeah, that is what I fixed. At first I thought that it is caused by a change in Java 7, but when I switched back the problem persisted, so I attempted to fix.
     
  16. Offline

    iBeatYouNoob

    Thanks for the epic plugin.
    I like this way better than Vanish cuz this has the "quit" feature.
    I give you some [diamond] and some [cake] for that.
     
  17. No problems loading or hiding.
    CB v618 Spyer v0.3_21

    It just shows this error when right-clicking any item.
    Code:
    21:01:56 [SEVERE] Could not pass event PLAYER_INTERACT to SpyerFun
    java.lang.NullPointerException
            at nickguletskii200.SpyerFunPlayerListener.onPlayerInteract(Unknown Source)
            at org.bukkit.plugin.java.JavaPluginLoader$9.execute(JavaPluginLoader.java:217)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:59)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:255)
            at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:162)
            at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:207)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:447)
            at net.minecraft.server.Packet15Place.a(SourceFile:57)
            at net.minecraft.server.NetworkManager.a(NetworkManager.java:198)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:72)
            at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
            at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:368)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:283)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:375)
     
  18. Offline

    nickguletskii

    Sorry, but I can't replicate that... Really weird :/
     
  19. Offline

    MineralMC

    Excellent administration tool. Any chance of setting a flag on a player who has /quit, so they don't stop other players from changing the time by sleeping?
     
  20. Offline

    nickguletskii

    I really would love to add that... But sorry, I have no access to the code that skips time. I would have to make a custom craftbukkit.
     
  21. Offline

    skawke

    Apparently when you /tp, you become visible again?
     
  22. @skawke /tp doesn't make you visible again.

    This error doesn't occur immediatly.
    You can try replicating it running across the map while keeping the right-mouse click button down with nothing in your hand.
    Once the error occured once, it will keep occuring every right-click with your hand.
    Restart/Reload fixes it for a while.
     
  23. Offline

    skawke

    Odd, I used /spy and /tp to a player;they could see me.
    /quit - same result.
    Wonder if i'm the only person with this problem....i'll test it out more.
     
  24. Post CB version and spyer version.
     
  25. Offline

    skawke

    CB617
    Not sure how to check Spyer's version. Probably the latest one, I downloaded it about 2 hours ago.
     
  26. Offline

    ballacraft

    i installed the plugin on my 1.4 server and craftbukkit seemed to load everything fine. except when i try any commands nothing happens in game or comes up in the server window. i type /spy or /quit and get nothing. Using the /plugins command shows that Spyer, SpyerConfig & SpyerAdmin are all installed and running. It seems like im the only one having this problem so i could be doing something wrong.
     
  27. Offline

    nickguletskii

    That is because you didn't add yourself to the "spies" list.

    @Errors investigating, I think I see a problem - I didn't check if the hand is empty, so I get a null!

    EDIT: Confirmed&patched. No more nullpointers if you right click with an empty hand!
     
  28. FYI- on CB 618
    Code:
    09:26:39 [SEVERE] Could not pass event PLAYER_INTERACT to SpyerFun
    java.lang.NullPointerException
        at nickguletskii200.SpyerFunPlayerListener.onPlayerInteract(Unknown Source)
        at org.bukkit.plugin.java.JavaPluginLoader$9.execute(JavaPluginLoader.java:217)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:59)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:255)
        at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:162)
        at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:207)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:447)
        at net.minecraft.server.Packet15Place.a(SourceFile:57)
        at net.minecraft.server.NetworkManager.a(NetworkManager.java:198)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:72)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:368)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:283)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:375)
    
     
  29. Offline

    nickguletskii

    I am going to rage if it is dropbox again not syncing properly... Try again now.
     
  30. works now, thanks a ton!
     
  31. Offline

    nickguletskii

    No problem...
    I need to sort out that stupid dropbox client...
     

Share This Page