IRC-Client: extra color for private msg, better timing for auto join

This commit is contained in:
Jörg Deckert 2014-01-30 19:52:10 +01:00
parent 56ff0fd98c
commit 7db2adf562
1 changed files with 23 additions and 14 deletions

View File

@ -59,8 +59,10 @@ COL_STTIME = 8 'aktuelle Zeit im Status-Fenster
COL_CHAN = 5 'Channel in Message-Zeile COL_CHAN = 5 'Channel in Message-Zeile
COL_NICK = 4 'Nickname in Message-Zeile COL_NICK = 4 'Nickname in Message-Zeile
COL_MYNICK = 2 'Nickname in selbst geschriebener Message-Zeile COL_MYNICK = 2 'Nickname in selbst geschriebener Message-Zeile
COL_PRIVNICK = 7 'Nickname in privater Message-Zeile
COL_MSG = 0 'Text der Message-Zeile COL_MSG = 0 'Text der Message-Zeile
COL_MYMSG = 6 'Text in selbst geschriebener Message-Zeile COL_MYMSG = 6 'Text in selbst geschriebener Message-Zeile
COL_PRIVMSG = 7 'Text in privater Message-Zeile
LEN_PASS = 32 LEN_PASS = 32
LEN_NICK = 32 LEN_NICK = 32
@ -484,7 +486,7 @@ PRI ircNick
handleStatusStr(string("Fehler beim Senden des Nicknamens"), 2, TRUE) handleStatusStr(string("Fehler beim Senden des Nicknamens"), 2, TRUE)
return(-1) return(-1)
PRI ircReg PRI ircReg | t
if handleidx == $FF if handleidx == $FF
handleStatusStr(string("Anmeldung nicht möglich (keine Verbindung zum Server)"), 2, FALSE) handleStatusStr(string("Anmeldung nicht möglich (keine Verbindung zum Server)"), 2, FALSE)
@ -498,7 +500,9 @@ PRI ircReg
handleStatusStr(string("Fehler beim Senden der Benutzerinformationen"), 2, TRUE) handleStatusStr(string("Fehler beim Senden der Benutzerinformationen"), 2, TRUE)
return(-1) return(-1)
waitcnt(cnt + clkfreq) '1sek warten t := cnt
repeat until (cnt - t) / clkfreq > 3 '3s lang Meldungen des Servers entgegennehmen
ircGetline
PRI ircJoin PRI ircJoin
@ -557,6 +561,10 @@ PRI ircGetLine | i, x, prefixstr, nickstr, chanstr, msgstr, commandstr
if byte[chanstr] == "#" 'Message an Channel if byte[chanstr] == "#" 'Message an Channel
handleChatStr(chanstr, nickstr, msgstr, 0) handleChatStr(chanstr, nickstr, msgstr, 0)
else 'Message an mich else 'Message an mich
msgstr -= 7 '"[priv] " vor Message schreiben
x := string("[priv] ")
repeat i from 0 to 6
byte[msgstr][i] := byte[x][i]
handleChatStr(string("<priv>"), nickstr, msgstr, 2) handleChatStr(string("<priv>"), nickstr, msgstr, 2)
elseif str.startsWithCharacters(commandstr, string("PING :")) 'PING elseif str.startsWithCharacters(commandstr, string("PING :")) 'PING
handleStatusStr(string("PING erhalten, sende PONG"), 2, TRUE) handleStatusStr(string("PING erhalten, sende PONG"), 2, TRUE)
@ -625,6 +633,7 @@ PRI ircGetLine | i, x, prefixstr, nickstr, chanstr, msgstr, commandstr
title_draw title_draw
372: handleStatusStr(msgstr + 3, 1, FALSE) 'MOTD 372: handleStatusStr(msgstr + 3, 1, FALSE) 'MOTD
375..376: 375..376:
451:
other: repeat x from 0 to strsize(commandstr) - 1 'unbehandelter Return-Code other: repeat x from 0 to strsize(commandstr) - 1 'unbehandelter Return-Code
temp_str[x] := byte[commandstr][x] temp_str[x] := byte[commandstr][x]
temp_str[x++] := ":" temp_str[x++] := ":"
@ -926,10 +935,10 @@ PRI handleChatStr(chanstr, nickstr, msgstr, me) | i, timenicklen, msglineend, ch
print_str[print_str_ptr++] := 0 print_str[print_str_ptr++] := 0
'2. Teilstring: Nickname '2. Teilstring: Nickname
if me == 1 case me
print_str[print_str_ptr++] := COL_MYNICK 'Farbbyte 0: print_str[print_str_ptr++] := COL_NICK 'Farbbyte
else 1: print_str[print_str_ptr++] := COL_MYNICK 'Farbbyte
print_str[print_str_ptr++] := COL_NICK 'Farbbyte 2: print_str[print_str_ptr++] := COL_PRIVNICK 'Farbbyte
print_str[print_str_ptr++] := ">" print_str[print_str_ptr++] := ">"
repeat i from 0 to strsize(nickstr) - 1 'Länge Nickname ohne Abschluß-Null repeat i from 0 to strsize(nickstr) - 1 'Länge Nickname ohne Abschluß-Null
print_str[print_str_ptr++] := byte[nickstr][i] print_str[print_str_ptr++] := byte[nickstr][i]
@ -938,10 +947,10 @@ PRI handleChatStr(chanstr, nickstr, msgstr, me) | i, timenicklen, msglineend, ch
print_str[print_str_ptr++] := 0 print_str[print_str_ptr++] := 0
'3. Teilstring: 1. Teil der Mitteilung '3. Teilstring: 1. Teil der Mitteilung
if me == 1 case me
print_str[print_str_ptr++] := COL_MYMSG 'Farbbyte 0: print_str[print_str_ptr++] := COL_MSG 'Farbbyte
else 1: print_str[print_str_ptr++] := COL_MYMSG 'Farbbyte
print_str[print_str_ptr++] := COL_MSG 'Farbbyte 2: print_str[print_str_ptr++] := COL_PRIVMSG 'Farbbyte
timenicklen := strsize(nickstr) + 10 timenicklen := strsize(nickstr) + 10
msglineend := cols - timenicklen -2 msglineend := cols - timenicklen -2
repeat until lastline repeat until lastline
@ -963,10 +972,10 @@ PRI handleChatStr(chanstr, nickstr, msgstr, me) | i, timenicklen, msglineend, ch
printStrWin(@print_str) 'im Chatfenster anzeigen printStrWin(@print_str) 'im Chatfenster anzeigen
printStrBuf(1) 'in Fensterpuffer schreiben printStrBuf(1) 'in Fensterpuffer schreiben
ifnot lastline 'wenn noch eine zeile folgt, diese bereits beginnen ifnot lastline 'wenn noch eine zeile folgt, diese bereits beginnen
if me == 1 case me
print_str[print_str_ptr++] := COL_MYMSG 'nach Zeilenumbruch beginnt neue Zeile wieder mit Farbbyte 0: print_str[print_str_ptr++] := COL_MSG 'Farbbyte
else 1: print_str[print_str_ptr++] := COL_MYMSG 'Farbbyte
print_str[print_str_ptr++] := COL_MSG 2: print_str[print_str_ptr++] := COL_PRIVMSG 'Farbbyte
repeat timenicklen '"Tab" bis Ende Anzeige Channel + Nickname repeat timenicklen '"Tab" bis Ende Anzeige Channel + Nickname
print_str[print_str_ptr++] := " " print_str[print_str_ptr++] := " "
if space if space