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 Jan 18, 2014Anybody who has voted on my website that the plugin is not working, make sure to give us an error report or, at the very least, tell us what is wrong.
-
View User Profile
-
Send Message
Posted Jan 18, 2014@Stevenpcc
Ugh... I definitely haven't been keeping track of those player references since they were coded long ago...
I want to say that Player object references were used so that the packet-sending methods wouldn't need to look them up from the String names, but I can't be so sure anymore.
I'm glad you were able to look through that mess of code :x
If you were able to get the plugin working converting all the Player references to Strings, I'd appreciate if you could send us a merge request.
Also, perhaps you could drop by our IRC channel some time to discuss anything other concerns you may have had while looking through those sections of code. irc://irc.mibbit.com/pinoygamers
We're looking to recode the plugin, so the more developer input we can get, the better.
@cuddyier
Grant the players the disguisecraft.notarget permission node.
-
View User Profile
-
Send Message
Posted Jan 17, 2014@zekedaman
You can get a 1.7 development version of the plugin on the Jenkins
http://build.yu8.me:8080/job/DisguiseCraft/
-
View User Profile
-
Send Message
Posted Jan 17, 2014When will this plugin be back i really need it
-
View User Profile
-
Send Message
Posted Jan 15, 2014How do I stop players who are disguised getting attacked by mobs?
-
View User Profile
-
Send Message
Posted Jan 14, 2014@aadnk
Already did it by changing Player to strings. Also changed the Player reference in DCPlayerPositionUpdater. If it wasn't being removed from the hashmap, the task is probably not being cancelled either. So far there haven't been any leaks.
-
View User Profile
-
Send Message
Posted Jan 14, 2014@Stevenpcc
A possible one-line fix would be to use a weak concurrent map instead:
-
View User Profile
-
Send Message
Posted Jan 14, 2014I've found a pretty serious memory leak. I've tested this on 1.6.4 (DisguiseCraft 5.0), but I've looked through the commits since then and didn't see anything to make me think it's not still there.
public ConcurrentHashMap<Player, Integer> positionUpdaters = new ConcurrentHashMap<Player, Integer>();
The leak is caused that map in the DisguiseCraft class. It only happens when movementUpdateThreading is set to true. For some reason some offline players aren't being removed. On my mini game servers - where I load and unload a world every game - each leak costs around 100-200mb.
I've checked through the code and can't seem to identify where this is happening. I've looked at my own code, but I seem to be doing everything correctly via the API, so the removePositionUpdater method should be called. It'll taking more testing to pinpoint it. Maybe you have some ideas?
Can you switch to using the player name instance of the player instance? It's just asking for a leak doing it the current way.
-
View User Profile
-
Send Message
Posted Jan 13, 2014@iiHeroo
It is now, thanks to the invisibility effect. And yes, some disguise plugins beside DisguiseCraft do support it.
-
View User Profile
-
Send Message
Posted Jan 13, 2014@wolfos360
No, it's not possible if I'm correct.
-
View User Profile
-
Send Message
Posted Jan 12, 2014Is there anyway to make it so i can see myself in third person disguised?
-
View User Profile
-
Send Message
Posted Jan 12, 2014When are you going to have the update i need it badly
-
View User Profile
-
Send Message
Posted Jan 11, 2014Please, make update. I want this plugin on my server, becose i requied to hide and seek
-
View User Profile
-
Send Message
Posted Jan 10, 2014Any way of looking at ticket #354?
http://dev.bukkit.org/bukkit-plugins/disguisecraft/tickets/354-invisible-disguised-players/
We are having this issue, and have about 90-150 disguised for a certain Minigame.
The monsters sometimes show invisible to players but not everyone.
If I teleport them to spawn and back to the arena it seems to have fixed it, is there some sort of work around?
Disguise in one world then teleport to arena world?
Currently using latest protocol/disguisecraft from Jenkins, but this has been on going for a couple of months.
The developer of the plugin DvZ we use is also commenting on there it seems.
If there is any testing builds you want me to try please feel free to send them my way or upload on jenkins.
Thanks again for the great plugin. :)
-
View User Profile
-
Send Message
Posted Jan 10, 2014[07:48:32] [Server thread/WARN]: [DisguiseCraft] Task #346531 for DisguiseCraft v5.1 generated an exception java.lang.NullPointerException at pgDev.bukkit.DisguiseCraft.DisguiseCraft$6.run(DisguiseCraft.java:620) [?:?] at org.bukkit.craftbukkit.v1_7_R1.scheduler.CraftTask.run(CraftTask.java:53) [craftbukkit-dev-2982.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2982jnks] at org.bukkit.craftbukkit.v1_7_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:345) [craftbukkit-dev-2982.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2982jnks] at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:587) [craftbukkit-dev-2982.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2982jnks] at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:250) [craftbukkit-dev-2982.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2982jnks] at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:545) [craftbukkit-dev-2982.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2982jnks] at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:457) [craftbukkit-dev-2982.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2982jnks] at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [craftbukkit-dev-2982.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2982jnks]
-
View User Profile
-
Send Message
Posted Jan 9, 2014@JaffaMiner
/d send <playername>
@CrafterXD77
Depends on whether or not you can read O.o
@DoubleParallax
Got it sorted out?
-
View User Profile
-
Send Message
Posted Jan 9, 2014nevermind
-
View User Profile
-
Send Message
Posted Jan 9, 2014Can i used this in 1.7.2 already?
-
View User Profile
-
Send Message
Posted Jan 7, 2014Is there a command to disguise others. In example: /d [playername] [disguise]
-
View User Profile
-
Send Message
Posted Jan 6, 2014We're closing in on a new release with dev build #45.
If any of you are having issues with duplicate disguises, please submit a report on my website or a ticket on this project. It would be great if we could address the issue before the next release.