[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

    Shasharala

    I get this error when running on CB#733.
    2011-04-27 10:47:36 [SEVERE] sun.org.mozilla.javascript.internal.WrappedException: Wrapped java.lang.ClassNotFoundException: com.earth2me.essentials.Console (<Unknown source>#111) in <Unknown source> at line number 111
    It still says that the program is active, but I yet have had a chance to test it in-game...
     
  3. Offline

    nickguletskii

    Yes. None of the changes break this plugin.
    It should've updated. If it didn't, do so manually.
    You probably don't have Essentials. Use another setup case.
     
  4. Offline

    evanejk

    This breaks pms and the who/playerlist on my server.
     
  5. Offline

    Psycho Robot

    Do you use essentials?
     
  6. Offline

    Tim Yong

    Greetings and thanks for sharing this plugin. For weeks the "/list" command on my server has done nothing. Today I discovered that taking SpyerAdmin out allows /list to work once more. Running the latest version of Spyer (v. 1.0) on CraftBukkit #733 returns this error:

    Code:
    2011-04-27 22:59:13 [INFO] There are 2 out of a maximum 40 players online.
    2011-04-27 22:59:13 [SEVERE] javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: TypeError: Cannot call method "getSettings" of null (<Unknown source>#28) in <Unknown source> at line number 28
    2011-04-27 22:59:13 [SEVERE]     at com.sun.script.javascript.RhinoScriptEngine.invoke(Unknown Source)
    2011-04-27 22:59:13 [SEVERE]     at com.sun.script.javascript.RhinoScriptEngine.invokeFunction(Unknown Source)
    2011-04-27 22:59:13 [SEVERE]     at nickguletskii200.SpyerAdmin.CustomHandling.who(Unknown Source)
    2011-04-27 22:59:13 [SEVERE]     at nickguletskii200.SpyerAdmin.SpyerAdmin.onCommand(Unknown Source)
    2011-04-27 22:59:13 [SEVERE]     at org.bukkit.command.PluginCommand.execute(PluginCommand.java:35)
    2011-04-27 22:59:13 [SEVERE]     at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:85)
    2011-04-27 22:59:13 [SEVERE]     at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:247)
    2011-04-27 22:59:13 [SEVERE]     at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:394)
    2011-04-27 22:59:13 [SEVERE]     at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:379)
    2011-04-27 22:59:13 [SEVERE]     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:285)
    2011-04-27 22:59:13 [SEVERE]     at net.minecraft.server.ThreadServerApplication.run(SourceFile:394)
     
  7. Offline

    nickguletskii

    Please follow the instructions carefully.
    Check your repo settings. It shouldn't be set for Essentials, because you don't have them.
    Code:
        var pl = Server.getPluginManager().getPlugin("Essentials");
        if (pl.getSettings().getSortListByGroups()) {
    These are lines 27&28. Null obviously has no method called "getSettings"
     
  8. Offline

    Pomme72

    Thank you so much, work perfectly !
     
  9. Offline

    Tim Yong

    Eureka! When I copy and pasted the vanilla comands update link for repo.config I incredibly forgot to copy a letter. :D
     
  10. Offline

    Exidous

    ok i removed the plugin now /list wont work for anyone. Do you know how i can fix this?? yes im running essentials.
     
  11. Offline

    nickguletskii

    Redownload Essentials.
     
  12. Offline

    evanejk

    Yea it broke mine too
     
  13. Offline

    Psycho Robot

    it didn't break it >_<

    it disabled those commands in essentials on purpose because they made it possible for people to see admins that were hiding (the "list" command still reported invisible admins as online)
     
  14. Offline

    Exidous

    yeah it worked like it should....nice plugin, jsut didnt need it.
     
  15. Offline

    Greylocke

    I know that CommandBook is still a work in progress, but here are my results (CB733 running CommandBook)
    on boot:
    Code:
    2011-04-29 10:59:29 [INFO] SpyerAdmin has completed updating the script successfully.
    2011-04-29 10:59:29 [SEVERE] null loading SpyerAdmin v1.0 (Is it up to date?)
    java.lang.NullPointerException
        at nickguletskii200.SpyerAdmin.CustomHandling.<init>(Unknown Source)
        at nickguletskii200.SpyerAdmin.SpyerAdmin.onEnable(Unknown Source)
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:127)
    
    when trying the /list command:
    Code:
    2011-04-29 10:59:48 [WARNING] Unexpected exception while parsing console command
    org.bukkit.command.CommandException: Unhandled exception executing command 'list' in plugin SpyerAdmin v1.0
    
    Am I doing something wrong, or is this just the current state of the experimental CommandBook script?
     
  16. Offline

    nickguletskii

    I am going to see what causes that in a few minutes.
    EDIT: Do you have script.js in plugins/Spyer?
     
  17. Offline

    Greylocke

    yes. First couple lines are:
    Code:
    var plugin=Server.getPluginManager().getPlugin("CommandBook");
    var consleContextClass = CLLoader.getCl("plugins/WorldEdit.jar",
    
    I don't see /list called out in the script. Maybe /list is just an alias of /who?
     
  18. Offline

    evanejk

    Well then the /who and /list commands from the plugin must be broke.
     
  19. Offline

    nickguletskii

    Well... It isn't to do with the script, probably. They usually throw ScriptExceptions (or whatever...). I think it might be this line:
    Code:
            jsEngine = mgr.getEngineByName("JavaScript");
    
    If your Java version is not up to date, please update it... I think my plugin can't find the JavaScript engine.
     
  20. Offline

    Greylocke

    I'm at Java 1.6.0_17
     
  21. Offline

    nickguletskii

    Hmm... Shouldn't be happening then... I don't know what else to try...
     
  22. Offline

    Greylocke

    hm :'(

    I removed ALL other plugins (even Permissions!) so that the only plugins loading were SpyerAdmin and SpyerFun. I changed the repo.conf link to Vanilla. Fun loaded, but Admin still throws:
    Code:
    2011-04-30 11:31:45 [INFO] Permission system not detected, defaulting to OP
    2011-04-30 11:31:45 [INFO] SpyerAdmin has completed updating the script successfully.
    2011-04-30 11:31:45 [SEVERE] null loading SpyerAdmin v1.0 (Is it up to date?)
    java.lang.NullPointerException
        at nickguletskii200.SpyerAdmin.CustomHandling.<init>(Unknown Source)
        at nickguletskii200.SpyerAdmin.SpyerAdmin.onEnable(Unknown Source)
    I tried both the "generous" and "sem-direct" links, just in case there were different versions. No luck.

    Any ideas? I'd even be up for a Skype/TeamViewer if you are. This is a critical part of an event I was hoping to run on the server this weekend. ... if I can get it working!
     
  23. Offline

    benna183

    2011-04-30 14:57:02 [INFO] Starting minecraft server version Beta 1.5_02
    2011-04-30 14:57:02 [INFO] Loading properties
    2011-04-30 14:57:02 [INFO] Starting Minecraft server on *:25565
    2011-04-30 14:57:02 [INFO] This server is running Craftbukkit version git-Bukkit-0.0.0-706-gf53e007-b740jnks (MC: 1.5_02)
    2011-04-30 14:57:03 [INFO] Preparing level "world"
    2011-04-30 14:57:03 [INFO] Preparing start region
    2011-04-30 14:57:04 [INFO] Preparing spawn area: 12%
    2011-04-30 14:57:05 [INFO] Preparing spawn area: 65%
    2011-04-30 14:57:06 [INFO] [Permissions] (Phoenix) was Initialized.
    2011-04-30 14:57:07 [INFO] Found permissions. Using them for SpyerAdmin.
    2011-04-30 14:57:07 [INFO] SpyerAdmin has completed updating the script successfully.
    2011-04-30 14:57:08 [SEVERE] null loading SpyerAdmin v1.0 (Is it up to date?)
    java.lang.NullPointerException
    at nickguletskii200.SpyerAdmin.CustomHandling.(Unknown Source)
    at nickguletskii200.SpyerAdmin.SpyerAdmin.onEnable(Unknown Source)
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:127)
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:632)
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:218)
    at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:116)
    at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:94)
    at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:217)
    at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:204)
    at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:144)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:259)
     
  24. Offline

    Greylocke

    ^^^ that is exactly what I'm seeing. I'm also running CB740.
     
  25. Offline

    nickguletskii

    @Greylocke @benna183 Does that happen with any script? Also, please add more info... I can't replicate:
    Console (open)
    [Lnet.minecraft.server.Statistic;@37fb1e
    146 recipes
    [Lnet.minecraft.server.Statistic;@37fb1e
    16 achievements
    20:14:45 [INFO] Starting minecraft server version Beta 1.5_02
    20:14:45 [INFO] Loading properties
    20:14:45 [INFO] Starting Minecraft server on *:25565
    20:14:45 [INFO] This server is running Craftbukkit version git-Bukkit-0.0.0-706-gf53e007-b740jnks (MC: 1.5_02)
    20:14:45 [INFO] Preparing level "world"
    20:14:45 [INFO] Preparing start region
    20:14:46 [INFO] Preparing spawn area: 97%
    20:14:47 [INFO] GroupManager - INFO - Scheduled Data Saving is set for every 10 minutes!
    20:14:47 [INFO] GroupManager version 1.0(alpha-5) is enabled!
    20:14:47 [INFO] Creating config from template: /home/nick/Desktop/abc/plugins/Essentials/config.yml
    20:14:47 [INFO] Creating empty config: /home/nick/Desktop/abc/plugins/Essentials/spawn.yml
    20:14:47 [INFO] Creating config from template: /home/nick/Desktop/abc/plugins/Essentials/worth.yml
    20:14:47 [INFO] Creating empty config: /home/nick/Desktop/abc/plugins/Essentials/jail.yml
    20:14:47 [INFO] Loaded Essentials build 2.2.7 maintained by Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo and ceulemans.
    20:14:48 [INFO] Loaded EssentialsProtect build 2.2.7 maintained by Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo and ceulemans.
    20:14:48 [INFO] Loaded EssentialsChat build 2.2.7 by Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo and ceulemans.
    20:14:48 [INFO] Loaded EssentialsSpawn build 2.2.7 maintained by Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo and ceulemans.
    20:14:48 [INFO] Fake Permissions version 2.5.1 is enabled!
    20:14:48 [INFO] Found permissions. Using them for SpyerAdmin.
    20:14:51 [INFO] SpyerAdmin has completed updating the script successfully.
    20:14:51 [INFO] SpyerAdmin module version 1.0, a spying utility for administrators and moderators, is active. Part of the Spyer package by [nickguletskii200]
    20:14:51 [INFO] Found permissions. Using them for SpyerAdmin.
    20:14:51 [INFO] SpyerFun module version 1.0, a spying utility for normal players, is active. Part of the Spyer package by [nickguletskii200]
    20:14:51 [INFO] Done (0.602s)! For help, type "help" or "?"
    >
     
  26. Offline

    Sparx

    works for commandbook with me at least. one thing that isnt simulated correctly is /who. it removes my name, but still says there is 2 people online when it should have shown only 1

    Edit: @nickguletskii I fixed it, modified the script

    Code:
    var plugin=Server.getPluginManager().getPlugin("CommandBook");
    var consleContextClass = CLLoader.getCl("plugins/WorldEdit.jar",
            "com.sk89q.minecraft.util.commands.CommandContext");
    var _cmc=java.lang.reflect.Array.newInstance(java.lang.Class, 1);
    _cmc[0]=java.lang.reflect.Array.newInstance(java.lang.String, 0).getClass();
    var cmccon=consleContextClass.getConstructor(_cmc);
    function playerMsg(sender, argss, commandLabel) {
        try
        {
            var receiver = plugin.matchPlayerOrConsole(sender, argss[0]);
        }
        catch(err)
        {
            sender.sendMessage(ChatColour.get("Red")+"No players matched query.");
            //sender.sendMessage(ChatColour.get("Red")+err.getMessage());
            return;
        }
        if(!SpyerAdmin.isQuit(receiver) || SpyerAdmin.isSeeAll(sender))
        {
            var messagee = joined(argss,1);
            receiver.sendMessage(ChatColour.get("Gray") + "(From " + plugin.toName(sender)
                    + "): " + ChatColour.get("White") + messagee);
    
            sender.sendMessage(ChatColour.get("Gray") + "(To " + plugin.toName(receiver)
                    + "): " + ChatColour.get("White") + messagee);
            plugin.getSession(sender).setLastRecipient(receiver);
            plugin.getSession(receiver).setNewLastRecipient(sender);
        }
        else
        {
            sender.sendMessage(ChatColour.get("Red")+"No players matched query.");
            return;
        }
    
    }
    function joined(args, initialIndex)
    {
        initialIndex = initialIndex + 0;
        var buffer = new java.lang.StringBuilder(args[initialIndex]);
        for (i = initialIndex + 1; i < args.length; i++) {
            buffer.append(" ").append(args[i]);
        }
        return buffer.toString();
    }
    function reply(sender, argss, commandLabel) {
        var messagee = joined(argss,0);
        var receiver;
        try
        {
            var lastRecipient = plugin.getSession(sender).getLastRecipient();
        }
        catch(err)
        {
            sender.sendMessage(ChatColour.get("Red")+"No players matched query.");
            return;
        }
        if (lastRecipient != null) {
            receiver = plugin.matchPlayerOrConsole(sender, lastRecipient);
        } else {
            sender.sendMessage(ChatColor.RED + "You haven't messaged anyone.");
            return;
        }
        if(SpyerAdmin.isQuit(receiver))
        {
            if(!SpyerAdmin.isSeeAll(sender)){
                sender.sendMessage(ChatColour.get("Red")+"No players matched query.");
                return;
            }
        }
        receiver.sendMessage(ChatColour.get("Gray") + "(From " + plugin.toName(sender)
                + "): " + ChatColour.get("White") + messagee);
        sender.sendMessage(ChatColour.get("Gray") + "(To " + plugin.toName(receiver)
                + "): " + ChatColour.get("White") + messagee);
        plugin.getSession(receiver).setNewLastRecipient(sender);
    }
    function who(sender)
    {
            var out = new java.lang.StringBuilder();
            var online = plugin.getServer().getOnlinePlayers();
            if (online.length == 0) {
                sender.sendMessage("0 players are online.");
                return;
            }
            var filter = null;
            if (filter == null) {
                out.append(ChatColour.get("Gray") + "Online (");
                out.append(ChatColour.get("Gray") + "" + (online.length-SpyerAdmin.numOfHidenPlayers()));
                out.append(ChatColour.get("Gray") + "): ");
                out.append(ChatColour.get("White"));
            } else {
                out.append(ChatColour.get("Gray") + "Found players (out of ");
                out.append(ChatColour.get("Gray") + "" + (online.length-SpyerAdmin.numOfHidenPlayers()));
                out.append(ChatColour.get("Gray") + "): ");
                out.append(ChatColour.get("White"));
            }
            var first = true;
        for(i=0;i<online.length;i++)
        {
            //for (player in online) {
            var player=online[i];
                if (filter != null && !player.getName().toLowerCase().contains(filter)) {
                    break;
                }
            if(!SpyerAdmin.isQuit(player) || SpyerAdmin.isSeeAll(sender)){
                if (!first) {
                    out.append(", ");
                }
                out.append(player.getName());
                first = false;
            }
            }
            if (first) {
                sender.sendMessage(ChatColour.get("Red") + "No players (out of "
                        + (online.length-SpyerAdmin.numOfHidenPlayers()) + ") matched '" + "" + "'.");
                return;
            }
            sender.sendMessage(out.toString());
    }
    function playerLeaving(plr) {// Called when a player pseudo-leaves
        Server.broadcastMessage(new java.lang.StringBuilder()
                .append(ChatColour.get("Yellow")).append(plr.getName())
                .append(" left the game.").toString());
    }
    function playerJoining(plr) {// Called when a player pseudo-joins
        Server.broadcastMessage(new java.lang.StringBuilder()
                .append(ChatColour.get("Yellow")).append(plr.getName())
                .append(" joined the game.").toString());
    }
    
    
    Specifically this part

    Code:
            if (filter == null) {
                out.append(ChatColour.get("Gray") + "Online (");
                out.append(ChatColour.get("Gray") + "" + (online.length-SpyerAdmin.numOfHidenPlayers()));
                out.append(ChatColour.get("Gray") + "): ");
                out.append(ChatColour.get("White"));
            } else {
                out.append(ChatColour.get("Gray") + "Found players (out of ");
                out.append(ChatColour.get("Gray") + "" + (online.length-SpyerAdmin.numOfHidenPlayers()));
                out.append(ChatColour.get("Gray") + "): ");
                out.append(ChatColour.get("White"));
            }
    
    tell me when you fix it so I can add the repo again :)
     
  27. Offline

    YAY987

    Could you make it so that the spot is configurable instead of just using the hotbar? I want to have it so that if I have a certain helmet in the helmet spot then I turn invisible (Hades!). This would be awesome for the Mount Olympus server I am making!
     
  28. Offline

    Darkedge

    I noticed that players can teleport to invisible players, so if I'm not using /quit and someone tries to go search for me, they'd "find" me, ideas?
     
  29. Offline

    Liger_XT5

    Replace what teleport plugin you are using with Tele++, it allows you to toggle the ability to turn off teleporting to you. If you are using commandbook, just take the permissions out, or use a customized version.
     
  30. Offline

    Greylocke

    I don't know of any other plugins that I'm loading that call javascript. Everything is all java in jar files. As far as more info.. what else do you need to know? Tested with CB733 and CB740. Running on CentOS 5.3....
     
  31. Offline

    nickguletskii

    Thank you so much! Updated.

    Maybe...
    That is what is supposed to be happening. This plugin isn't supposed to hide you from moderators/ops. If you really need it, do what @Liger_XT5 said.

    Okay. Update on the NullPointer exception: it is NOT caused by this plugin itself. Here is a log of me running @Greylocke 's server on my computer:

    Code:
    08:11:44 [INFO] LogBlock disabled.
    08:11:44 [INFO] Spells version 0.996 is enabled
    08:11:44 [INFO] Found permissions. Using them for SpyerAdmin.
    08:11:45 [INFO] SpyerAdmin has completed updating the script successfully.
    08:11:45 [INFO] SpyerAdmin module version 1.0, a spying utility for administrators and moderators, is active. Part of the Spyer package by [nickguletskii200]
    08:11:45 [INFO] Found permissions. Using them for SpyerAdmin.
    08:11:45 [INFO] SpyerFun module version 1.0, a spying utility for normal players, is active. Part of the Spyer package by [nickguletskii200]
    08:11:45 [INFO] PickBoat version 0.3.5 is enabled!
    08:11:45 [INFO] [NETHRAR] Permissions enabled.
    08:11:45 [INFO] [NETHRAR] Listening for player respawns.
    08:11:45 [INFO] [NETHRAR] Normal world name: world
    08:11:46 [INFO] Preparing spawn area for NetherWorld, 85%
    08:11:47 [INFO] [NETHRAR] Nether world name: NetherWorld
    08:11:47 [INFO] [NETHRAR] Normal : Nether scale: 8:1
    08:11:47 [INFO] [NETHRAR] Nethrar v1.3 enabled.
    08:11:47 [INFO] Done (0.807s)! For help, type "help" or "?"
    
    Also @benna183

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

Share This Page