package Ġme . d div ad . judge bot . con versations . guild čĊč Ċ import Ġdev . k ord . core . entity . Guild č Ċ import Ġdev . k ord . core . entity . channel . Text Channel č Ċ import Ġme . d div ad . judge bot . dat acl asses . Configuration č Ċ import Ġme . d div ad . judge bot . embed s . create Config Embed č Ċ import Ġme . d div ad . judge bot . embed s . create Config Options Embed č Ċ import Ġme . j ake j mat t son . discord kt . api . arguments .* č Ċ import Ġme . j ake j mat t son . discord kt . api . con versations . conversation č Ċ import Ġme . j ake j mat t son . discord kt . api . extensions . to Snow flake čĊč Ċ class ĠEdit Config Conversation ( private Ġval Ġconfiguration : ĠConfiguration ) Ġ{ čĊĠĠĠ Ġfun Ġcreate Edit Configuration Conversation ( guild : ĠGuild , Ġparameter : ĠString ) Ġ= Ġconversation (" cancel ") Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġguild Configuration Ġ= Ġconfiguration [ guild . id . value ] !! čĊĠĠĠĠĠĠĠ Ġwhen Ġ( parameter ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" add admin role " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrole Ġ= Ġprompt ( Role Arg , Ġ" Enter ĠAdmin Ġrole :") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġguild Configuration . admin Roles . add ( role . id . asString ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrespond (" Added Ġ** ${ role . name }** Ġto ĠAdmin Ġroles .") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" add staff role " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrole Ġ= Ġprompt ( Role Arg , Ġ" Enter ĠStaff Ġrole :") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġguild Configuration . staff Roles . add ( role . id . asString ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrespond (" Added Ġ** ${ role . name }** Ġto ĠStaff Ġroles .") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" add mod erator role " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrole Ġ= Ġprompt ( Role Arg , Ġ" Enter ĠMod erator Ġrole :") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġguild Configuration . mod erator Roles . add ( role . id . asString ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrespond (" Added Ġ** ${ role . name }** Ġto Ġmod erator Ġroles .") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" remove admin role " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrespond (" Current Ġroles Ġare : Ġ${ guild Configuration . admin Roles . map Ġ{ Ġ"** ${ guild . get Role OrNull ( it . to Snow flake ()) ?. name }** " Ġ}} ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrole Ġ= Ġprompt Until ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRole Arg , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Enter Ġrole Ġto Ġremove :", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Role Ġnot Ġin ĠAdmin Ġrole Ġlist .", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠisValid Ġ= Ġ{ role Ġ-> Ġguild Configuration . admin Roles . contains ( role . id . asString ) Ġ}) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġguild Configuration . admin Roles . remove If Ġ{ it Ġ== Ġrole . id . asString } čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrespond (" Removed Ġ** ${ role . name }** Ġfrom ĠAdmin Ġroles .") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" re mov est aff role " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrespond (" Current Ġroles Ġare : Ġ${ guild Configuration . staff Roles . map Ġ{ Ġ"** ${ guild . get Role OrNull ( it . to Snow flake ()) ?. name }** " Ġ}} ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrole Ġ= Ġprompt Until ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRole Arg , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Enter Ġrole Ġto Ġremove :", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Role Ġnot Ġin ĠStaff Ġrole Ġlist .", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠisValid Ġ= Ġ{ role Ġ-> Ġguild Configuration . staff Roles . contains ( role . id . asString ) Ġ}) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġguild Configuration . staff Roles . remove If Ġ{ it Ġ== Ġrole . id . asString } čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrespond (" Removed Ġ** ${ role . name }** Ġfrom ĠStaff Ġroles .") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" re mov em od erator role " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrespond (" Current Ġroles Ġare : Ġ${ Ġguild Configuration . mod erator Roles . map Ġ{ Ġ"** ${ guild . get Role OrNull ( it . to Snow flake ()) ?. name }** " Ġ}} ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrole Ġ= Ġprompt Until ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRole Arg , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Enter Ġrole Ġto Ġremove :", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Role Ġnot Ġin ĠMod erator Ġrole Ġlist .", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠisValid Ġ= Ġ{ role Ġ-> Ġguild Configuration . mod erator Roles . contains ( role . id . asString ) Ġ}) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġguild Configuration . mod erator Roles . remove If Ġ{ it Ġ== Ġrole . id . asString } čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrespond (" Removed Ġ** ${ role . name }** Ġfrom ĠMod erator Ġroles .") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" set muted role " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmut ed Role Ġ= Ġprompt ( Role Arg , Ġ" Enter ĠM ute Ġrole :") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġguild Configuration . muted Role Ġ= Ġmut ed Role . id . asString čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrespond (" Mut ed Ġrole Ġset Ġto Ġ** ${ muted Role . name } **. ") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" set log channel " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlog Channel Ġ= Ġprompt ( Channel Arg < Text Channel >(), Ġ" Enter ĠLogging Ġchannel :") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġguild Configuration . logging Configuration . logging Channel Ġ= Ġlog Channel . id . asString čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrespond (" Log Ġchannel Ġset Ġto Ġ${ log Channel . mention }") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" set alert channel " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalert Channel Ġ= Ġprompt ( Channel Arg < Text Channel >(), Ġ" Enter ĠLogging Ġchannel :") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġguild Configuration . logging Configuration . alert Channel Ġ= Ġalert Channel . id . asString čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrespond (" Alert Ġchannel Ġset Ġto Ġ${ alert Channel . mention }") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" set prefix " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprefix Ġ= Ġprompt ( Every Arg , Ġ" Enter ĠPrefix :") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġguild Configuration . prefix Ġ= Ġprefix čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrespond (" Prefix Ġset Ġto Ġ** ${ prefix }** ") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" set g ag reaction " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreaction Ġ= Ġprompt ( Unicode Emoji Arg , Ġ" Enter ĠRe action :") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġguild Configuration . reactions . g ag Reaction Ġ= Ġreaction . unicode čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrespond (" Reaction Ġset Ġto Ġ${ reaction . unicode }") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" se th istory reaction " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreaction Ġ= Ġprompt ( Unicode Emoji Arg , Ġ" Enter ĠRe action :") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġguild Configuration . reactions . history Reaction Ġ= Ġreaction . unicode čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrespond (" Reaction Ġset Ġto Ġ${ reaction . unicode }") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" set delete mess ag ere action " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreaction Ġ= Ġprompt ( Unicode Emoji Arg , Ġ" Enter ĠRe action :") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġguild Configuration . reactions . delete Message Reaction Ġ= Ġreaction . unicode čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrespond (" Reaction Ġset Ġto Ġ${ reaction . unicode }") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" set flag mess ag ere action " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreaction Ġ= Ġprompt ( Unicode Emoji Arg , Ġ" Enter ĠRe action :") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġguild Configuration . reactions . flag Message Reaction Ġ= Ġreaction . unicode čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrespond (" Reaction Ġset Ġto Ġ${ reaction . unicode }") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" en abl ere actions " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġenabled Ġ= Ġprompt ( Boolean Arg (" rea actions ", Ġ" enable ", Ġ" disable "), Ġ" enable Ġ/ Ġdisable :") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġguild Configuration . reactions . enabled Ġ= Ġenabled čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrespond (" Re actions Ġset Ġto Ġ$ enabled ") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" view ", Ġ" list " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrespond Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Config Embed ( guild Configuration , Ġguild ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" options " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrespond Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Config Options Embed ( guild Configuration , Ġguild ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrespond (" Configuration Ġvalue Ġnot Ġsupported .") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ conversation čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġconfiguration . save () čĊĠĠĠ Ġ} č Ċ }