Roblox机器人推广系统
Roblox bot promote system
我想使用推广命令来推广组中的人,但它没有推广他们,它回复一条消息说我需要输入用户名。
我的代码:
import * as Discord from "discord.js";
import { IBotCommand } from "../api";
import * as ConfigFile from "../config";
let express = require("express");
let roblox = require('noblox.js');
export default class Promote implements IBotCommand {
private readonly _command = "promote";
help(): string {
return "Promote members in the Roblox group."
}
isThisCommand(command: string): boolean {
return command === this._command;
}
async runCommand(args: string[], msgObject: Discord.Message, client: Discord.Client): Promise<void> {
if (!msgObject.member.roles.find("name", "Council")) {
msgObject.channel.send(`Nice try ${msgObject.author.username} but you don't have permission to promote members!`)
.catch(console.error);
return;
}
let groupId = 5293276;
let maximumRank = ConfigFile.config.maximum_rank
let username = args[1]
if (username) {
msgObject.channel.send(`Checking ROBLOX for ${username}`)
roblox.getIdFromUsername(username)
.then(function (id: any) {
roblox.getRankInGroup(groupId, id)
.then(function (rank: number) {
if (maximumRank <= rank) {
msgObject.channel.send(`${id} is rank ${rank} and not promotable.`)
} else {
msgObject.channel.send(`${id} is rank ${rank} and promotable.`)
roblox.promote(groupId, id)
.then(function (roles: { oldRole: { Name: any; }; newRole: { Name: any; }; }) {
msgObject.channel.send(`Promoted from ${roles.oldRole.Name} to ${roles.newRole.Name}`)
}).catch(console.error)
.then(msgObject.channel.send("Failed to promote."))
}
}).catch(console.error)
.then(
msgObject.channel.send("Couldn't get him in the group."));
}).catch(console.error)
.then(
msgObject.channel.send(`Sorry, but ${username} doesn't exist on ROBLOX.`));
} else {
msgObject.channel.send("Please enter a username.")
}
return;
}
}
当我插入用户名时,它会重播此消息:
并且它向每个用户名提供相同的消息。
我不确定,但是如果你使用带有 cmd\args
的 commandHelper,用户名必须是 let username = args[0]
而不是 let username = args[1]
因为命令执行从消息数组拼接的世界并且你在 args[1]
上未定义
执行如下命令即可查看:m!promote fakedname nowItsRealNameForArgs[1]
我想使用推广命令来推广组中的人,但它没有推广他们,它回复一条消息说我需要输入用户名。
我的代码:
import * as Discord from "discord.js";
import { IBotCommand } from "../api";
import * as ConfigFile from "../config";
let express = require("express");
let roblox = require('noblox.js');
export default class Promote implements IBotCommand {
private readonly _command = "promote";
help(): string {
return "Promote members in the Roblox group."
}
isThisCommand(command: string): boolean {
return command === this._command;
}
async runCommand(args: string[], msgObject: Discord.Message, client: Discord.Client): Promise<void> {
if (!msgObject.member.roles.find("name", "Council")) {
msgObject.channel.send(`Nice try ${msgObject.author.username} but you don't have permission to promote members!`)
.catch(console.error);
return;
}
let groupId = 5293276;
let maximumRank = ConfigFile.config.maximum_rank
let username = args[1]
if (username) {
msgObject.channel.send(`Checking ROBLOX for ${username}`)
roblox.getIdFromUsername(username)
.then(function (id: any) {
roblox.getRankInGroup(groupId, id)
.then(function (rank: number) {
if (maximumRank <= rank) {
msgObject.channel.send(`${id} is rank ${rank} and not promotable.`)
} else {
msgObject.channel.send(`${id} is rank ${rank} and promotable.`)
roblox.promote(groupId, id)
.then(function (roles: { oldRole: { Name: any; }; newRole: { Name: any; }; }) {
msgObject.channel.send(`Promoted from ${roles.oldRole.Name} to ${roles.newRole.Name}`)
}).catch(console.error)
.then(msgObject.channel.send("Failed to promote."))
}
}).catch(console.error)
.then(
msgObject.channel.send("Couldn't get him in the group."));
}).catch(console.error)
.then(
msgObject.channel.send(`Sorry, but ${username} doesn't exist on ROBLOX.`));
} else {
msgObject.channel.send("Please enter a username.")
}
return;
}
}
当我插入用户名时,它会重播此消息:
并且它向每个用户名提供相同的消息。
我不确定,但是如果你使用带有 cmd\args
的 commandHelper,用户名必须是 let username = args[0]
而不是 let username = args[1]
因为命令执行从消息数组拼接的世界并且你在 args[1]
执行如下命令即可查看:m!promote fakedname nowItsRealNameForArgs[1]