FakePlayersOnline
FakePlayersOnline
This plugin allows you to add additional fake players in your server player list, which you see when press "tab"-key in game. Fake players could be added manually or you can use NPC's name to show at player list.
This plugin is using library ProtocoLib to provide a fake information at server list menu. If ProtocolLib is not installed you will not be able to add fake players to your server.
Features
- Colorize real players name in list. In addition you can define color for name of your server admin group
- Display fake player names in list.
- Display NPC's (provided by Citizens plugin) name in list
- Add/remove fake players
- Override /list command and show same information as in TAB-list
- Fake serverlist menu to show fake counters for online players, reserverd slots and motd.
Video tutorial
Review by ServerMiner.
German Turorial by LegendSmile: http://dev.bukkit.org/bukkit-plugins/fakeplayers/pages/main/more-video/
Why do I want it?
You need to install FakePlayersOnline if you need to:
- Change color of player list
- Show a fake information about logged-in players;
- Show NPC's name to your players;
- Show an additional "moto" or short message in player list;
How to use it?
- Install FakePlayersOnline and ProtocoLib
- Add fake players in list
- Press tab key
Commands
- /fpo help - display help page
- /fpo lock - lock (and unlock) server. When server turns to locked all players will be kicked.
- /fpo real - toggle overriding real players in list
- /fpo add <fakeplayer> - add fake player to list
- /fpo join <fakeplayer> - add fake player to list and broadcast join-message
- /fpo del <fakeplayer> - remove fake player from list
- /fpo leave <fakeplayer> - remove fake player from the list and broadcast leave-message
- /fpo list - display fake playerlist
- /fpo fake - toggle displaying fake players in list
- /fpo npc - toggle displaying NPC's names in list
- /fpo serverlist - toggle fake online info at server list menu
- /fpo slots [fake reserved slots] - toggle faking the reserved slots counter or set it's value
- /fpo listcmd [command1,command2..] - toogle using the /list command overriding, or define /list command aliases
- /fpo online [fake players online] - toggle faking the fixed online counter or set it's value
- /fpo motd [MOTD] - toggle using the alternative MOTD or set it's value
- /fpo cfg - display current configuration
Permissions
- fakeplayers.config - allows to use all commands of the FakePlayersOnline
- fakeplayers.canseehidden - players with this permission will see name of hidden players in list (FakeQuit, Vanish, etc...)
- fakeplayers.red - will color name of players with same permission to red (by default, or any other color defined in config)
- fakeplayers.unlock - allows player to ignore lock-state of server (can connect to locked server, will not kicked after /fpo lock command)
Metrics and update checker
FakePlayersOnline includes two features that use your server internet connection. First one is Metrics, using to collect information about the plugin (versions of plugin, of Java.. etc.) and second is update checker, checks new releases of FakePlayersOnline after plugin startup and every half hour. This feature is using API provided by dev.bukkit.org. If you don't like this features you can easy disable it. To disable update checker you need to set parameter "version-check" to "false" in config.yml. Obtain more information about Metrics and learn how to switch it off, you can read here.
Like this plugin?
You can buy me a chocolate!
- Plugin downloads: 70000
- Chocolates received: 2
When you send a teleport /tpa to a fake players it says "Player not found", is there away to make it say that the teleport was sent through?
When you send a teleport /tpa to a fake players it says "Player not found", is there away to make it say that the teleport was sent through?
@fromgate
Please check my ticket, thanks :)
http://dev.bukkit.org/bukkit-plugins/fakeplayers/tickets/7-fpo-add-player-gives-error-output/
@MineCraftMyph
i would also like this feature please
@copiepasta
What version of spigot and ProtocolLib you using?
Bump into this error...
12:19:14 AM [SEVERE] Could not pass event PlayerJoinEvent to FakePlayersOnline v0.1.6 12:19:14 AM org.bukkit.event.EventException 12:19:14 AM at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) [spigot.jar:git-Spigot-1649] 12:19:14 AM at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) [spigot.jar:git-Spigot-1649] 12:19:14 AM at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:514) [spigot.jar:git-Spigot-1649] 12:19:14 AM at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:499) [spigot.jar:git-Spigot-1649] 12:19:14 AM at net.minecraft.server.v1_7_R4.PlayerList.c(PlayerList.java:265) [spigot.jar:git-Spigot-1649] 12:19:14 AM at net.minecraft.server.v1_7_R4.PlayerList.a(PlayerList.java:152) [spigot.jar:git-Spigot-1649] 12:19:14 AM at net.minecraft.server.v1_7_R4.LoginListener.c(LoginListener.java:119) [spigot.jar:git-Spigot-1649] 12:19:14 AM at net.minecraft.server.v1_7_R4.LoginListener.a(LoginListener.java:44) [spigot.jar:git-Spigot-1649] 12:19:14 AM at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:189) [spigot.jar:git-Spigot-1649] 12:19:14 AM at net.minecraft.server.v1_7_R4.ServerConnection.c(ServerConnection.java:81) [spigot.jar:git-Spigot-1649] 12:19:14 AM at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:734) [spigot.jar:git-Spigot-1649] 12:19:14 AM at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:289) [spigot.jar:git-Spigot-1649] 12:19:14 AM at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [spigot.jar:git-Spigot-1649] 12:19:14 AM at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [spigot.jar:git-Spigot-1649] 12:19:14 AM at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [spigot.jar:git-Spigot-1649] 12:19:14 AM Caused by: com.comphenix.protocol.reflect.FieldAccessException: Field index must be within 0 - count 12:19:14 AM at com.comphenix.protocol.reflect.StructureModifier.write(StructureModifier.java:285) [?:?] 12:19:14 AM at me.fromgate.fakeplayersonline.FPOPLib.sendFakePlayerPacket(FPOPLib.java:66) [?:?] 12:19:14 AM at me.fromgate.fakeplayersonline.FakePlayersOnline.hideShowList(FakePlayersOnline.java:211) [?:?] 12:19:14 AM at me.fromgate.fakeplayersonline.FakePlayersOnline.refreshOnlineList(FakePlayersOnline.java:205) [?:?] 12:19:14 AM at me.fromgate.fakeplayersonline.FPOUtil.onJoin(FPOUtil.java:137) [?:?] 12:19:14 AM at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [?:1.7.0_65] 12:19:14 AM at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [?:1.7.0_65] 12:19:14 AM at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [?:1.7.0_65] 12:19:14 AM at java.lang.reflect.Method.invoke(Unknown Source) [?:1.7.0_65] 12:19:14 AM at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:298) [spigot.jar:git-Spigot-1649] 12:19:14 AM ... 14 more 12:19:14 AM Caused by: java.lang.IndexOutOfBoundsException: Out of bounds 12:19:14 AM at com.comphenix.protocol.reflect.StructureModifier.write(StructureModifier.java:285) [?:?] 12:19:14 AM at me.fromgate.fakeplayersonline.FPOPLib.sendFakePlayerPacket(FPOPLib.java:66) [?:?] 12:19:14 AM at me.fromgate.fakeplayersonline.FakePlayersOnline.hideShowList(FakePlayersOnline.java:211) [?:?] 12:19:14 AM at me.fromgate.fakeplayersonline.FakePlayersOnline.refreshOnlineList(FakePlayersOnline.java:205) [?:?] 12:19:14 AM at me.fromgate.fakeplayersonline.FPOUtil.onJoin(FPOUtil.java:137) [?:?] 12:19:14 AM at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [?:1.7.0_65] 12:19:14 AM at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [?:1.7.0_65] 12:19:14 AM at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [?:1.7.0_65] 12:19:14 AM at java.lang.reflect.Method.invoke(Unknown Source) [?:1.7.0_65] 12:19:14 AM at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:298) [spigot.jar:git-Spigot-1649] 12:19:14 AM ... 14 more
Is it possible to position the fake players above real players so we can make some kind of table such as.
- Welcome - Players: - John
@Tsugaga This feature in my TODO list ;)
Could this be updated to work with voting sites? I need the vote site to see the fake players as real online players.
@ExperiencePotion
Update? What is wrong with current version?
update the plugin
Released new version. Waiting for approval (it may take a long time - my previous plugin is not approved more than seven days....)
v0.1.6
This version is not what I had planned to release. But I hope sometime new version with new features will be also released :)
You should add the ability to make the fakeplayers chat like /fpo chat [playername] [text] or something, and also the /fpo exit [playername] doesn't seem to be working with the latest 1.7.9 version.
ya i am waiting for 1.7.9 update too...
Is this supposed to happen? This happens every time I refresh the server in the multiplayer menu...
[13:18:03 ERROR]: [FakePlayersOnline] Unhandled exception occured in onPacketSending(PacketEvent) for FakePlayersOnline java.lang.IllegalArgumentException: Cannot construct profile [id1, §eNotch] at com.comphenix.protocol.wrappers.WrappedGameProfile.<init>(WrappedGameProfile.java:98) [ProtocolLib-3.4.0.jar:?] at me.fromgate.fakeplayersonline.FPOPLib$1.onPacketSending(FPOPLib.java:85) [FakePlayersOnline.jar:?] at com.comphenix.protocol.injector.SortedPacketListenerList.invokeSendingListener(SortedPacketListenerList.java:195) [ProtocolLib-3.4.0.jar:?] at com.comphenix.protocol.injector.SortedPacketListenerList.invokePacketSending(SortedPacketListenerList.java:149) [ProtocolLib-3.4.0.jar:?] at com.comphenix.protocol.injector.PacketFilterManager.handlePacket(PacketFilterManager.java:612) [ProtocolLib-3.4.0.jar:?] at com.comphenix.protocol.injector.PacketFilterManager.invokePacketSending(PacketFilterManager.java:588) [ProtocolLib-3.4.0.jar:?] at com.comphenix.protocol.injector.netty.NettyProtocolInjector.packetQueued(NettyProtocolInjector.java:281) [ProtocolLib-3.4.0.jar:?] at com.comphenix.protocol.injector.netty.NettyProtocolInjector.onPacketSending(NettyProtocolInjector.java:249) [ProtocolLib-3.4.0.jar:?] at com.comphenix.protocol.injector.netty.ChannelInjector.processSending(ChannelInjector.java:319) [ProtocolLib-3.4.0.jar:?] at com.comphenix.protocol.injector.netty.ChannelInjector.access$300(ChannelInjector.java:59) [ProtocolLib-3.4.0.jar:?] at com.comphenix.protocol.injector.netty.ChannelInjector$5.handleScheduled(ChannelInjector.java:295) [ProtocolLib-3.4.0.jar:?] at com.comphenix.protocol.injector.netty.ChannelInjector$5.onMessageScheduled(ChannelInjector.java:263) [ProtocolLib-3.4.0.jar:?] at com.comphenix.protocol.injector.netty.ChannelProxy$2.schedulingRunnable(ChannelProxy.java:100) [ProtocolLib-3.4.0.jar:?] at com.comphenix.protocol.injector.netty.EventLoopProxy.execute(EventLoopProxy.java:76) [ProtocolLib-3.4.0.jar:?] at net.minecraft.server.v1_7_R3.NetworkManager.b(NetworkManager.java:145) [spigot.jar:git-Spigot-1517] at net.minecraft.server.v1_7_R3.NetworkManager.handle(NetworkManager.java:123) [spigot.jar:git-Spigot-1517] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [?:1.7.0_45] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [?:1.7.0_45] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [?:1.7.0_45] at java.lang.reflect.Method.invoke(Method.java:606) [?:1.7.0_45] at com.comphenix.protocol.injector.netty.ChannelInjector.invokeSendPacket(ChannelInjector.java:585) [ProtocolLib-3.4.0.jar:?] at com.comphenix.protocol.injector.netty.ChannelInjector.access$400(ChannelInjector.java:59) [ProtocolLib-3.4.0.jar:?] at com.comphenix.protocol.injector.netty.ChannelInjector$6.run(ChannelInjector.java:432) [ProtocolLib-3.4.0.jar:?] at org.bukkit.craftbukkit.v1_7_R3.scheduler.CraftTask.run(CraftTask.java:58) [spigot.jar:git-Spigot-1517] at org.bukkit.craftbukkit.v1_7_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:345) [spigot.jar:git-Spigot-1517] at net.minecraft.server.v1_7_R3.MinecraftServer.v(MinecraftServer.java:635) [spigot.jar:git-Spigot-1517] at net.minecraft.server.v1_7_R3.DedicatedServer.v(DedicatedServer.java:283) [spigot.jar:git-Spigot-1517] at net.minecraft.server.v1_7_R3.MinecraftServer.u(MinecraftServer.java:583) [spigot.jar:git-Spigot-1517] at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java:489) [spigot.jar:git-Spigot-1517] at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:628) [spigot.jar:git-Spigot-1517] Caused by: java.lang.NumberFormatException: For input string: "id1" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) [?:1.7.0_45] at java.lang.Long.parseLong(Long.java:441) [?:1.7.0_45] at java.lang.Long.valueOf(Long.java:513) [?:1.7.0_45] at java.lang.Long.decode(Long.java:665) [?:1.7.0_45] at java.util.UUID.fromString(UUID.java:198) [?:1.7.0_45] at com.comphenix.protocol.wrappers.WrappedGameProfile.parseUUID(WrappedGameProfile.java:163) [ProtocolLib-3.4.0.jar:?] at com.comphenix.protocol.wrappers.WrappedGameProfile.<init>(WrappedGameProfile.java:96) [ProtocolLib-3.4.0.jar:?] ... 29 more [13:18:03 ERROR]: Parameters: net.minecraft.server.v1_7_R3.PacketStatusOutServerInfo@48597e11[ b=net.minecraft.server.v1_7_R3.ServerPing@6b63b332 timestamp=1404677883067 ]
@frogman2019
Never mind - I tried to do it without ProtocolLib
It does not work for me on version 1.7.10 or 1.7.9... Any ideas?
Also, I'm not sure but is it supposed to make it so you can't hover over the player list and see people's real names on the multiplayer server list? Cuz that's what I really need. Some of my players are from another server and being stalked isn't fun...
I need it to show like 1 person always on, but not their name unless you go In-game and TAB
Is there a way to change a real player's in-game name on the tab list?
Will this let mobs spawn even if there are no real players on the server?