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.
I keep forgetting to comment out that folder-creation code... Oh well....
v0.5 is released for R6 (Though I still think dev build 12 is just a bit better)
With the new permission node, you'll be able to see people wearing their disguises.
@wooperjm
I couldn't replicate your error, but this could likely be because I was testing with my a version compiled with R6. I'm guessing the recompile fixed it. I'm gonna have 0.5 out soon, because 0.4 is no good in terms of world changes.
Currently, 0.5 isn't handling world-changes well either, but the only issue we're finding during testing, is that players become invisible upon entering a world. I'm sure it's fixable.
@wooperjm
Thanks, your log was of great help. I'm updating my test server to R6, so I should be able to confirm.
The DisguiseCraft output in those logs tells me where the error is, but because there is no PrintStackTrace code in there, it doesn't tell us exactly what the issue is. I should have a dev build out soon that does this for us. Then we'll be closer to pinpointing the issue.
@dafreo
This happens to me with any version later than git-Bukkit-1.1-R6-1-ge93a3eb-b1989jnks.
Submitted a ticket.
Keep up the great work!
@Squirzy
Any console error? You may want to open up a support ticket and supply a bit more info.
Every time I try /d <mobname> with over 50+ players on the server, well everyone just crashes and starts getting end of stream. If this is fixed it will be much appreciated :)
The enderdragon kicks everyone out of the server for me, except the person using the disguise
@quickclay
Uhh.. VanishNoPacket.... Not so sure about that. We both use the same method and DisguiseCraft is planned to have invisibility in the future. There could be issues when vanished and disguised at the same time.
@NinjaCupquake
:/ Commands are only supposed to be sent to a single plugin. VoxelSniper could be using an unconventional way of catching commands.
Edit: Just checked. They're doing everything correctly, so I don't see why both the plugins would receive the command.
@andrewkm
I can't remember if I put that in the ToDo list, but showing disguised players is planned. I'll experiment to see if a command or a simple permission node will be better. (I'm leaning more towards permissions alone because I don't want to add another database for the certain caveats the command could bring.)
@Tux2 @Devil_Boy One thing that mob-disguise has always been missing is a way for admins/moderators to see vanished players. I have implemented a /near command for our staff to figure out who is who - but a command would be great however.
Suggestion: /reveal - Will simply toggle disguises for users with disguisecraft.reveal permission. Use it once - everyone undisguises for you, use it again and they re-disguise. :)
Or do it anyway you see fit, but definitely a useful future feature.
@Tux2
Yeah, I saw the aliases, it's just that, let's say you are VoxelSniping while disguised, then you try to undo something and type "/u", it undoes the last VoxelSnipe but also pulls you out of the disguise. :X
@quickclay
Yes, this is compatible with VanishNoPacket, and being able to see a player, ignoring any disguise IS planned. :D
@NinjaCupquake
You can also use the /undis command in DisguiseCraft but I will see about bringing that up with Devil_Boy
Amazing. Simply great. I'm glad the issues with MobDisguise are fixed in here, and I tried it in the latest dev. build of Bukkit. (1.2.2-R0.1 #1995) I do however, advise you add some way to disable the "/u" command in DisguiseCraft, another plugin (VoxelSniper) uses "/u" for undo, and things can get ugly and stuff. ._.
Is this compatible with VanishNoPacket? (will both plugins function correctly?) Can there be a node for being able to see a player's true form, ignoring any disguises? I don't want a player being able to hide from ops with this.
Thanks!
@Devil_Boy
I have fully tested build #7 with PEX 1.19 Everything I could possibly test. All works well - The only things I couldnt get working were sheep colors/mob sizes, but then I noticed your to-do list and assuming although permissions are set up for those, they are not yet implemented.
-
Everything to do with permissions however works great and is all fixed up! All systems go! Thank you very much :)
-
If I encounter an overlooked issue I will report and let you know.
@Devil_Boy
Thanks for clearing that up ;)
btw: http://www.mojang.com/2012/02/minecraft-1-2-preview/
@andrewkm
The v0.4 build can be found here: http://mfav.me:8080/job/DisguiseCraft/7/
Though it easily should have fixed the brunt of permissions issues, it still needs to be tested because a world-change permissions check was added.
Hopefully you can give me the go or no-go. It's too late in the night for me to test it myself.
On another note: I think it's only been about 28 hours since the initial release of this plugin O.o
@andrewkm
It's DisguiseCraft, Tux and I talked about it, looked at the code and found it was checking for disguisecraft.chicken
See what's wrong there? XD
Next Dev Build will have the fix. It'll be v0.4
@Devil_Boy
Im running PEX 1.19 if thats any help. Have about 40-50 plugins that are working perfectly fine with the permission system.
Any ideas on what I can try, or is this a disguisecraft permissions issue?
@andrewkm
That's unusual because disguisecraft.* has the children disguisecraft.player and disguisecraft.mob.*
disguisecraft.mob.* Has all the mob types as its children.
The plugin checks for individual nodes, such as: disguisecraft.mob.chicken
This would mean that somehow the permissions system isn't granting players the specific nodes through disguisecraft.mob.* but is rather acting as if disguisecraft.* is the only wildcard node that can have children.
disguisecraft.mob.* does not work either. It has to be OP or disguisecraft.* for players to be able to disguise into any mobs.