Impersonate

Impersonate

Mod

Impersonate: to assume or act the character of

Server LibraryUtility

6,918 downloads
50 followers
Created3 years ago
Updated3 months ago

Follow Save
Host your Minecraft server on BisectHosting - get 25% off your first month with code MODRINTH.

Have you ever wanted to impersonate another player ? Be it for making machinimas, roleplaying, playing 5D chess in factions, or just pranking friends, there are lots of (relatively) good reasons to assume the identity of someone else.

Requires the latest version of Fabric API

Overview

Impersonate allows players to take on the name and appearance of other players. When impersonating someone, a player will:

  • have the skin of the impersonated player
  • have the nameplate of the impersonated player
  • send every chat message as if they were the impersonated player
  • appear as the impersonated players in online player lists
  • sign books as if they were the impersonated player
  • etc.

They will however not fool the impersonated player's pets, if any.

To avoid moderation chaos, server logs will always display the actual player's name, alongside their fake identity. Server operators will have ongoing impersonations revealed in the same way.

This mod works serverside (compatible with vanilla clients), but installation on clients is still recommended, notably for server operators.

Commands

Impersonate adds the /impersonate command, allowing server operators and mapmakers to interact with the API through commands.

  • /impersonate disguise
    • /impersonate disguise as <name> [<targets>] [<key>] : disguises one or more players
      • <name> : Name of the player to impersonate. Does not have to be online or even real.
      • [<targets>] (optional) : If specified, must be either a player's username or a target selector. If unspecified, defaults to the player using the command. When used in a command block, player is not optional.
      • [<key>] (optional) : If specified, must be a valid identifier serving as a key for the impersonation.
    • /impersonate disguise clear [<targets>] [<key>] : stops the impersonation of one or more players
      • [<targets>] (optional) : If specified, must be either a player's username or a target selector. If unspecified, defaults to the player using the command. When used in a command block, player is not optional.
      • [<key>] (optional) : If specified, must be a valid identifier that was previously used as a key to start an impersonation. If left unspecified, the command will clear every active impersonation.

Gamerules

  • impersonate:fakeCapes : Whether impersonators should get the cape and elytra of impersonated players. Defaults to false.
  • impersonate:opRevealImpersonations : Whether ongoing impersonations should be revealed to online server operators. Defaults to true.
  • impersonate:logRevealImpersonations : Whether ongoing impersonations should be revealed in the server logs. Defaults to true.

Using Impersonate as a mod developer

You can add Impersonate to your development environment by inserting the following in your build.gradle :

repositories {
    jcenter()
	maven { 
        name = "Ladysnake Libs"
        url = 'https://dl.bintray.com/ladysnake/libs' }
    }
}

dependencies {
    modImplementation "io.github.ladysnake:Impersonate:${impersonate_version}"
    include "io.github.ladysnake:Impersonate:${impersonate_version}"
    // Impersonate dependencies
    include "com.github.onyxstudios.Cardinal-Components-API:cardinal-components-base:${cca_version}"
    include "com.github.onyxstudios.Cardinal-Components-API:cardinal-components-entity:${cca_version}"
}

You can then add the library version to your gradle.propertiesfile:

# Impersonate
impersonate_version = 1.x.y
# Cardinal Components
cca_version = 2.x.y

You can find the current version of Impersonate in the versions tab, and the latest CCA version in the appropriate repository.

External resources



Project members

Ladysnake

Ladysnake

Organization

Pyrofab

Main Developer


Technical information

License
LGPL-3.0-only
Client side
unsupported
Server side
required
Project ID