mirror of
https://github.com/spacebarchat/server.git
synced 2024-11-06 10:52:31 +01:00
Categories skip most of the ALLOW_INVALID_CHANNEL_NAMES checks on discord.com ( they also trim whitespace )
This commit is contained in:
parent
ec3c158269
commit
2316002cd8
@ -3,7 +3,7 @@ import { BaseClass } from "./BaseClass";
|
|||||||
import { Guild } from "./Guild";
|
import { Guild } from "./Guild";
|
||||||
import { PublicUserProjection, User } from "./User";
|
import { PublicUserProjection, User } from "./User";
|
||||||
import { HTTPError } from "lambert-server";
|
import { HTTPError } from "lambert-server";
|
||||||
import { containsAll, emitEvent, getPermission, Snowflake, trimSpecial, InvisibleCharacters } from "../util";
|
import { containsAll, emitEvent, getPermission, Snowflake, trimSpecial, InvisibleCharacters, ChannelTypes } from "../util";
|
||||||
import { ChannelCreateEvent, ChannelRecipientRemoveEvent } from "../interfaces";
|
import { ChannelCreateEvent, ChannelRecipientRemoveEvent } from "../interfaces";
|
||||||
import { Recipient } from "./Recipient";
|
import { Recipient } from "./Recipient";
|
||||||
import { Message } from "./Message";
|
import { Message } from "./Message";
|
||||||
@ -147,7 +147,7 @@ export class Channel extends BaseClass {
|
|||||||
orphanedRowAction: "delete",
|
orphanedRowAction: "delete",
|
||||||
})
|
})
|
||||||
webhooks?: Webhook[];
|
webhooks?: Webhook[];
|
||||||
|
|
||||||
// TODO: DM channel
|
// TODO: DM channel
|
||||||
static async createChannel(
|
static async createChannel(
|
||||||
channel: Partial<Channel>,
|
channel: Partial<Channel>,
|
||||||
@ -173,12 +173,20 @@ export class Channel extends BaseClass {
|
|||||||
if (channel.name.includes(character))
|
if (channel.name.includes(character))
|
||||||
throw new HTTPError("Channel name cannot include invalid characters", 403);
|
throw new HTTPError("Channel name cannot include invalid characters", 403);
|
||||||
|
|
||||||
if (channel.name.match(/\-\-+/g))
|
// Categories skip these checks on discord.com
|
||||||
throw new HTTPError("Channel name cannot include multiple adjacent dashes.", 403)
|
if (channel.type !== ChannelType.GUILD_CATEGORY) {
|
||||||
|
if (channel.name.includes(" "))
|
||||||
|
throw new HTTPError("Channel name cannot include invalid characters", 403);
|
||||||
|
|
||||||
if (channel.name.charAt(0) === "-" ||
|
if (channel.name.match(/\-\-+/g))
|
||||||
channel.name.charAt(channel.name.length - 1) === "-")
|
throw new HTTPError("Channel name cannot include multiple adjacent dashes.", 403);
|
||||||
throw new HTTPError("Channel name cannot start/end with dash.", 403)
|
|
||||||
|
if (channel.name.charAt(0) === "-" ||
|
||||||
|
channel.name.charAt(channel.name.length - 1) === "-")
|
||||||
|
throw new HTTPError("Channel name cannot start/end with dash.", 403);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
channel.name = channel.name.trim(); //category names are trimmed client side on discord.com
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!guild.features.includes("ALLOW_UNNAMED_CHANNELS")) {
|
if (!guild.features.includes("ALLOW_UNNAMED_CHANNELS")) {
|
||||||
@ -297,7 +305,7 @@ export class Channel extends BaseClass {
|
|||||||
await emitEvent({ event: "CHANNEL_CREATE", data: channel_dto, user_id: creator_user_id });
|
await emitEvent({ event: "CHANNEL_CREATE", data: channel_dto, user_id: creator_user_id });
|
||||||
}
|
}
|
||||||
|
|
||||||
if (recipients.length === 1) return channel_dto;
|
if (recipients.length === 1) return channel_dto;
|
||||||
else return channel_dto.excludedRecipients([creator_user_id]);
|
else return channel_dto.excludedRecipients([creator_user_id]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// List from https://invisible-characters.com/
|
// List from https://invisible-characters.com/
|
||||||
export const InvisibleCharacters = [
|
export const InvisibleCharacters = [
|
||||||
'\u{9}', //Tab
|
'\u{9}', //Tab
|
||||||
'\u{20}', //Space
|
//'\u{20}', //Space //categories can have spaces in them
|
||||||
'\u{ad}', //Soft hyphen
|
'\u{ad}', //Soft hyphen
|
||||||
'\u{34f}', //Combining grapheme joiner
|
'\u{34f}', //Combining grapheme joiner
|
||||||
'\u{61c}', //Arabic letter mark
|
'\u{61c}', //Arabic letter mark
|
||||||
|
Loading…
Reference in New Issue
Block a user