Skip to content

[API PROPOSAL] Allow/Deny list #2210

@pwall2222

Description

@pwall2222

Content

So, I was on the Vencord discord server, and brought an idea for a plugin.
An allow/deny list for the NoReply plugin, which brought @Sqaaakoi to comment that there should be an API.

I decided to bring it upon myself to create such request, which since I've kinda dealt with this issue in the past I wanna try my best to help.

Since my original proposal only centered around users this bit is new:

List types

  • User
  • Guild
  • Channel

The guild and channel lists would be just simple lists, containing the IDs for them.

User lists

The user lists oughta be one of the more complex ones because you might want to add more filtering than just by selecting a single user, my proposal is

Allow/Deny listing:

  • By ID
  • By Name Substring
  • By Guild Role

Priority

I think a sensible priority would be:

ID > Name > Guild Role

Since we want to always respect user decision first, then the most notable part of the personalization (people forget changing their roles a lot), roles and then default.

UI Helper

As per the github thread, this could be a UI helper, where you define the lists and it gets automatically added to their respective context menus, (guild, user).

Vendicated example:

Context menu with add to list button

Too much clutter

As it was mentioned, if plugins are gonna have one submenu only containing one list, it would be kindoff annoying to navigate and unecessary.

Since all the plugins are all in-house we could just have a defined set of categories so that they fit nicely, or have plugins with only one entry be shown without a submenu.

API Examples

Vendicated example:

const lists = defineLists({
	userWhitelist: {
		type: "user",
		name: "Users to log messages from"
	}
})

const isUsedWhitelisted = lists.userWhitelist.includes(someId);

Request Agreement

  • I have read the requirements for opening an issue above

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions