koishi-plugin-dew-bot 1.0.196 → 1.0.200

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.
@@ -2,7 +2,7 @@ body {
2
2
  margin: 0;
3
3
  padding: 0;
4
4
  width: 400px;
5
- overflow: hidden;
5
+ overflow: auto;
6
6
  position: relative;
7
7
  background: #232d23;
8
8
  min-height: 500px;
@@ -12,7 +12,6 @@ body {
12
12
  #app {
13
13
  width: 95%;
14
14
  margin: 10px auto;
15
- padding: 15px;
16
15
  }
17
16
 
18
17
  .item-card {
@@ -21,7 +20,7 @@ body {
21
20
  border: none;
22
21
  padding: 20px 0 20px 0;
23
22
  position: relative;
24
- overflow: hidden;
23
+ overflow: visible;
25
24
  }
26
25
 
27
26
  .item-emoji {
@@ -63,7 +62,8 @@ body {
63
62
  background: none;
64
63
  border-radius: 0;
65
64
  box-shadow: none;
66
- min-width: 0;
65
+ width: 100%;
66
+ max-width: 100%;
67
67
  }
68
68
 
69
69
  .attr-key {
@@ -87,11 +87,13 @@ body {
87
87
  line-height: 1.6;
88
88
  font-size: 16px;
89
89
  overflow-wrap: break-word;
90
+ word-wrap: break-word;
90
91
  margin-bottom: 2px;
91
92
  background: #2a342a;
92
93
  padding: 8px 12px;
93
94
  border-radius: 6px;
94
95
  border-left: 3px solid #4a8a4a;
95
96
  position: relative;
97
+ box-sizing: border-box;
96
98
  }
97
99
 
@@ -0,0 +1,245 @@
1
+ body {
2
+ margin: 0;
3
+ padding: 0;
4
+ width: 500px;
5
+ overflow: auto;
6
+ position: relative;
7
+ background: #232d23;
8
+ min-height: 500px;
9
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
10
+ }
11
+
12
+ #app {
13
+ width: 95%;
14
+ margin: 10px auto;
15
+ }
16
+
17
+ .ranking-card {
18
+ background: #232d23;
19
+ border-radius: 12px;
20
+ border: none;
21
+ padding: 20px 0 20px 0;
22
+ position: relative;
23
+ overflow: visible;
24
+ }
25
+
26
+ /* 标题样式 */
27
+ .ranking-title {
28
+ display: flex;
29
+ align-items: center;
30
+ justify-content: center;
31
+ margin-bottom: 20px;
32
+ padding: 0 20px;
33
+ }
34
+
35
+ .title-emoji {
36
+ font-size: 24px;
37
+ margin-right: 8px;
38
+ color: #ffd97a;
39
+ }
40
+
41
+ .title-text {
42
+ color: #ffd97a;
43
+ font-size: 18px;
44
+ font-weight: bold;
45
+ }
46
+
47
+ /* 表头样式 */
48
+ .ranking-header {
49
+ display: flex;
50
+ background: #2a342a;
51
+ border-radius: 8px;
52
+ margin: 0 20px 15px 20px;
53
+ padding: 12px 15px;
54
+ border-left: 3px solid #4a8a4a;
55
+ }
56
+
57
+ .header-item {
58
+ color: #ffd97a;
59
+ font-weight: bold;
60
+ font-size: 14px;
61
+ text-align: center;
62
+ display: flex;
63
+ align-items: center;
64
+ justify-content: center;
65
+ }
66
+
67
+ .rank-col {
68
+ width: 60px;
69
+ flex-shrink: 0;
70
+ }
71
+
72
+ .player-col {
73
+ flex: 1;
74
+ text-align: left;
75
+ padding-left: 10px;
76
+ }
77
+
78
+ .score-col {
79
+ width: 80px;
80
+ flex-shrink: 0;
81
+ text-align: center;
82
+ }
83
+
84
+ /* 排行榜列表样式 */
85
+ .ranking-list {
86
+ margin: 0 20px;
87
+ }
88
+
89
+ .ranking-item {
90
+ display: flex;
91
+ align-items: center;
92
+ background: #2a342a;
93
+ border-radius: 8px;
94
+ margin-bottom: 8px;
95
+ padding: 12px 15px;
96
+ border-left: 3px solid #4a8a4a;
97
+ transition: all 0.2s ease;
98
+ }
99
+
100
+ .ranking-item:hover {
101
+ background: #3a443a;
102
+ transform: translateX(2px);
103
+ }
104
+
105
+ .ranking-item.my-rank {
106
+ background: #4a8a4a;
107
+ border-left-color: #ffd97a;
108
+ }
109
+
110
+ .ranking-item.my-rank:hover {
111
+ background: #5a9a5a;
112
+ }
113
+
114
+ /* 排名样式 */
115
+ .rank-number {
116
+ width: 30px;
117
+ height: 30px;
118
+ border-radius: 50%;
119
+ display: flex;
120
+ align-items: center;
121
+ justify-content: center;
122
+ font-weight: bold;
123
+ font-size: 14px;
124
+ color: #fff;
125
+ }
126
+
127
+ .rank-gold {
128
+ background: linear-gradient(135deg, #DAA520, #B8860B);
129
+ box-shadow: 0 2px 8px rgba(218, 165, 32, 0.3);
130
+ color: #fff;
131
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
132
+ }
133
+
134
+ .rank-silver {
135
+ background: linear-gradient(135deg, #C0C0C0, #A0A0A0);
136
+ box-shadow: 0 2px 8px rgba(192, 192, 192, 0.3);
137
+ }
138
+
139
+ .rank-bronze {
140
+ background: linear-gradient(135deg, #CD7F32, #A0522D);
141
+ box-shadow: 0 2px 8px rgba(205, 127, 50, 0.3);
142
+ }
143
+
144
+ .rank-normal {
145
+ background: linear-gradient(135deg, #4a8a4a, #3a7a3a);
146
+ box-shadow: 0 2px 8px rgba(74, 138, 74, 0.3);
147
+ }
148
+
149
+ /* 玩家信息样式 */
150
+ .player-info {
151
+ display: flex;
152
+ align-items: center;
153
+ flex: 1;
154
+ }
155
+
156
+ .player-avatar {
157
+ width: 40px;
158
+ height: 40px;
159
+ border-radius: 50%;
160
+ margin-right: 12px;
161
+ display: flex;
162
+ align-items: center;
163
+ justify-content: center;
164
+ background: #fff;
165
+ border: 2px solid #4a8a4a;
166
+ overflow: hidden;
167
+ position: relative;
168
+ }
169
+
170
+ .avatar-img {
171
+ width: 100%;
172
+ height: 100%;
173
+ object-fit: cover;
174
+ border-radius: 50%;
175
+ }
176
+
177
+ .player-emoji {
178
+ font-size: 20px;
179
+ display: flex;
180
+ align-items: center;
181
+ justify-content: center;
182
+ width: 100%;
183
+ height: 100%;
184
+ }
185
+
186
+ .player-name {
187
+ color: #e8fbe8;
188
+ font-weight: 500;
189
+ font-size: 14px;
190
+ max-width: 200px;
191
+ overflow: hidden;
192
+ text-overflow: ellipsis;
193
+ white-space: nowrap;
194
+ }
195
+
196
+ /* 分数样式 */
197
+ .score-value {
198
+ color: #e8fbe8;
199
+ font-weight: bold;
200
+ font-size: 14px;
201
+ text-align: center;
202
+ }
203
+
204
+ /* 我的排名样式 */
205
+ .my-rank-section {
206
+ margin-top: 15px;
207
+ }
208
+
209
+ .my-rank-divider {
210
+ height: 1px;
211
+ background: linear-gradient(to right, transparent, #4a8a4a, transparent);
212
+ margin: 10px 0;
213
+ }
214
+
215
+ .my-rank-item {
216
+ display: flex;
217
+ align-items: center;
218
+ background: #4a8a4a;
219
+ border-radius: 8px;
220
+ padding: 12px 15px;
221
+ border-left: 3px solid #ffd97a;
222
+ margin-top: 8px;
223
+ }
224
+
225
+ .rank-my {
226
+ background: linear-gradient(135deg, #DAA520, #B8860B);
227
+ box-shadow: 0 2px 8px rgba(218, 165, 32, 0.3);
228
+ color: #fff;
229
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
230
+ }
231
+
232
+ /* 响应式设计 */
233
+ @media (max-width: 500px) {
234
+ .player-name {
235
+ max-width: 150px;
236
+ }
237
+
238
+ .score-col {
239
+ width: 60px;
240
+ }
241
+
242
+ .rank-col {
243
+ width: 50px;
244
+ }
245
+ }
@@ -0,0 +1,292 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title>排行榜</title>
8
+ <script src="../res/vue2.js"></script>
9
+ <link rel="stylesheet" href="../css/ranking.css">
10
+ </head>
11
+
12
+ <body>
13
+ <div id="app">
14
+ <div class="ranking-card">
15
+ <!-- 标题 -->
16
+ <div class="ranking-title">
17
+ <div class="title-emoji">{{ data.title.split(' ')[0] }}</div>
18
+ <div class="title-text">{{ data.title.split(' ').slice(1).join(' ') }}</div>
19
+ </div>
20
+
21
+ <!-- 表头 -->
22
+ <div class="ranking-header">
23
+ <div class="header-item rank-col">排名</div>
24
+ <div class="header-item player-col">玩家</div>
25
+ <div class="header-item score-col">{{ data.rankRankName }}</div>
26
+ </div>
27
+
28
+ <!-- 排行榜列表 -->
29
+ <div class="ranking-list">
30
+ <div v-for="(item, index) in data.ranks.slice(0, 10)" :key="item.playerId" class="ranking-item"
31
+ :class="{ 'my-rank': item.rank === data.myRank.rank }">
32
+ <div class="rank-col">
33
+ <div class="rank-number" :class="getRankClass(item.rank)">{{ item.rank }}</div>
34
+ </div>
35
+ <div class="player-col">
36
+ <div class="player-info">
37
+ <div class="player-avatar">
38
+ <img v-if="item.playerAvatar" :src="item.playerAvatar" @error="handleAvatarError"
39
+ class="avatar-img">
40
+ <div v-else class="player-emoji">{{ item.playerEmoji }}</div>
41
+ </div>
42
+ <div class="player-name">{{item.playerEmoji}}{{ item.playerName }}</div>
43
+ </div>
44
+ </div>
45
+ <div class="score-col">
46
+ <div class="score-value">{{ item.score }}</div>
47
+ </div>
48
+ </div>
49
+
50
+ <!-- 我的排名 -->
51
+ <div class="my-rank-section">
52
+ <div class="my-rank-divider"></div>
53
+ <div class="my-rank-item">
54
+ <div class="rank-col">
55
+ <div class="rank-number rank-my">{{ data.myRank.rank }}</div>
56
+ </div>
57
+ <div class="player-col">
58
+ <div class="player-info">
59
+ <div class="player-avatar">
60
+ <img v-if="data.myRank.playerAvatar" :src="data.myRank.playerAvatar"
61
+ @error="handleAvatarError"
62
+ class="avatar-img">
63
+ <div v-else class="player-emoji">{{ data.myRank.playerEmoji }}</div>
64
+ </div>
65
+ <div class="player-name">{{ data.myRank.playerName }}</div>
66
+ </div>
67
+ </div>
68
+ <div class="score-col">
69
+ <div class="score-value">{{ data.myRank.score }}</div>
70
+ </div>
71
+ </div>
72
+ </div>
73
+ </div>
74
+ </div>
75
+ </div>
76
+ <script>
77
+ let data = {
78
+ title: '📊等级排行榜',
79
+ rankRankName: '等级',
80
+ ranks: [
81
+ {
82
+ playerId: '01',
83
+ playerName: '至尊玩家',
84
+ playerAvatar: 'https://dew-1251587647.cos.ap-guangzhou.myqcloud.com/upload/5e7a70f5cfc840e491954253865b76cf',
85
+ playerEmoji: '👑',
86
+ score: 99,
87
+ rank: 1,
88
+ lastUpdateTime: 1753672774016
89
+ },
90
+ {
91
+ playerId: '02',
92
+ playerName: '传奇战士',
93
+ playerAvatar: 'https://dew-1251587647.cos.ap-guangzhou.myqcloud.com/upload/5e7a70f5cfc840e491954253865b76cf',
94
+ playerEmoji: '⚔️',
95
+ score: 87,
96
+ rank: 2,
97
+ lastUpdateTime: 1753672774053
98
+ },
99
+ {
100
+ playerId: '03',
101
+ playerName: '魔法师',
102
+ playerAvatar: 'https://dew-1251587647.cos.ap-guangzhou.myqcloud.com/upload/5e7a70f5cfc840e491954253865b76cf',
103
+ playerEmoji: '🧙',
104
+ score: 76,
105
+ rank: 3,
106
+ lastUpdateTime: 1753672774054
107
+ },
108
+ {
109
+ playerId: '04',
110
+ playerName: '弓箭手',
111
+ playerAvatar: 'https://dew-1251587647.cos.ap-guangzhou.myqcloud.com/upload/5e7a70f5cfc840e491954253865b76cf',
112
+ playerEmoji: '🏹',
113
+ score: 65,
114
+ rank: 4,
115
+ lastUpdateTime: 1753672774055
116
+ },
117
+ {
118
+ playerId: '05',
119
+ playerName: '刺客',
120
+ playerAvatar: 'https://dew-1251587647.cos.ap-guangzhou.myqcloud.com/upload/5e7a70f5cfc840e491954253865b76cf',
121
+ playerEmoji: '🗡️',
122
+ score: 54,
123
+ rank: 5,
124
+ lastUpdateTime: 1753672774056
125
+ },
126
+ {
127
+ playerId: '06',
128
+ playerName: '牧师',
129
+ playerAvatar: 'https://dew-1251587647.cos.ap-guangzhou.myqcloud.com/upload/5e7a70f5cfc840e491954253865b76cf',
130
+ playerEmoji: '⛪',
131
+ score: 43,
132
+ rank: 6,
133
+ lastUpdateTime: 1753672774057
134
+ },
135
+ {
136
+ playerId: '07',
137
+ playerName: '骑士',
138
+ playerAvatar: 'https://dew-1251587647.cos.ap-guangzhou.myqcloud.com/upload/5e7a70f5cfc840e491954253865b76cf',
139
+ playerEmoji: '🛡️',
140
+ score: 32,
141
+ rank: 7,
142
+ lastUpdateTime: 1753672774058
143
+ },
144
+ {
145
+ playerId: '08',
146
+ playerName: '法师',
147
+ playerAvatar: 'https://dew-1251587647.cos.ap-guangzhou.myqcloud.com/upload/5e7a70f5cfc840e491954253865b76cf',
148
+ playerEmoji: '🔮',
149
+ score: 21,
150
+ rank: 8,
151
+ lastUpdateTime: 1753672774059
152
+ },
153
+ {
154
+ playerId: '09',
155
+ playerName: '盗贼',
156
+ playerAvatar: 'https://dew-1251587647.cos.ap-guangzhou.myqcloud.com/upload/5e7a70f5cfc840e491954253865b76cf',
157
+ playerEmoji: '🦹',
158
+ score: 19,
159
+ rank: 9,
160
+ lastUpdateTime: 1753672774060
161
+ },
162
+ {
163
+ playerId: '10',
164
+ playerName: '野蛮人',
165
+ playerAvatar: 'https://dew-1251587647.cos.ap-guangzhou.myqcloud.com/upload/5e7a70f5cfc840e491954253865b76cf',
166
+ playerEmoji: '🪓',
167
+ score: 18,
168
+ rank: 10,
169
+ lastUpdateTime: 1753672774061
170
+ },
171
+ {
172
+ playerId: '11',
173
+ playerName: '德鲁伊',
174
+ playerAvatar: 'https://dew-1251587647.cos.ap-guangzhou.myqcloud.com/upload/5e7a70f5cfc840e491954253865b76cf',
175
+ playerEmoji: '🌿',
176
+ score: 17,
177
+ rank: 11,
178
+ lastUpdateTime: 1753672774062
179
+ },
180
+ {
181
+ playerId: '12',
182
+ playerName: '圣骑士',
183
+ playerAvatar: 'https://dew-1251587647.cos.ap-guangzhou.myqcloud.com/upload/5e7a70f5cfc840e491954253865b76cf',
184
+ playerEmoji: '⚜️',
185
+ score: 16,
186
+ rank: 12,
187
+ lastUpdateTime: 1753672774063
188
+ },
189
+ {
190
+ playerId: '13',
191
+ playerName: '术士',
192
+ playerAvatar: 'https://dew-1251587647.cos.ap-guangzhou.myqcloud.com/upload/5e7a70f5cfc840e491954253865b76cf',
193
+ playerEmoji: '👻',
194
+ score: 15,
195
+ rank: 13,
196
+ lastUpdateTime: 1753672774064
197
+ },
198
+ {
199
+ playerId: '14',
200
+ playerName: '武僧',
201
+ playerAvatar: 'https://dew-1251587647.cos.ap-guangzhou.myqcloud.com/upload/5e7a70f5cfc840e491954253865b76cf',
202
+ playerEmoji: '🥋',
203
+ score: 14,
204
+ rank: 14,
205
+ lastUpdateTime: 1753672774065
206
+ },
207
+ {
208
+ playerId: '15',
209
+ playerName: '游侠',
210
+ playerAvatar: 'https://dew-1251587647.cos.ap-guangzhou.myqcloud.com/upload/5e7a70f5cfc840e491954253865b76cf',
211
+ playerEmoji: '🌲',
212
+ score: 13,
213
+ rank: 15,
214
+ lastUpdateTime: 1753672774066
215
+ },
216
+ {
217
+ playerId: '16',
218
+ playerName: '死灵法师',
219
+ playerAvatar: 'https://dew-1251587647.cos.ap-guangzhou.myqcloud.com/upload/5e7a70f5cfc840e491954253865b76cf',
220
+ playerEmoji: '💀',
221
+ score: 12,
222
+ rank: 16,
223
+ lastUpdateTime: 1753672774067
224
+ },
225
+ {
226
+ playerId: '17',
227
+ playerName: '吟游诗人',
228
+ playerAvatar: 'https://dew-1251587647.cos.ap-guangzhou.myqcloud.com/upload/5e7a70f5cfc840e491954253865b76cf',
229
+ playerEmoji: '🎵',
230
+ score: 11,
231
+ rank: 17,
232
+ lastUpdateTime: 1753672774068
233
+ },
234
+ {
235
+ playerId: '18',
236
+ playerName: '炼金术士',
237
+ playerAvatar: 'https://dew-1251587647.cos.ap-guangzhou.myqcloud.com/upload/5e7a70f5cfc840e491954253865b76cf',
238
+ playerEmoji: '🧪',
239
+ score: 10,
240
+ rank: 18,
241
+ lastUpdateTime: 1753672774069
242
+ },
243
+ {
244
+ playerId: '19',
245
+ playerName: '召唤师',
246
+ playerAvatar: 'https://dew-1251587647.cos.ap-guangzhou.myqcloud.com/upload/5e7a70f5cfc840e491954253865b76cf',
247
+ playerEmoji: '🐉',
248
+ score: 9,
249
+ rank: 19,
250
+ lastUpdateTime: 1753672774070
251
+ },
252
+ {
253
+ playerId: '20',
254
+ playerName: '元素使',
255
+ playerAvatar: 'https://dew-1251587647.cos.ap-guangzhou.myqcloud.com/upload/5e7a70f5cfc840e491954253865b76cf',
256
+ playerEmoji: '⚡',
257
+ score: 8,
258
+ rank: 20,
259
+ lastUpdateTime: 1753672774071
260
+ }
261
+ ],
262
+ myRank: {
263
+ playerId: '01',
264
+ playerName: '至尊玩家',
265
+ playerAvatar: 'https://dew-1251587647.cos.ap-guangzhou.myqcloud.com/upload/5e7a70f5cfc840e491954253865b76cf',
266
+ playerEmoji: '👑',
267
+ score: 99,
268
+ rank: 999,
269
+ lastUpdateTime: 1753672774016
270
+ }
271
+ };
272
+
273
+ new Vue({
274
+ el: '#app',
275
+ data: { data },
276
+ methods: {
277
+ getRankClass(rank) {
278
+ if (rank === 1) return 'rank-gold';
279
+ if (rank === 2) return 'rank-silver';
280
+ if (rank === 3) return 'rank-bronze';
281
+ return 'rank-normal';
282
+ },
283
+ handleAvatarError(event) {
284
+ event.target.style.display = 'none';
285
+ event.target.nextElementSibling.style.display = 'flex';
286
+ }
287
+ }
288
+ });
289
+ </script>
290
+ </body>
291
+
292
+ </html>
package/lib/index.js CHANGED
@@ -32,15 +32,25 @@ function apply(ctx, config) {
32
32
  ctx.on('dispose', () => {
33
33
  rateLimiter.stopCleanup();
34
34
  });
35
+ // 记录已提示过的用户,避免重复提示
36
+ const notifiedUsers = new Set();
35
37
  ctx.on('message', (session) => {
36
38
  const userId = session.author.id;
37
39
  // 检查频率限制
38
40
  if (!rateLimiter.canSendMessage(userId)) {
39
41
  // 被拉黑或触发频率限制
40
- session.send(`消息发送过于频繁,已拉黑${config.频率限制}分钟!`);
42
+ // 只在首次拉黑时提示
43
+ if (!notifiedUsers.has(userId)) {
44
+ session.send(`消息发送过于频繁,已拉黑${config.频率限制}分钟!`);
45
+ notifiedUsers.add(userId);
46
+ }
41
47
  return;
42
48
  }
43
49
  // 通过频率限制,正常处理消息
50
+ // 如果用户之前被拉黑过,现在可以正常发送消息了,从提示列表中移除
51
+ if (notifiedUsers.has(userId)) {
52
+ notifiedUsers.delete(userId);
53
+ }
44
54
  new msgCsl_1.SendMsg(session);
45
55
  });
46
56
  }
@@ -29,7 +29,7 @@ class server extends console_1.console {
29
29
  // 根据服务器环境选择对应的地址
30
30
  const serverUrlMap = {
31
31
  '测试服': 'ws://127.0.0.1:3000',
32
- '开发服': 'ws://dev-bot.cn:3000',
32
+ '开发服': 'ws://dew-bot.cn:3000',
33
33
  '正式服': 'ws://dew-bot.cn:3000'
34
34
  };
35
35
  const serverUrl = serverUrlMap[config.服务器环境];
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ConditionOperator = exports.ConditionType = exports.effectKey = exports.defenseKey = exports.attackKey = exports.Attribute_base = exports.盲盒枚举 = exports.道具枚举 = exports.资源枚举 = exports.sort_type = exports.qualityGradient = exports.qualityName = exports.quality = exports.ItemType = exports.EquipAttType = exports.EffectClassType = exports.PassiveTriggerType = exports.SkillType = exports.TargetType = exports.LogType = void 0;
3
+ exports.ConditionOperator = exports.ConditionType = exports.effectKey = exports.defenseKey = exports.attackKey = exports.Attribute_base = exports.盲盒枚举 = exports.道具枚举 = exports.资源枚举 = exports.sort_type = exports.qualityGradient = exports.qualityName = exports.quality = exports.RankingType = exports.ItemType = exports.EquipAttType = exports.EffectClassType = exports.PassiveTriggerType = exports.SkillType = exports.TargetType = exports.LogType = void 0;
4
4
  // 日志类型
5
5
  var LogType;
6
6
  (function (LogType) {
@@ -63,6 +63,16 @@ var ItemType;
63
63
  ItemType["\u76F2\u76D2"] = "prop_\u76F2\u76D2";
64
64
  ItemType["\u5F62\u8C61\u5361"] = "image_card";
65
65
  })(ItemType || (exports.ItemType = ItemType = {}));
66
+ /**
67
+ * 排行榜类型
68
+ */
69
+ var RankingType;
70
+ (function (RankingType) {
71
+ RankingType["\u7B49\u7EA7"] = "\u7B49\u7EA7";
72
+ RankingType["\u91D1\u5E01"] = "\u91D1\u5E01";
73
+ RankingType["\u7B7E\u5230"] = "\u7B7E\u5230\u6B21\u6570";
74
+ RankingType["\u6218\u529B"] = "\u6218\u529B";
75
+ })(RankingType || (exports.RankingType = RankingType = {}));
66
76
  var quality;
67
77
  (function (quality) {
68
78
  quality[quality["F"] = 0] = "F";
@@ -115,11 +125,9 @@ var sort_type;
115
125
  })(sort_type || (exports.sort_type = sort_type = {}));
116
126
  var 资源枚举;
117
127
  (function (资源枚举) {
118
- 资源枚举["\u7ECF\u9A8C"] = "1";
119
- 资源枚举["\u91D1\u5E01"] = "2";
120
- 资源枚举["fq"] = "3";
121
- 资源枚举["fq1"] = "4";
122
- 资源枚举["\u8840\u7EDF\u7ECF\u9A8C"] = "5";
128
+ 资源枚举["\u7ECF\u9A8C"] = "\u7ECF\u9A8C\u503C";
129
+ 资源枚举["\u91D1\u5E01"] = "\u91D1\u5E01";
130
+ 资源枚举["\u8840\u7EDF\u7ECF\u9A8C"] = "\u8840\u7EDF\u7ECF\u9A8C";
123
131
  })(资源枚举 || (exports.资源枚举 = 资源枚举 = {}));
124
132
  var 道具枚举;
125
133
  (function (道具枚举) {
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.serviceProto = void 0;
4
4
  exports.serviceProto = {
5
- "version": 5,
5
+ "version": 6,
6
6
  "services": [
7
7
  {
8
8
  "id": 2,
@@ -56,7 +56,8 @@ exports.serviceProto = {
56
56
  "type": {
57
57
  "type": "Reference",
58
58
  "target": "IMassage/Message"
59
- }
59
+ },
60
+ "optional": true
60
61
  },
61
62
  {
62
63
  "id": 2,
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "koishi-plugin-dew-bot",
3
3
  "description": "达尔文进化岛",
4
4
  "preview": true,
5
- "version": "1.0.196",
5
+ "version": "1.0.200",
6
6
  "main": "lib/index.js",
7
7
  "typings": "lib/index.d.ts",
8
8
  "contributors": [
package/readme.md CHANGED
@@ -1,9 +1,32 @@
1
- # koishi-plugin-dew-bot
1
+ # 🌟 koishi-plugin-dew-bot
2
2
 
3
3
  [![npm](https://img.shields.io/npm/v/koishi-plugin-dew-bot?style=flat-square)](https://www.npmjs.com/package/koishi-plugin-dew-bot)
4
+ [![Koishi](https://img.shields.io/badge/Koishi-Plugin-green.svg)](https://koishi.chat/)
5
+ [![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=flat-square&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
6
+ [![GitHub Views](https://komarev.com/ghpvc/?username=your-username&repo=koishi-plugin-dew-bot&color=blue&style=flat-square)](https://github.com/your-username/koishi-plugin-dew-bot)
4
7
 
5
- [功能进度一览](https://docs.qq.com/mind/DWkRkWEtpT1FPQ0tT?subId=BB08J2&mode=mind)
6
8
 
7
- [服务器源码](https://gitee.com/ChuXuanD30/bot_server_v6)
9
+ ## 📖 介绍
8
10
 
9
- [web端源码](https://gitee.com/ChuXuanD30/bot_server_backend)
11
+ 基于《无限恐怖》为蓝本的文字RPG游戏
12
+
13
+ ## ✨特色
14
+ - 🎯 **无需记忆指令** - 直观简介的指令系统
15
+ - 🌍 **多平台支持** - 基于服务器的消息处理,支持QQ、微信、Telegram等多个平台,也可以接入任何平台,只需要支持WS协议即可,接入可参考文档TSRPC 接入方法
16
+
17
+ ## 🔗 相关链接
18
+ - 🌐 [tsrpc-TS全栈框架](https://tsrpc.cn/)
19
+ - 🖥️ [服务器(开发中)](https://gitee.com/ChuXuanD30/bot_server_v6)
20
+ - 🌐 [Web端源码-VUE3](https://gitee.com/ChuXuanD30/bot_server_backend)
21
+ ## ✨开发计划
22
+ - **一期-底层架构** - ✅RPG核心技能/战斗/消息处理等基础功能
23
+ - **一期-基础功能** - ✅RPG基础功能设计 交易所/背包/装备/技能/宠物/任务/排行榜/邮件系统
24
+ - **一期-测试优化** - 🔄功能体验测试,阶段性整理重构以便下一步开发,交互优化
25
+
26
+ ## 🤝 贡献指南
27
+
28
+ 如果你有任何与游戏相关的建议或意见,欢迎提交 Issue 或 邮箱🎮✨
29
+
30
+ ### 📧 联系方式
31
+ - 📮 **邮箱**: <3245000000@qq.com>
32
+ - 💬 **讨论**: [🌍达尔文进化岛](https://qm.qq.com/q/h1iprRcely)