@jsprismarine/raknet
Version:
Basic RakNet implementation written in TypeScript
137 lines (135 loc) • 11.4 kB
JavaScript
class ServerName {
server;
motd;
name = "JSRakNet";
protocol;
version;
maxPlayers;
onlinePlayers = 0;
gamemode;
serverId = 0n;
/**
* Create a new server name for a RakNet server.
* @param {any} server - The server instance.
*/
constructor(server) {
this.server = server;
this.motd = server.getConfig().getMotd();
this.gamemode = server.getConfig().getGamemode();
this.maxPlayers = server.getConfig().getMaxPlayers();
this.protocol = server.getIdentifiers().Protocol;
this.version = server.getIdentifiers().MinecraftVersions.at(0);
}
/**
* Get the message of the day.
* @returns {string} the message of the day.
*/
getMotd() {
return this.motd;
}
/**
* Set the message of the day.
* @param {string} motd - The message of the day.
*/
setMotd(motd) {
this.motd = motd;
}
/**
* Get the server name.
* @returns {string} The server name.
*/
getName() {
return this.name;
}
/**
* Set the server name.
* @param {string} name - The server name.
*/
setName(name) {
this.name = name;
}
/**
* Get the protocol version.
* @returns {number} The protocol version.
*/
getProtocol() {
return this.protocol;
}
/**
* Set the protocol version.
* @param {number} protocol - The protocol version.
*/
setProtocol(protocol) {
this.protocol = protocol;
}
/**
* Get the version of the server.
* @returns {string} The version of the server.
*/
getVersion() {
return this.version;
}
/**
* Set the version of the server.
* @param {string} version - The version of the server.
*/
setVersion(version) {
this.version = version;
}
/**
* Get the amount of online players.
* @returns {number} The amount of online players.
*/
getOnlinePlayerCount() {
return this.onlinePlayers;
}
/**
* Set the amount of online players.
* @param {number} count - The amount of online players.
*/
setOnlinePlayerCount(count) {
this.onlinePlayers = count;
}
/**
* Get the maximum amount of players.
* @returns {number} The maximum amount of players.
*/
getMaxPlayerCount() {
return this.maxPlayers;
}
/**
* Set the maximum amount of players.
* @param {number} count - The maximum amount of players.
* @returns {void}
*/
setMaxPlayerCount(count) {
this.maxPlayers = count;
}
getGamemode() {
return this.gamemode;
}
setGamemode(gamemode) {
this.gamemode = gamemode;
}
getServerId() {
return this.serverId;
}
setServerId(id) {
this.serverId = id;
}
toString() {
return [
"MCPE",
this.getMotd() || "Example motd",
this.getProtocol(),
this.getVersion(),
this.getOnlinePlayerCount(),
this.getMaxPlayerCount(),
this.getServerId(),
this.getName(),
this.getGamemode()
].join(";") + ";";
}
}
export { ServerName };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmVyTmFtZS5lcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL1NlcnZlck5hbWUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFNlcnZlck5hbWUge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc2VydmVyOiBhbnk7XG4gICAgcHJpdmF0ZSBtb3RkOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBuYW1lID0gJ0pTUmFrTmV0JztcbiAgICBwcml2YXRlIHByb3RvY29sO1xuICAgIHByaXZhdGUgdmVyc2lvbjtcbiAgICBwcml2YXRlIG1heFBsYXllcnM6IG51bWJlcjtcbiAgICBwcml2YXRlIG9ubGluZVBsYXllcnM6IG51bWJlciA9IDA7XG4gICAgcHJpdmF0ZSBnYW1lbW9kZTogc3RyaW5nO1xuICAgIHByaXZhdGUgc2VydmVySWQgPSAwbjtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIG5ldyBzZXJ2ZXIgbmFtZSBmb3IgYSBSYWtOZXQgc2VydmVyLlxuICAgICAqIEBwYXJhbSB7YW55fSBzZXJ2ZXIgLSBUaGUgc2VydmVyIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihzZXJ2ZXI6IGFueSkge1xuICAgICAgICB0aGlzLnNlcnZlciA9IHNlcnZlcjtcbiAgICAgICAgdGhpcy5tb3RkID0gc2VydmVyLmdldENvbmZpZygpLmdldE1vdGQoKTtcbiAgICAgICAgdGhpcy5nYW1lbW9kZSA9IHNlcnZlci5nZXRDb25maWcoKS5nZXRHYW1lbW9kZSgpO1xuICAgICAgICB0aGlzLm1heFBsYXllcnMgPSBzZXJ2ZXIuZ2V0Q29uZmlnKCkuZ2V0TWF4UGxheWVycygpO1xuICAgICAgICB0aGlzLnByb3RvY29sID0gKHNlcnZlciBhcyBhbnkpLmdldElkZW50aWZpZXJzKCkuUHJvdG9jb2w7XG4gICAgICAgIHRoaXMudmVyc2lvbiA9IChzZXJ2ZXIgYXMgYW55KS5nZXRJZGVudGlmaWVycygpLk1pbmVjcmFmdFZlcnNpb25zLmF0KDApITtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgdGhlIG1lc3NhZ2Ugb2YgdGhlIGRheS5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSB0aGUgbWVzc2FnZSBvZiB0aGUgZGF5LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRNb3RkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vdGQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNldCB0aGUgbWVzc2FnZSBvZiB0aGUgZGF5LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBtb3RkIC0gVGhlIG1lc3NhZ2Ugb2YgdGhlIGRheS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0TW90ZChtb3RkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb3RkID0gbW90ZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgdGhlIHNlcnZlciBuYW1lLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBzZXJ2ZXIgbmFtZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0TmFtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5uYW1lO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXQgdGhlIHNlcnZlciBuYW1lLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gVGhlIHNlcnZlciBuYW1lLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXROYW1lKG5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCB0aGUgcHJvdG9jb2wgdmVyc2lvbi5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBUaGUgcHJvdG9jb2wgdmVyc2lvbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UHJvdG9jb2woKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvdG9jb2w7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNldCB0aGUgcHJvdG9jb2wgdmVyc2lvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gcHJvdG9jb2wgLSBUaGUgcHJvdG9jb2wgdmVyc2lvbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0UHJvdG9jb2wocHJvdG9jb2w6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnByb3RvY29sID0gcHJvdG9jb2w7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSB2ZXJzaW9uIG9mIHRoZSBzZXJ2ZXIuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gVGhlIHZlcnNpb24gb2YgdGhlIHNlcnZlci5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VmVyc2lvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy52ZXJzaW9uO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXQgdGhlIHZlcnNpb24gb2YgdGhlIHNlcnZlci5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdmVyc2lvbiAtIFRoZSB2ZXJzaW9uIG9mIHRoZSBzZXJ2ZXIuXG4gICAgICovXG4gICAgcHVibGljIHNldFZlcnNpb24odmVyc2lvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmVyc2lvbiA9IHZlcnNpb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBhbW91bnQgb2Ygb25saW5lIHBsYXllcnMuXG4gICAgICogQHJldHVybnMge251bWJlcn0gVGhlIGFtb3VudCBvZiBvbmxpbmUgcGxheWVycy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0T25saW5lUGxheWVyQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub25saW5lUGxheWVycztcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBhbW91bnQgb2Ygb25saW5lIHBsYXllcnMuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGNvdW50IC0gVGhlIGFtb3VudCBvZiBvbmxpbmUgcGxheWVycy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0T25saW5lUGxheWVyQ291bnQoY291bnQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLm9ubGluZVBsYXllcnMgPSBjb3VudDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgdGhlIG1heGltdW0gYW1vdW50IG9mIHBsYXllcnMuXG4gICAgICogQHJldHVybnMge251bWJlcn0gVGhlIG1heGltdW0gYW1vdW50IG9mIHBsYXllcnMuXG4gICAgICovXG4gICAgcHVibGljIGdldE1heFBsYXllckNvdW50KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLm1heFBsYXllcnM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNldCB0aGUgbWF4aW11bSBhbW91bnQgb2YgcGxheWVycy5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gY291bnQgLSBUaGUgbWF4aW11bSBhbW91bnQgb2YgcGxheWVycy5cbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0TWF4UGxheWVyQ291bnQoY291bnQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLm1heFBsYXllcnMgPSBjb3VudDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0R2FtZW1vZGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2FtZW1vZGU7XG4gICAgfVxuICAgIHB1YmxpYyBzZXRHYW1lbW9kZShnYW1lbW9kZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2FtZW1vZGUgPSBnYW1lbW9kZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U2VydmVySWQoKTogYmlnaW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VydmVySWQ7XG4gICAgfVxuICAgIHB1YmxpYyBzZXRTZXJ2ZXJJZChpZDogYmlnaW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VydmVySWQgPSBpZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAnTUNQRScsXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRNb3RkKCkgfHwgJ0V4YW1wbGUgbW90ZCcsXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRQcm90b2NvbCgpLFxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0VmVyc2lvbigpLFxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0T25saW5lUGxheWVyQ291bnQoKSxcbiAgICAgICAgICAgICAgICB0aGlzLmdldE1heFBsYXllckNvdW50KCksXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRTZXJ2ZXJJZCgpLFxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0TmFtZSgpLFxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0R2FtZW1vZGUoKVxuICAgICAgICAgICAgXS5qb2luKCc7JykgKyAnOydcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQU8sTUFBTSxVQUFXLENBQUE7QUFBQSxFQUNILE1BQUE7QUFBQSxFQUNULElBQUE7QUFBQSxFQUNBLElBQU8sR0FBQSxVQUFBO0FBQUEsRUFDUCxRQUFBO0FBQUEsRUFDQSxPQUFBO0FBQUEsRUFDQSxVQUFBO0FBQUEsRUFDQSxhQUF3QixHQUFBLENBQUE7QUFBQSxFQUN4QixRQUFBO0FBQUEsRUFDQSxRQUFXLEdBQUEsRUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNWixZQUFZLE1BQWEsRUFBQTtBQUM1QixJQUFBLElBQUEsQ0FBSyxNQUFTLEdBQUEsTUFBQTtBQUNkLElBQUEsSUFBQSxDQUFLLElBQU8sR0FBQSxNQUFBLENBQU8sU0FBVSxFQUFBLENBQUUsT0FBUSxFQUFBO0FBQ3ZDLElBQUEsSUFBQSxDQUFLLFFBQVcsR0FBQSxNQUFBLENBQU8sU0FBVSxFQUFBLENBQUUsV0FBWSxFQUFBO0FBQy9DLElBQUEsSUFBQSxDQUFLLFVBQWEsR0FBQSxNQUFBLENBQU8sU0FBVSxFQUFBLENBQUUsYUFBYyxFQUFBO0FBQ25ELElBQUssSUFBQSxDQUFBLFFBQUEsR0FBWSxNQUFlLENBQUEsY0FBQSxFQUFpQixDQUFBLFFBQUE7QUFDakQsSUFBQSxJQUFBLENBQUssVUFBVyxNQUFlLENBQUEsY0FBQSxFQUFpQixDQUFBLGlCQUFBLENBQWtCLEdBQUcsQ0FBQyxDQUFBO0FBQUE7QUFDMUU7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1PLE9BQWtCLEdBQUE7QUFDckIsSUFBQSxPQUFPLElBQUssQ0FBQSxJQUFBO0FBQUE7QUFDaEI7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtPLFFBQVEsSUFBb0IsRUFBQTtBQUMvQixJQUFBLElBQUEsQ0FBSyxJQUFPLEdBQUEsSUFBQTtBQUFBO0FBQ2hCO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNTyxPQUFrQixHQUFBO0FBQ3JCLElBQUEsT0FBTyxJQUFLLENBQUEsSUFBQTtBQUFBO0FBQ2hCO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLTyxRQUFRLElBQW9CLEVBQUE7QUFDL0IsSUFBQSxJQUFBLENBQUssSUFBTyxHQUFBLElBQUE7QUFBQTtBQUNoQjtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTU8sV0FBc0IsR0FBQTtBQUN6QixJQUFBLE9BQU8sSUFBSyxDQUFBLFFBQUE7QUFBQTtBQUNoQjtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS08sWUFBWSxRQUF3QixFQUFBO0FBQ3ZDLElBQUEsSUFBQSxDQUFLLFFBQVcsR0FBQSxRQUFBO0FBQUE7QUFDcEI7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1PLFVBQXFCLEdBQUE7QUFDeEIsSUFBQSxPQUFPLElBQUssQ0FBQSxPQUFBO0FBQUE7QUFDaEI7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtPLFdBQVcsT0FBdUIsRUFBQTtBQUNyQyxJQUFBLElBQUEsQ0FBSyxPQUFVLEdBQUEsT0FBQTtBQUFBO0FBQ25CO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNTyxvQkFBK0IsR0FBQTtBQUNsQyxJQUFBLE9BQU8sSUFBSyxDQUFBLGFBQUE7QUFBQTtBQUNoQjtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS08scUJBQXFCLEtBQXFCLEVBQUE7QUFDN0MsSUFBQSxJQUFBLENBQUssYUFBZ0IsR0FBQSxLQUFBO0FBQUE7QUFDekI7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1PLGlCQUE0QixHQUFBO0FBQy9CLElBQUEsT0FBTyxJQUFLLENBQUEsVUFBQTtBQUFBO0FBQ2hCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1PLGtCQUFrQixLQUFxQixFQUFBO0FBQzFDLElBQUEsSUFBQSxDQUFLLFVBQWEsR0FBQSxLQUFBO0FBQUE7QUFDdEIsRUFFTyxXQUFzQixHQUFBO0FBQ3pCLElBQUEsT0FBTyxJQUFLLENBQUEsUUFBQTtBQUFBO0FBQ2hCLEVBQ08sWUFBWSxRQUF3QixFQUFBO0FBQ3ZDLElBQUEsSUFBQSxDQUFLLFFBQVcsR0FBQSxRQUFBO0FBQUE7QUFDcEIsRUFFTyxXQUFzQixHQUFBO0FBQ3pCLElBQUEsT0FBTyxJQUFLLENBQUEsUUFBQTtBQUFBO0FBQ2hCLEVBQ08sWUFBWSxFQUFrQixFQUFBO0FBQ2pDLElBQUEsSUFBQSxDQUFLLFFBQVcsR0FBQSxFQUFBO0FBQUE7QUFDcEIsRUFFTyxRQUFtQixHQUFBO0FBQ3RCLElBQ0ksT0FBQTtBQUFBLE1BQ0ksTUFBQTtBQUFBLE1BQ0EsSUFBQSxDQUFLLFNBQWEsSUFBQSxjQUFBO0FBQUEsTUFDbEIsS0FBSyxXQUFZLEVBQUE7QUFBQSxNQUNqQixLQUFLLFVBQVcsRUFBQTtBQUFBLE1BQ2hCLEtBQUssb0JBQXFCLEVBQUE7QUFBQSxNQUMxQixLQUFLLGlCQUFrQixFQUFBO0FBQUEsTUFDdkIsS0FBSyxXQUFZLEVBQUE7QUFBQSxNQUNqQixLQUFLLE9BQVEsRUFBQTtBQUFBLE1BQ2IsS0FBSyxXQUFZO0FBQUEsS0FDckIsQ0FBRSxJQUFLLENBQUEsR0FBRyxDQUFJLEdBQUEsR0FBQTtBQUFBO0FBRzFCOzs7OyJ9