Fixed Guild Alliances + minor Guild rework

All Guild Alliances system is now functional. Tweaked guilds in order to
sync MapleGuildCharacter objects that were supposed to be the same when
being accessed from both MapleGuild and MapleCharacter classes.
This commit is contained in:
ronancpl
2017-05-26 01:21:54 -03:00
parent a636f63114
commit 702c69897b
16 changed files with 260 additions and 127 deletions
+25 -6
View File
@@ -180,6 +180,10 @@ public class MapleGuild {
public int getLeaderId() {
return leader;
}
public int setLeaderId(int charId) {
return leader = charId;
}
public int getGP() {
return gp;
@@ -283,15 +287,20 @@ public class MapleGuild {
}
}
public void dropGuildMessage(String message) {
dropGuildMessage(5, message);
public void dropMessage(String message) {
dropMessage(5, message);
}
public void dropGuildMessage(int type, String message) {
public void dropMessage(int type, String message) {
for (MapleGuildCharacter mgc : members) {
mgc.getCharacter().dropMessage(type, message);
if(mgc.getCharacter() != null)
mgc.getCharacter().dropMessage(type, message);
}
}
public void broadcastMessage(byte[] packet) {
Server.getInstance().guildMessage(id, packet);
}
public final void setOnline(int cid, boolean online, int channel) {
boolean bBroadcast = true;
@@ -332,20 +341,30 @@ public class MapleGuild {
}
ps.close();
rs.close();
ps = con.prepareStatement("INSERT INTO guilds (`leader`, `name`, `signature`) VALUES (?, ?, ?)");
ps.setInt(1, leaderId);
ps.setString(2, name);
ps.setInt(3, (int) System.currentTimeMillis());
ps.execute();
ps.close();
ps = con.prepareStatement("SELECT guildid FROM guilds WHERE leader = ?");
ps.setInt(1, leaderId);
rs = ps.executeQuery();
rs.first();
int guildid = rs.getInt("guildid");
int guildId = rs.getInt("guildid");
rs.close();
ps.close();
return guildid;
ps = con.prepareStatement("UPDATE characters SET guildid = ? WHERE id = ?");
ps.setInt(1, guildId);
ps.setInt(2, leaderId);
ps.executeUpdate();
ps.close();
con.close();
return guildId;
} catch (Exception e) {
e.printStackTrace();
return 0;