UNPKG

figura-ts

Version:

Lua Types for the Minecraft Mod Figura

103 lines (102 loc) 3.17 kB
/// <reference path="components.d.ts" /> /// <reference path="format.d.ts" /> declare namespace Minecraft { export type Selector = "@p" | "@r" | "@a" | "@e" | "@s" | "@n" export interface IRawJsonTextBase<Type extends string> { type?: Type extra?: IRawJsonTextList color?: ColorName | HexColor font?: string bold?: boolean italic?: boolean underlined?: boolean strikethrough?: boolean obfuscated?: boolean insertion?: string clickEvent?: IRawJsonTextBase.ClickEvent hoverEvent?: IRawJsonTextBase.HoverEvent } export namespace IRawJsonTextBase { export interface ClickEvent { action: "open_url" | "open_file" | "run_command" | "suggest_command" | "change_page" | "copy_to_clipboard" value: string } export interface HoverEvent<Action extends HoverEvent.Action = HoverEvent.Action> { action: Action contents: HoverEvent.ContentMap[Action] } export namespace HoverEvent { export interface TextItemContent { id: string count?: number components?: ComponentMap } export interface EntityContent { name?: ITextJsonText type: string id: string } export type ContentMap = { "show_text": TextItemContent "show_item": TextItemContent "show_entity": EntityContent } export type Action = keyof ContentMap } } export interface ITextJsonText extends IRawJsonTextBase<"text"> { text: string } export interface ITranslatedJsonText extends IRawJsonTextBase<"translatable"> { translate: string fallback?: string with?: IRawJsonTextList } export interface IScoreJsonText extends IRawJsonTextBase<"score"> { score: IScoreJsonText.Score } export namespace IScoreJsonText { export interface Score { name: string | Selector | "*" objective: string } } export interface ISelectorJsonText extends IRawJsonTextBase<"selector"> { selector: Selector seperator?: ITextJsonText } export interface IKeybindJsonText extends IRawJsonTextBase<"keybind"> { keybind: string } export interface INBTJsonText extends IRawJsonTextBase<"nbt"> { source?: INBTJsonText.Source nbt: string interpret?: boolean seperator?: ITextJsonText block?: string entity?: string storage?: string } export namespace INBTJsonText { export type Source = "block" | "entity" | "storage" } export type IRawJsonText = ITextJsonText | ITranslatedJsonText | IScoreJsonText | ISelectorJsonText | INBTJsonText export type IRawJsonTextList = Array<IRawJsonText> }