From a0cd4df053e1af0699ccfd0f17ebab3b3dd4fe6e Mon Sep 17 00:00:00 2001 From: Light2 Date: Sat, 14 Jun 2014 20:24:06 +0200 Subject: [PATCH] Making a treasury deposit will now inform the mayor of the depositor name and amount by mail. --- .../terminal/city_maintenance_terminal.py | 1 + src/services/playercities/PlayerCity.java | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/scripts/radial/terminal/city_maintenance_terminal.py b/scripts/radial/terminal/city_maintenance_terminal.py index 15127db5..70562682 100644 --- a/scripts/radial/terminal/city_maintenance_terminal.py +++ b/scripts/radial/terminal/city_maintenance_terminal.py @@ -300,6 +300,7 @@ def handleDepositSUI(owner, window, eventType, returnList): playerCity.addToTreasury(deposit) owner.deductCashCredits(deposit) owner.sendSystemMessage(OutOfBand.ProsePackage('@city/city:deposit_treasury', deposit), 0) + playerCity.sendTreasuryDepositMail(owner, deposit) return def handleToggleZoning(core, owner, target, option): diff --git a/src/services/playercities/PlayerCity.java b/src/services/playercities/PlayerCity.java index 6accb583..5a3f6528 100644 --- a/src/services/playercities/PlayerCity.java +++ b/src/services/playercities/PlayerCity.java @@ -1236,6 +1236,25 @@ public class PlayerCity implements Serializable { } + public void sendTreasuryDepositMail(CreatureObject actor, int amount) { + NGECore core = NGECore.getInstance(); + CreatureObject mayor = core.objectService.getObject(getMayorID()) == null ? core.objectService.getCreatureFromDB(getMayorID()) : (CreatureObject) core.objectService.getObject(getMayorID()); + if(mayor == null) + return; + Mail mail = new Mail(); + mail.setMailId(NGECore.getInstance().chatService.generateMailId()); + mail.setRecieverId(getMayorID()); + mail.setStatus(Mail.NEW); + mail.setTimeStamp((int) (new Date().getTime() / 1000)); + mail.setSubject("@city/city:treasury_deposit_subject"); + mail.setSenderName("@city/city:treasury_deposit_from"); + mail.addProseAttachment(new ProsePackage("@city/city:treasury_deposit_body", "TO", actor.getCustomName(), amount)); + + core.chatService.storePersistentMessage(mail); + if(mayor.getClient() != null) + core.chatService.sendPersistentMessageHeader(mayor.getClient(), mail); + } + public boolean isCitizen(long citizenId) { return getCitizens().contains(citizenId); }