6IU*_*6IU 5 javascript move channel categories discord.js
var server = message.guild;
for (var i = 0; i < server.channels.array().length; i++) {
server.channels.array()[i].delete();
}
server.createChannel("Text Channels", "category");
server.createChannel('general', "text");
Run Code Online (Sandbox Code Playgroud)
我正在尝试使文本通道“常规”进入“文本通道”类别
我找到的所有解决方案都取决于您知道类别ID。我想知道是否有一种方法可以获取类别ID,或者仅通过其名称将通用名称移入“文本通道”。
注意:目前,我正在考虑通过以下方式获取类别ID:
var categoryID = server.categories.find("name","Text Channels");
Run Code Online (Sandbox Code Playgroud)
然后使用
server.channels.find("name","general").setParent(categoryID);
Run Code Online (Sandbox Code Playgroud)
您可以使用GuildChannel.setParent(). 请记住,Discord: CategoryChannelextends将类别视为频道GuildChannel,因此您可以使用以下命令检查类型GuildChannel.type
要分配现有频道:
let category = server.channels.find(c => c.name == "Text Channels" && c.type == "category"),
channel = server.channels.find(c => c.name == "general" && c.type == "text");
if (category && channel) channel.setParent(category.id);
else console.error(`One of the channels is missing:\nCategory: ${!!category}\nChannel: ${!!channel}`);
Run Code Online (Sandbox Code Playgroud)
要创建新频道:
server.createChannel("general", "text")
.then(channel => {
let category = server.channels.find(c => c.name == "Text Channels" && c.type == "category");
if (!category) throw new Error("Category channel does not exist");
channel.setParent(category.id);
}).catch(console.error);
Run Code Online (Sandbox Code Playgroud)
编辑:discord.js@v12
唯一改变的是你必须GuildChannelManager为所有事情使用。
let category = server.channels.find(c => c.name == "Text Channels" && c.type == "category"),
channel = server.channels.find(c => c.name == "general" && c.type == "text");
if (category && channel) channel.setParent(category.id);
else console.error(`One of the channels is missing:\nCategory: ${!!category}\nChannel: ${!!channel}`);
Run Code Online (Sandbox Code Playgroud)
server.createChannel("general", "text")
.then(channel => {
let category = server.channels.find(c => c.name == "Text Channels" && c.type == "category");
if (!category) throw new Error("Category channel does not exist");
channel.setParent(category.id);
}).catch(console.error);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5726 次 |
| 最近记录: |