package Ġme . me li jn . me lij nb ot . database . ban Ċ Ċ import Ġme . me li jn . me lij nb ot . database . Dao Ċ import Ġme . me li jn . me lij nb ot . database . Driver Manager Ċ import Ġme . me li jn . me lij nb ot . internals . utils . StringUtils . to Base 6 4 Ċ import Ġkotlin . coroutines . resume Ċ import Ġkotlin . coroutines . suspend Coroutine Ċ Ċ class ĠSoft Ban Dao ( driver Manager : ĠDriver Manager ) Ġ: ĠDao ( driver Manager ) Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġtable : ĠString Ġ= Ġ" soft B ans " ĊĠĠĠ Ġoverride Ġval Ġtable Structure : ĠString Ġ= Ġ" soft Ban Id Ġvarchar ( 1 6 ), Ġ" Ġ+ ĊĠĠĠĠĠĠĠ Ġ" guild Id Ġbigint , Ġsoft B anned Id Ġbigint , Ġsoft Ban Author Id Ġbigint , Ġreason Ġvarchar ( 2 0 4 8 ), Ġmoment Ġbigint " ĊĠĠĠ Ġoverride Ġval Ġprimary Key : ĠString Ġ= Ġ" soft Ban Id " ĊĠĠĠ Ġoverride Ġval Ġunique Key : ĠString Ġ= Ġ" guild Id , Ġsoft B anned Id , Ġmoment " ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġdriver Manager . register Table ( table , Ġtable Structure , Ġprimary Key , Ġunique Key ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġadd Soft Ban ( ban : ĠSoft Ban ) Ġ{ ĊĠĠĠĠĠĠĠ Ġban . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdriver Manager . executeUpdate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" INSERT ĠINTO Ġ$ table Ġ( soft Ban Id , Ġguild Id , Ġsoft B anned Id , Ġsoft Ban Author Id , Ġreason , Ġmoment ) ĠVALUES Ġ( ?, Ġ?, Ġ?, Ġ?, Ġ?, Ġ? )" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠON ĠCON FLI CT Ġ($ primaryKey ) ĠDO ĠNOT H ING ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsoft Ban Id , Ġguild Id , Ġsoft B anned Id , Ġsoft Ban Author Id , Ġreason , Ġmoment ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġget Soft B ans ( guild Id : ĠLong , Ġb anned Id : ĠLong ): ĠList < Soft Ban > Ġ= Ġsuspend Coroutine Ġ{ ĊĠĠĠĠĠĠĠ Ġdriver Manager . executeQuery ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" SELECT Ġ* ĠFROM Ġ$ table ĠWHERE Ġguild Id Ġ= Ġ? ĠAND Ġsoft B anned Id Ġ= Ġ?", Ġ{ Ġrs Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsoft B ans Ġ= ĠArrayList < Soft Ban >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( rs . next ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsoft B ans . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSoft Ban ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġguild Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb anned Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrs . getLong (" soft Ban Author Id "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrs . getString (" reason "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrs . getLong (" moment "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrs . getString (" soft Ban Id ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . resume ( soft B ans ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġguild Id , Ġb anned Id ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġget Soft B ans ( soft ban Id : ĠString ): ĠList < Soft Ban > Ġ= Ġsuspend Coroutine Ġ{ ĊĠĠĠĠĠĠĠ Ġdriver Manager . executeQuery ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" SELECT Ġ* ĠFROM Ġ$ table ĠWHERE Ġsoft Ban Id Ġ= Ġ?", Ġ{ Ġrs Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsoft B ans Ġ= ĠArrayList < Soft Ban >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( rs . next ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsoft B ans . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSoft Ban ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrs . getLong (" guild Id "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrs . getLong (" soft B anned Id "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrs . getLong (" soft Ban Author Id "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrs . getString (" reason "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrs . getLong (" moment "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsoft ban Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . resume ( soft B ans ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġsoft ban Id ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġclear ( guild Id : ĠLong , Ġsoft b anned Id : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdriver Manager . executeUpdate ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" DELETE ĠFROM Ġ$ table ĠWHERE Ġguild Id Ġ= Ġ? ĠAND Ġsoft B anned Id Ġ= Ġ?", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġguild Id , Ġsoft b anned Id ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġremove ( soft Ban : ĠSoft Ban ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdriver Manager . executeUpdate ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" DELETE ĠFROM Ġ$ table ĠWHERE Ġguild Id Ġ= Ġ? ĠAND Ġsoft B anned Id Ġ= Ġ? ĠAND Ġsoft Ban Id Ġ= Ġ?", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsoft Ban . guild Id , Ġsoft Ban . soft B anned Id , Ġsoft Ban . soft Ban Id ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠSoft Ban ( ĊĠĠĠ Ġvar Ġguild Id : ĠLong , ĊĠĠĠ Ġvar Ġsoft B anned Id : ĠLong , ĊĠĠĠ Ġvar Ġsoft Ban Author Id : ĠLong , ĊĠĠĠ Ġvar Ġreason : ĠString Ġ= Ġ"/", ĊĠĠĠ Ġvar Ġmoment : ĠLong Ġ= ĠSystem . currentTimeMillis (), ĊĠĠĠ Ġval Ġsoft Ban Id : ĠString Ġ= ĠSystem . nano Time (). to Base 6 4 () Ċ )