diff --git a/src/main/java/database/note/NoteDao.java b/src/main/java/database/note/NoteDao.java index d88de2f446..d429aa249f 100644 --- a/src/main/java/database/note/NoteDao.java +++ b/src/main/java/database/note/NoteDao.java @@ -11,7 +11,7 @@ import java.util.Optional; public class NoteDao { - public static void save(Note note) { + public void save(Note note) { try (Handle handle = DatabaseConnection.getHandle()) { handle.createUpdate(""" INSERT INTO notes (`message`, `from`, `to`, `timestamp`, `fame`, `deleted`) diff --git a/src/main/java/net/server/Server.java b/src/main/java/net/server/Server.java index 2b1da16df8..5b854bebcd 100644 --- a/src/main/java/net/server/Server.java +++ b/src/main/java/net/server/Server.java @@ -96,6 +96,7 @@ public class Server { private static final Set activeFly = new HashSet<>(); private static final Map couponRates = new HashMap<>(30); private static final List activeCoupons = new LinkedList<>(); + private static ChannelDependencies channelDependencies; private LoginServer loginServer; private final List> channels = new LinkedList<>(); @@ -843,7 +844,7 @@ public class Server { throw new IllegalStateException("Failed to initiate a connection to the database"); } - ChannelDependencies channelDependencies = registerChannelDependencies(); + channelDependencies = registerChannelDependencies(); final ExecutorService initExecutor = Executors.newFixedThreadPool(10); // Run slow operations asynchronously to make startup faster @@ -1181,7 +1182,7 @@ public class Server { public void expelMember(GuildCharacter initiator, String name, int cid) { Guild g = guilds.get(initiator.getGuildId()); if (g != null) { - g.expelMember(initiator, name, cid); + g.expelMember(initiator, name, cid, channelDependencies.noteService()); } } diff --git a/src/main/java/net/server/guild/Guild.java b/src/main/java/net/server/guild/Guild.java index b9ea426923..a68f00e89d 100644 --- a/src/main/java/net/server/guild/Guild.java +++ b/src/main/java/net/server/guild/Guild.java @@ -24,9 +24,6 @@ package net.server.guild; import client.Character; import client.Client; import config.YamlConfig; -import database.DaoException; -import database.note.NoteDao; -import model.Note; import net.packet.Packet; import net.server.PlayerStorage; import net.server.Server; @@ -37,6 +34,7 @@ import net.server.coordinator.world.InviteCoordinator.InviteResult; import net.server.coordinator.world.InviteCoordinator.InviteType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import service.NoteService; import tools.DatabaseConnection; import tools.PacketCreator; @@ -500,7 +498,7 @@ public class Guild { } } - public void expelMember(GuildCharacter initiator, String name, int cid) { + public void expelMember(GuildCharacter initiator, String name, int cid, NoteService noteService) { membersLock.lock(); try { java.util.Iterator itr = members.iterator(); @@ -515,7 +513,7 @@ public class Guild { if (mgc.isOnline()) { Server.getInstance().getWorld(mgc.getWorld()).setGuildAndRank(cid, 0, 5); } else { - sendExpelledNote(initiator.getName(), mgc.getName()); + noteService.sendNormal("You have been expelled from the guild.", initiator.getName(), mgc.getName()); Server.getInstance().getWorld(mgc.getWorld()).setOfflineGuildStatus((short) 0, (byte) 5, cid); } } catch (Exception re) { @@ -531,16 +529,6 @@ 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 { diff --git a/src/main/java/service/NoteService.java b/src/main/java/service/NoteService.java index 20d2e1e4db..c7ee334403 100644 --- a/src/main/java/service/NoteService.java +++ b/src/main/java/service/NoteService.java @@ -44,7 +44,7 @@ public class NoteService { private boolean send(Note note) { try { - NoteDao.save(note); + noteDao.save(note); return true; } catch (DaoException e) { log.error("Failed to send note {}", note, e);