/[cvs]/wolfpack/TODO
ViewVC logotype

Annotation of /wolfpack/TODO

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


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

1 tothwolf 1.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 tothwolf 1.5
7 tothwolf 1.6 binds selectable in bind array based on eggdrop and/or tcl versions
8    
9 tothwolf 1.5 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 tothwolf 1.8 Add an 'optional:' or 'recommended:' module option that does not require
15     the function to be avialble; a counterpart to 'requires:'
16 tothwolf 1.5
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 tothwolf 1.1 '.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 tothwolf 1.7 [logfile] wrapper and support for more/custom log levels
45 tothwolf 1.1
46     other:
47 tothwolf 1.5 ison/notify script, send info to idx, partyline, channel, email
48 tothwolf 1.1 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 tothwolf 1.3 alias:
58     chon/chof type aliases
59    
60 tothwolf 1.1 auth:
61     share auth across bots on the same channel that shared channel data
62    
63     bseen:
64     finish conversion
65    
66 tothwolf 1.2 checkpass:
67     filt binding for +user/adduser to create timestamp?
68     would this be useful or would the automatic checking be sufficient?
69    
70 tothwolf 1.1 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 tothwolf 1.5 wrpg:
111 tothwolf 1.6
112     track/place user in the "clearing", locations, grid? elevation?
113    
114 tothwolf 1.5 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 tothwolf 1.1 wrpg/foodcmds:
119 tothwolf 1.4 finish rewrite
120     --------------
121     count2
122     -bury * (?)
123     -caught 'trout' broken
124     --------------
125 tothwolf 1.1
126     wrpg/fooddata:
127 tothwolf 1.4 finish rewrite
128 tothwolf 1.1
129 tothwolf 1.4 wrpg/huntcmds:
130     finish rewrite
131     --------------
132 tothwolf 1.1 $huntinfo(channel); $animal == ""
133     -chase [animal]
134     -sniff [category] (category to number mapping)
135 tothwolf 1.4 --------------
136 tothwolf 1.1 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 tothwolf 1.4 finish rewrite
155 tothwolf 1.1
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 tothwolf 1.9
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