koishi-plugin-toram 2.0.5 → 2.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,3 +3,4 @@ export declare class CheckResult {
3
3
  data?: any;
4
4
  }
5
5
  export declare function getTime(): string;
6
+ export declare function formatDate(date: Date): string;
@@ -17,5 +17,11 @@ export declare class Player {
17
17
  reName(name: string): void;
18
18
  getData(): PlayerData;
19
19
  }
20
+ export interface BanData {
21
+ qqOpenId: string;
22
+ reason: string;
23
+ startTime: number;
24
+ banTime: number;
25
+ }
20
26
  export declare function getPlayerName(event: Event): Promise<string>;
21
27
  export declare function getPlayer(event: Event, name?: string): Promise<PlayerData>;
package/lib/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Context, Logger, Schema, Session } from 'koishi';
2
2
  import { Cache } from './function/cache';
3
- import { PlayerData } from './function/player';
3
+ import { BanData, PlayerData } from './function/player';
4
4
  import { MonsterData } from './function/monster';
5
5
  export declare const name = "toram";
6
6
  export declare const inject: string[];
@@ -8,6 +8,7 @@ declare module 'koishi' {
8
8
  interface Tables {
9
9
  monster: MonsterData;
10
10
  player: PlayerData;
11
+ ban: BanData;
11
12
  }
12
13
  }
13
14
  export interface Config {
package/lib/index.js CHANGED
@@ -47,6 +47,9 @@ var require_replys = __commonJS({
47
47
  submit: [
48
48
  "@_userName_@,你要给魔导书提供资料吗?\n1.提交料理 玩家名 料理类型 料理等级【提交料理信息】\n2.提交头目 头目名 头目类型 基础等级 基础经验 所在地图 属性【提交头目信息】\n请不要胡乱提交错误资料哦?恶意捣乱会被青灯制裁的"
49
49
  ],
50
+ warning_register: [
51
+ "青灯发现你已经多次在魔导书这里登记不正确的游戏内昵称了!请你在登记时慎重考虑!"
52
+ ],
50
53
  dishes_name_undefined: [
51
54
  '如果你要查询料理,请输入"料理 料理种类 (料理等级)"或"料理 玩家部分名称"来进行查询哦?',
52
55
  '@_userName_@想吃什么料理呢?输入"料理 料理种类 (料理等级)"或"料理 玩家部分名称"来查询料理吧?'
@@ -674,6 +677,16 @@ function getTime() {
674
677
  }
675
678
  }
676
679
  __name(getTime, "getTime");
680
+ function formatDate(date) {
681
+ const year = date.getFullYear();
682
+ const month = String(date.getMonth() + 1).padStart(2, "0");
683
+ const day = String(date.getDate()).padStart(2, "0");
684
+ const hours = String(date.getHours()).padStart(2, "0");
685
+ const minutes = String(date.getMinutes()).padStart(2, "0");
686
+ const seconds = String(date.getSeconds()).padStart(2, "0");
687
+ return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
688
+ }
689
+ __name(formatDate, "formatDate");
677
690
 
678
691
  // src/function/reply.ts
679
692
  var replys = require_replys();
@@ -1208,6 +1221,18 @@ async function apply(ctx, config) {
1208
1221
  }, {
1209
1222
  primary: "id"
1210
1223
  });
1224
+ ctx.model.extend("ban", {
1225
+ qqOpenId: "string",
1226
+ // QQ
1227
+ reason: "string",
1228
+ // 原因
1229
+ startTime: "integer",
1230
+ // 开始时间
1231
+ banTime: "integer"
1232
+ // 持续时间
1233
+ }, {
1234
+ primary: "qqOpenId"
1235
+ });
1211
1236
  ctx.middleware(async (session, next) => {
1212
1237
  event.session = session;
1213
1238
  event.logger.info(event.session);
@@ -1226,6 +1251,10 @@ async function apply(ctx, config) {
1226
1251
  }
1227
1252
  return next();
1228
1253
  });
1254
+ ctx.command("ban <qqOpenId> <reason> <days>").action(async ({ session }, ...args) => {
1255
+ const time = (/* @__PURE__ */ new Date()).getTime();
1256
+ await ctx.database.create("ban", { qqOpenId: args[0], reason: args[1], startTime: time, banTime: 864e5 * Number(args[2]) });
1257
+ });
1229
1258
  ctx.command("登记 <游戏内昵称>").action(async ({ session }, ...args) => {
1230
1259
  event.session = session;
1231
1260
  await useCommand(event, "register", args);
@@ -1255,6 +1284,21 @@ __name(apply, "apply");
1255
1284
  async function useCommand(event, command, args = []) {
1256
1285
  const session = event.session;
1257
1286
  if (command !== "register") {
1287
+ const banPlayerList = await event.ctx.database.get("ban", { qqOpenId: session.event.user.id });
1288
+ if (banPlayerList.length) {
1289
+ const banPlayer = banPlayerList[0];
1290
+ const endTime = new Date(banPlayer.startTime + banPlayer.banTime);
1291
+ const time = /* @__PURE__ */ new Date();
1292
+ if (time > endTime) {
1293
+ await event.ctx.database.remove("ban", { qqOpenId: session.event.user.id });
1294
+ } else {
1295
+ session.send(await makeReply(event, banPlayer.reason, { this: [formatDate(endTime)] }));
1296
+ const reasons = banPlayer.reason.split("_");
1297
+ if (reasons[0] === "warning")
1298
+ await event.ctx.database.remove("ban", { qqOpenId: session.event.user.id });
1299
+ return;
1300
+ }
1301
+ }
1258
1302
  const player = await getPlayer(event);
1259
1303
  if (!player) {
1260
1304
  session.send(await makeReply(event, "needRegister"));
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "koishi-plugin-toram",
3
3
  "description": "托拉姆物语小工具",
4
- "version": "2.0.5",
4
+ "version": "2.0.6",
5
5
  "contributors": [
6
6
  "青灯 <1874053520@qq.com>"
7
7
  ],