21 lines
610 B
TypeScript
21 lines
610 B
TypeScript
|
import { injectable } from '@ccms/container'
|
||
|
|
||
|
export namespace item {
|
||
|
@injectable()
|
||
|
export abstract class Item {
|
||
|
abstract builder(): ItemBuilder
|
||
|
abstract toJson(item: any): string
|
||
|
abstract fromJSON(json: string): any
|
||
|
}
|
||
|
export interface ItemBuilder {
|
||
|
from(item: any): ItemBuilder
|
||
|
create(type: string | number): ItemBuilder
|
||
|
name(name: string): ItemBuilder
|
||
|
lore(...lores: string[]): ItemBuilder
|
||
|
amount(amount: number): ItemBuilder
|
||
|
durability(durability: number): ItemBuilder
|
||
|
clone(): any
|
||
|
build(): any
|
||
|
}
|
||
|
}
|