Node.js中的多用途变量
我运行游戏服务器并编写了一个Node.js bot来发送/接收来自/到Discord的聊天信息,以实现它们之间的通信。 现在我想集成它的功能,以接收从游戏到Discord的最新日志。 我已经设法让它为一个球员工作,但现在我想让它为几个球员工作。 我有三个变量:channelID、server、playerID 所以,我的问题是,拥有多个ChannelID数组的最佳方法是什么,这些数组将包含多个服务器值和playerID值,由单个函数处理 我当前的工作代码:Node.js中的多用途变量,node.js,Node.js,我运行游戏服务器并编写了一个Node.js bot来发送/接收来自/到Discord的聊天信息,以实现它们之间的通信。 现在我想集成它的功能,以接收从游戏到Discord的最新日志。 我已经设法让它为一个球员工作,但现在我想让它为几个球员工作。 我有三个变量:channelID、server、playerID 所以,我的问题是,拥有多个ChannelID数组的最佳方法是什么,这些数组将包含多个服务器值和playerID值,由单个函数处理 我当前的工作代码: var channelID = &qu
var channelID = "channel1";
var server = "server1";
var playerID = "player1";
//Last log message is stored in Webdis
var webdisURL = "http://127.0.0.1:7379/GET/" + server + playerID;
setInterval(() => lastLog(webdisURL, function(body) {
Object.keys(body).forEach(e => result = `${body[e]}`);
client.channels.cache.get(channelID).send(result);
}), 3000);
function lastLog(webdisURL, callback) {
request({
url: webdisURL,
json: true
}, function(error, response, body) {
if (!error && response.statusCode === 200) {
callback(body);
}
});
}
所以我就这样做了:
var webdisURL = "http://127.0.0.1:7379/GET/";
class Players {
constructor(players, channelID) {
players = players.split(',');
players.forEach(getPlayers);
function getPlayers(value) {
var playerName = value.split(":")[0];
var playerSRV = value.split(":")[1];
var playerID = value.split(":")[2];
var getLogURL = webdisURL + playerSRV + playerID;
var result;
var previousResult;
setInterval(() => lastLog(getLogURL, function (body) {
Object.keys(body).forEach(e => result = `${body[e]}`);
if (result !== previousResult) {
client.channels.cache.get(channelID).send("[" + playerName + "] - [" + playerSRV + "]: " + result);
previousResult = result;
}
}), 3000);
function lastLog(getLogURL, callback) {
request({
url: getLogURL,
json: true
}, function (error, response, body) {
if (!error && response.statusCode === 200) {
callback(body);
}
});
}
}
}
}
// "playerName1:playerSRV1:playerID1,playerName2:playerSRV2:playerID2", "channelID"
let playerTeam1 = new Players("Perseus:myServer1:ID1", "channel1");
let playerTeam2 = new Players("Another Player:myServer2:ID1,Another Player2:myServer3:ID1", "channel2");
示例输出:
[Perseus] - [myServer1]: Day 153, 11:59:43: Your 'Campfire' was auto-decay destroyed!
[Another Player] - [myServer2]: Day 153, 11:59:43: Your 'Campfire' was auto-decay destroyed!
[Another Player2] - [myServer3]: Day 153, 11:59:43: Your 'Campfire' was auto-decay destroyed!
看起来还好吗?如果有任何改进建议,我将不胜感激。与什么相比,最好的方法是什么?分享你的代码不是一个坏主意谢谢你的建议