private void sendRewardMail(Player receiver)
{
Mail mail = new Mail();
mail.setSenderId(receiver.getObjectId());
mail.setSenderName(receiver.getName());
mail.setReceiverId(receiver.getObjectId());
mail.setReceiverName(receiver.getName());
mail.setTopic("SOME_HEADLINE");
mail.setBody("SOME_MESSAGE");
mail.setPrice(0L);
mail.setUnread(true);
mail.setType(Mail.SenderType.NEWS_INFORMER);
mail.setExpireTime((int) (TimeUnit.DAYS.toSeconds(365) + (System.currentTimeMillis() / 1000L)));
mail.setSystemTopic(SystemMsg.SOME_SYSTEM_MESSAGE); //change to something else
mail.setSystemBody(SystemMsg.SOME_SYSTEM_MESSAGE); //change to something else
ItemInstance rewardItem = ItemFunctions.createItem(ItemTemplate.ITEM_ID_ADENA); // change to whatever you need. this example is for adena
Objects.requireNonNull(rewardItem);
rewardItem.setOwnerId(receiver.getObjectId());
rewardItem.setCount(5_000_000); // amount of the rewardItem
rewardItem.setLocation(ItemInstance.ItemLocation.MAIL);
rewardItem.setJdbcState(JdbcEntityState.UPDATED);
rewardItem.update();
mail.addAttachment(rewardItem);
mail.save();
receiver.sendPacket(ExNoticePostArrived.STATIC_TRUE);
receiver.sendPacket(new ExUnReadMailCount(receiver));
receiver.sendPacket(SystemMsg.THE_MAIL_HAS_ARRIVED);
}