/[cvs]/wolfpack/TODO
ViewVC logotype

Contents of /wolfpack/TODO

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.11 - (show annotations) (download)
Sun Jan 23 03:44:59 2005 UTC (14 years, 8 months ago) by tothwolf
Branch: MAIN
Changes since 1.10: +0 -2 lines
* Merged config.tcl and wolfpack.tcl config code.

1 This file is mostly notes/ideas/etc of things I'll be doing/finishing.
2 Some of the info in this file is out of date now, and just serves as a
3 guideline as I get to things. -Toth
4
5 core:
6
7 binds selectable in bind array based on eggdrop and/or tcl versions
8
9 Module load order not matter; load modules, then handle their init proc?
10
11 Add code to support different modules providing the same function:
12 requires: {procname {module_name1 module_name2 module_name3}}
13
14 Add an 'optional:' or 'recommended:' module option that does not require
15 the function to be avialble; a counterpart to 'requires:'
16
17 Add variable dependency tracking code along the lines of provides:/requires:
18 optional: {procname {options}}
19 options - {return "x"}; {script "x"}
20 optional: fubar
21 optional: {fubar {script {return [lindex $args 2]}}}
22 optional: {fubar {return ""}}
23
24 Handle circular dependency loops better:
25 'moduleA' provides 'functionA'; requires 'functionB'
26 'moduleB' provides 'functionB'; requires 'functionA'
27
28 '.rehash' causes problems if version numbers are increased,
29 hook to package forget?
30 refresh command for wpconf
31 finish CheckData.tcl code and merge
32 bind load/unld module hooks to unload/load dependant tcl modules
33 data input control proc for wpconf
34 rewrite help code and move(?) to wolfpack.tcl
35 %b %u etc help substitution
36 multiple lines of help text [split \n] with flag stuff
37 enable/disable/load/unload/status/refresh in dcc:wpconf
38 add botnet config extensions with bot bindings
39 web based config extensions
40 ? usage reply proc for modules; shared usage info for all commands
41 automatic distributed update system:
42 fold this into part of wpconf
43 send out updated modules to "subscribed" bots
44 [logfile] wrapper and support for more/custom log levels
45
46 other:
47 ison/notify script, send info to idx, partyline, channel, email
48 write standalone Tk app that connects to botnet to configure bots
49 recreate peak chanstats / total joins script i had in 1.0 days
50 logman [started] (lots of ideas ...)
51 bottree to html (planning)
52 url/email catcher: http/sort by
53 seen module, hooks for other modules to use, flag/xtra field matching
54 make moonphase and weather http code generic and merge into http module
55 files from file area avaliable thru http
56
57 alias:
58 chon/chof type aliases
59
60 auth:
61 share auth across bots on the same channel that shared channel data
62
63 bseen:
64 finish conversion
65
66 checkpass:
67 filt binding for +user/adduser to create timestamp?
68 would this be useful or would the automatic checking be sufficient?
69
70 compat:
71 compat:erasenotes, compat:listnotes - need to be finished]
72
73 jester:
74 case insensitive and '[ { \' fixes for channel names
75 logging
76 "main" channel group, and "list" channel group, main higher priority
77 user channels from [channels] initially unless var is set to 1
78 ctcp version reply with contact info
79
80 moonphase:
81 rewrite - surely this doesn't work anymore?
82 full time with moonphase data
83
84 netserv:
85 add time binding?
86
87 portctrl:
88 seems to be broken
89
90 pubcmds:
91 -whois needs improvement
92 -kickban <nick|mask> [reason], configurable masking
93
94 servman:
95 UpdateServers trace problems with $servers variable
96 traced server data has problems if server removed
97
98 texttools:
99 telnet/irc autoconversion of [b] [v] [u] [c #n] etc
100
101 userinfo:
102 add pub commands?
103
104 userping:
105 pub:ping - add msg and dcc commands
106
107 weather:
108 rewrite - surely this doesn't work anymore?
109
110 wrpg:
111
112 track/place user in the "clearing", locations, grid? elevation?
113
114 stats based information, rather than hp/fp, etc
115 dice weight set by "strength" stat for a particular animal,
116 curve shifting as "hp" decreases?
117
118 wrpg/foodcmds:
119 finish rewrite
120 --------------
121 count2
122 -bury * (?)
123 -caught 'trout' broken
124 --------------
125
126 wrpg/fooddata:
127 finish rewrite
128
129 wrpg/huntcmds:
130 finish rewrite
131 --------------
132 $huntinfo(channel); $animal == ""
133 -chase [animal]
134 -sniff [category] (category to number mapping)
135 --------------
136 do away with user level against hunt level checking
137 hunt level changed to hunt group
138 register system for nicks involved in a hunt/nonpack too, etc?
139 ? autocaught is broken (still?)
140 addhunt & chhunt: sanity checks for dice options
141 listhunt; show dice options
142 time_min_1 hunt timeout rework, make show real elapsed time etc
143 endhunt rework, make show real elapsed time etc
144 during dice roll during active hunt:
145 if {($animal(hp_left) >= [expr $animal(hp_total) / 2]) && \
146 (($dice_rolls >= $max_dice_rolls) || \
147 ($elapsed_time >= $max_elapsed_time))} then {
148 putnot $huntinfo(channel) "The $huntinfo(animal) escapes with [grammar_check3 [grammar_check1 0 $huntinfo(hits_scored) hit]] scored out of $huntinfo(hits_total)."
149 clear_hunt
150 }
151 calculate max_dice_rolls and max_elapsed_time based on animal's total hp
152
153 wrpg/huntdata:
154 finish rewrite
155
156 wrpgfserv:
157 probably scratch rewrite, integrate with new wrpg/
158 binding against !$nick
159
160 wrpgnet:
161 probably scratch rewrite, integrate with new wrpg/
162 channel number must be global channel, not local channel?
163 3d grid type map, each "point" gets x:y:z (n/s/e/w/nw/ne/sw/se/u/d)
164 channel number to map coordinates
165 .map to display a clearing tree/map similar to .bottree
166 consistant between bots? possible?
167
168 wrpgpers:
169 probably scratch rewrite, integrate with new wrpg/
170 remove hardcoded data
171 moonphase howling at full moon
172 bindings against *$nick*
173
174 wrpgsound:
175 probably scratch rewrite, integrate with new wrpg/
176 'bind join/part P|P, utimer, if {![onchan $nick]} then { ... }'
177 use datafile for sound text (half done)
178
179 misc other wrpg:
180 eggdrop tcl http server on set port will display rpg bot structure
181 bot/channel/clearing structure and assessment dates etc via http
182 '.delfp/.delhp user n' (+FH stuff is crap)
183 user data; multiple channels per bot packlist/data for each clearing
184 hp/fp/commands/etc while in assessment ?
185 .matchhunt/.matchfood/.matchas/.matchpack?
186 don't change H/FPINFO1/2 for users with +H or +F
187
188 wp botnet protocol / rpg botnet protocol:
189 new bot links
190 foreach bot [bots] {putbot $bot "are you a rpg bot?"}
191 each rpg bot responds back to query if it is an rpg bot, with structure info
192 bot creates list of rpg bots with structure info
193
194 secure gain ops/invite/etc (similar to old authop code):
195 opedbot in chan
196 {
197 newbot joins chan
198 newbot looks up opedbot in userfile
199 newbot if hosts/etc match, and opedbot with name linked,
200 newbot sends gainop request to opedbot
201 } {
202 newbot sends gainop request to botnet
203 }
204 opedbot looks up name of newbot
205 opedbot sends back random line number from auth list encrypted with password
206 newbot encrypt string found at line number with password
207 newbot sends ack with encrypted string back to opedbot
208 opedbot checks password encrypted string
209 if match opedbot ops newbot
210
211 --------------------------------------
212 1:
213
214 Distributed botnet trust system
215
216 Bottree:
217
218 BotA
219 |--BotB
220 `--BotC
221 `--BotD
222 `--BotE
223
224 --------------------------------------
225 2:
226
227 BotA directly linked to BotB
228 BotA initially trusts BotB level 'n'
229 BotA sends greeting to BotB when it links;
230 if BotB responds with proper credentials, BotA trusts BotB more
231 else BotA trusts BotB less
232
233 BotA directly linked to BotC
234 BotA initially trusts BotC level 'n'
235 BotA sends greeting to BotC when it links;
236 if BotC responds with proper credentials, BotA trusts BotC more
237 else BotA trusts BotC less
238
239 BotA linked via BotC to BotD; initially trusts BotD level 'n - 1'
240 BotA linked via BotC via BotD to BotE; initially trusts BotE level 'n - 2'
241
242 --------------------------------------
243 3:
244
245 BotA
246 |--BotB
247 `--Newbot
248
249 Newbot links to BotA
250 BotA sends Newbot a security challenge
251 Newbot hashes the security challenge with a password and sends the result
252 back to BotA
253 BotA broadcasts 'Newbot trusted'
254 BotA sets its trust for Newbot to '1'
255
256 BotB sees 'Newbot trusted' and if it knows Newbot, sends it a security
257 challenge
258 Newbot hashes the security challenge with a password and sends the result
259 back to botB
260 BotB broadcasts 'Newbot trusted'
261 BotB sets its trust for Newbot to '2'; 1 for BotB and 1 for BotA previously
262
263 When 'Newbot trusted' is seen by BotA after BotB verifies the challenge,
264 BotA increases the trust level for BotB 'n + 1' (or '1 + 1 = 2' in this
265 example)
266
267 --------------------------------------
268 4:
269
270 Each bot must have a way to securely identify to at least one other bot in
271 the botnet. This is possible by using a challenge request of a random string
272 that is then hashed with the linking password. The linking password is the
273 same on both bots when they link so [getuser PASS] can be used.
274
275 When a new bot identifies to another bot, the bot that it identified to
276 must confirm to other bots directly linked to itself that the new bot has
277 identifed itself. Those bots can then issue their own challenges to the new
278 bot if they have a user record for it. This is preferred over using a global
279 broadcast, as it limits the number of challenges at any given moment. The
280 number of challenges may increase as the bot tree branches if all other
281 bots know the new bot, however common botnet structures usually have less
282 than 2 or 3 dozen bots that all know each other. Even with a large botnet
283 message flooding shouldn't be too much of a problem, as the new bot can
284 regulate how fast it is sending out replies. Since the new bot could recieve
285 multiple challenge queries when it answers a reply properly, it should answer
286 challenge queries in the order in which it recieves them.
287
288 All bots should tally and store all identy confirmations, even if the bot
289 storing results from other bots does not yet know or have its own trust info
290 for some bots. It may gain trust for a particular bot later, and should be
291 able to immediately increase its level for the new bot when it learns it.
292
293 --------------------------------------
294 5:
295
296 BotA
297 |
298 |----BotB
299 |
300 |----BotC
301 |
302 `----NewBot
303
304 BotA:
305 Knows(BotA) (knows self - duh)
306 Knows(BotB)
307 Knows(BotC)
308 Knows(NewBot)
309 Trust(BotB) {BotA BotC} (2)
310 Trust(BotC) {BotA BotB} (2)
311 Trust(NewBot) {BotA} (1)
312
313 BotB:
314 Knows(BotA)
315 Knows(BotB) (knows self - duh)
316 Knows(BotC)
317 Trust(BotA) {BotB BotC} (2)
318 Trust(BotC) {BotA BotB} (2)
319
320 BotC:
321 Knows(BotA)
322 Knows(BotB)
323 Knows(BotC) (knows self - duh)
324 Trust(BotA) {BotB BotC} (2)
325 Trust(BotB) {BotA BotC} (2)
326
327 NewBot:
328 Knows(BotA)
329 Knows(NewBot) (knows self - duh)
330 Trust(BotA) {NewBot) (1)
331
332 --------------------------------------

webmaster@eggheads.org
ViewVC Help
Powered by ViewVC 1.1.23