DisguiseCraft
Tired of backwards EnderDragons? Upward looking chickens? Or some of the other bugs in MobDisguise? Ready to try something brand new? With DisguiseCraft we are taking a brand new approach on mob/player disguises by taking advantage of the advanced features released in the 1.1-R4 build of CraftBukkit!
Features:
- Disguise as any mob
- This includes: babies, colored sheep, sized slimes/magmacubes, tamed/aggressive wolves with colored collars, tabby/tuxedo/siamese cats, saddled pigs, villager occupations, and charged creepers
- Also unnatural slime/magmacube sizes: bigger, massive, godzilla
- You can also set the disguise on fire and hold blocks as an Enderman
- This includes: babies, colored sheep, sized slimes/magmacubes, tamed/aggressive wolves with colored collars, tabby/tuxedo/siamese cats, saddled pigs, villager occupations, and charged creepers
- Disguise as any player, including their skin, cape, and in-chat name
- The item you are holding and arm swings are shown
- Disguise as certain objects
- This includes the vehicles: boat, minecart, poweredminecart, storageminecart
- And the blocks: endercrystal, fallingblock (different materials)
- No Spout necessary! Disguised players' names are not shown in SpoutCraft (This is because the disguised player's packets are not sent to other clients)
- No Backwards EnderDragon! No messed up chicken head!
- Permissions support (All popular permissions systems)
- Multi-world permissions are supported
- Granular player-disguise nodes
- The player list doesn't show players who are disguised in your world
- The ability to see through disguises is given with a permission node (disguisecraft.seer)
- Disguises can fool mobs too! (disguisecraft.notarget & disguisecraft.notarget.strict)
- Item-pickup can be disabled while wearing a disguise
- You can disguise or undisguise other players
- You can keep your disguise even after log out (Activate in the config)
- Utilizes the Plugin Metrics service
- All of the commands have tab completion
- Developer API to allow for plugin integration
Commands:
Legend: <required> [optional]
- /d or /dis or /disguise [mobname/materialname] - Disguise as a mob or falling block of a given material (If no mob is given, the available disguises are listed) {also gives current disguise}
- /d baby [mobname] - Disguise as a baby mob (If no mob is given, the current disguise is used)
- /d <color> [sheep/wolf] - Disguise as a colored sheep or a wolf with a colored collar
- /d charged creeper - Disguise as a charged creeper
- /d <tiny/small/big/bigger/massive/godzilla> [slime/magmacube] - Disguise as a specifically-sized slime or magmacube
- /d <tamed/aggressive> [wolf] - Disguise as a tamed or aggressive wolf
- /d <tabby/tuxedo/siamese> [ocelot] - Disguise as a tabby, tuxedo, or siamese cat
- /d <saddled> [pig] - Disguise as a saddled pig
- /d <donkey/mule/undead/skeletal> [horse] - Disguise as a horse type
- /d <librarian/priest/blacksmith/butcher/generic> [villager] - Disguise as a villager with an occupation
- /d infected [zombie] - Disguise as a villager zombie
- /d wither skeleton - Disguise as a wither skeleton
- /d hold <block name/id #> - Hold blocks as an Enderman
- /d <burning> [mobname] - Disguise as a burning form of any mob
- /d player <playername> - Disguise as a player
- /d <nopickup/np> - Disable item pickup
- /d <blocklock/bl> - Locks your disguise to the center of the block you're in
- /d <noarmor/bl> - Makes your armor not show on your disguise
- /d <send/s> <playername/*> - Send your disguise to another player (or everybody)
- /u or /undis or /undisguise [playername/*] - Undisguise yourself or another player (or everybody)
These commands can all also be run from the console. You just need to specify the player name right after the /d or /u.
Permission Nodes:
Defaulted group in parenthesis (Note: Defaults are overriden by the '*' permission)
- disguisecraft.* - Has all DisguiseCraft privileges (Nobody)
- disguisecraft.other.* - Can use any of the disguise commands affecting others (Op)
- disguisecraft.other.disguise - Can disguise other players
- disguisecraft.other.undisguise - Can undisguise other players
- disguisecraft.seer - Can see nametags through disguises (Nobody)
- disguisecraft.notarget - Is not targeted by mobs while disguised as one (Everybody)
- disguisecraft.notarget.strict - Not targeted even after attacking the mob (Op)
- disguisecraft.player.* - Can disguise as any player (Op)
- disguisecraft.player.<playername> - Can disguise as the specified player
- disguisecraft.mob.* - Can disguise as any mob (Op)
- disguisecraft.mob.<mobname> - Can disguise as the specified mob
- disguisecraft.mob.<mobname>.baby - Can disguise as baby form
- disguisecraft.mob.sheep.color.* - Can disguise as a sheep of any color
- disguisecraft.mob.creeper.charged - Can disguise as a charged creeper
- disguisecraft.mob.<slime/magmacube>.size.* - Can disguise as any size slime or magmacube
- disguisecraft.mob.wolf.<tamed/aggressive> - Can disguise as either a tamed or aggressive wolf
- disguisecraft.mob.wolf.collar.* - Can disguise as a wolf with a colored collar
- disguisecraft.mob.ocelot.cat.* - Can disguise as any type cat
- disguisecraft.mob.pig.saddled - Can disguise as a saddled pig
- disguisecraft.mob.enderman.hold - Can hold blocks as an Enderman
- disguisecraft.mob.horse.type.* - Can be any horse type
- disguisecraft.mob.villager.occupation.* - Can disguise as a villager of any occupation
- disguisecraft.mob.zombie.infected. - Can disguise as an infected zombie (zombie villager)
- disguisecraft.mob.skeleton.wither - Can disguise as a wither skeleton
- disguisecraft.object.* - Can disguise as any object
- disguisecraft.object.vehicle.* - Can disguise as any vehicle
- disguisecraft.object.vehicle.<vehiclename> - Can disguise as the specified vehicle
- disguisecraft.object.block.* - Can disguise as any block entity
- disguisecraft.object.block.<blockname> - Can disguise as a specific block entity (TNTPrimed, EnderCrystal, FallingBlock)
- disguisecraft.object.block.fallingblock.material - Can disguise as a FallingBlock of any material
- disguisecraft.object.block.<blockname> - Can disguise as a specific block entity (TNTPrimed, EnderCrystal, FallingBlock)
- disguisecraft.object.vehicle.* - Can disguise as any vehicle
- disguisecraft.burning - Can have burning disguises
- disguisecraft.nopickup - Can use the "/d nopickup" command
- disguisecraft.blocklock - Can use the "/d blocklock" command
- disguisecraft.noarmor - Can use the "/d noarmor" command
How to use:
- Put Disguisecraft and http://www.spigotmc.org/resources/protocollib.1997/ in your plugins folder
- Restart your server
- Disguise! (e.g. /disguise Creeper)
- Run around scaring your friendssssssssssssss
Video:
Useful Links
Planned or ToDo <== Put suggestion comments over here!
Development builds of this project can be acquired at the provided continuous integration server.
These builds have not been approved by the BukkitDev staff. Use them at your own risk.
Dev Builds (Jenkins) <== Contains the latest DisguiseCraft builds!
JavaDocs and Source Code
Plugins Utilizing the API:
- Mortuus Terra - A Post-Nuclear Zombie Apocalypse
- FleetingDisguises - Disguise time-limits and cool-downs
- DisguiseTester - An advanced entity metadata research tool
- MobDisguisePVPControl - Adds PVP-related disguise handling
- Be Herobrine - Makes the Herobrine disguise more intense
- SimplyVanish - The first invisibility plugin compatible with DisguiseCraft
- FactionsPlus - Undisguise upon entering territories
- CloneCover - Hide in a crowd where everybody looks alike
- CommandPoints MobDisguise Bridge - Let regular users disguise in moderation
- Armor Abilities - Use armor to disguise as a creeper and explode upon death
- Pony Pack - Enter the changelings
- PropHunt - Hide 'n Seek Revolutionized
- Infected - If you liked COD Zombies, you'll love this
- PVPPack - Your new solution to fair combat
- Dwarves vs Zombies - A DvZ plugin in the works
- Ultimate Herobrine - The legend continues
- MobHunting - Disguising is dangerous business
How to negate the disguisecraft.seer node with PermissionsEx
Or, how to make it so that you don't see the nametag of the person inside of the disguise!
- Open up your permissions.yml file
- Add the permission node "-disguisecraft.seer" to the group that is seeing the double disguises!
- Do /pex reload ingame.
Example pex file:
admin: options: rank: '1' permissions: - -disguisecraft.seer - '*'
Project Page Notices: (Please Read)
- Be sure to read our Frequently Asked Questions section.
- Report errors using the ticket system and be sure that you are using this plugin with the CraftBukkit build that it supports. Any error reported in the comment area may be deleted and ignored. Also make sure to check your tickets often and report in when a build or release has fixed the issue.
- We will only release for stable CraftBukkit builds. Do not report errors when using our plugin with a build it was not listed to support. Because we need to recompile for each specific build, you will only ever see versions for CraftBukkit Dev builds in our jenkins.
-
View User Profile
-
Send Message
Posted Sep 15, 2012@EpicTrance
I just asked you to explain though :O
I would guess that it's just going through the disguisePVP injection just fine. Same thing happend with Orebfuscator. We override the NetServerHandler, so we show up in the error logs for other plugins.
Besides that, I don't really know what that error log is trying to say.
-
View User Profile
-
Send Message
Posted Sep 14, 2012im not sure but why is there the word disguisecraft in that error, can u explain pls
-
View User Profile
-
Send Message
Posted Sep 14, 2012@andrewkm
DisguiseCraft undisguises players if they enter a world that they don't have the proper disguise permissions for O.o
-
View User Profile
-
Send Message
Posted Sep 14, 2012@Devil_Boy
Is there anyway to "Un-disguise" a player on world change? If there is not can you please add this as a feature request. I am very interested in this.
Vanishnopacket does kind of the same thing (Un-vanish on world change) - im looking for something of the same sort except with mobdisguise. It can be a config option (Undisguise on world change) and it can default to false so you dont get confusion from others.
Please do consider. Will donate once implemented. I want to let users disguise as enderdragons but only in a certain world; and if they ever cross into another world through a portal/command or anyway at all it will undisguise them.
-
View User Profile
-
Send Message
Posted Sep 14, 2012@EpicTrance
Explain how that makes it a DisguiseCraft error though O.o
-
View User Profile
-
Send Message
Posted Sep 14, 2012notice this piece of it
pgDev.bukkit.DisguiseCraft.injection.DCNetServerHandler.a(DCNetServerHandler.java:45)
-
View User Profile
-
Send Message
Posted Sep 14, 2012@devil_boy thank you very much, didn't realise that tekkit runs on an older version of bukkit ;$
-
View User Profile
-
Send Message
Posted Sep 14, 2012@EpicTrance
That doesn't look to be a DisguiseCraft error? O.o
Not really sure...
@Rodin10
Try an older version of DisguiseCraft. The one made for the Build of CraftBukkit that Tekkit is based on.
@Willbbz
I'm not really sure about that one...
I know PermissionsEx made the wildcard cover all node possibilities, even those not listed as child. I can't be sure how the other permissions systems are handling the wildcard. We'll have to go check :/
-
View User Profile
-
Send Message
Posted Sep 14, 2012Any known issues with the disguisecraft.player.* permissions not working with PermissionsBukkit?
Seems to be the only thing not working for me.
-
View User Profile
-
Send Message
Posted Sep 14, 2012Get this error?
17:40:53 [SEVERE] Could not pass event PlayerJoinEvent to DisguiseCraft org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:304) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav a:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j ava:482) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j ava:467) at net.minecraft.server.ServerConfigurationManager.c(ServerConfiguration Manager.java:138) at forge.PacketHandlerServer.finishLogin(PacketHandlerServer.java:169) at forge.PacketHandlerServer.onModListResponse(PacketHandlerServer.java: 108) at forge.PacketHandlerServer.onPacketData(PacketHandlerServer.java:42) at forge.MessageManager.dispatchIncomingMessage(MessageManager.java:419)
at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:1361) at net.minecraft.server.Packet250CustomPayload.handle(SourceFile:46) at net.minecraft.server.NetworkManager.b(NetworkManager.java:234) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:119) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:8 3) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:579) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:467) at net.minecraft.server.ThreadServerApplication.run(SourceFile:492) Caused by: java.lang.NoSuchFieldError: i at pgDev.bukkit.DisguiseCraft.Disguise.getMobSpawnPacket(Disguise.java:6 11) at pgDev.bukkit.DisguiseCraft.DisguiseCraft.sendDisguise(DisguiseCraft.j ava:315) at pgDev.bukkit.DisguiseCraft.listeners.DCMainListener.onPlayerJoin(DCMa inListener.java:52) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:302) ... 16 more 17:40:53 [INFO] Sending serverside check to: RodinJ 17:40:53 [WARNING] Task of 'DisguiseCraft' generated an exception java.lang.NoSuchFieldError: networkManager at pgDev.bukkit.DisguiseCraft.injection.DCNSHOverrideTask.run(DCNSHOverr ideTask.java:36) at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(C raftScheduler.java:126) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:543) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:467) at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
I'm using tekkit only the latest version. Help??
-
View User Profile
-
Send Message
Posted Sep 14, 2012i have a plugin called petsecure and with this plugin u can change cat types and it seems to not be working cause of disguisecraft and gives me this error.
2012-09-14 11:10:25 [SEVERE] Could not pass event PlayerInteractEntityEvent to PetSecure org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:341) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:1000) at pgDev.bukkit.DisguiseCraft.injection.DCNetServerHandler.a(DCNetServerHandler.java:45) at net.minecraft.server.Packet7UseEntity.handle(SourceFile:36) at net.minecraft.server.NetworkManager.b(NetworkManager.java:282) at net.minecraft.server.NetServerHandler.d(NetServerHandler.java:109) at net.minecraft.server.ServerConnection.b(SourceFile:35) at net.minecraft.server.DedicatedServerConnection.b(SourceFile:30) at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:577) at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:213) at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:473) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:405) at net.minecraft.server.ThreadServerApplication.run(SourceFile:539) Caused by: java.lang.IllegalArgumentException: Cat type cannot be null at org.apache.commons.lang.Validate.notNull(Validate.java:203) at org.bukkit.craftbukkit.entity.CraftOcelot.setCatType(CraftOcelot.java:24) at co.nz.creepercraft.PetSecureMain$1.petInteract(PetSecureMain.java:219) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:339) ... 15 more
-
View User Profile
-
Send Message
Posted Sep 14, 2012Is this compatible with the last version of Bukkit?
-
View User Profile
-
Send Message
Posted Sep 14, 2012@gamerphate
Are ok that works, only thing that caught me out is if a player is disguised as a player u have to undisguise to become a mob disguise. It's handy that magicspells external commands igore the commanders alias so we can use the undis command before disguising just incase they where dragon warrior.
-
View User Profile
-
Send Message
Posted Sep 14, 2012@LihPeu
Yeah pretty much that is what I thought about doing before you posted that haha. Just took that command out since I don't need undisguise really. I wrote some trigger scripts for all the classes so on join it auto assigns them a dwarf class but once they die the respawn event is where they get disguised. I have mine set so that if they log out and back in it is suppose to keep their disguise but for some reason sometimes it isn't working. Worst case I just track them down and /kill them and force them to wear it.
-
View User Profile
-
Send Message
Posted Sep 14, 2012@gamerphate
I decided I could just go into the JAR and take out the command for /u and that seems to be working just fine, but would be nice to have a node for it in the future if you can :) If I need to remove a disguise I can just /d player player's name for now. So found a work around but just throwing that out there if you get a chance for an update. Thanks!
-
View User Profile
-
Send Message
Posted Sep 14, 2012@gamerphate
We use commander on our dvz server, all I do is create a alias to all commands I don't want users to use. Or get a command blocker plugin, but commander has other features we like. For disguise on login I have found some players with high pings can pickup items before the disguise applied, so I I leave the undisguise on logout true and use variable-triggers plugin to run disguise commands on login.
-
View User Profile
-
Send Message
Posted Sep 14, 2012Is there a way to either remove the /u command or make a permission node sort of thing? I got a DvZ server that I pretty much hand cobbled alot of various plugins and coded trigger scripts to make it work. And i basically don't want the monsters to use the /u command to appear like they are dwarves and try to sneak up on someone. For the most part most don't know that command, and maybe there is a way to do it I am overlooking. And even though I have it set for them to not be able to log out and back in and look like a human again, many times it doesn't seem to work. Initially I just used a script to issue the disguise command on their death and never game them disguisecraft.mob.classname as a permission so that I was thinking they couldn't use /u but think they still can. But when they left and came back they would be undisguised again. So I put the permission node back in so perhaps they can now exploit it.
CLIFF NOTES - Anyway to make the /u command a node to deny it's use?
-
View User Profile
-
Send Message
Posted Sep 13, 2012how do i install this?
-
View User Profile
-
Send Message
Posted Sep 13, 2012@BFUSpEd
You're certain it uses the same source? O.o
Because that link you gave me is what we already use for Orebfuscator support.
@SuperMinecraftBrosMC
We haven't added that in yet :/
-
View User Profile
-
Send Message
Posted Sep 13, 2012How you make it so then Disguised Players dont drop their inventory on death like MobDisguise?