[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

    nickguletskii

    No, I want direct linking and proper sync. Everything works for me, flush your DNS cache and try again. If that doesn't work, well, the problem can't be solved by me - it is clearly on your side.

    If they attacked you before you went invisible, then yes, they are not going to ignore you.

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

    godgodgodgo

    ok thanks

    Any idea why craftbukkituptodate is telling me there's an update for spyeradmin.jar?

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

    nickguletskii

    Because the version on craftbukkituptodate is completely outdated.
     
  5. Offline

    godgodgodgo

    hmm i'll tell him to change it ;)
     
  6. Offline

    MJE

    So if we just use the spyeradmin do we need 2 jars or 1? I've been running it fine for awhile and just downloaded the commandbook version and got the following when I tried to run it...

    5 06:57:49 [SEVERE] Error occurred while enabling SpyerAdminCommands v1.4 stable (Is it up to date?): null
    java.lang.NullPointerException
    at nickguletskii200.SpyerAdmin.SpyerAdminCommands.onEnable(Unknown Source)
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:125)
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:799)
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:253)
    at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:140)
    at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:118)
    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)

    What am I missing? There was only the 1 jar file, if I used the spyer admin from the zip it really freaks out....
     
  7. Offline

    nanashiRei

    I use the @sk89q stuff like CommandBook etc. and Permissions 3+

    Just noticed there is a CommandBook version :) ~
     
  8. Offline

    nickguletskii

    SpyerAdmin now consists of two modules - the main jar (SpyerAdmin.jar) and the jar that is used for compatibility with command plugins (SpyerAdminCommands.jar).
     
  9. Offline

    RemoteView

    When I try to use the commands I get "An internal error occurred while attempting to perform this command." I'm not exactly sure how to fix it, or what it means? :eek:
     
  10. Offline

    nickguletskii

    Output please.
     
  11. Offline

    RemoteView

    Code:
    00:11:22 [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'spy'
    in plugin SpyerAdmin v1.4 stable
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:37)
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:12
    9)
            at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:2
    94)
            at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.
    java:714)
            at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:680)
    
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:673)
            at net.minecraft.server.Packet3Chat.a(Packet3Chat.java:32)
            at net.minecraft.server.NetworkManager.b(NetworkManager.java:223)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:75)
            at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
            at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:431)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:341)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    Caused by: java.lang.NoClassDefFoundError: com/nijiko/permissions/PermissionHand
    ler
            at nickguletskii200.SpyerAdmin.SpyerSettings.canUse(Unknown Source)
            at nickguletskii200.SpyerAdmin.SpyerSettings.isSpy(Unknown Source)
            at nickguletskii200.SpyerAdmin.SpyerAdmin.onCommand(Unknown Source)
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:35)
            ... 12 more
    Caused by: java.lang.ClassNotFoundException: com.nijiko.permissions.PermissionHa
    ndler
            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)
            ... 16 more
     
  12. Offline

    nickguletskii

    Do you have permissions?
     
  13. Offline

    RemoteView

    Yes.
     
  14. Offline

    nickguletskii

    Link to the OP of those permissions?
     
  15. Offline

    RemoteView

  16. Offline

    nickguletskii

  17. Offline

    MJE

    Hmm, does it still support permission 2.7.4?
     
  18. Offline

    nickguletskii

    Yes, in fact it encourages 2.7.4.
     
  19. Offline

    MJE

    Figured :) It works fine now. Either had a couple of bad downloads or a case of the "Mondays"! Anyway thanks for the help and the work!
     
  20. Offline

    robras

    How do i fix so admins cant see people who is invisible? i want to mess a little with my friend who is an admin :)
     
  21. Offline

    nickguletskii

    Read the thread.
     
  22. Offline

    Sh4d0w

    the server need longer to stop if spyer is installed.

    is there a problem with the plugin?
     
  23. Offline

    nickguletskii

    It is configurable. Please see the configuration section.
     
  24. Offline

    Sh4d0w

    where exactly?
    nothing found
     
  25. Offline

    Kainzo

  26. Offline

    nickguletskii

    What version of permissions? :/
    Damned permissions plugins, so idiotic...

    EDIT: Also, why do you have syncWithScheduler = false? It isn't recommended.
    EDIT 2: Actually, this doesn't necessarily mean you are using the timers... Hmm, looks like Permissions really hates async calls. How frequently does this happen?
     
  27. Offline

    Kainzo

    Under heavy load - we get 1-5 ticks on our server (90+ players)
    Why would we want to sync with a system that is constantly behind?
     
  28. Offline

    nickguletskii

    Heh, make the refreshRate bigger in the config file.

    Also, what do you mean by "we get 1-5 ticks on our server"? The cache should only allow it to use permissions every 4 seconds at max.

    Oh, and what do you mean by "sync with a system that is constantly behind"?

    EDIT: I might add packet events and push a commit to bukkit. That would remove the need for tasks.
     
  29. Offline

    Kainzo

    Since we really don't talk - I'll explain my setup.

    We run a very large server - on great hardware. However, with pushing the max players above 80 - we see that there is an -extreme- tick degradation. Normal ticks should be 15-20 - we currently see 1-5 ticks every second.

    So with sub 60 players, we get 15/20 ticks
    with 80+players we see 1-5/20 ticks

    The current Bukkit Scheduler system runs along side the ticks - the ticks are the heartbeat of the scheduler - so if the ticks aren't performing correctly or are behind - anything that uses the scheduler will be adjusted accordingly. Hence my reason to stay away from it.

    I will increase the refresh time and move back to the scheduler but I do have my worries.
     
  30. Offline

    Cookieee

    I tried using that SpyerInstaller to patch my essentials.jar so that it would fix /who, /msg and /list so people couldn't see you, but it seems to fully break.
    This came up when it tried to load the spyer plugins on server boot:
    Code:
    2011-06-20 16:35:08 [SEVERE] Could not load 'plugins/SpyerAdmin.jar' in folder 'plugins':
    java.util.zip.ZipException: error in opening zip file
    	at java.util.zip.ZipFile.open(Native Method)
    	at java.util.zip.ZipFile.<init>(ZipFile.java:127)
    	at java.util.jar.JarFile.<init>(JarFile.java:135)
    	at java.util.jar.JarFile.<init>(JarFile.java:99)
    	at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:59)
    	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)
    2011-06-20 16:35:10 [SEVERE] Error occurred while enabling SpyerAdminCommands v1.4 stable (Is it up to date?): null
    java.lang.NullPointerException
    	at nickguletskii200.SpyerAdmin.SpyerAdminCommands.onEnable(Unknown Source)
    	at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:125)
    	at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:799)
    	at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:253)
    	at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:140)
    	at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:118)
    	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)
    And whenever someone tries to use essentails commands that it patches (/list, /whjo, etc) it comes up with:
    Code:
    2011-06-20 16:35:13 [SEVERE] Exception caught in SpyerAdmin! Exception ID CMD1308580513316. Please upload spyeradmin.log and notify the author (nickguletskii200).
    2011-06-20 16:35:13 [SEVERE] Exception caught in SpyerAdmin! Exception ID CMD1308580513316. Please upload spyeradmin.log and notify the author (nickguletskii200)
    This is what is spammed in the spyeradmin.log file:
    Code:
    nickguletskii200.SpyerAdmin.SpyerAdminCommands.onCommand(Unknown Source)
    org.bukkit.command.PluginCommand.execute(PluginCommand.java:35)
    org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:128)
    org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:279)
    net.minecraft.server.MinecraftServer.b(MinecraftServer.java:428)
    net.minecraft.server.MinecraftServer.h(MinecraftServer.java:413)
    net.minecraft.server.MinecraftServer.run(MinecraftServer.java:309)
    net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    [2011/06/20 16:35:29][INFO]END EXCEPTION REPORT: WHILE EXECUTING COMMAND. ID: CMD1308580529794
    [2011/06/20 16:36:06][INFO]Command issued: msg
    [2011/06/20 16:36:06][INFO]BEGIN EXCEPTION REPORT: WHILE EXECUTING COMMAND. ID: CMD1308580566590
    [2011/06/20 16:36:06][ERROR]Exception ID CMD1308580566590:
    null
    Any help, anyone? :C

    edit: It worked fine before attempting to patch the plugins.
     
  31. Offline

    nickguletskii

    Yes, I understand your problem. I couldn't do anything about it because there was no API for packet management, which meant that there isn't any proper way of finding out if the player can see the other player or not. Today I started work on packet events and hopefully they will be ready for tomorrow - if the bukkit team will pull it, I will scrap all the scheduler tasks and use events instead.
     

Share This Page