2022-06-19 16:48:00 +00:00
|
|
|
import { injectable } from '@ccms/container'
|
|
|
|
|
|
|
|
export namespace item {
|
|
|
|
@injectable()
|
|
|
|
export abstract class Item {
|
|
|
|
abstract builder(): ItemBuilder
|
|
|
|
abstract toJson(item: any): string
|
2022-07-16 23:11:36 +00:00
|
|
|
abstract fromJson(json: string): any
|
2022-06-19 16:48:00 +00:00
|
|
|
}
|
|
|
|
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
|
|
|
|
}
|
|
|
|
}
|