53 lines
2.2 KiB
JavaScript
53 lines
2.2 KiB
JavaScript
import { CommandPermissionLevel, CustomCommandStatus, system } from '@minecraft/server';
|
|
import { Command } from '../classes/Commands/Command';
|
|
import { structureCollection } from '../classes/Structure/StructureCollection';
|
|
|
|
export class InstancesCommand extends Command {
|
|
constructor() {
|
|
super({
|
|
name: 'instances',
|
|
description: 'construct.commands.instances',
|
|
permissionLevel: CommandPermissionLevel.Any,
|
|
callback: (origin) => this.run(origin)
|
|
});
|
|
}
|
|
|
|
run(origin) {
|
|
const names = structureCollection.getInstanceNames();
|
|
if (names.length === 0)
|
|
return { status: CustomCommandStatus.Success, message: 'construct.commands.instances.empty' };
|
|
const rawtext = [
|
|
{ translate: 'construct.commands.instances.header', with: [String(names.length)] },
|
|
{ text: '\n' }
|
|
];
|
|
for (const name of names) {
|
|
const instance = structureCollection.get(name);
|
|
const status = this.formatStatus(instance);
|
|
rawtext.push({
|
|
translate: 'construct.commands.instances.row',
|
|
with: { rawtext: [{ text: name }, { text: instance.getStructureId() }, status] }
|
|
});
|
|
rawtext.push({ text: '\n' });
|
|
}
|
|
origin.sendMessage({ rawtext });
|
|
return { status: CustomCommandStatus.Success };
|
|
}
|
|
|
|
formatStatus(instance) {
|
|
const statusMessage = { rawtext: [] };
|
|
if (instance.isEnabled())
|
|
statusMessage.rawtext.push({ translate: 'construct.commands.instances.row.enabled' });
|
|
else
|
|
statusMessage.rawtext.push({ translate: 'construct.commands.instances.row.disabled' });
|
|
if (instance.hasLocation()) {
|
|
const { dimensionId, location } = instance.getLocation();
|
|
statusMessage.rawtext.push({ translate: 'construct.commands.instances.row.location', with: [location.toString(), dimensionId.replace('minecraft:', '')] });
|
|
} else {
|
|
statusMessage.rawtext.push({ translate: 'construct.commands.instances.row.nolocation' });
|
|
}
|
|
return statusMessage;
|
|
}
|
|
}
|
|
|
|
export const instancesCommand = new InstancesCommand();
|