package Ġgg . scala . part ies . model Ċ Ċ import Ġgg . scala . le mon . L emon Ċ import Ġgg . scala . le mon . handler . Redis Handler Ċ import Ġgg . scala . part ies . service . Party Service Ċ import Ġgg . scala . part ies . stream . Party Message Stream Ċ import Ġgg . scala . store . storage . stor able . I DataStore Object Ċ import Ġgg . scala . store . storage . type . DataStore Storage Type Ċ import Ġnet . evil block . cub ed . util . bukkit . F ancy Message Ċ import Ġjava . util .* Ċ import Ġjava . util . concurrent . Comp letableFuture Ċ Ċ /** Ċ Ġ* Ġ@ author ĠGrow ly X Ċ Ġ* Ġ@ since Ġ 1 2 / 2 / 2 0 2 1 Ċ Ġ*/ Ċ data Ġclass ĠParty ( ĊĠĠĠ Ġval Ġunique Id : ĠUUID Ġ= ĠUUID . randomUUID (), ĊĠĠĠ Ġvar Ġleader : ĠParty Member Ċ ) Ġ: ĠI DataStore Object Ċ { ĊĠĠĠ Ġoverride Ġval Ġidentifier : ĠUUID ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġunique Id ĊĊĠĠĠ Ġval Ġmembers Ġ= Ġmutable Map Of < UUID , ĠParty Member >() ĊĠĠĠ Ġval Ġsettings Ġ= Ġmutable Map Of < Party Setting , ĠBoolean >() ĊĊĠĠĠ Ġfun ĠsendMessage ( message : ĠF ancy Message ) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ ĠParty Message Stream . push To Stream ( this , Ġmessage ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsave AndUpdate Party (): ĠCompletableFuture < Void > ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠParty Service . service . save ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĠData Store Storage Type . REDIS ĊĠĠĠĠĠĠĠ Ġ). then Run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRedis Handler . build Message ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" party - update ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" unique Id " Ġto Ġunique Id . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). dispatch ( L emon . instance . ban ana ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ