55import com .google .gson .JsonObject ;
66import com .palmergames .bukkit .towny .TownyAPI ;
77import com .palmergames .bukkit .towny .TownyEconomyHandler ;
8+ import com .palmergames .bukkit .towny .object .Resident ;
89import com .palmergames .bukkit .towny .object .Town ;
910import com .palmergames .bukkit .towny .object .TownBlock ;
1011import com .palmergames .bukkit .towny .permissions .TownyPerms ;
1314import net .earthmc .emcapi .integration .Integrations ;
1415import net .earthmc .emcapi .integration .QuartersIntegration ;
1516import net .earthmc .emcapi .integration .WarpsIntegration ;
17+ import net .earthmc .emcapi .manager .KeyManager ;
1618import net .earthmc .emcapi .manager .TownMetadataManager ;
1719import net .earthmc .emcapi .object .endpoint .PostEndpoint ;
1820import net .earthmc .emcapi .util .EndpointUtils ;
@@ -125,6 +127,7 @@ public JsonElement getJsonElement(Town town, @Nullable String key) {
125127 townObject .add ("ranks" , ranksObject );
126128
127129 townObject .add ("warps" , getWarpsObject (town ));
130+ townObject .add ("bankhistory" , getBankHistory (town , key ));
128131
129132 return townObject ;
130133 }
@@ -142,4 +145,21 @@ private JsonArray getWarpsObject(Town town) {
142145
143146 return json ;
144147 }
148+
149+ private JsonArray getBankHistory (Town town , @ Nullable String key ) {
150+ JsonArray empty = new JsonArray ();
151+ if (!TownyEconomyHandler .isActive ()) {
152+ return empty ;
153+ }
154+ UUID keyOwner = KeyManager .getKeyOwner (key );
155+ if (keyOwner == null ) {
156+ return empty ;
157+ }
158+ Resident res = TownyAPI .getInstance ().getResident (keyOwner );
159+ if (res == null || !town .equals (res .getTownOrNull ()) || !(town .isMayor (res ) || res .hasTownRank ("Councillor" ) || res .hasTownRank ("Treasurer" ))) {
160+ return empty ;
161+ }
162+
163+ return EndpointUtils .getBankHistoryArray (town );
164+ }
145165}
0 commit comments