@jsprismarine/prismarine
Version:
Dedicated Minecraft Bedrock Edition server written in TypeScript
95 lines • 2.5 kB
TypeScript
import { default as BinaryStream } from '../../../../jsbinaryutils/src/index.ts';
import { default as SkinAnimation } from './SkinAnimation';
import { default as SkinCape } from './SkinCape';
import { default as SkinImage } from './SkinImage';
import { default as SkinPersona } from './skin-persona/SkinPersona';
interface Image {
ImageWidth: number;
ImageHeight: number;
Image: string;
}
interface AnimatedImageData extends Image {
Frames: number;
Type: number;
AnimationExpression: number;
}
interface PersonaPiece {
IsDefault: boolean;
PackId: string;
PieceId: string;
PieceType: string;
ProductId: string;
}
interface PieceTintColor {
Colors: string[];
PieceType: string;
}
interface JWT {
SkinId: string;
CapeId: string;
SkinResourcePatch: string;
PlayFabId: string;
SkinImageHeight: number;
SkinImageWidth: number;
SkinGeometryData: string;
SkinAnimationData: string;
CapeImageHeight: number;
CapeImageWidth: number;
CapeOnClassicSkin: boolean;
SkinData: string;
CapeData: string;
PremiumSkin: boolean;
PersonaSkin: boolean;
SkinColor: string;
ArmSize: string;
AnimatedImageData: AnimatedImageData[];
PersonaPieces: PersonaPiece[];
PieceTintColors: PieceTintColor[];
}
export default class Skin {
private id;
private playFabId;
private resourcePatch;
private image;
private readonly animations;
private cape;
private geometry;
private animationData;
private premium;
private persona;
private capeOnClassicSkin;
private color;
private armSize;
private personaData;
/**
* Full skin ID, computed because
* not sent on JWT.
*/
fullId: string;
isTrusted: boolean;
/**
* Loads a skin from a JSON file containing skin data
* using minecraft bedrock login fields.
*
* (loads the skin persona)
*/
static fromJWT(jwt: JWT): Skin;
networkSerialize(stream: BinaryStream): void;
getId(): string;
getFullId(): string;
getPlayFabId(): string;
getResourcePatch(): string;
getImage(): SkinImage;
getAnimations(): Set<SkinAnimation>;
getAnimationData(): string;
isPersona(): boolean;
isPremium(): boolean;
isCapeOnClassicSkin(): boolean;
getColor(): string;
getArmSize(): string;
getPersonaData(): SkinPersona;
getGeometry(): string;
getCape(): SkinCape;
}
export {};
//# sourceMappingURL=Skin.d.ts.map