Commit 7cef28d0 authored by nanahira's avatar nanahira

finish db

parent b5a35eab
Pipeline #1223 passed with stage
in 7 minutes and 9 seconds
...@@ -439,9 +439,11 @@ class DataManager { ...@@ -439,9 +439,11 @@ class DataManager {
async getVipKeys(keyType) { async getVipKeys(keyType) {
const repo = this.db.getRepository(VipKey_1.VipKey); const repo = this.db.getRepository(VipKey_1.VipKey);
const queryCondition = { const queryCondition = {
type: keyType,
isUsed: 0 isUsed: 0
}; };
if (keyType) {
queryCondition.type = keyType;
}
try { try {
const keys = await repo.find(queryCondition); const keys = await repo.find(queryCondition);
return keys.map(k => k.toJSON()); return keys.map(k => k.toJSON());
......
...@@ -463,9 +463,11 @@ export class DataManager { ...@@ -463,9 +463,11 @@ export class DataManager {
async getVipKeys(keyType: number) { async getVipKeys(keyType: number) {
const repo = this.db.getRepository(VipKey); const repo = this.db.getRepository(VipKey);
const queryCondition = { const queryCondition: any = {
type: keyType,
isUsed: 0 isUsed: 0
};
if (keyType) {
queryCondition.type = keyType;
} }
try { try {
const keys = await repo.find(queryCondition); const keys = await repo.find(queryCondition);
......
...@@ -11,28 +11,25 @@ var __metadata = (this && this.__metadata) || function (k, v) { ...@@ -11,28 +11,25 @@ var __metadata = (this && this.__metadata) || function (k, v) {
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.Ban = void 0; exports.Ban = void 0;
const typeorm_1 = require("typeorm"); const typeorm_1 = require("typeorm");
let Ban = /** @class */ (() => { let Ban = class Ban {
let Ban = class Ban { };
}; __decorate([
__decorate([
typeorm_1.PrimaryGeneratedColumn({ unsigned: true, type: "bigint" }), typeorm_1.PrimaryGeneratedColumn({ unsigned: true, type: "bigint" }),
__metadata("design:type", Number) __metadata("design:type", Number)
], Ban.prototype, "id", void 0); ], Ban.prototype, "id", void 0);
__decorate([ __decorate([
typeorm_1.Index(), typeorm_1.Index(),
typeorm_1.Column({ type: "varchar", length: 64, nullable: true }), typeorm_1.Column({ type: "varchar", length: 64, nullable: true }),
__metadata("design:type", String) __metadata("design:type", String)
], Ban.prototype, "ip", void 0); ], Ban.prototype, "ip", void 0);
__decorate([ __decorate([
typeorm_1.Index(), typeorm_1.Index(),
typeorm_1.Column({ type: "varchar", length: 20, nullable: true }), typeorm_1.Column({ type: "varchar", length: 20, nullable: true }),
__metadata("design:type", String) __metadata("design:type", String)
], Ban.prototype, "name", void 0); ], Ban.prototype, "name", void 0);
Ban = __decorate([ Ban = __decorate([
typeorm_1.Entity(), typeorm_1.Entity(),
typeorm_1.Unique(["ip", "name"]) typeorm_1.Unique(["ip", "name"])
], Ban); ], Ban);
return Ban;
})();
exports.Ban = Ban; exports.Ban = Ban;
//# sourceMappingURL=Ban.js.map //# sourceMappingURL=Ban.js.map
\ No newline at end of file
...@@ -11,22 +11,19 @@ var __metadata = (this && this.__metadata) || function (k, v) { ...@@ -11,22 +11,19 @@ var __metadata = (this && this.__metadata) || function (k, v) {
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.BasePlayer = void 0; exports.BasePlayer = void 0;
const typeorm_1 = require("typeorm"); const typeorm_1 = require("typeorm");
let BasePlayer = /** @class */ (() => { class BasePlayer {
class BasePlayer { }
} __decorate([
__decorate([
typeorm_1.PrimaryGeneratedColumn({ unsigned: true, type: "bigint" }), typeorm_1.PrimaryGeneratedColumn({ unsigned: true, type: "bigint" }),
__metadata("design:type", Number) __metadata("design:type", Number)
], BasePlayer.prototype, "id", void 0); ], BasePlayer.prototype, "id", void 0);
__decorate([ __decorate([
typeorm_1.Column({ type: "varchar", length: 20 }), typeorm_1.Column({ type: "varchar", length: 20 }),
__metadata("design:type", String) __metadata("design:type", String)
], BasePlayer.prototype, "name", void 0); ], BasePlayer.prototype, "name", void 0);
__decorate([ __decorate([
typeorm_1.Column({ type: "tinyint" }), typeorm_1.Column({ type: "tinyint" }),
__metadata("design:type", Number) __metadata("design:type", Number)
], BasePlayer.prototype, "pos", void 0); ], BasePlayer.prototype, "pos", void 0);
return BasePlayer;
})();
exports.BasePlayer = BasePlayer; exports.BasePlayer = BasePlayer;
//# sourceMappingURL=BasePlayer.js.map //# sourceMappingURL=BasePlayer.js.map
\ No newline at end of file
...@@ -17,8 +17,7 @@ const typeorm_1 = require("typeorm"); ...@@ -17,8 +17,7 @@ const typeorm_1 = require("typeorm");
const CloudReplayPlayer_1 = require("./CloudReplayPlayer"); const CloudReplayPlayer_1 = require("./CloudReplayPlayer");
const underscore_1 = __importDefault(require("underscore")); const underscore_1 = __importDefault(require("underscore"));
const moment_1 = __importDefault(require("moment")); const moment_1 = __importDefault(require("moment"));
let CloudReplay = /** @class */ (() => { let CloudReplay = class CloudReplay {
let CloudReplay = class CloudReplay {
fromBuffer(buffer) { fromBuffer(buffer) {
this.data = buffer.toString("base64"); this.data = buffer.toString("base64");
} }
...@@ -36,27 +35,25 @@ let CloudReplay = /** @class */ (() => { ...@@ -36,27 +35,25 @@ let CloudReplay = /** @class */ (() => {
getDisplayString() { getDisplayString() {
return `R#${this.id} ${this.getPlayerNamesString()} ${this.getDateString()}`; return `R#${this.id} ${this.getPlayerNamesString()} ${this.getDateString()}`;
} }
}; };
__decorate([ __decorate([
typeorm_1.PrimaryColumn({ unsigned: true, type: "bigint" }), typeorm_1.PrimaryColumn({ unsigned: true, type: "bigint" }),
__metadata("design:type", Number) __metadata("design:type", Number)
], CloudReplay.prototype, "id", void 0); ], CloudReplay.prototype, "id", void 0);
__decorate([ __decorate([
typeorm_1.Column({ type: "text" }), typeorm_1.Column({ type: "text" }),
__metadata("design:type", String) __metadata("design:type", String)
], CloudReplay.prototype, "data", void 0); ], CloudReplay.prototype, "data", void 0);
__decorate([ __decorate([
typeorm_1.Column({ type: "datetime" }), typeorm_1.Column({ type: "datetime" }),
__metadata("design:type", Date) __metadata("design:type", Date)
], CloudReplay.prototype, "date", void 0); ], CloudReplay.prototype, "date", void 0);
__decorate([ __decorate([
typeorm_1.OneToMany(() => CloudReplayPlayer_1.CloudReplayPlayer, player => player.cloudReplay), typeorm_1.OneToMany(() => CloudReplayPlayer_1.CloudReplayPlayer, player => player.cloudReplay),
__metadata("design:type", Array) __metadata("design:type", Array)
], CloudReplay.prototype, "players", void 0); ], CloudReplay.prototype, "players", void 0);
CloudReplay = __decorate([ CloudReplay = __decorate([
typeorm_1.Entity() typeorm_1.Entity()
], CloudReplay); ], CloudReplay);
return CloudReplay;
})();
exports.CloudReplay = CloudReplay; exports.CloudReplay = CloudReplay;
//# sourceMappingURL=CloudReplay.js.map //# sourceMappingURL=CloudReplay.js.map
\ No newline at end of file
...@@ -8,14 +8,13 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, ...@@ -8,14 +8,13 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
var __metadata = (this && this.__metadata) || function (k, v) { var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
}; };
var CloudReplayPlayer_1;
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.CloudReplayPlayer = void 0; exports.CloudReplayPlayer = void 0;
const typeorm_1 = require("typeorm"); const typeorm_1 = require("typeorm");
const CloudReplay_1 = require("./CloudReplay"); const CloudReplay_1 = require("./CloudReplay");
const BasePlayer_1 = require("./BasePlayer"); const BasePlayer_1 = require("./BasePlayer");
let CloudReplayPlayer = /** @class */ (() => { let CloudReplayPlayer = CloudReplayPlayer_1 = class CloudReplayPlayer extends BasePlayer_1.BasePlayer {
var CloudReplayPlayer_1;
let CloudReplayPlayer = CloudReplayPlayer_1 = class CloudReplayPlayer extends BasePlayer_1.BasePlayer {
static fromPlayerInfo(info) { static fromPlayerInfo(info) {
const p = new CloudReplayPlayer_1(); const p = new CloudReplayPlayer_1();
p.key = info.key; p.key = info.key;
...@@ -23,20 +22,18 @@ let CloudReplayPlayer = /** @class */ (() => { ...@@ -23,20 +22,18 @@ let CloudReplayPlayer = /** @class */ (() => {
p.pos = info.pos; p.pos = info.pos;
return p; return p;
} }
}; };
__decorate([ __decorate([
typeorm_1.Index(), typeorm_1.Index(),
typeorm_1.Column({ type: "varchar", length: 40 }), typeorm_1.Column({ type: "varchar", length: 40 }),
__metadata("design:type", String) __metadata("design:type", String)
], CloudReplayPlayer.prototype, "key", void 0); ], CloudReplayPlayer.prototype, "key", void 0);
__decorate([ __decorate([
typeorm_1.ManyToOne(() => CloudReplay_1.CloudReplay, replay => replay.players), typeorm_1.ManyToOne(() => CloudReplay_1.CloudReplay, replay => replay.players),
__metadata("design:type", CloudReplay_1.CloudReplay) __metadata("design:type", CloudReplay_1.CloudReplay)
], CloudReplayPlayer.prototype, "cloudReplay", void 0); ], CloudReplayPlayer.prototype, "cloudReplay", void 0);
CloudReplayPlayer = CloudReplayPlayer_1 = __decorate([ CloudReplayPlayer = CloudReplayPlayer_1 = __decorate([
typeorm_1.Entity() typeorm_1.Entity()
], CloudReplayPlayer); ], CloudReplayPlayer);
return CloudReplayPlayer;
})();
exports.CloudReplayPlayer = CloudReplayPlayer; exports.CloudReplayPlayer = CloudReplayPlayer;
//# sourceMappingURL=CloudReplayPlayer.js.map //# sourceMappingURL=CloudReplayPlayer.js.map
\ No newline at end of file
...@@ -17,8 +17,7 @@ const typeorm_1 = require("typeorm"); ...@@ -17,8 +17,7 @@ const typeorm_1 = require("typeorm");
const DuelLogPlayer_1 = require("./DuelLogPlayer"); const DuelLogPlayer_1 = require("./DuelLogPlayer");
const moment_1 = __importDefault(require("moment")); const moment_1 = __importDefault(require("moment"));
const underscore_1 = __importDefault(require("underscore")); const underscore_1 = __importDefault(require("underscore"));
let DuelLog = /** @class */ (() => { let DuelLog = class DuelLog {
let DuelLog = class DuelLog {
getViewString() { getViewString() {
const viewPlayers = underscore_1.default.clone(this.players); const viewPlayers = underscore_1.default.clone(this.players);
viewPlayers.sort((p1, p2) => p1.pos - p2.pos); viewPlayers.sort((p1, p2) => p1.pos - p2.pos);
...@@ -45,48 +44,46 @@ let DuelLog = /** @class */ (() => { ...@@ -45,48 +44,46 @@ let DuelLog = /** @class */ (() => {
}; };
return data; return data;
} }
}; };
__decorate([ __decorate([
typeorm_1.PrimaryGeneratedColumn({ unsigned: true, type: "bigint" }), typeorm_1.PrimaryGeneratedColumn({ unsigned: true, type: "bigint" }),
__metadata("design:type", Number) __metadata("design:type", Number)
], DuelLog.prototype, "id", void 0); ], DuelLog.prototype, "id", void 0);
__decorate([ __decorate([
typeorm_1.Column("datetime"), typeorm_1.Column("datetime"),
__metadata("design:type", Date) __metadata("design:type", Date)
], DuelLog.prototype, "time", void 0); ], DuelLog.prototype, "time", void 0);
__decorate([ __decorate([
typeorm_1.Index(), typeorm_1.Index(),
typeorm_1.Column({ type: "varchar", length: 20 }), typeorm_1.Column({ type: "varchar", length: 20 }),
__metadata("design:type", String) __metadata("design:type", String)
], DuelLog.prototype, "name", void 0); ], DuelLog.prototype, "name", void 0);
__decorate([ __decorate([
typeorm_1.Column("int"), typeorm_1.Column("int"),
__metadata("design:type", Number) __metadata("design:type", Number)
], DuelLog.prototype, "roomId", void 0); ], DuelLog.prototype, "roomId", void 0);
__decorate([ __decorate([
typeorm_1.Column("bigint"), typeorm_1.Column("bigint"),
__metadata("design:type", Number) __metadata("design:type", Number)
], DuelLog.prototype, "cloudReplayId", void 0); ], DuelLog.prototype, "cloudReplayId", void 0);
__decorate([ __decorate([
typeorm_1.Column({ type: "varchar", length: 256 }), typeorm_1.Column({ type: "varchar", length: 256 }),
__metadata("design:type", String) __metadata("design:type", String)
], DuelLog.prototype, "replayFileName", void 0); ], DuelLog.prototype, "replayFileName", void 0);
__decorate([ __decorate([
typeorm_1.Column("tinyint", { unsigned: true }), typeorm_1.Column("tinyint", { unsigned: true }),
__metadata("design:type", Number) __metadata("design:type", Number)
], DuelLog.prototype, "roomMode", void 0); ], DuelLog.prototype, "roomMode", void 0);
__decorate([ __decorate([
typeorm_1.Column("tinyint", { unsigned: true }), typeorm_1.Column("tinyint", { unsigned: true }),
__metadata("design:type", Number) __metadata("design:type", Number)
], DuelLog.prototype, "duelCount", void 0); ], DuelLog.prototype, "duelCount", void 0);
__decorate([ __decorate([
typeorm_1.OneToMany(() => DuelLogPlayer_1.DuelLogPlayer, player => player.duelLog), typeorm_1.OneToMany(() => DuelLogPlayer_1.DuelLogPlayer, player => player.duelLog),
__metadata("design:type", Array) __metadata("design:type", Array)
], DuelLog.prototype, "players", void 0); ], DuelLog.prototype, "players", void 0);
DuelLog = __decorate([ DuelLog = __decorate([
typeorm_1.Entity() typeorm_1.Entity()
], DuelLog); ], DuelLog);
return DuelLog;
})();
exports.DuelLog = DuelLog; exports.DuelLog = DuelLog;
//# sourceMappingURL=DuelLog.js.map //# sourceMappingURL=DuelLog.js.map
\ No newline at end of file
...@@ -8,15 +8,14 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, ...@@ -8,15 +8,14 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
var __metadata = (this && this.__metadata) || function (k, v) { var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
}; };
var DuelLogPlayer_1;
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.DuelLogPlayer = void 0; exports.DuelLogPlayer = void 0;
const typeorm_1 = require("typeorm"); const typeorm_1 = require("typeorm");
const BasePlayer_1 = require("./BasePlayer"); const BasePlayer_1 = require("./BasePlayer");
const DuelLog_1 = require("./DuelLog"); const DuelLog_1 = require("./DuelLog");
const DeckEncoder_1 = require("../DeckEncoder"); const DeckEncoder_1 = require("../DeckEncoder");
let DuelLogPlayer = /** @class */ (() => { let DuelLogPlayer = DuelLogPlayer_1 = class DuelLogPlayer extends BasePlayer_1.BasePlayer {
var DuelLogPlayer_1;
let DuelLogPlayer = DuelLogPlayer_1 = class DuelLogPlayer extends BasePlayer_1.BasePlayer {
setStartDeck(deck) { setStartDeck(deck) {
if (deck === null) { if (deck === null) {
this.startDeckBuffer = null; this.startDeckBuffer = null;
...@@ -52,52 +51,50 @@ let DuelLogPlayer = /** @class */ (() => { ...@@ -52,52 +51,50 @@ let DuelLogPlayer = /** @class */ (() => {
p.setCurrentDeck(info.deck); p.setCurrentDeck(info.deck);
return p; return p;
} }
}; };
__decorate([ __decorate([
typeorm_1.Index(), typeorm_1.Index(),
typeorm_1.Column({ type: "varchar", length: 20 }), typeorm_1.Column({ type: "varchar", length: 20 }),
__metadata("design:type", String) __metadata("design:type", String)
], DuelLogPlayer.prototype, "realName", void 0); ], DuelLogPlayer.prototype, "realName", void 0);
__decorate([ __decorate([
typeorm_1.Column({ type: "varchar", length: 64, nullable: true }), typeorm_1.Column({ type: "varchar", length: 64, nullable: true }),
__metadata("design:type", String) __metadata("design:type", String)
], DuelLogPlayer.prototype, "ip", void 0); ], DuelLogPlayer.prototype, "ip", void 0);
__decorate([ __decorate([
typeorm_1.Column("tinyint", { unsigned: true }), typeorm_1.Column("tinyint", { unsigned: true }),
__metadata("design:type", Number) __metadata("design:type", Number)
], DuelLogPlayer.prototype, "isFirst", void 0); ], DuelLogPlayer.prototype, "isFirst", void 0);
__decorate([ __decorate([
typeorm_1.Column("tinyint"), typeorm_1.Column("tinyint"),
__metadata("design:type", Number) __metadata("design:type", Number)
], DuelLogPlayer.prototype, "score", void 0); ], DuelLogPlayer.prototype, "score", void 0);
__decorate([ __decorate([
typeorm_1.Column("int", { nullable: true }), typeorm_1.Column("int", { nullable: true }),
__metadata("design:type", Number) __metadata("design:type", Number)
], DuelLogPlayer.prototype, "lp", void 0); ], DuelLogPlayer.prototype, "lp", void 0);
__decorate([ __decorate([
typeorm_1.Column("smallint", { nullable: true }), typeorm_1.Column("smallint", { nullable: true }),
__metadata("design:type", Number) __metadata("design:type", Number)
], DuelLogPlayer.prototype, "cardCount", void 0); ], DuelLogPlayer.prototype, "cardCount", void 0);
__decorate([ __decorate([
typeorm_1.Column("text", { nullable: true }), typeorm_1.Column("text", { nullable: true }),
__metadata("design:type", String) __metadata("design:type", String)
], DuelLogPlayer.prototype, "startDeckBuffer", void 0); ], DuelLogPlayer.prototype, "startDeckBuffer", void 0);
__decorate([ __decorate([
typeorm_1.Column("text", { nullable: true }), typeorm_1.Column("text", { nullable: true }),
__metadata("design:type", String) __metadata("design:type", String)
], DuelLogPlayer.prototype, "currentDeckBuffer", void 0); ], DuelLogPlayer.prototype, "currentDeckBuffer", void 0);
__decorate([ __decorate([
typeorm_1.Column("tinyint"), typeorm_1.Column("tinyint"),
__metadata("design:type", Number) __metadata("design:type", Number)
], DuelLogPlayer.prototype, "winner", void 0); ], DuelLogPlayer.prototype, "winner", void 0);
__decorate([ __decorate([
typeorm_1.ManyToOne(() => DuelLog_1.DuelLog, duelLog => duelLog.players), typeorm_1.ManyToOne(() => DuelLog_1.DuelLog, duelLog => duelLog.players),
__metadata("design:type", DuelLog_1.DuelLog) __metadata("design:type", DuelLog_1.DuelLog)
], DuelLogPlayer.prototype, "duelLog", void 0); ], DuelLogPlayer.prototype, "duelLog", void 0);
DuelLogPlayer = DuelLogPlayer_1 = __decorate([ DuelLogPlayer = DuelLogPlayer_1 = __decorate([
typeorm_1.Entity() typeorm_1.Entity()
], DuelLogPlayer); ], DuelLogPlayer);
return DuelLogPlayer;
})();
exports.DuelLogPlayer = DuelLogPlayer; exports.DuelLogPlayer = DuelLogPlayer;
//# sourceMappingURL=DuelLogPlayer.js.map //# sourceMappingURL=DuelLogPlayer.js.map
\ No newline at end of file
...@@ -11,39 +11,36 @@ var __metadata = (this && this.__metadata) || function (k, v) { ...@@ -11,39 +11,36 @@ var __metadata = (this && this.__metadata) || function (k, v) {
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.RandomDuelBan = void 0; exports.RandomDuelBan = void 0;
const typeorm_1 = require("typeorm"); const typeorm_1 = require("typeorm");
let RandomDuelBan = /** @class */ (() => { let RandomDuelBan = class RandomDuelBan {
let RandomDuelBan = class RandomDuelBan {
setNeedTip(need) { setNeedTip(need) {
this.needTip = need ? 1 : 0; this.needTip = need ? 1 : 0;
} }
getNeedTip() { getNeedTip() {
return this.needTip > 0 ? true : false; return this.needTip > 0 ? true : false;
} }
}; };
__decorate([ __decorate([
typeorm_1.PrimaryColumn({ type: "varchar", length: 64 }), typeorm_1.PrimaryColumn({ type: "varchar", length: 64 }),
__metadata("design:type", String) __metadata("design:type", String)
], RandomDuelBan.prototype, "ip", void 0); ], RandomDuelBan.prototype, "ip", void 0);
__decorate([ __decorate([
typeorm_1.Column("datetime"), typeorm_1.Column("datetime"),
__metadata("design:type", Date) __metadata("design:type", Date)
], RandomDuelBan.prototype, "time", void 0); ], RandomDuelBan.prototype, "time", void 0);
__decorate([ __decorate([
typeorm_1.Column("smallint"), typeorm_1.Column("smallint"),
__metadata("design:type", Number) __metadata("design:type", Number)
], RandomDuelBan.prototype, "count", void 0); ], RandomDuelBan.prototype, "count", void 0);
__decorate([ __decorate([
typeorm_1.Column({ type: "simple-array" }), typeorm_1.Column({ type: "simple-array" }),
__metadata("design:type", Array) __metadata("design:type", Array)
], RandomDuelBan.prototype, "reasons", void 0); ], RandomDuelBan.prototype, "reasons", void 0);
__decorate([ __decorate([
typeorm_1.Column({ type: "tinyint", unsigned: true }), typeorm_1.Column({ type: "tinyint", unsigned: true }),
__metadata("design:type", Number) __metadata("design:type", Number)
], RandomDuelBan.prototype, "needTip", void 0); ], RandomDuelBan.prototype, "needTip", void 0);
RandomDuelBan = __decorate([ RandomDuelBan = __decorate([
typeorm_1.Entity() typeorm_1.Entity()
], RandomDuelBan); ], RandomDuelBan);
return RandomDuelBan;
})();
exports.RandomDuelBan = RandomDuelBan; exports.RandomDuelBan = RandomDuelBan;
//# sourceMappingURL=RandomDuelBan.js.map //# sourceMappingURL=RandomDuelBan.js.map
\ No newline at end of file
...@@ -17,45 +17,42 @@ const typeorm_1 = require("typeorm"); ...@@ -17,45 +17,42 @@ const typeorm_1 = require("typeorm");
const UserDialog_1 = require("./UserDialog"); const UserDialog_1 = require("./UserDialog");
const VipKey_1 = require("./VipKey"); const VipKey_1 = require("./VipKey");
const moment_1 = __importDefault(require("moment")); const moment_1 = __importDefault(require("moment"));
let User = /** @class */ (() => { let User = class User {
let User = class User {
isVip() { isVip() {
return this.vipExpireDate && moment_1.default().isBefore(this.vipExpireDate); return this.vipExpireDate && moment_1.default().isBefore(this.vipExpireDate);
} }
}; };
__decorate([ __decorate([
typeorm_1.PrimaryColumn({ type: "varchar", length: 128 }), typeorm_1.PrimaryColumn({ type: "varchar", length: 128 }),
__metadata("design:type", String) __metadata("design:type", String)
], User.prototype, "key", void 0); ], User.prototype, "key", void 0);
__decorate([ __decorate([
typeorm_1.Column("varchar", { length: 16, nullable: true }), typeorm_1.Column("varchar", { length: 16, nullable: true }),
__metadata("design:type", String) __metadata("design:type", String)
], User.prototype, "chatColor", void 0); ], User.prototype, "chatColor", void 0);
__decorate([ __decorate([
typeorm_1.Index(), typeorm_1.Index(),
typeorm_1.Column("datetime", { nullable: true }), typeorm_1.Column("datetime", { nullable: true }),
__metadata("design:type", Date) __metadata("design:type", Date)
], User.prototype, "vipExpireDate", void 0); ], User.prototype, "vipExpireDate", void 0);
__decorate([ __decorate([
typeorm_1.Column("text", { nullable: true }), typeorm_1.Column("text", { nullable: true }),
__metadata("design:type", String) __metadata("design:type", String)
], User.prototype, "victory", void 0); ], User.prototype, "victory", void 0);
__decorate([ __decorate([
typeorm_1.Column("text", { nullable: true }), typeorm_1.Column("text", { nullable: true }),
__metadata("design:type", String) __metadata("design:type", String)
], User.prototype, "words", void 0); ], User.prototype, "words", void 0);
__decorate([ __decorate([
typeorm_1.OneToMany(() => UserDialog_1.UserDialog, dialog => dialog.user), typeorm_1.OneToMany(() => UserDialog_1.UserDialog, dialog => dialog.user),
__metadata("design:type", Array) __metadata("design:type", Array)
], User.prototype, "dialogues", void 0); ], User.prototype, "dialogues", void 0);
__decorate([ __decorate([
typeorm_1.OneToMany(() => VipKey_1.VipKey, vipKey => vipKey.usedBy), typeorm_1.OneToMany(() => VipKey_1.VipKey, vipKey => vipKey.usedBy),
__metadata("design:type", Array) __metadata("design:type", Array)
], User.prototype, "usedKeys", void 0); ], User.prototype, "usedKeys", void 0);
User = __decorate([ User = __decorate([
typeorm_1.Entity() typeorm_1.Entity()
], User); ], User);
return User;
})();
exports.User = User; exports.User = User;
//# sourceMappingURL=User.js.map //# sourceMappingURL=User.js.map
\ No newline at end of file
...@@ -12,30 +12,27 @@ Object.defineProperty(exports, "__esModule", { value: true }); ...@@ -12,30 +12,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
exports.UserDialog = void 0; exports.UserDialog = void 0;
const typeorm_1 = require("typeorm"); const typeorm_1 = require("typeorm");
const User_1 = require("./User"); const User_1 = require("./User");
let UserDialog = /** @class */ (() => { let UserDialog = class UserDialog {
let UserDialog = class UserDialog { };
}; __decorate([
__decorate([
typeorm_1.PrimaryGeneratedColumn({ unsigned: true, type: "bigint" }), typeorm_1.PrimaryGeneratedColumn({ unsigned: true, type: "bigint" }),
__metadata("design:type", Number) __metadata("design:type", Number)
], UserDialog.prototype, "id", void 0); ], UserDialog.prototype, "id", void 0);
__decorate([ __decorate([
typeorm_1.Index(), typeorm_1.Index(),
typeorm_1.Column("int", { unsigned: true }), typeorm_1.Column("int", { unsigned: true }),
__metadata("design:type", Number) __metadata("design:type", Number)
], UserDialog.prototype, "cardCode", void 0); ], UserDialog.prototype, "cardCode", void 0);
__decorate([ __decorate([
typeorm_1.Column("text"), typeorm_1.Column("text"),
__metadata("design:type", String) __metadata("design:type", String)
], UserDialog.prototype, "text", void 0); ], UserDialog.prototype, "text", void 0);
__decorate([ __decorate([
typeorm_1.ManyToOne(() => User_1.User, user => user.dialogues), typeorm_1.ManyToOne(() => User_1.User, user => user.dialogues),
__metadata("design:type", User_1.User) __metadata("design:type", User_1.User)
], UserDialog.prototype, "user", void 0); ], UserDialog.prototype, "user", void 0);
UserDialog = __decorate([ UserDialog = __decorate([
typeorm_1.Entity() typeorm_1.Entity()
], UserDialog); ], UserDialog);
return UserDialog;
})();
exports.UserDialog = UserDialog; exports.UserDialog = UserDialog;
//# sourceMappingURL=UserDialog.js.map //# sourceMappingURL=UserDialog.js.map
\ No newline at end of file
...@@ -12,37 +12,34 @@ Object.defineProperty(exports, "__esModule", { value: true }); ...@@ -12,37 +12,34 @@ Object.defineProperty(exports, "__esModule", { value: true });
exports.VipKey = void 0; exports.VipKey = void 0;
const typeorm_1 = require("typeorm"); const typeorm_1 = require("typeorm");
const User_1 = require("./User"); const User_1 = require("./User");
let VipKey = /** @class */ (() => { let VipKey = class VipKey {
let VipKey = class VipKey {
toJSON() { toJSON() {
return { key: this.key, type: this.type }; return { key: this.key, type: this.type };
} }
}; };
__decorate([ __decorate([
typeorm_1.PrimaryGeneratedColumn({ unsigned: true, type: "bigint" }), typeorm_1.PrimaryGeneratedColumn({ unsigned: true, type: "bigint" }),
__metadata("design:type", Number) __metadata("design:type", Number)
], VipKey.prototype, "id", void 0); ], VipKey.prototype, "id", void 0);
__decorate([ __decorate([
typeorm_1.Index({ unique: true }), typeorm_1.Index({ unique: true }),
typeorm_1.Column("varchar", { length: 30 }), typeorm_1.Column("varchar", { length: 30 }),
__metadata("design:type", String) __metadata("design:type", String)
], VipKey.prototype, "key", void 0); ], VipKey.prototype, "key", void 0);
__decorate([ __decorate([
typeorm_1.Column("int", { unsigned: true }), typeorm_1.Column("int", { unsigned: true }),
__metadata("design:type", Number) __metadata("design:type", Number)
], VipKey.prototype, "type", void 0); ], VipKey.prototype, "type", void 0);
__decorate([ __decorate([
typeorm_1.Column("tinyint", { unsigned: true, default: 0 }), typeorm_1.Column("tinyint", { unsigned: true, default: 0 }),
__metadata("design:type", Number) __metadata("design:type", Number)
], VipKey.prototype, "isUsed", void 0); ], VipKey.prototype, "isUsed", void 0);
__decorate([ __decorate([
typeorm_1.ManyToOne(() => User_1.User, user => user.usedKeys), typeorm_1.ManyToOne(() => User_1.User, user => user.usedKeys),
__metadata("design:type", User_1.User) __metadata("design:type", User_1.User)
], VipKey.prototype, "usedBy", void 0); ], VipKey.prototype, "usedBy", void 0);
VipKey = __decorate([ VipKey = __decorate([
typeorm_1.Entity() typeorm_1.Entity()
], VipKey); ], VipKey);
return VipKey;
})();
exports.VipKey = VipKey; exports.VipKey = VipKey;
//# sourceMappingURL=VipKey.js.map //# sourceMappingURL=VipKey.js.map
\ No newline at end of file
...@@ -189,8 +189,8 @@ ...@@ -189,8 +189,8 @@
"vip_set_dialogues_part2": " have been set.", "vip_set_dialogues_part2": " have been set.",
"vip_cleared_words": "Your join word have been deleted.", "vip_cleared_words": "Your join word have been deleted.",
"vip_set_words": "Your join word have been set.", "vip_set_words": "Your join word have been set.",
"vip_cleared_victory": "Your victory word have been deleted.", "vip_cleared_victory": "Your victory word have been deleted, which would take effect next duel.",
"vip_set_victory": "Your victory word have been set.", "vip_set_victory": "Your victory word have been set, which would take effect next duel.",
"vip_password_changed": "Password changed.", "vip_password_changed": "Password changed.",
"vip_player_name_too_long": "Your username or password is too long to log in. Please change your username and try again.", "vip_player_name_too_long": "Your username or password is too long to log in. Please change your username and try again.",
"vip_no_pass": "You must use the name format of Name$Password to support.", "vip_no_pass": "You must use the name format of Name$Password to support.",
...@@ -540,8 +540,8 @@ ...@@ -540,8 +540,8 @@
"vip_set_dialogues_part2": " 设置召唤台词。", "vip_set_dialogues_part2": " 设置召唤台词。",
"vip_cleared_words": "已删除进场台词。", "vip_cleared_words": "已删除进场台词。",
"vip_set_words": "已设置进场台词。", "vip_set_words": "已设置进场台词。",
"vip_cleared_victory": "已删除胜利台词。", "vip_cleared_victory": "已删除胜利台词,将在下次决斗生效。",
"vip_set_victory": "已设置胜利台词。", "vip_set_victory": "已设置胜利台词,将在下次决斗生效。",
"vip_password_changed": "密码修改成功。", "vip_password_changed": "密码修改成功。",
"vip_player_name_too_long": "你的用户名或设置的密码太长,使用此用户名可能会无法登陆。请更换用户名重试。", "vip_player_name_too_long": "你的用户名或设置的密码太长,使用此用户名可能会无法登陆。请更换用户名重试。",
"vip_no_pass": "为了保证未来可以识别您的身份,请使用 用户名$密码 的格式重试。", "vip_no_pass": "为了保证未来可以识别您的身份,请使用 用户名$密码 的格式重试。",
......
...@@ -1912,6 +1912,10 @@ netRequestHandler = (client) -> ...@@ -1912,6 +1912,10 @@ netRequestHandler = (client) ->
CLIENT_kick(client) CLIENT_kick(client)
return return
client.playLines = (lines) ->
for line in _.lines lines
ygopro.stoc_send_chat(client, line, ygopro.constants.COLORS.PINK)
if settings.modules.cloud_replay.enabled if settings.modules.cloud_replay.enabled
client.open_cloud_replay = (replay)-> client.open_cloud_replay = (replay)->
if !replay if !replay
...@@ -2244,9 +2248,9 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)-> ...@@ -2244,9 +2248,9 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)->
client.rid = _.indexOf(ROOM_all, room) client.rid = _.indexOf(ROOM_all, room)
client.is_post_watcher = true client.is_post_watcher = true
if settings.modules.vip.enabled and await CLIENT_check_vip(client) if settings.modules.vip.enabled and await CLIENT_check_vip(client)
words = await dataManager.getUserWords(CLIENT_get_authorize_key(client)) playWords = await dataManager.getUserWords(CLIENT_get_authorize_key(client))
if words if playWords
room.playLines(words) room.playLines(playWords)
else if settings.modules.words.enabled and words.words[client.name] else if settings.modules.words.enabled and words.words[client.name]
room.playLines words.words[client.name][Math.floor(Math.random() * words.words[client.name].length)] room.playLines words.words[client.name][Math.floor(Math.random() * words.words[client.name].length)]
ygopro.stoc_send_chat_to_room(room, "#{client.name} ${watch_join}") ygopro.stoc_send_chat_to_room(room, "#{client.name} ${watch_join}")
...@@ -2435,9 +2439,9 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)-> ...@@ -2435,9 +2439,9 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)->
client.rid = _.indexOf(ROOM_all, room) client.rid = _.indexOf(ROOM_all, room)
client.is_post_watcher = true client.is_post_watcher = true
if settings.modules.vip.enabled and await CLIENT_check_vip(client) if settings.modules.vip.enabled and await CLIENT_check_vip(client)
words = await dataManager.getUserWords(CLIENT_get_authorize_key(client)) playWords = await dataManager.getUserWords(CLIENT_get_authorize_key(client))
if words if playWords
room.playLines(words) room.playLines(playWords)
else if settings.modules.words.enabled and words.words[client.name] else if settings.modules.words.enabled and words.words[client.name]
room.playLines words.words[client.name][Math.floor(Math.random() * words.words[client.name].length)] room.playLines words.words[client.name][Math.floor(Math.random() * words.words[client.name].length)]
ygopro.stoc_send_chat_to_room(room, "#{client.name} ${watch_join}") ygopro.stoc_send_chat_to_room(room, "#{client.name} ${watch_join}")
...@@ -2523,9 +2527,9 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)-> ...@@ -2523,9 +2527,9 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)->
client.rid = _.indexOf(ROOM_all, room) client.rid = _.indexOf(ROOM_all, room)
client.is_post_watcher = true client.is_post_watcher = true
if settings.modules.vip.enabled and await CLIENT_check_vip(client) if settings.modules.vip.enabled and await CLIENT_check_vip(client)
words = await dataManager.getUserWords(CLIENT_get_authorize_key(client)) playWords = await dataManager.getUserWords(CLIENT_get_authorize_key(client))
if words if playWords
room.playLines(words) room.playLines(playWords)
else if settings.modules.words.enabled and words.words[client.name] else if settings.modules.words.enabled and words.words[client.name]
room.playLines words.words[client.name][Math.floor(Math.random() * words.words[client.name].length)] room.playLines words.words[client.name][Math.floor(Math.random() * words.words[client.name].length)]
ygopro.stoc_send_chat_to_room(room, "#{client.name} ${watch_join}") ygopro.stoc_send_chat_to_room(room, "#{client.name} ${watch_join}")
...@@ -2550,9 +2554,9 @@ ygopro.stoc_follow 'JOIN_GAME', false, (buffer, info, client, server, datas)-> ...@@ -2550,9 +2554,9 @@ ygopro.stoc_follow 'JOIN_GAME', false, (buffer, info, client, server, datas)->
if !room.join_game_buffer if !room.join_game_buffer
room.join_game_buffer = buffer room.join_game_buffer = buffer
if settings.modules.vip.enabled and await CLIENT_check_vip(client) if settings.modules.vip.enabled and await CLIENT_check_vip(client)
words = await dataManager.getUserWords(CLIENT_get_authorize_key(client)) playWords = await dataManager.getUserWords(CLIENT_get_authorize_key(client))
if words if playWords
room.playLines(words) room.playLines(playWords)
else if settings.modules.words.enabled and words.words[client.name] else if settings.modules.words.enabled and words.words[client.name]
room.playLines words.words[client.name][Math.floor(Math.random() * words.words[client.name].length)] room.playLines words.words[client.name][Math.floor(Math.random() * words.words[client.name].length)]
if settings.modules.welcome if settings.modules.welcome
...@@ -2705,6 +2709,8 @@ ygopro.stoc_follow 'GAME_MSG', true, (buffer, info, client, server, datas)-> ...@@ -2705,6 +2709,8 @@ ygopro.stoc_follow 'GAME_MSG', true, (buffer, info, client, server, datas)->
if settings.modules.retry_handle.enabled if settings.modules.retry_handle.enabled
client.retry_count = 0 client.retry_count = 0
client.last_game_msg = null client.last_game_msg = null
if client.pos < 3 and settings.modules.vip.enabled and await CLIENT_check_vip(client)
client.victory_words = await dataManager.getUserVictoryWords(CLIENT_get_authorize_key(client))
#ygopro.stoc_send_chat_to_room(room, "LP跟踪调试信息: #{client.name} 初始LP #{client.lp}") #ygopro.stoc_send_chat_to_room(room, "LP跟踪调试信息: #{client.name} 初始LP #{client.lp}")
...@@ -2776,9 +2782,8 @@ ygopro.stoc_follow 'GAME_MSG', true, (buffer, info, client, server, datas)-> ...@@ -2776,9 +2782,8 @@ ygopro.stoc_follow 'GAME_MSG', true, (buffer, info, client, server, datas)->
victoryWordPlayerList = [room.dueling_players[pos]] victoryWordPlayerList = [room.dueling_players[pos]]
if room.hostinfo.mode == 2 if room.hostinfo.mode == 2
victoryWordPlayerList.push(room.dueling_players[pos + 1]) victoryWordPlayerList.push(room.dueling_players[pos + 1])
for player in victoryWordPlayerList when await CLIENT_check_vip(player) and await dataManager.getUserVictoryWords(CLIENT_get_authorize_key(player)) for player in victoryWordPlayerList when player.victory_words
words = await dataManager.getUserVictoryWords(CLIENT_get_authorize_key(player)) room.playLines(player.victory_words)
room.playLines(words)
break break
if room.death if room.death
if settings.modules.http.quick_death_rule == 1 or settings.modules.http.quick_death_rule == 3 if settings.modules.http.quick_death_rule == 1 or settings.modules.http.quick_death_rule == 3
...@@ -2910,13 +2915,13 @@ ygopro.stoc_follow 'GAME_MSG', true, (buffer, info, client, server, datas)-> ...@@ -2910,13 +2915,13 @@ ygopro.stoc_follow 'GAME_MSG', true, (buffer, info, client, server, datas)->
act_pos = act_pos * 2 act_pos = act_pos * 2
if ygopro.constants.MSG[msg] != 'CHAINING' or (trigger_location & 0x8) and client.ready_trap if ygopro.constants.MSG[msg] != 'CHAINING' or (trigger_location & 0x8) and client.ready_trap
if settings.modules.vip.enabled and await CLIENT_check_vip(room.dueling_players[act_pos]) and await dataManager.getUserDialogueText(CLIENT_get_authorize_key(room.dueling_players[act_pos]), card) if settings.modules.vip.enabled and await CLIENT_check_vip(room.dueling_players[act_pos]) and await dataManager.getUserDialogueText(CLIENT_get_authorize_key(room.dueling_players[act_pos]), card)
room.playLines await dataManager.getUserDialogueText(CLIENT_get_authorize_key(room.dueling_players[act_pos]), card) client.playLines await dataManager.getUserDialogueText(CLIENT_get_authorize_key(room.dueling_players[act_pos]), card)
else if settings.modules.vip.enabled and room.hostinfo.mode == 2 and await CLIENT_check_vip(room.dueling_players[act_pos + 1]) and await dataManager.getUserDialogueText(CLIENT_get_authorize_key(room.dueling_players[act_pos + 1]), card) else if settings.modules.vip.enabled and room.hostinfo.mode == 2 and await CLIENT_check_vip(room.dueling_players[act_pos + 1]) and await dataManager.getUserDialogueText(CLIENT_get_authorize_key(room.dueling_players[act_pos + 1]), card)
room.playLines await dataManager.getUserDialogueText(CLIENT_get_authorize_key(room.dueling_players[act_pos + 1]), card) client.playLines await dataManager.getUserDialogueText(CLIENT_get_authorize_key(room.dueling_players[act_pos + 1]), card)
else if settings.modules.dialogues.enabled and dialogues.dialogues[card] else if settings.modules.dialogues.enabled and dialogues.dialogues[card]
room.playLines dialogues.dialogues[card][Math.floor(Math.random() * dialogues.dialogues[card].length)] client.playLines dialogues.dialogues[card][Math.floor(Math.random() * dialogues.dialogues[card].length)]
else if settings.modules.dialogues.enabled and dialogues.dialogues_custom[card] else if settings.modules.dialogues.enabled and dialogues.dialogues_custom[card]
room.playLines dialogues.dialogues_custom[card][Math.floor(Math.random() * dialogues.dialogues_custom[card].length)] client.playLines dialogues.dialogues_custom[card][Math.floor(Math.random() * dialogues.dialogues_custom[card].length)]
if ygopro.constants.MSG[msg] == 'POS_CHANGE' if ygopro.constants.MSG[msg] == 'POS_CHANGE'
loc = buffer.readUInt8(6) loc = buffer.readUInt8(6)
ppos = buffer.readUInt8(8) ppos = buffer.readUInt8(8)
...@@ -3944,7 +3949,7 @@ if true ...@@ -3944,7 +3949,7 @@ if true
response.end(addCallback(u.query.callback, "Unauthorized.")) response.end(addCallback(u.query.callback, "Unauthorized."))
return return
else else
ret_keys = JSON.stringify(await dataMager.getVipKeys(parseInt(u.query.keytype)), null, 2) ret_keys = JSON.stringify(await dataManager.getVipKeys(if u.query.keytype then parseInt(u.query.keytype) else undefined), null, 2)
response.writeHead(200) response.writeHead(200)
response.end(addCallback(u.query.callback, ret_keys)) response.end(addCallback(u.query.callback, ret_keys))
......
...@@ -2594,6 +2594,16 @@ ...@@ -2594,6 +2594,16 @@
CLIENT_kick(client); CLIENT_kick(client);
return; return;
} }
client.playLines = function(lines) {
var j, len, line, ref, results;
ref = _.lines(lines);
results = [];
for (j = 0, len = ref.length; j < len; j++) {
line = ref[j];
results.push(ygopro.stoc_send_chat(client, line, ygopro.constants.COLORS.PINK));
}
return results;
};
if (settings.modules.cloud_replay.enabled) { if (settings.modules.cloud_replay.enabled) {
client.open_cloud_replay = async function(replay) { client.open_cloud_replay = async function(replay) {
var buffer, e, replay_buffer; var buffer, e, replay_buffer;
...@@ -2791,7 +2801,7 @@ ...@@ -2791,7 +2801,7 @@
}); });
ygopro.ctos_follow('JOIN_GAME', true, async function(buffer, info, client, server, datas) { ygopro.ctos_follow('JOIN_GAME', true, async function(buffer, info, client, server, datas) {
var available_logs, check_buffer_indentity, create_room_with_action, duelLog, exactBan, index, j, l, len, len1, len2, len3, m, n, name, pre_room, recover_match, ref, ref1, replay, replay_id, replays, room, struct; var available_logs, check_buffer_indentity, create_room_with_action, duelLog, exactBan, index, j, l, len, len1, len2, len3, m, n, name, playWords, pre_room, recover_match, ref, ref1, replay, replay_id, replays, room, struct;
//log.info info //log.info info
info.pass = info.pass.trim(); info.pass = info.pass.trim();
client.pass = info.pass; client.pass = info.pass;
...@@ -2869,7 +2879,7 @@ ...@@ -2869,7 +2879,7 @@
return (checksum & 0xFF) === 0; return (checksum & 0xFF) === 0;
}; };
create_room_with_action = async function(buffer, decrypted_buffer, match_permit) { create_room_with_action = async function(buffer, decrypted_buffer, match_permit) {
var action, len2, len3, m, n, name, opt1, opt2, opt3, options, player, ref, ref1, room, room_title, title; var action, len2, len3, m, n, name, opt1, opt2, opt3, options, playWords, player, ref, ref1, room, room_title, title;
if (client.closed) { if (client.closed) {
return; return;
} }
...@@ -2997,9 +3007,9 @@ ...@@ -2997,9 +3007,9 @@
client.rid = _.indexOf(ROOM_all, room); client.rid = _.indexOf(ROOM_all, room);
client.is_post_watcher = true; client.is_post_watcher = true;
if (settings.modules.vip.enabled && (await CLIENT_check_vip(client))) { if (settings.modules.vip.enabled && (await CLIENT_check_vip(client))) {
words = (await dataManager.getUserWords(CLIENT_get_authorize_key(client))); playWords = (await dataManager.getUserWords(CLIENT_get_authorize_key(client)));
if (words) { if (playWords) {
room.playLines(words); room.playLines(playWords);
} }
} else if (settings.modules.words.enabled && words.words[client.name]) { } else if (settings.modules.words.enabled && words.words[client.name]) {
room.playLines(words.words[client.name][Math.floor(Math.random() * words.words[client.name].length)]); room.playLines(words.words[client.name][Math.floor(Math.random() * words.words[client.name].length)]);
...@@ -3167,7 +3177,7 @@ ...@@ -3167,7 +3177,7 @@
}); });
} }
}, async function(err, datas) { }, async function(err, datas) {
var create_room_name, found, k, len3, len4, match, n, o, player, ref1, ref2, ref3, ref4, user; var create_room_name, found, k, len3, len4, match, n, o, playWords, player, ref1, ref2, ref3, ref4, user;
if (client.closed) { if (client.closed) {
return; return;
} }
...@@ -3226,9 +3236,9 @@ ...@@ -3226,9 +3236,9 @@
client.rid = _.indexOf(ROOM_all, room); client.rid = _.indexOf(ROOM_all, room);
client.is_post_watcher = true; client.is_post_watcher = true;
if (settings.modules.vip.enabled && (await CLIENT_check_vip(client))) { if (settings.modules.vip.enabled && (await CLIENT_check_vip(client))) {
words = (await dataManager.getUserWords(CLIENT_get_authorize_key(client))); playWords = (await dataManager.getUserWords(CLIENT_get_authorize_key(client)));
if (words) { if (playWords) {
room.playLines(words); room.playLines(playWords);
} }
} else if (settings.modules.words.enabled && words.words[client.name]) { } else if (settings.modules.words.enabled && words.words[client.name]) {
room.playLines(words.words[client.name][Math.floor(Math.random() * words.words[client.name].length)]); room.playLines(words.words[client.name][Math.floor(Math.random() * words.words[client.name].length)]);
...@@ -3322,9 +3332,9 @@ ...@@ -3322,9 +3332,9 @@
client.rid = _.indexOf(ROOM_all, room); client.rid = _.indexOf(ROOM_all, room);
client.is_post_watcher = true; client.is_post_watcher = true;
if (settings.modules.vip.enabled && (await CLIENT_check_vip(client))) { if (settings.modules.vip.enabled && (await CLIENT_check_vip(client))) {
words = (await dataManager.getUserWords(CLIENT_get_authorize_key(client))); playWords = (await dataManager.getUserWords(CLIENT_get_authorize_key(client)));
if (words) { if (playWords) {
room.playLines(words); room.playLines(playWords);
} }
} else if (settings.modules.words.enabled && words.words[client.name]) { } else if (settings.modules.words.enabled && words.words[client.name]) {
room.playLines(words.words[client.name][Math.floor(Math.random() * words.words[client.name].length)]); room.playLines(words.words[client.name][Math.floor(Math.random() * words.words[client.name].length)]);
...@@ -3351,7 +3361,7 @@ ...@@ -3351,7 +3361,7 @@
}); });
ygopro.stoc_follow('JOIN_GAME', false, async function(buffer, info, client, server, datas) { ygopro.stoc_follow('JOIN_GAME', false, async function(buffer, info, client, server, datas) {
var j, len, player, recorder, ref, room, watcher; var j, len, playWords, player, recorder, ref, room, watcher;
//欢迎信息 //欢迎信息
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
if (!(room && !client.reconnecting)) { if (!(room && !client.reconnecting)) {
...@@ -3361,9 +3371,9 @@ ...@@ -3361,9 +3371,9 @@
room.join_game_buffer = buffer; room.join_game_buffer = buffer;
} }
if (settings.modules.vip.enabled && (await CLIENT_check_vip(client))) { if (settings.modules.vip.enabled && (await CLIENT_check_vip(client))) {
words = (await dataManager.getUserWords(CLIENT_get_authorize_key(client))); playWords = (await dataManager.getUserWords(CLIENT_get_authorize_key(client)));
if (words) { if (playWords) {
room.playLines(words); room.playLines(playWords);
} }
} else if (settings.modules.words.enabled && words.words[client.name]) { } else if (settings.modules.words.enabled && words.words[client.name]) {
room.playLines(words.words[client.name][Math.floor(Math.random() * words.words[client.name].length)]); room.playLines(words.words[client.name][Math.floor(Math.random() * words.words[client.name].length)]);
...@@ -3562,6 +3572,9 @@ ...@@ -3562,6 +3572,9 @@
client.retry_count = 0; client.retry_count = 0;
client.last_game_msg = null; client.last_game_msg = null;
} }
if (client.pos < 3 && settings.modules.vip.enabled && (await CLIENT_check_vip(client))) {
client.victory_words = (await dataManager.getUserVictoryWords(CLIENT_get_authorize_key(client)));
}
} }
//ygopro.stoc_send_chat_to_room(room, "LP跟踪调试信息: #{client.name} 初始LP #{client.lp}") //ygopro.stoc_send_chat_to_room(room, "LP跟踪调试信息: #{client.name} 初始LP #{client.lp}")
if (ygopro.constants.MSG[msg] === 'HINT') { if (ygopro.constants.MSG[msg] === 'HINT') {
...@@ -3654,11 +3667,10 @@ ...@@ -3654,11 +3667,10 @@
} }
for (l = 0, len1 = victoryWordPlayerList.length; l < len1; l++) { for (l = 0, len1 = victoryWordPlayerList.length; l < len1; l++) {
player = victoryWordPlayerList[l]; player = victoryWordPlayerList[l];
if (!((await CLIENT_check_vip(player)) && (await dataManager.getUserVictoryWords(CLIENT_get_authorize_key(player))))) { if (!player.victory_words) {
continue; continue;
} }
words = (await dataManager.getUserVictoryWords(CLIENT_get_authorize_key(player))); room.playLines(player.victory_words);
room.playLines(words);
break; break;
} }
} }
...@@ -3846,13 +3858,13 @@ ...@@ -3846,13 +3858,13 @@
} }
if (ygopro.constants.MSG[msg] !== 'CHAINING' || (trigger_location & 0x8) && client.ready_trap) { if (ygopro.constants.MSG[msg] !== 'CHAINING' || (trigger_location & 0x8) && client.ready_trap) {
if (settings.modules.vip.enabled && (await CLIENT_check_vip(room.dueling_players[act_pos])) && (await dataManager.getUserDialogueText(CLIENT_get_authorize_key(room.dueling_players[act_pos]), card))) { if (settings.modules.vip.enabled && (await CLIENT_check_vip(room.dueling_players[act_pos])) && (await dataManager.getUserDialogueText(CLIENT_get_authorize_key(room.dueling_players[act_pos]), card))) {
room.playLines((await dataManager.getUserDialogueText(CLIENT_get_authorize_key(room.dueling_players[act_pos]), card))); client.playLines((await dataManager.getUserDialogueText(CLIENT_get_authorize_key(room.dueling_players[act_pos]), card)));
} else if (settings.modules.vip.enabled && room.hostinfo.mode === 2 && (await CLIENT_check_vip(room.dueling_players[act_pos + 1])) && (await dataManager.getUserDialogueText(CLIENT_get_authorize_key(room.dueling_players[act_pos + 1]), card))) { } else if (settings.modules.vip.enabled && room.hostinfo.mode === 2 && (await CLIENT_check_vip(room.dueling_players[act_pos + 1])) && (await dataManager.getUserDialogueText(CLIENT_get_authorize_key(room.dueling_players[act_pos + 1]), card))) {
room.playLines((await dataManager.getUserDialogueText(CLIENT_get_authorize_key(room.dueling_players[act_pos + 1]), card))); client.playLines((await dataManager.getUserDialogueText(CLIENT_get_authorize_key(room.dueling_players[act_pos + 1]), card)));
} else if (settings.modules.dialogues.enabled && dialogues.dialogues[card]) { } else if (settings.modules.dialogues.enabled && dialogues.dialogues[card]) {
room.playLines(dialogues.dialogues[card][Math.floor(Math.random() * dialogues.dialogues[card].length)]); client.playLines(dialogues.dialogues[card][Math.floor(Math.random() * dialogues.dialogues[card].length)]);
} else if (settings.modules.dialogues.enabled && dialogues.dialogues_custom[card]) { } else if (settings.modules.dialogues.enabled && dialogues.dialogues_custom[card]) {
room.playLines(dialogues.dialogues_custom[card][Math.floor(Math.random() * dialogues.dialogues_custom[card].length)]); client.playLines(dialogues.dialogues_custom[card][Math.floor(Math.random() * dialogues.dialogues_custom[card].length)]);
} }
} }
} }
...@@ -5301,7 +5313,7 @@ ...@@ -5301,7 +5313,7 @@
response.end(addCallback(u.query.callback, "Unauthorized.")); response.end(addCallback(u.query.callback, "Unauthorized."));
return; return;
} else { } else {
ret_keys = JSON.stringify((await dataMager.getVipKeys(parseInt(u.query.keytype))), null, 2); ret_keys = JSON.stringify((await dataManager.getVipKeys(u.query.keytype ? parseInt(u.query.keytype) : void 0)), null, 2);
response.writeHead(200); response.writeHead(200);
response.end(addCallback(u.query.callback, ret_keys)); response.end(addCallback(u.query.callback, ret_keys));
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment