Discord Bot Hogwarts Очки Бот
Я пытался заставить этого бота работать некоторое время. Я не кодер, у меня около 0,002% знаний по теме. Некоторые функции работают, но когда дело доходит до добавления очков, это не работает вообще.
ПОЛНОЕ РАСКРЫТИЕ!!!! Это не мой бот. Я нашел это здесь.
function housePointsFunc(args) {
var house = this,
user = args.message.member,
roles = user.roles,
canGivePoints = false,
canTakePoints = false,
canSetPoints = false;
roles.map((value, index, arr) => {
for (let i = 0; i < config.roles.doAllOfTheAbove.length; i++) {
if (config.roles.doAllOfTheAbove[i] === value.name.toLowerCase()) {
canGivePoints = true;
canTakePoints = true;
canSetPoints = true;
}
}
if (!canTakePoints) {
for (let i = 0; i < config.roles.takePoints.length; i++) {
if (config.roles.takePoints[i] === value.name.toLowerCase()) {
canTakePoints = true;
break;
}
}
}
if (!canGivePoints) {
for (let i = 0; i < config.roles.givePoints.length; i++) {
if (config.roles.givePoints[i] === value.name.toLowerCase()) {
canGivePoints = true;
break;
}
}
}
if (!canSetPoints) {
for (let i = 0; i < config.roles.setPoints.length; i++) {
if (config.roles.setPoints[i] === value.name.toLowerCase()) {
canSetPoints = true;
break;
}
}
}
});
var firstParam = args.params[0];
if (firstParam !== undefined) {
if (firstParam.toLowerCase !== undefined) {
firstParam = firstParam.toLowerCase();
}
}
if (firstParam === 'points' || firstParam === 'point' || firstParam === 'p' || firstParam === undefined) {
args.send(house.capitalize() + ' has ' + points[house] + ' point(s)!');
} else if ((firstParam === 'add' || firstParam === 'increase' || firstParam === '+' || firstParam === 'give') && canGivePoints === true) {
if (isNaN(args.params[1]) || args.params[1] === 'Infinity' || args.params[1] === '-Infinity') {
args.send(' ' + args.params[1] + ' is not a number!');
} else {
points[house] += Number(args.params[1]);
if (points[house] < 0) {
points[house] = 0;
}
args.send('Added ' + args.params[1] + ' point(s) to ' + house.capitalize() + '!\n' + house.capitalize() + ' has ' + points[house] + ' point(s) now!');
writeJSON(__dirname + '/JSON/points.json', points);
}
} else if ((firstParam === 'subtract' || firstParam === 'sub' || firstParam === 'decrease' || firstParam === '-' || firstParam === 'take') && canTakePoints === true) {
if (isNaN(args.params[1]) || args.params[1] === 'Infinity' || args.params[1] === '-Infinity') {
args.send(' ' + args.params[1] + ' is not a number!');
} else {
points[house] -= Number(args.params[1]);
if (points[house] < 0) {
points[house] = 0;
}
args.send('Subtracted ' + args.params[1] + ' point(s) from ' + house.capitalize() + '!\n' + house.capitalize() + ' has ' + points[house] + ' point(s) now!');
writeJSON(__dirname + '/JSON/points.json', points);
}
} else if ((firstParam === 'set' || firstParam === 'setas') && canSetPoints === true) {
if (isNaN(args.params[1]) || args.params[1] === 'Infinity' || args.params[1] === '-Infinity') {
args.send(' ' + args.params[1] + ' is not a number!');
} else {
points[house] = Number(args.params[1]);
if (points[house] < 0) {
points[house] = 0;
}
args.send('Set ' + house.capitalize() + " house's points to " + args.params[1] + '!\n' + house.capitalize() + ' has ' + points[house] + ' point(s) now!');
writeJSON(__dirname + '/JSON/points.json', points);
}
Это часть кода, с которой у меня проблемы. (Или, по крайней мере, я так думаю.)
Я также пытался понять, как ограничить функции этого бота только определенными ролями, но это на другой день! Ха-ха. Кто-нибудь может увидеть, что здесь не так? Это то, чего мне не хватает?
О, да, я пытался найти контактную информацию для создателя, но я нигде не могу ее найти. -вздох-
Любая помощь будет принята с благодарностью.
Спасибо раззи