function cleanFormatting(rawString) { const formattingRegex = /ยง[0-9a-fklmnor]+|[\[\]:]+/g; return rawString.replace(formattingRegex, ''); } class GuildMessage { constructor(message, sender) { this.message = message; this.sender = sender; } getContent() { return this.message; } getSender() { return this.sender; } } class GuildMessageSender { constructor(rawUsername, rawHypixelRank, rawGuildRank) { this.rawUsername = rawUsername; this.rawHypixelRank = rawHypixelRank; this.rawGuildRank = rawGuildRank; } getCleanUsername() { return cleanFormatting(this.rawUsername); } getCleanHypixelRank() { return cleanFormatting(this.rawHypixelRank); } getCleanGuildRank() { return cleanFormatting(this.rawGuildRank); } getRawUsername() { return this.rawUsername; } getRawHypixelRank() { return this.rawHypixelRank; } getRawGuildRank() { return this.rawGuildRank; } } class OfficerMessage extends GuildMessage { constructor(message, sender) { super(message, sender); } } // Instead of using export, we assign the classes to module.exports module.exports = { GuildMessage, GuildMessageSender, OfficerMessage };