|
|
|
@ -50,7 +50,10 @@ menu channel |
|
|
|
|
showmessage("Not connected", "You are not connected to the server", "warn", "o"); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
channelOrig = channel; |
|
|
|
|
channel = strlower(channel); |
|
|
|
|
|
|
|
|
|
if (chansethndl[channel] != void && dlgvalidhndl(chansethndl[channel])) |
|
|
|
|
dlgclose(chansethndl[channel]); |
|
|
|
|
|
|
|
|
@ -71,7 +74,7 @@ menu channel |
|
|
|
|
# Custom attribute to keep track of which channel the dialog has an effect to |
|
|
|
|
dlgsetattr(hndl, "channel", channel); |
|
|
|
|
|
|
|
|
|
dlgsetattr(hndl, "title", "Settings for " + channel); |
|
|
|
|
dlgsetattr(hndl, "title", "Settings for " + channelOrig); |
|
|
|
|
|
|
|
|
|
dlgsetwidgetattr(hndl, "bantable", "header", list("Mask", "Set by", "Date")); |
|
|
|
|
|
|
|
|
@ -104,7 +107,8 @@ menu channel |
|
|
|
|
|
|
|
|
|
hook numeric(code, params, message) |
|
|
|
|
{ |
|
|
|
|
channel = params[1]; |
|
|
|
|
channel = strlower(params[1]); |
|
|
|
|
|
|
|
|
|
if (channel == void) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
@ -113,9 +117,10 @@ hook numeric(code, params, message) |
|
|
|
|
|
|
|
|
|
hndl = chansethndl[channel]; |
|
|
|
|
|
|
|
|
|
# No topic is set. |
|
|
|
|
# No topic is set |
|
|
|
|
if (code == "331") { |
|
|
|
|
topicDone[channel] = true; |
|
|
|
|
currentTopic[channel] = ""; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
# Topic received |
|
|
|
@ -124,11 +129,12 @@ hook numeric(code, params, message) |
|
|
|
|
topicDone[channel] = true; |
|
|
|
|
currentTopic[channel] = message; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Topic-by message is always a bit late to the party so must be unmuted separately. |
|
|
|
|
else if (code == "333") { |
|
|
|
|
/unmuteresp 333 |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Mode list received |
|
|
|
|
else if (code == "324") { |
|
|
|
|
args = list(); |
|
|
|
@ -144,7 +150,7 @@ hook numeric(code, params, message) |
|
|
|
|
|
|
|
|
|
# Ban list item received |
|
|
|
|
else if (code == "367") { |
|
|
|
|
handle = chansethndl[params[1]]; |
|
|
|
|
handle = chansethndl[channel]; |
|
|
|
|
|
|
|
|
|
mask = params[2]; |
|
|
|
|
setby = params[3]; |
|
|
|
@ -160,7 +166,7 @@ hook numeric(code, params, message) |
|
|
|
|
|
|
|
|
|
# Invites list item received |
|
|
|
|
else if (code == "346") { |
|
|
|
|
handle = chansethndl[params[1]]; |
|
|
|
|
handle = chansethndl[channel]; |
|
|
|
|
|
|
|
|
|
mask = params[2]; |
|
|
|
|
setby = params[3]; |
|
|
|
@ -176,7 +182,7 @@ hook numeric(code, params, message) |
|
|
|
|
|
|
|
|
|
# Exceptions list item received |
|
|
|
|
else if (code == "348") { |
|
|
|
|
handle = chansethndl[params[1]]; |
|
|
|
|
handle = chansethndl[channel]; |
|
|
|
|
|
|
|
|
|
mask = params[2]; |
|
|
|
|
setby = params[3]; |
|
|
|
@ -199,6 +205,7 @@ hook numeric(code, params, message) |
|
|
|
|
# |
|
|
|
|
hook mode(sender, target, modes) |
|
|
|
|
{ |
|
|
|
|
target = strlower(target); |
|
|
|
|
if (chansethndl[target] == void) |
|
|
|
|
return; |
|
|
|
|
handle = chansethndl[target]; |
|
|
|
@ -274,6 +281,8 @@ function findAndRemoveFromTable(handle, table, mask) |
|
|
|
|
# |
|
|
|
|
function checkAndHandleAllDone(channel) |
|
|
|
|
{ |
|
|
|
|
channel = strlower(channel); |
|
|
|
|
|
|
|
|
|
if ((topicDone[channel] == false) |
|
|
|
|
|| (modesDone[channel] == false) |
|
|
|
|
|| (bansDone[channel] == false) |
|
|
|
@ -293,6 +302,8 @@ function checkAndHandleAllDone(channel) |
|
|
|
|
# |
|
|
|
|
function parseChannelModes(channel, modes, args) |
|
|
|
|
{ |
|
|
|
|
channel = strlower(channel); |
|
|
|
|
|
|
|
|
|
hndl = chansethndl[channel]; |
|
|
|
|
i = 0; |
|
|
|
|
argi = 0; # Index of 'args', increments on group B and C. |
|
|
|
@ -658,9 +669,19 @@ dialog channelsettings |
|
|
|
|
height = 25; |
|
|
|
|
hook clicked => { |
|
|
|
|
channel = dlggetattr(handle, "channel"); |
|
|
|
|
newModes = createModeDiff(channel); |
|
|
|
|
|
|
|
|
|
newModes = createModeDiff(channel); |
|
|
|
|
if (strlen(newModes) > 0) |
|
|
|
|
/mode %channel %newModes |
|
|
|
|
|
|
|
|
|
newTopic = dlggetwidgetattr(handle, "topic", "text"); |
|
|
|
|
if (newTopic != currentTopic[channel]) { |
|
|
|
|
if (newTopic == "") |
|
|
|
|
/topic -c %channel |
|
|
|
|
else |
|
|
|
|
/topic %channel %newTopic |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
dlgclose(handle); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -672,6 +693,8 @@ dialog channelsettings |
|
|
|
|
# |
|
|
|
|
function createModeDiff(channel) |
|
|
|
|
{ |
|
|
|
|
channel = strlower(channel); |
|
|
|
|
|
|
|
|
|
hndl = chansethndl[channel]; |
|
|
|
|
|
|
|
|
|
unsetmodes = ""; |
|
|
|
|