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 Jun 30, 2012@stonedwasp
That would require a client-side mod. This is something that I cannot yet make myself.
-
View User Profile
-
Send Message
Posted Jun 30, 2012Is it possible to add so that we can see ourselfs as the mob or player we have disguised ourselfs as? I remember having a mod where it let me see myself as the mob
-
View User Profile
-
Send Message
Posted Jun 30, 2012@Robot62
You probably have a chat manager interfering.
-
View User Profile
-
Send Message
Posted Jun 30, 2012How come the name of the user that I'm disguised as is not showing in the chat?
-
View User Profile
-
Send Message
Posted Jun 29, 2012@wumpyc
It was already coded so that you speak as who you are disguised as. However, this is completely stumbled by any sort of chat manager you have installed.
-
View User Profile
-
Send Message
Posted Jun 29, 2012@wumpyc
@Devil_Boy
Possibility that you could add a configuration option to disable this? I want to give permission to allow some players to disguise as others, but I don't want them to talk as them.
A permission might be better than a configuration option though.
-
View User Profile
-
Send Message
Posted Jun 29, 2012Hi. Thanks for this plugin. It beats MobDisguise at everything. Everything works fine and awesome, but only when i change into a player and i speak it still says that i am speaking. At least i see that way. Do just others see different name in chat or what?
-
View User Profile
-
Send Message
Posted Jun 28, 2012@sillyrosster
Open up a support ticket with your permissions configuration. We may have to do some more testing or possibly jump onto your server.
@PorpoiseBrock
Due to the unique disguising method it uses, DisguiseCraft is a heavy plugin. On every player move, the plugin fabricates and sends out a movement packet to everybody in that world. The more players in the world, the less efficient the plugin becomes.
There is very little we can do to improve this as we have already been coding the plugin to be as optimized as possible. If this becomes too much of an issue, you may need to switch back to MobDisguise because it's methods are much much less lag-inducing.
If you have more questions about how the two plugins work and how they are different, just PM me and I'll be happy to try to explain this.
@r0306
You may want to read through the whole description.
-
View User Profile
-
Send Message
Posted Jun 28, 2012@PorpoiseBrock
Yes. Yes I have. Ever since I added DC, the RAM seems to be a little leaky.
-
View User Profile
-
Send Message
Posted Jun 28, 2012Hello. I'm wondering whether or not damage gets passed on to players when they are disguised as I'm currently disguised as a cow but I'm not taking any physical damage when my friend tries to hit me. The only exceptions are arrows, during which the damage packet gets sent and I do take damage.
-
View User Profile
-
Send Message
Posted Jun 28, 2012PlayerMoveEvent with DisguiseCraft seems to be eating up quite a bit of RAM... have you guys had any issues with that?
-
View User Profile
-
Send Message
Posted Jun 28, 2012@Devil_Boy
Well, it is =/
One world has permission and the other doesn't. They simply disguise in the one they can disguise in and teleport to the one they can't. The disguise stays =/
-
View User Profile
-
Send Message
Posted Jun 27, 2012@Devil_Boy
I see, that's fine. It was just an idea and I was well aware of the consequences.
Also correct indeed this issue appears the most when a player teleports to you in disguise.
-
View User Profile
-
Send Message
Posted Jun 26, 2012@sillyrosster
This shouldn't be O.o
-
View User Profile
-
Send Message
Posted Jun 26, 2012Hey, uhm, it says this is multi-world permissions, but I have a feeling that doesn't mean it is multi-world. I have some pvp worlds I don't want people disguising in, but they seem to be able to disguise in the world they can disguise in and then teleport to the pvp world and still be disguised.
So, should this be happening?
-
View User Profile
-
Send Message
Posted Jun 26, 2012@ledhead900
The reason we haven't added any sort of reoccurring update is that it isn't necessary. This invisibility bug does not happen with the majority of servers and adding a timer or sleeping thread will merely make the plugin heavier than it already is.
The popular disguise plugin that came before this one did include a thread that supplied a reoccurring update, but this was easier to forgive due to the simplicity in its design. DisguiseCraft system, though it gives us more control, is inherently heavier and requires us to do as much as possible to reduce the load on any server.
I know an update seems like a good quick-fix, but we're just not ready to move into multiple threads until we know we need it.
Something to note:
Tux2 coded DisguiseCraft to handle client-side entity movement the same was as done by Vanilla MineCraft. This should mean that invisibility errors inherent to a normal Bukkit server will often show up in this plugin. This has been the case in the past. (Typically in regards to teleportation)
-
View User Profile
-
Send Message
Posted Jun 26, 2012Can somone help me? I have no clue how to install this.
-
View User Profile
-
Send Message
Posted Jun 26, 2012@Devil_Boy
You're Welcome! About Tekkit, Tekkit actually uses Craftbukkit as a base since its mods are based on the bukkit versions Tekkit only complies those mods into a launcher which is based on an older version of Spoutcraft and but it includes Craftbukkit API with it as it is capable of running most bukkit plugins. I understand 100% that it is best to stick with the version of CB that the plugins are built for but history has proven that this not always a requirement and in fact much of the code other than simple re complies is very much the same as long as the events still exist the plugin should function.
I was unaware that this plugin had a minor drawback of the invisible player, but that would explain it then, I do not think anything can be done about this as it appears that since no errors are ever recorded the events of the plugin are doing what at least in theory it should be doing and that its probably another of those crazy bukkit bugs they never got around to looking at that only happen when certain conditions are met.
In regards to the recompile I don't actually know any of that sort of stuff :(, but I think CB in Tekkit is modified a little as well since it has modloader in it and Forge, CB itself is built into the tekkit.jar and its not a individual/standalone API.
What I have noticed with the hidden player bug is that it appears to be fixed if the player uses /u or simply changes mob, I think I recall it being fixed if they also just /d again back into the same mob they already were. This seems to me like its more a client side issue, where the client is simply not aware what entity the player is other then its a entity but does not know the model of the player. I thought if that was the case it would cause a server side error but I know you can get away with a lot of funny things that the client does not need to be aware about and still actually work.
Which is why I thought that adding a entity update event to update a player in a interval say every 10min may have provided a workaround for the hidden player issue, though testing this would require your able to be online when the player goes invisible and be able to see the interval tick and update the player then observing the outcome in both code and the visual changes if any.
Which for a bug I would safely call a ghost bug that is a variable that is extremely hard to create.
Well I will just finish up with hidden player or not this seems has really done a great job and does exactly what it says it does, but it does it with a level polish which I believe was the reason you it was remade to begin with.
-
View User Profile
-
Send Message
Posted Jun 25, 2012@ledhead900
I highly appreciate that you took the time to organize and structure your comment. :)
I am happy to hear that the design you chose for our disguise system has given it capabilities beyond others. I had originally set out to make merely a proof-of-concept, showing desmin88 that with the proper planning (rather than throwing features in on-the-fly) one could reduce the limitations and increase the efficiency of a plugin. With the help of others on my team, we've created a sustainable alternative to the original system with its own share of features and drawbacks.
In regards to your report, such invisibility has haunted this plugin for some time. Unfortunately, reports have never complemented one another... Without error log, we haven't been able to reproduce or even begin to target the source. If this began to happen to you with v2.4 then it should have something to do with players changing between worlds.
If I had to take a guess at the issue, it would have to do with Tekkit being based from R1.3. Disguise plugins have always needed to hook directly into CraftBukkit, rather than just the Bukkit API. This means that they are sensitive to changes in obfuscation or other things that can happen between builds. The best bet would be to use the exact build that the plugin was compiled with, or recompile it yourself using the available source code.
Other than that, this invisibility thing will probably stick around for a good while...
-
View User Profile
-
Send Message
Posted Jun 25, 2012@Devil_Boy
Firstly, In regards to the player names not showing this is what makes this one better then every other other disguise plugin in the past as they all required spout to hide the player name, So I really would be embracing this and not saying its a limitation as this is what many wanted from that other disguise plugin that came before this one did.
Secondly , I have noticed with some of my server support team members that the can go invisible client side until log in while under a disguise with lag or if they un unexpectedly dis connect and come back on, I have noticed this more after they stay disguised for extended periods and then go AFK and return it seems pretty random but I and others have reported they while visible in the tab list they are 100% invisible and I need to re log back in to see them. Now I don't think there is a lot you can do about this, I am just throwing it out there in case you did want to run some checks on it because it does not appear to be a re-occurrence of the old vanilla bug that effected players this only happens when disguised and never any other time. However this may be fixed with a keep alive check in the plugin to refresh the disguise should you wish to look into it.
I don't use vanilla minecraft either I run Tekkit Mod Pack but it does not appear to get in the way of anything since it is based on craftbukkit 1.2.5R1.3 which as far as I am aware this runs fine on like most plugins that run on any CB version above R1.0. //
I did not post this in the Ticket System because it is not an official report I am merely pointing out a possible issue to be taken with a grain of salt, no error is triggered in the logs or anything and apart from the second comment this plugin works amazingly well, Good Job !!, I have been using it for months now. I only mentioned the second thing because I have used it for months and it is the first time I seen this happen and that was only since the last build of this plugin.