#!/usr/bin/tclsh
# ------------------------ 
#Welcome Egg Bot TCL 
#Channel: #jkt 
#Menyapa user dengan kalimat bijak & lucu 
#------------------------ 

#File untuk menyimpan kalimat
set sentence_file "welcome_sentences.txt"

# Jika file tidak ada, buat file default
if {![file exists $sentence_file]} {
    set default_sentences { 
"Selamat datang, semoga harimu menyenangkan!" 
"Halo {nick}, jangan lupa tersenyum hari ini" 
"Wah {nick} join, siap-siap seru-seruan!" 
"Hey {nick}, semoga hari ini penuh kebahagiaan!" 
"Selamat datang {nick}, mari kita bersenang-senang!" 
"Wow {nick} hadir! Siap-siap kejutan lucu!" 
"Salam hangat untuk {nick}, semoga hari ini mantap!" 
"Halo {nick}, semoga sukses dan ceria selalu!" 
"Eh {nick} ada di sini! Yuk mulai keseruan!" 
"Selamat datang {nick}, jangan lupa bahagia!"

}

set fp [open $sentence_file w] 
 puts $fp [join $default_sentences "\n"]
 close $fp
}

# Load kalimat dari file
proc load_sentences {} {
    global sentence_file welcome_sentences
    if {[file exists $sentence_file]} {
        set fp [open $sentence_file r]
        set welcome_sentences [split [read $fp] "\n"]
        close $fp
    } else {
        set welcome_sentences {}
    }
}

#load_sentences
# Simpan kalimat ke file
proc save_sentences {} {
    global sentence_file welcome_sentences
    set fp [open $sentence_file w]
    puts $fp [join $welcome_sentences "\n"]
    close $fp
}

# Pilih kalimat random
proc random_sentence {} {
    global welcome_sentences
    if {[llength $welcome_sentences] == 0} {
        return "Selamat datang!"
    } else {
        set index [expr {int(rand()*[llength $welcome_sentences])}]
        return [lindex $welcome_sentences $index]
    }
}
# Fungsi menyapa user dengan kalimat
proc welcome_user {nick} {
    set sentence [random_sentence]
    # ganti placeholder {nick} dengan nama user
    regsub -all {\{nick\}} $sentence $nick final_sentence
    puts $final_sentence
}

# Fungsi menambahkan kalimat baru lewat command
proc add_sentence {sentence} {
    global welcome_sentences
    lappend welcome_sentences $sentence
    save_sentences
    puts "Kalimat baru berhasil ditambahkan!"
}

# Fungsi menangani command di channel
proc handle_message {channel sender message} {
    if {$channel eq "#indolynx"} {
        if {[string match ":addword *" $message]} {
            set new_sentence [string range $message 9 end]
            add_sentence $new_sentence
        } else {
            puts "[$channel] <$sender> $message"
        }
    }
}

# Fungsi otomatis welcome saat user join
    proc user_join {channel nick} {
    if {$channel eq "#indolynx"} {
        welcome_user $nick
    }
}
