/* Ċ Ġ* ĠR RR RR R ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj jj Ċ Ġ* ĠRR ĠĠ ĠRR ĠĠ Ġe ee ĠĠĠ Ġe ee ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpp Ġpp Ċ Ġ* ĠR RR RR R Ġ Ġee ĠĠ Ġe Ġee ĠĠ Ġe Ġ__ ___ ĠĠĠ Ġj jj Ġp pp Ġ Ġpp Ċ Ġ* ĠRR Ġ ĠRR Ġ Ġe eeee Ġ Ġe eeee ĠĠĠĠĠĠĠĠĠĠ Ġj jj Ġp pp pp p Ċ Ġ* ĠRR ĠĠ ĠRR Ġ Ġe eeee Ġ Ġe eeee ĠĠĠĠĠĠĠĠĠ Ġj jj Ġpp Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj jj j Ġ Ġpp Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 . ĠRe e - jp . Ġ ĠAll ĠRights ĠReserved . Ċ Ġ*/ Ċ Ċ package Ġnet . ree _ jp . ree f se ichi . system . protect . api Ċ Ċ import Ġcn . n uk kit . level . Position Ċ import Ġnet . ree _ jp . ree f se ichi . system . protect . Re ef Protect Ċ import Ġnet . ree _ jp . ree f se ichi . system . protect . data . Land Data Ċ Ċ class ĠProt ect API Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠL AND _ PRICE Ġ= Ġ 1 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġstart Ġ= Ġmutable Map Of < String , ĠPosition >() ĊĠĠĠ Ġval Ġend Ġ= Ġmutable Map Of < String , ĠPosition >() ĊĊĠĠĠ Ġfun Ġexists Protect ( pos : ĠPosition ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhelper Ġ= ĠRe ef Protect . getInstance (). get Helper () ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( land Ġin Ġhelper . getAll ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( land . is Vector Inside ( pos ) Ġ&& Ġland . get Level (). folder Name Ġ== Ġpos . level . folder Name ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Protect ( x uid : ĠString , Ġpos : ĠPosition ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhelper Ġ= ĠRe ef Protect . getInstance (). get Helper () ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( land Ġin Ġhelper . getAll ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( land . is Vector Inside ( pos ) Ġ&& Ġland . get Level (). folder Name Ġ== Ġpos . level . folder Name Ġ&& Ġ! land . is Member ( x uid )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Land ( pos : ĠPosition ): ĠLand Data Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhelper Ġ= ĠRe ef Protect . getInstance (). get Helper () ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( land Ġin Ġhelper . getAll ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( land . is Vector Inside ( pos ) Ġ&& Ġland . get Level (). folder Name Ġ== Ġpos . level . folder Name ) Ġreturn Ġland ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthrow ĠException (" åľŁ åľ° ãģĮ è¦ĭ ãģ¤ ãģĭ ãĤĬ ãģ¾ãģĽãĤĵ ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Protect ( buy Land : ĠLand Data ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhelper Ġ= ĠRe ef Protect . getInstance (). get Helper () ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( land Ġin Ġhelper . getAll ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( land . intersect sWith ( buy Land )) Ġthrow ĠException (" åľŁ åľ° ãģĮ ãģĭ ãģ ¶ ãģ£ ãģ¦ãģĦãģ¾ãģĻ ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġhelper . set Land ( buy Land . getOwner (), Ġbuy Land . id , Ġbuy Land ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Member ( x uid : ĠString , Ġid : ĠString , Ġmember : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhelper Ġ= ĠRe ef Protect . getInstance (). get Helper () ĊĊĠĠĠĠĠĠĠ Ġval Ġland Ġ= Ġhelper . get Land ( x uid , Ġid ) ĊĠĠĠĠĠĠĠ Ġval Ġmembers Ġ= Ġland . sub User ĊĠĠĠĠĠĠĠ Ġif Ġ( members . contains ( member )) Ġthrow ĠException (" ãģĻ ãģ§ ãģ« è¿½åĬł ãģķãĤĮ ãģ¦ãģĦãģ¾ãģĻ ") ĊĠĠĠĠĠĠĠ Ġval Ġmutable Members Ġ= Ġmembers . to Mutable List () ĊĠĠĠĠĠĠĠ Ġmutable Members . add ( member ) ĊĠĠĠĠĠĠĠ Ġland . sub User Ġ= Ġmutable Members ĊĠĠĠĠĠĠĠ Ġhelper . set Land ( x uid , Ġid , Ġland ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġremove Member ( x uid : ĠString , Ġid : ĠString , Ġmember : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhelper Ġ= ĠRe ef Protect . getInstance (). get Helper () ĊĊĠĠĠĠĠĠĠ Ġval Ġland Ġ= Ġhelper . get Land ( x uid , Ġid ) ĊĠĠĠĠĠĠĠ Ġval Ġmembers Ġ= Ġland . sub User ĊĠĠĠĠĠĠĠ Ġif Ġ(! members . contains ( member )) Ġthrow ĠException (" ãģ¾ ãģł è¿½åĬł ãģķãĤĮ ãģ¦ãģĦ ãģ¾ãģĽãĤĵ ") ĊĠĠĠĠĠĠĠ Ġval Ġmutable Members Ġ= Ġmembers . to Mutable List () ĊĠĠĠĠĠĠĠ Ġmutable Members . remove ( member ) ĊĠĠĠĠĠĠĠ Ġland . sub User Ġ= Ġmutable Members ĊĠĠĠĠĠĠĠ Ġhelper . set Land ( x uid , Ġid , Ġland ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Count ( land : ĠLand Data ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ(( land . max X Ġ- Ġland . min X ). toInt () Ġ+ Ġ 1 ) Ġ* Ġ(( land . max Z Ġ- Ġland . min Z ). toInt () Ġ+ Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Get Point ( x uid : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġstart . contains ( x uid ) Ġ&& Ġend . contains ( x uid ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis Can Buy ( x uid : ĠString , Ġland : ĠLand Data ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ċ }