diff --git a/src/client/MapleCharacter.java b/src/client/MapleCharacter.java index 1c077d6024..100c2eb355 100644 --- a/src/client/MapleCharacter.java +++ b/src/client/MapleCharacter.java @@ -6605,6 +6605,9 @@ public class MapleCharacter extends AbstractMapleCharacterObject { } //ret.events = new MapleEvents(new RescueGaga(rs.getInt("rescuegaga")), new ArtifactHunt(rs.getInt("artifacthunt"))); } + if (!ret.events.containsKey("rescueGaga")) { + ret.events.put("rescueGaga", new RescueGaga(0)); + } rs.close(); ps.close(); ret.cashshop = new CashShop(ret.accountid, ret.id, ret.getJobType()); @@ -7945,6 +7948,17 @@ public class MapleCharacter extends AbstractMapleCharacterObject { ps.close(); deleteWhereCharacterId(con, "DELETE FROM eventstats WHERE characterid = ?"); + ps = con.prepareStatement("INSERT INTO eventstats (characterid, name, info) VALUES (?, ?, ?)"); + ps.setInt(1, id); + + for (Map.Entry entry : events.entrySet()) { + ps.setString(2, entry.getKey()); + ps.setInt(3, entry.getValue().getInfo()); + ps.addBatch(); + } + + ps.executeBatch(); + ps.close(); deleteQuestProgressWhereCharacterId(con, id); diff --git a/src/scripting/event/EventInstanceManager.java b/src/scripting/event/EventInstanceManager.java index 10ffc8070c..6c0fb043f7 100644 --- a/src/scripting/event/EventInstanceManager.java +++ b/src/scripting/event/EventInstanceManager.java @@ -699,31 +699,6 @@ public class EventInstanceManager { return name; } - public void saveWinner(MapleCharacter chr) { - String emName; - sL.lock(); - try { - emName = em.getName(); - } finally { - sL.unlock(); - } - - try { - Connection con = DatabaseConnection.getConnection(); - try (PreparedStatement ps = con.prepareStatement("INSERT INTO eventstats (event, instance, characterid, channel) VALUES (?, ?, ?, ?)")) { - ps.setString(1, emName); - ps.setString(2, getName()); - ps.setInt(3, chr.getId()); - ps.setInt(4, chr.getClient().getChannel()); - ps.executeUpdate(); - } - - con.close(); - } catch (SQLException ex) { - ex.printStackTrace(); - } - } - public MapleMap getMapInstance(int mapId) { MapleMap map = mapFactory.getMap(mapId); map.setEventInstance(this); diff --git a/src/server/events/MapleEvents.java b/src/server/events/MapleEvents.java index dd4c262354..a964586f54 100644 --- a/src/server/events/MapleEvents.java +++ b/src/server/events/MapleEvents.java @@ -25,8 +25,10 @@ package server.events; /** * @author kevintjuh93 */ -public class MapleEvents { +public abstract class MapleEvents { public MapleEvents() { } + + public abstract int getInfo(); } \ No newline at end of file diff --git a/src/server/events/RescueGaga.java b/src/server/events/RescueGaga.java index 6c59b202f9..b9dd84b4ab 100644 --- a/src/server/events/RescueGaga.java +++ b/src/server/events/RescueGaga.java @@ -42,6 +42,10 @@ public class RescueGaga extends MapleEvents { public void complete() { completed++; } + + public int getInfo() { + return getCompleted(); + } public void giveSkill(MapleCharacter chr) { int skillid = 0;