[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



    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!

    • 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:
      {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
      {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 command line installer
    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
    • CommandBook: Special version for you! semi-direct Replace SpyerAdminConmmands.jar with this version!

    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)
    • 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

    • 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


    Thanks for looking into it. I know my quest for performance in plugins is a crazy one. Until we have a good bench marking tool for plugins and their footprints - we're at the mercy of developers. I'm not pointing at you for failing to produce quality work, but there are several who do not.
  3. Offline


    Redownload both plugins, try again...

    It is hard to balance this plugin to be both functional and fast... Good thing I am making it much easier for myself and probably many other plugin developers who need the ability to cancel packets...

    Currently building, need to write a plugin to test the event.

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


    Yessir. I'm a member of the official Bukkit Testing team.. I'll bring this up
  5. Offline


    Great Plugin But I Have Realized A Small Bug Which Might Be Just Me...

    Anyway, When I Do The /quit Command It Shows I'm Invisible But My Text Is Funny Showing [QUITSIM] And When I Repeat /quit It Says I'm Visible But I Still Have The Same Text Format... Forcing Me To /reload Which Is Very Annoying All The Time...

    P.S. Works Fine With /spy!

    Thanks For Any Help And Please Reply Soon

  6. Offline


    It works now! Must've done something wrong the first time XD.
    Sorry if this has been covered, but when I asked a normal player to try using /msg when I used /quit, it came up with this:
    2011-06-20 18:44:32 [SEVERE] javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: TypeError: Cannot find function get. (<Unknown source>#191) in <Unknown source> at line number 191
    2011-06-20 18:44:32 [SEVERE] 	at com.sun.script.javascript.RhinoScriptEngine.invoke(RhinoScriptEngine.java:184)
    2011-06-20 18:44:32 [SEVERE] 	at com.sun.script.javascript.RhinoScriptEngine.invokeFunction(RhinoScriptEngine.java:142)
    2011-06-20 18:44:32 [SEVERE] 	at nickguletskii200.SpyerAdmin.CustomHandling.playerMsg(Unknown Source)
    2011-06-20 18:44:32 [SEVERE] 	at nickguletskii200.SpyerAdmin.SpyerAdminCommands.onCommand(Unknown Source)
    2011-06-20 18:44:32 [SEVERE] 	at org.bukkit.command.PluginCommand.execute(PluginCommand.java:35)
    2011-06-20 18:44:32 [SEVERE] 	at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:128)
    2011-06-20 18:44:32 [SEVERE] 	at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:287)
    2011-06-20 18:44:32 [SEVERE] 	at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:712)
    2011-06-20 18:44:32 [SEVERE] 	at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:678)
    2011-06-20 18:44:32 [SEVERE] 	at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:671)
    2011-06-20 18:44:32 [SEVERE] 	at net.minecraft.server.Packet3Chat.a(Packet3Chat.java:32)
    2011-06-20 18:44:32 [SEVERE] 	at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
    2011-06-20 18:44:32 [SEVERE] 	at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:75)
    2011-06-20 18:44:32 [SEVERE] 	at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
    2011-06-20 18:44:32 [SEVERE] 	at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:399)
    2011-06-20 18:44:32 [SEVERE] 	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:309)
    2011-06-20 18:44:32 [SEVERE] 	at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
  7. Offline


    I had to uninstall this plugin because it changes WAY too many configurations on a server and assumes essentails and groupmanager is installed. If these two plugins aren't installed, it ROYALLY screws up a server causing a server reinstasll. NOT FUN!
  8. Offline


    Eeeh oups... Fixing.

    Read the OP.

    This doesn't happen to me... Very weird. Are you sure that you are using the latest version?

    P.S. @Cookieee patched. Auto update will download the working script after a restart.

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


    Any idea why I get this?
    2011-06-20 11:17:30 [SEVERE] Could not load 'plugins\SpyerAdminCommands.jar' in folder 'plugins':
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:172)
        at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:194)
        at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:117)
        at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:109)
        at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:232)
        at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:219)
        at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:146)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:283)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    Caused by: java.lang.NoSuchFieldError: sa
        at nickguletskii200.SpyerAdmin.SpyerAdminCommands.<init>(Unknown Source)
        ... 13 more
    I have the most up to date bukkit version and spyer.
  10. Offline


    Do you have an old version of SpyerAdmin.jar by any chance? :/
  11. Offline


    No I just downloaded it today.
  12. Offline


    Pfft, where the hell did the @DontExport annotation go... -_-

    EDIT: Redownload, did a little change for you... :/
  13. Offline


    wesome, my restart scheduler is set to go inb 10 mins, I'll let it go through there =]. Will post back whether it is fixed or not!

    Okay my server restarted itself and when I came on, I asked someone to use /msg and target me when I used /quit, and it now lets them send messages to me properly. Still can't be seen in /who or /list, but they can now /msg.

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


    Thanks for telling me, going to look into it. It is very hard to debug for me because I can't run two clients at once without the framerate dropping to 3-5.

    EDIT: Have you patched Essentials?
  15. Offline

    i ThRoW sToNeZx

    Awesome! Lol, it's really fun to make up a ghost on the server, and talk to your players with signs
  16. Offline


    Essentials is patched so that it overwrites the commands, but I asked 3 seperate people and their msg came through.
  17. Offline


    Suggestion: People with the permission Spyer.slogin will login automatically invisible (with /spy toggled as on). slogin is for silent/spy login. The reason I request it is cause I am using Stealth Login , but when I login people see me, so thats a small problem.
  18. Offline


    I just downloaded and installed Spyer and had a few minor problems. Instead of /quit just making it appear as though I'm logging on/off, it's toggling my invisibility instead as if I'm typing /spy. /spy works just as it should, toggling my invisibility on/off too. Also it seems as though when I have Spyer installed, I can't use /who or /list commands. I know it's Spyer because I uninstalled it, restarted the server, and /who and /list worked.
  19. Offline


    Can I request maybe a permissions node for /quit separate from /spy , I understand this might be annoying since the /quit command uses the /spy command as well... But it'd be wonderful if you could figure out how to do it.
  20. Offline


    Ehm, that is weird... Do these people have seeAll permissions? :( Really weird...
    If you exited while invisible you will be invisible on logon.
    This is happening because you didn't install it properly. Read the OP.
    Hmm... Seems logical to me. Going to add it when I finish the packet send event.
  21. Offline


    No one has seeAll. The only people that have any nodes for it are my in-game mods, who have access to /quit and /spy, and the node to stop mob aggro when invisible.

    Oh and as another point, when I teleport to someone to monitor them, if they are stood still they see me appear next to them for like 1 seconds before I disappear again. Anyway you could fix this?
  22. Offline


    Not yet, see the OP for the "life saving commit" which will allow me to remove that pause and a "dirty loop of invisibility" which is basically what makes you stay invisible. If the pull request gets accepted, I will rewrite the plugin as it will be much easier for me to manage people. This means that there will be more than 30% less problems.
  23. Offline


    Sounds really good!
    No idea why players can use /msg on me now, then? Really annoying to the people that know about the bug, because I use /quit to escape from annoying questions and suddenly I get 4 people PM me to see whether I am on or not and carry on asking me questions.
  24. Offline


    Looking into it right now. :)
  25. Offline


    Okay, thanks!
  26. Offline


    Well, testing showed two things:
    1) That there might be something wrong; possible patch to the script released.
    2) My computer can't handle Eclipse, Chrome, MC server and two MC clients running at the same time.
  27. Offline


    Right okay, I'll restart my server and check to see if it still works, and report back when I have done it! :)

    Just checked it, people can still target me with /msg
    Edit: You could use my server to test to see if it works or not if you want, just yell at me in-game when I'll need to restart ther server to update it
    ip: gangwarsmc.com

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


    Unless there was a server restart in between.
  29. Offline


    Yes. I can't really do much because unless the server is stopped with the stop command, plugins don't get notified.
    Thanks for that, but could you please pastebin the contents of plugins/Spyer/script.js?
  30. Offline


  31. Offline


    Hmm, okay, the latest... :/ Still don't see the problem. Work in progress...

    EDIT: @Cookieee Could you please upload your plugins directory? There is something very fishy in there, probably to do with permissions...

Share This Page