2 files changed, 48 insertions, 0 deletions
diff --git a/util/src/entities/Channel.ts b/util/src/entities/Channel.ts
index 4bf81901..c516e6a1 100644
--- a/util/src/entities/Channel.ts
+++ b/util/src/entities/Channel.ts
@@ -352,6 +352,17 @@ export class Channel extends BaseClass {
isDm() {
return this.type === ChannelType.DM || this.type === ChannelType.GROUP_DM;
}
+
+ // Does the channel support sending messages ( eg categories do not )
+ isWritable() {
+ const disallowedChannelTypes = [
+ ChannelType.GUILD_CATEGORY,
+ ChannelType.GUILD_VOICE, // TODO: Remove this when clients can send messages to voice channels on discord.com
+ ChannelType.GUILD_STAGE_VOICE,
+ ChannelType.VOICELESS_WHITEBOARD,
+ ];
+ return disallowedChannelTypes.indexOf(this.type) == -1;
+ }
}
export interface ChannelPermissionOverwrite {
diff --git a/util/src/entities/UserGroup.ts b/util/src/entities/UserGroup.ts
new file mode 100644
index 00000000..709b9d0b
--- /dev/null
+++ b/util/src/entities/UserGroup.ts
@@ -0,0 +1,37 @@
+import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm";
+
+import { BaseClass } from "./BaseClass";
+import { Guild } from "./Guild";
+import { User } from "./User";
+
+@Entity("groups")
+export class UserGroup extends BaseClass {
+ @Column()
+ color: number;
+
+ @Column()
+ hoist: boolean;
+
+ @JoinColumn({ name: "controller", referencedColumnName: "id" })
+ @ManyToOne(() => User)
+ controller?: User;
+
+ @Column()
+ mentionable_by?: string;
+
+ @Column()
+ name: string;
+
+ @Column()
+ rights: string;
+
+ @Column({ nullable: true })
+ icon: string;
+
+ @Column({ nullable: true })
+ parent?: string;
+
+ @Column({ type: "simple-array", nullable: true})
+ associciations: string[];
+
+}
|