Implement a fix for #16
This commit is contained in:
parent
bb0a43f3fc
commit
18f291fe07
1 changed files with 35 additions and 1 deletions
36
rowbot
36
rowbot
|
@ -31,6 +31,17 @@ die() {
|
||||||
exit "${STATUS:-42}"
|
exit "${STATUS:-42}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get_array() {
|
||||||
|
local entry idx_size
|
||||||
|
declare -n scalar=ARR_${1^^}
|
||||||
|
declare -n array=$1
|
||||||
|
|
||||||
|
while read -r entry; do
|
||||||
|
idx_size=${entry%%:*} entry=${entry#"$idx_size":}
|
||||||
|
array[${entry:0:idx_size}]=${entry:idx_size}
|
||||||
|
done <<< "$scalar"
|
||||||
|
}
|
||||||
|
|
||||||
get_option() {
|
get_option() {
|
||||||
if (( ! $# )); then
|
if (( ! $# )); then
|
||||||
return 1
|
return 1
|
||||||
|
@ -82,6 +93,21 @@ is_running () {
|
||||||
kill -0 "$1" 2>/dev/null
|
kill -0 "$1" 2>/dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
put_array() {
|
||||||
|
# The variable named array is a nameref to an array
|
||||||
|
# shellcheck disable=SC2178
|
||||||
|
declare -n array=$1
|
||||||
|
declare -n scalar=ARR_${1^^}
|
||||||
|
local key
|
||||||
|
|
||||||
|
for key in "${!array[@]}"; do
|
||||||
|
scalar+=${#key}:$key${array[$key]}$'\n'
|
||||||
|
done
|
||||||
|
|
||||||
|
scalar=${scalar%$'\n'}
|
||||||
|
export "ARR_${1^^}"
|
||||||
|
}
|
||||||
|
|
||||||
random() {
|
random() {
|
||||||
local min=$1 max=$2
|
local min=$1 max=$2
|
||||||
printf %d "$(( (RANDOM % max) + min ))"
|
printf %d "$(( (RANDOM % max) + min ))"
|
||||||
|
@ -473,10 +499,10 @@ on_sys_first_003_welcome() {
|
||||||
|
|
||||||
on_sys_init_999_welcome() {
|
on_sys_init_999_welcome() {
|
||||||
get_option chan ""
|
get_option chan ""
|
||||||
|
declare -gA isupport
|
||||||
}
|
}
|
||||||
|
|
||||||
on_msg_005_welcome() {
|
on_msg_005_welcome() {
|
||||||
declare -gA isupport
|
|
||||||
local param key value
|
local param key value
|
||||||
|
|
||||||
for param in "${msg_args[@]:1:${#msg_args[@]}-2}"; do
|
for param in "${msg_args[@]:1:${#msg_args[@]}-2}"; do
|
||||||
|
@ -491,6 +517,14 @@ on_msg_005_welcome() {
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
on_sys_before_001_welcome() {
|
||||||
|
put_array isupport
|
||||||
|
}
|
||||||
|
|
||||||
|
on_sys_after_999_welcome() {
|
||||||
|
get_array isupport
|
||||||
|
}
|
||||||
|
|
||||||
on_sys_register_999_welcome() {
|
on_sys_register_999_welcome() {
|
||||||
if [[ ${config[chan]} ]]; then
|
if [[ ${config[chan]} ]]; then
|
||||||
irc_join "${config[chan]}"
|
irc_join "${config[chan]}"
|
||||||
|
|
Loading…
Reference in a new issue