feat: rework commands and fix bugs

This commit is contained in:
ForestOfLight
2026-05-20 17:08:03 -07:00
Unverified
parent b1370b5d28
commit 7ea64d1e6a
38 changed files with 527 additions and 525 deletions
@@ -0,0 +1,14 @@
export class CommandResponseError extends Error {
constructor(message) {
super(message);
this.name = 'CommandResponseError';
}
getRawMessage() {
throw new Error('getRawMessage() must be implemented by subclasses of CommandResponseError');
}
sendTo(source) {
source.sendMessage(this.getRawMessage());
}
}
@@ -0,0 +1,15 @@
import { CommandResponseError } from "./CommandResponseError";
export class InstanceExistsError extends CommandResponseError {
instanceName;
constructor(instanceName) {
super(`An instance with the name "${instanceName}" already exists.`);
this.name = 'InstanceExistsError';
this.instanceName = instanceName;
}
getRawMessage() {
return { translate: 'construct.error.instanceExists', with: [this.instanceName] };
}
}
@@ -0,0 +1,15 @@
import { CommandResponseError } from "./CommandResponseError";
export class InstanceNotFoundError extends CommandResponseError {
instanceName;
constructor(instanceName) {
super(`§cInstance "${instanceName}" not found.`);
this.name = 'InstanceNotFoundError';
this.instanceName = instanceName;
}
getRawMessage() {
return { translate: 'construct.error.instanceNotFound', with: [this.instanceName] };
}
}
@@ -1,6 +0,0 @@
export class InvalidInstanceError extends Error {
constructor(message) {
super(message);
this.name = 'InvalidInstanceError';
}
}
@@ -1,6 +0,0 @@
export class InvalidStructureError extends Error {
constructor(message) {
super(message);
this.name = 'InvalidStructureError';
}
}
@@ -1,6 +1,12 @@
export class NotAPlayerError extends Error {
import { CommandResponseError } from "./CommandResponseError";
export class NotAPlayerError extends CommandResponseError {
constructor(message = 'Command requires a player source.') {
super(message);
this.name = 'NotAPlayerError';
}
getRawMessage() {
return { translate: 'construct.commands.error.notAPlayer' };
}
}
@@ -0,0 +1,15 @@
import { CommandResponseError } from "./CommandResponseError";
export class StructureNotFoundError extends CommandResponseError {
structureId;
constructor(structureId) {
super(`Structure with ID "${structureId}" not found.`);
this.name = 'StructureNotFoundError';
this.structureId = structureId;
}
getRawMessage() {
return { translate: 'construct.error.structureNotFound', with: [this.structureId] };
}
}