[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


    thank you
  3. Offline


    2011-08-25 14:25:19 [WARNING] Plugin SpyerAdmin v1.5_1 stable tried to register permission 'spyer.seeAll' but it's already registered
    java.lang.IllegalArgumentException: The permission spyer.seeall is already defined!
    at org.bukkit.plugin.SimplePluginManager.addPermission(SimplePluginManager.java:423)
    at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:184)
    at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:161)
    at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:286)
    at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:273)
    at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:149)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:337)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
  4. Offline


    Redownload. The registering permissions system is a bit stupid.
  5. Offline


    Fixed :)

    Im still looking in to if MineOS+ (Microcore) has OpenJDK
  6. Offline


    Doesn't matter. Have you tried the fixed link? :S
  7. Offline


    Yes and it still throws the error.
  8. Offline


    Could you please type in "javac" and see what happens? And then post the output of "java -version"? And "echo $CLASSPATH"?
  9. Offline


    Micro Core is distributed with ABSOLUTELY NO WARRANTY.

    tc@box:~$ javac
    -sh: javac: not found
    tc@box:~$ java -version
    openjdk version "1.7.0-internal"
    OpenJDK Runtime Environment (build 1.7.0-internal-tc_2010_01_30_13_43-b00)
    OpenJDK Client VM (build 17.0-b08, mixed mode)
    tc@box:~$ echo $CLASSPATH

  10. Offline


    I see... Try "yum" and "apt-get", then "dpkg"... Not sure if it even has a package manager... -_-

    EDIT: Wait, no, try using this guide to install the JDK: http://minecraft.codeemo.com/buildmineos/index.php/Java I advise going with the installation from Oracle(Sun).

    EDIT 2: Also try "locate js.jar"...
  11. Offline


    Its "ab" what do you want me to do with it?
  12. Offline


    Install a proper distribution of the JDK...
  13. Offline


    The guide you posted uses MineOS 2 which is based on CRUX Linux

    I sorry this has gotten complicated. I'm using MineOS+ it is a fork from MineOS 2
    MineOS+ Home page
    MineOS+ Support Forum

    If you need me to relay a request to the MineOS+ dev team for information I can

    Application Extension Browser
    2. apache-ant.tcz
    3. openjdk-6-jdk-misc.tcz
    4. openjdk-6-jdk.tcz
    5. openjdk-6-jre.tcz
    6. openjdk-7-jdk-misc.tcz
    7. openjdk-7-jdk.tcz
    8. openjdk-7-jre.tcz
    9. sun-jdk.tcz
    10. sun-jdk7.tcz
    11. sun-jre.tcz

    Which jdk should I use?
  14. Offline


    Try sun-jdk7, if that fails openjdk-6-jdk.
  15. Offline


    open jdk-6-jdk. failed

    sun-jdk7 installed and the plugin still throws the error.
  16. Offline


    I would ask the support team about why it doesn't ship with the default engine.
  17. Offline

    will d

    MineOS+ and MineOS CRUX are two entirely different distributions, and developed by two different teams. MineOS+ (microcore linux), MineOS CRUX (CRUX Linux).

    The instructions you linked are for my distro (CRUX) aren't appropriate for Zone's configuration. MineOS CRUX already comes with Oracle's JRE

    EDIT: specifics
    mc:bin/ $ /usr/java/java-latest/java -version
    java version "1.7.0"
    Java(TM) SE Runtime Environment (build 1.7.0-b147)
    Java HotSpot(TM) Client VM (build 21.0-b17, mixed mode)

    I can confirm Spout + Spyer work on MineOS CRUX on a default install, no updating to JRE necessary.


    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: Jul 17, 2016
  18. Offline


    With scripting enabled? :D
  19. Offline


    I am not sure what is wrong, but after a few hours of running the server, it always seems to crash due to SpyerAdmin, even if no one is using it. I noticed that as soon as a new person joined my server, it imidietly kicked him and crashed the server, and this is the error that come up in terminal. Thanks

    2011-08-30 10:52:07 [INFO] xibrahimovitch [/] logged in with entity id 50866 at ([TerraNova] 1050.589103282537, 71.0, 158.26295619652927)
    2011-08-30 10:52:07 [INFO] xibrahimovitch lost connection: disconnect.endOfStream
    2011-08-30 10:52:07 [INFO] [Veteran] Bagle500[G]: oh
    2011-08-30 10:52:08 [WARNING] Failed to handle packet: java.lang.NullPointerException
    at nickguletskii200.SpyerAdmin.SpyerSettings.canUse(Unknown Source)
    at nickguletskii200.SpyerAdmin.SpyerSettings.isSeeAll(Unknown Source)
    at nickguletskii200.SpyerAdmin.SpyerAdminPlayerListener.continueSend(Unknown Source)
    at nickguletskii200.SpyerAdmin.Packets.PacketHand.checkPacket(Unknown Source)
    at org.getspout.spout.packet.listener.PacketListeners.canSend(PacketListeners.java:70)
    at org.getspout.spout.SpoutNetServerHandler.syncedSendPacket(SpoutNetServerHandler.java:500)
    at org.getspout.spout.SpoutNetServerHandler.syncFlushPacketQueue(SpoutNetServerHandler.java:492)
    at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java:477)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
    at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:454)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:363)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    2011-08-30 10:52:08 [SEVERE] java.lang.NullPointerException
    2011-08-30 10:52:08 [SEVERE] at nickguletskii200.SpyerAdmin.SpyerSettings.canUse(Unknown Source)
    2011-08-30 10:52:08 [SEVERE] at nickguletskii200.SpyerAdmin.SpyerSettings.isSeeAll(Unknown Source)
    2011-08-30 10:52:08 [SEVERE] at nickguletskii200.SpyerAdmin.SpyerAdminPlayerListener.continueSend(Unknown Source)
    2011-08-30 10:52:08 [SEVERE] at nickguletskii200.SpyerAdmin.Packets.PacketHand.checkPacket(Unknown Source)
    2011-08-30 10:52:08 [SEVERE] at org.getspout.spout.packet.listener.PacketListeners.canSend(PacketListeners.java:70)
    2011-08-30 10:52:08 [SEVERE] at org.getspout.spout.SpoutNetServerHandler.syncedSendPacket(SpoutNetServerHandler.java:500)
    2011-08-30 10:52:08 [SEVERE] at org.getspout.spout.SpoutNetServerHandler.syncFlushPacketQueue(SpoutNetServerHandler.java:492)
    2011-08-30 10:52:08 [SEVERE] at org.getspout.spout.SpoutNetServerHandler.disconnect(SpoutNetServerHandler.java:484)
    2011-08-30 10:52:08 [SEVERE] at net.minecraft.server.NetworkListenThread.a(SourceFile:108)
    2011-08-30 10:52:08 [SEVERE] at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:454)
    2011-08-30 10:52:08 [SEVERE] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:363)
    2011-08-30 10:52:08 [SEVERE] at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    2011-08-30 10:52:08 [SEVERE] Unexpected exception
    at nickguletskii200.SpyerAdmin.SpyerSettings.canUse(Unknown Source)
    at nickguletskii200.SpyerAdmin.SpyerSettings.isSeeAll(Unknown Source)
    at nickguletskii200.SpyerAdmin.SpyerAdminPlayerListener.continueSend(Unknown Source)
    at nickguletskii200.SpyerAdmin.Packets.PacketHand.checkPacket(Unknown Source)
    at org.getspout.spout.packet.listener.PacketListeners.canSend(PacketListeners.java:70)
    at org.getspout.spout.SpoutNetServerHandler.syncedSendPacket(SpoutNetServerHandler.java:500)
    at org.getspout.spout.SpoutNetServerHandler.syncFlushPacketQueue(SpoutNetServerHandler.java:492)
    at org.getspout.spout.SpoutNetServerHandler.disconnect(SpoutNetServerHandler.java:484)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:108)
    at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:454)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:363)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
  20. Offline


    The problem resides in Spout. There is a temporary fix in the new home of Spyer, on dev.bukkit.
  21. Offline


    Awesome, can resume using Spyer....
  22. Offline


    I have an issue where I teleport to someone when invisible and then they see a default skinned person who's frozen. Anyway to prevent this?
  23. Offline


    I'm having trouble getting SpyerFun to run. I am running the latest version of Spout, and the latest files for Spyer. I am getting the following error in my log:
    Show Spoiler

    2011-09-05 21:15:15 [SEVERE] Could not load 'plugins/SpyerFun.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:173)
    at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:213)
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:136)
    at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:143)
    at org.bukkit.craftbukkit.CraftServer.<init>(CraftServer.java:110)
    at net.minecraft.server.ServerConfigurationManager.<init>(ServerConfigurationManager.java:51)
    at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:133)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:337)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    Caused by: java.lang.NoClassDefFoundError: org/getspout/spoutapi/packet/listener/PacketListener
    at nickguletskii200.SpyerFun.<init>(Unknown Source)
    ... 13 more
    Caused by: java.lang.ClassNotFoundException: org.getspout.spoutapi.packet.listener.PacketListener
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:36)
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:24)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 14 more

    Thanks for your work, it's a great idea!
  24. Offline


    You need spout.

    Please verify the fix, located on dev.bukkit.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: Jul 17, 2016
  25. Offline


    I am running Spout, it's initialized and other plugins are finding it.
  26. Offline


    Then you have an old version of it.
  27. Offline


    I said in my first post that I'm running the latest version of Spout. It is the latest dev build, I suppose that could be the issue. The recommended build wasn't initializing for some reason. I'm also running the latest version of Bukkit. Anyway, I've found another way to accomplish what I need, so if you're not worried I'm not. Just trying to help out.
  28. Offline


    The fix works, thank you.
  29. Offline


    Yay, thank you for verifying!

    I will try and force myself to rewrite the plugins, because they are very very very dirty right now.
  30. Offline


    Also a suggestion while rewriting the plugins. Could you make it so that when someone /quits that they can't accidentally type in chat (Then add like a /bypasschat command so they can chat) I have accidentally said stuff while "Not on the server" and people get suspicious.
  31. Offline


    They will not see any of the messages if they don't have the seeAll permission.

Share This Page