Server broadcastMessage to worlds & MapleQuestItemFetcher update
Fixed a bug with the map drop mechanics sometimes permitting over the max drop count in certain circumstances. Fixed server broadcastMessage always broadcasting packets at world 0, even if the caller is from another world id. Improved the MapleQuestItemFetcher, now displaying expired quests alongside the reported info.
This commit is contained in:
@@ -688,20 +688,20 @@ public class Server implements Runnable {
|
||||
worlda.reloadGuildSummary();
|
||||
}
|
||||
|
||||
public void broadcastMessage(final byte[] packet) {
|
||||
for (Channel ch : getChannelsFromWorld(0)) {
|
||||
public void broadcastMessage(int world, final byte[] packet) {
|
||||
for (Channel ch : getChannelsFromWorld(world)) {
|
||||
ch.broadcastPacket(packet);
|
||||
}
|
||||
}
|
||||
|
||||
public void broadcastGMMessage(final byte[] packet) {
|
||||
for (Channel ch : getChannelsFromWorld(0)) {
|
||||
public void broadcastGMMessage(int world, final byte[] packet) {
|
||||
for (Channel ch : getChannelsFromWorld(world)) {
|
||||
ch.broadcastGMPacket(packet);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isGmOnline() {
|
||||
for (Channel ch : getChannelsFromWorld(0)) {
|
||||
public boolean isGmOnline(int world) {
|
||||
for (Channel ch : getChannelsFromWorld(world)) {
|
||||
for (MapleCharacter player : ch.getPlayerStorage().getAllCharacters()) {
|
||||
if (player.isGM()){
|
||||
return true;
|
||||
|
||||
@@ -67,7 +67,7 @@ public final class ItemRewardHandler extends AbstractMaplePacketHandler {
|
||||
String msg = reward.worldmsg;
|
||||
msg.replaceAll("/name", c.getPlayer().getName());
|
||||
msg.replaceAll("/item", ii.getName(reward.itemid));
|
||||
Server.getInstance().broadcastMessage(MaplePacketCreator.serverNotice(6, msg));
|
||||
Server.getInstance().broadcastMessage(c.getWorld(), MaplePacketCreator.serverNotice(6, msg));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -281,7 +281,7 @@ public final class PlayerLoggedinHandler extends AbstractMaplePacketHandler {
|
||||
}
|
||||
*/
|
||||
if (player.isGM()){
|
||||
Server.getInstance().broadcastGMMessage(MaplePacketCreator.earnTitleMessage((player.gmLevel() < 6 ? "GM " : "Admin ") + player.getName() + " has logged in"));
|
||||
Server.getInstance().broadcastGMMessage(c.getWorld(), MaplePacketCreator.earnTitleMessage((player.gmLevel() < 6 ? "GM " : "Admin ") + player.getName() + " has logged in"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ public final class ReportHandler extends AbstractMaplePacketHandler {
|
||||
c.announce(MaplePacketCreator.reportResponse((byte) 2));
|
||||
return;
|
||||
}
|
||||
Server.getInstance().broadcastGMMessage(MaplePacketCreator.serverNotice(6, victim + " was reported for: " + description));
|
||||
Server.getInstance().broadcastGMMessage(c.getWorld(), MaplePacketCreator.serverNotice(6, victim + " was reported for: " + description));
|
||||
addReport(c.getPlayer().getId(), MapleCharacter.getIdByName(victim), 0, description, null);
|
||||
} else if (type == 1) {
|
||||
String chatlog = slea.readMapleAsciiString();
|
||||
@@ -74,10 +74,10 @@ public final class ReportHandler extends AbstractMaplePacketHandler {
|
||||
return;
|
||||
}
|
||||
}
|
||||
Server.getInstance().broadcastGMMessage(MaplePacketCreator.serverNotice(6, victim + " was reported for: " + description));
|
||||
addReport(c.getPlayer().getId() ,MapleCharacter.getIdByName(victim), reason, description, chatlog);
|
||||
Server.getInstance().broadcastGMMessage(c.getWorld(), MaplePacketCreator.serverNotice(6, victim + " was reported for: " + description));
|
||||
addReport(c.getPlayer().getId(), MapleCharacter.getIdByName(victim), reason, description, chatlog);
|
||||
} else {
|
||||
Server.getInstance().broadcastGMMessage(MaplePacketCreator.serverNotice(6, c.getPlayer().getName() + " is probably packet editing. Got unknown report type, which is impossible."));
|
||||
Server.getInstance().broadcastGMMessage(c.getWorld(), MaplePacketCreator.serverNotice(6, c.getPlayer().getName() + " is probably packet editing. Got unknown report type, which is impossible."));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -277,7 +277,7 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler {
|
||||
}
|
||||
break;
|
||||
case 2: // Super megaphone
|
||||
Server.getInstance().broadcastMessage(MaplePacketCreator.serverNotice(3, c.getChannel(), medal + player.getName() + " : " + slea.readMapleAsciiString(), (slea.readByte() != 0)));
|
||||
Server.getInstance().broadcastMessage(c.getWorld(), MaplePacketCreator.serverNotice(3, c.getChannel(), medal + player.getName() + " : " + slea.readMapleAsciiString(), (slea.readByte() != 0)));
|
||||
break;
|
||||
case 5: // Maple TV
|
||||
int tvType = itemId % 10;
|
||||
@@ -309,7 +309,7 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler {
|
||||
}
|
||||
slea.readInt();
|
||||
if (megassenger) {
|
||||
Server.getInstance().broadcastMessage(MaplePacketCreator.serverNotice(3, c.getChannel(), medal + player.getName() + " : " + builder.toString(), ear));
|
||||
Server.getInstance().broadcastMessage(c.getWorld(), MaplePacketCreator.serverNotice(3, c.getChannel(), medal + player.getName() + " : " + builder.toString(), ear));
|
||||
}
|
||||
if (!MapleTVEffect.isActive()) {
|
||||
new MapleTVEffect(player, victim, messages, tvType);
|
||||
@@ -334,7 +334,7 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler {
|
||||
return;
|
||||
}
|
||||
}
|
||||
Server.getInstance().broadcastMessage(MaplePacketCreator.itemMegaphone(msg, whisper, c.getChannel(), item));
|
||||
Server.getInstance().broadcastMessage(c.getWorld(), MaplePacketCreator.itemMegaphone(msg, whisper, c.getChannel(), item));
|
||||
break;
|
||||
case 7: //triple megaphone
|
||||
int lines = slea.readByte();
|
||||
@@ -347,7 +347,7 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler {
|
||||
msg2[i] = medal + c.getPlayer().getName() + " : " + slea.readMapleAsciiString();
|
||||
}
|
||||
whisper = slea.readByte() == 1;
|
||||
Server.getInstance().broadcastMessage(MaplePacketCreator.getMultiMegaphone(msg2, c.getChannel(), whisper));
|
||||
Server.getInstance().broadcastMessage(c.getWorld(), MaplePacketCreator.getMultiMegaphone(msg2, c.getChannel(), whisper));
|
||||
break;
|
||||
}
|
||||
remove(c, itemId);
|
||||
@@ -475,11 +475,13 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
lines.add(slea.readMapleAsciiString());
|
||||
}
|
||||
Server.getInstance().broadcastMessage(MaplePacketCreator.getAvatarMega(c.getPlayer(), medal, c.getChannel(), itemId, lines, (slea.readByte() != 0)));
|
||||
|
||||
final int world = c.getWorld();
|
||||
Server.getInstance().broadcastMessage(world, MaplePacketCreator.getAvatarMega(c.getPlayer(), medal, c.getChannel(), itemId, lines, (slea.readByte() != 0)));
|
||||
TimerManager.getInstance().schedule(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
Server.getInstance().broadcastMessage(MaplePacketCreator.byeAvatarMega());
|
||||
Server.getInstance().broadcastMessage(world, MaplePacketCreator.byeAvatarMega());
|
||||
}
|
||||
}, 1000 * 10);
|
||||
remove(c, itemId);
|
||||
|
||||
@@ -131,6 +131,6 @@ public final class CreateCharHandler extends AbstractMaplePacketHandler {
|
||||
return;
|
||||
}
|
||||
c.announce(MaplePacketCreator.addNewCharEntry(newchar));
|
||||
Server.getInstance().broadcastGMMessage(MaplePacketCreator.sendYellowTip("[NEW CHAR]: " + c.getAccountName() + " has created a new character with IGN " + name));
|
||||
Server.getInstance().broadcastGMMessage(c.getWorld(), MaplePacketCreator.sendYellowTip("[NEW CHAR]: " + c.getAccountName() + " has created a new character with IGN " + name));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user