[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. Code:
     [SEVERE] Could not pass event PLAYER_ITEM to Spyer
    java.lang.NullPointerException
            at nickguletskii200.SpyerSettings.getId(Unknown Source)
            at nickguletskii200.SpyerPlayerListener.onPlayerItem(Unknown Source)
            at org.bukkit.plugin.java.JavaPluginLoader$9.execute(JavaPluginLoader.java:165)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:59)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:225)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:448)
            at net.minecraft.server.Packet15Place.a(SourceFile:57)
            at net.minecraft.server.NetworkManager.a(SourceFile:230)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:75)
            at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
            at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:357)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:272)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    Happends on right click of any item in your hand.
    CB build 493
     
  3. Offline

    nickguletskii

    I can't replicate it. That may be to do with incorrect setup or old craftbukkit build.
     
  4. Offline

    Glen

    One thing that would be nice is if /spy and /quit passed there commands to the console so we can keep tabs on our moderators by looking in the server logs.
     
  5. Offline

    Lookatmego

    hey is there a way i can get an older jar that would go with cb 493 plz??thank you
     
  6. Offline

    nickguletskii

    Hmm, maybe...

    The latest version should support it, and should work on newer versions too.
     
  7. Offline

    SweetCraft Girl

     
  8. Code:
    17:08:04 [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'spy' in plugin Spyer v0.203
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:37)
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:80)
            at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:183)
            at net.minecraft.server.NetServerHandler.c(NetServerHandler.java:645)
            at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:608)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:602)
            at net.minecraft.server.Packet3Chat.a(SourceFile:24)
            at net.minecraft.server.NetworkManager.a(SourceFile:230)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:76)
            at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
            at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:357)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:272)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    Caused by: java.lang.NullPointerException
            at nickguletskii200.SpyerPlayerListener.reappear(Unknown Source)
            at nickguletskii200.Spyer.onCommand(Unknown Source)
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:35)
            ... 12 more
    CB531
    Happends when trying /spy while already hiding with sugar, only /spy breaks /quit etc keep working.
    Fixes on restart.
     
  9. Offline

    souterain

    Nice plugin, only thing is Dynmap still shows players as logged in and gives their position and movement when invisible. Can they be hidden from this as well?

    CB516 / Spyer 0.2

    And can the plugin be added to CraftBukkitUpToDate please? Thanks!
     
  10. Offline

    nickguletskii

    Going to fix this now.

    Probably isn't broken, but going to check (I have another WIP plugin to get chopping on)
    [MERGETIME="1300201267"][/MERGETIME]

    Dynmap already has this built in! I actually thought that I would have to reimplement that failed HiddenPlayerList class/communication interface... :oops:
     
  11. Offline

    ZachBora

    If this doesn't show hidden players in my users' playerlist command thing I might install it on our server :D
     
  12. Offline

    parker_digg

    This is a really fun plugin, my server is suddenly full of sugar-cane farms haha.

    Awesome plugin, would recommend to anyone! Love the /quit feature as well!
     
  13. Works flawlessly now!
    CB531
     
  14. Offline

    nickguletskii

    Nope, there is still a bug... I am going to fix it tomorrow, sorry, very tired... :/
     
  15. Offline

    Rick

    yeah using 531 and it says it works but people still see me :( also /spy and /quit only works for OPs? or can i give permission to others?
     
  16. Offline

    nickguletskii

    See the usage instructions for info on how to add people to "spies" and "simulants" lists. Also, if the people are on "see all" list, they can see you no matter what.
     
  17. Offline

    parker_digg

    When I teleport to someone, they can see me until i redo the /spy 2x
     
  18. Offline

    nickguletskii

    Ooooh... Sorry, I forgot a very stupid check... Ha ha ha! Fixing.

    Fixed.
     
  19. Offline

    parker_digg

    Thanks! Is it uploaded and ready to go?
     
  20. Offline

    nickguletskii

    Yes! My ant script uploads it for me ( I am a very lazy person, right? )
     
  21. Offline

    parker_digg

    I re-downloaded and I confirmed that it does work after I teleport, but once I came out of spy and tried to use it again, the game told me "An internal error occurred while trying to perform this command." Console error is below. This is when I tried to go back into /spy the second time.

    [​IMG]

    EDIT: A little more info; I can still do /quit afterwords and it mimics the logout, but the invis feature does not take effect. And then when I /quit to show back online, I get the inter error blahblahblah thing. This is all after it broke with /spy
     
  22. Offline

    nickguletskii

    Okay, my code is getting very unorganised. Going to do a complete rewrite on saturday + going to separate the fun part and the admin part into different jars.

    Did a rewrite. Please post any bugs you encounter.

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

    Dawodo

    Oh nice - how much configuration is needed if your just using the Admin Version?
     
  24. Offline

    nickguletskii

    You will only need to set up "spies" and "see all" list. You can use the commands or straightforward editing to set the list. Please do note that the command configuration of "see all" list is only in the SpyerFun package.
     
  25. Offline

    Dawodo

    Mh... I've installed it today but on entering /spy or any other command you defined, it just prints "/spy" in the chat and I'm not invisible :S
     
  26. Offline

    nickguletskii

    Hopefully fixed.

    P.S.: Ha ha, web proxy! I knew it!
     
  27. Offline

    Dawodo

    Code:
    ... 8 more
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:105)
    at java.lang.Class.forName(Class.java:264)
    at java.lang.Class.forName0(Native Method)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:336)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:30)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    Caused by: java.lang.ClassNotFoundException: nickguletskii200.Spyer
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:246)
    at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:131)
    at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:191)
    at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:204)
    at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:61)
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:107)
    at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:159)
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:113)
    org.bukkit.plugin.InvalidPluginException
    > 20:08:43 [SEVERE] Could not load plugins/SpyerConfig.jar in plugins: null 
    Bukkit Build 556
    SpyerAdmin itself seems to work (at least it says something like "you are now invisible")
    SpyerConfig doesn't work (see Error) and the commands in the .yml won't do anything.
    At the moment there are way too many Players online to test this heavily, I'm sorry - will try tomorrow if it is just my fault :/
     
  28. Offline

    nickguletskii

    Probably fixed... Damned plugin config files...
     
  29. Offline

    Dawodo

    Yep thanks, no more errors... but i think the plugin doesn't always work - sometimes I'm invisible when I switch to Visible Mode, sometimes nothing happens.
    Will do further tests tonight.
     
  30. Offline

    nickguletskii

    That is due to packet loss... I am not sure if I can do anything about that. The same goes with other minecraaft entities - sometimes you can see the falling sand get stuck, or a ghost minecart.
     
  31. Offline

    GFernie

    Great plugin :) can you use a static download link or submit this to CB update so that it can automatically be updated, thanks.
     

Share This Page