diff --git a/src/main/java/client/Character.java b/src/main/java/client/Character.java index 3bae79a54d..a3c229cb3b 100644 --- a/src/main/java/client/Character.java +++ b/src/main/java/client/Character.java @@ -8796,14 +8796,10 @@ public class Character extends AbstractCharacterObject { } public void sendNote(String to, String msg, byte fame) throws SQLException { - sendNote(to, this.getName(), msg, fame); - } - - public static void sendNote(String to, String from, String msg, byte fame) throws SQLException { try (Connection con = DatabaseConnection.getConnection(); PreparedStatement ps = con.prepareStatement("INSERT INTO notes (`to`, `from`, `message`, `timestamp`, `fame`) VALUES (?, ?, ?, ?, ?)", Statement.RETURN_GENERATED_KEYS)) { ps.setString(1, to); - ps.setString(2, from); + ps.setString(2, this.getName()); ps.setString(3, msg); ps.setLong(4, Server.getInstance().getCurrentTime()); ps.setByte(5, fame); diff --git a/src/main/java/client/processor/npc/FredrickProcessor.java b/src/main/java/client/processor/npc/FredrickProcessor.java index 36efe492de..e6beb8b649 100644 --- a/src/main/java/client/processor/npc/FredrickProcessor.java +++ b/src/main/java/client/processor/npc/FredrickProcessor.java @@ -30,6 +30,9 @@ import client.inventory.InventoryType; import client.inventory.Item; import client.inventory.ItemFactory; import client.inventory.manipulator.InventoryManipulator; +import database.DaoException; +import database.NoteDao; +import model.Note; import net.server.Server; import net.server.world.World; import org.slf4j.Logger; @@ -241,7 +244,7 @@ public class FredrickProcessor { ps.addBatch(); String msg = fredrickReminderMessage(cid.getRight() - 1); - Character.sendNote(cid.getLeft().getRight(), "FREDRICK", msg, (byte) 0); + saveFredrickReminderNote(msg, cid.getLeft().getRight()); } ps.executeBatch(); @@ -252,6 +255,15 @@ public class FredrickProcessor { } } + private static void saveFredrickReminderNote(String message, String to) { + Note reminderNote = Note.createNormal(message, "FREDRICK", to, Server.getInstance().getCurrentTime()); + try { + NoteDao.save(reminderNote); + } catch (DaoException e) { + log.error("Failed to save Fredrick reminder note", e); + } + } + private static boolean deleteFredrickItems(int cid) { try (Connection con = DatabaseConnection.getConnection(); PreparedStatement ps = con.prepareStatement("DELETE FROM `inventoryitems` WHERE `type` = ? AND `characterid` = ?")) { diff --git a/src/main/java/net/server/guild/Guild.java b/src/main/java/net/server/guild/Guild.java index 2f8ed78034..daf145e00e 100644 --- a/src/main/java/net/server/guild/Guild.java +++ b/src/main/java/net/server/guild/Guild.java @@ -24,6 +24,9 @@ package net.server.guild; import client.Character; import client.Client; import config.YamlConfig; +import database.DaoException; +import database.NoteDao; +import model.Note; import net.packet.Packet; import net.server.PlayerStorage; import net.server.Server; @@ -512,16 +515,7 @@ public class Guild { if (mgc.isOnline()) { Server.getInstance().getWorld(mgc.getWorld()).setGuildAndRank(cid, 0, 5); } else { - try (Connection con = DatabaseConnection.getConnection(); - PreparedStatement ps = con.prepareStatement("INSERT INTO notes (`to`, `from`, `message`, `timestamp`) VALUES (?, ?, ?, ?)")) { - ps.setString(1, mgc.getName()); - ps.setString(2, initiator.getName()); - ps.setString(3, "You have been expelled from the guild."); - ps.setLong(4, System.currentTimeMillis()); - ps.executeUpdate(); - } catch (SQLException e) { - log.error("expelMember - Guild", e); - } + sendExpelledNote(initiator.getName(), mgc.getName()); Server.getInstance().getWorld(mgc.getWorld()).setOfflineGuildStatus((short) 0, (byte) 5, cid); } } catch (Exception re) { @@ -537,6 +531,16 @@ public class Guild { } } + private void sendExpelledNote(String expelledBy, String expelledChr) { + Note expelledNote = Note.createNormal("You have been expelled from the guild.", expelledBy, expelledChr, + System.currentTimeMillis()); + try { + NoteDao.save(expelledNote); + } catch (DaoException e) { + log.error("Failed to save guild expel note - {} expelled from {} by {}", expelledChr, name, expelledBy, e); + } + } + public void changeRank(int cid, int newRank) { membersLock.lock(); try {