Coupon buff fix + concurrency fixes
Fixed coupon buff icon not showing properly. Fixed some cases involving coupons and buff removal not dealing properly with concurrent access.
This commit is contained in:
@@ -32,21 +32,21 @@ import client.MapleClient;
|
||||
* @author Matze
|
||||
*/
|
||||
public final class MesoDropHandler extends AbstractMaplePacketHandler {//FIX
|
||||
public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {
|
||||
MapleCharacter player = c.getPlayer();
|
||||
if (!player.isAlive()) {
|
||||
c.announce(MaplePacketCreator.enableActions());
|
||||
return;
|
||||
public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {
|
||||
MapleCharacter player = c.getPlayer();
|
||||
if (!player.isAlive()) {
|
||||
c.announce(MaplePacketCreator.enableActions());
|
||||
return;
|
||||
}
|
||||
if (!player.canDropMeso()){
|
||||
player.announce(MaplePacketCreator.serverNotice(5, "Fast meso drop has been patched, cut that out. ;)"));
|
||||
return;
|
||||
}
|
||||
slea.skip(4);
|
||||
int meso = slea.readInt();
|
||||
if (meso <= player.getMeso() && meso > 9 && meso < 50001) {
|
||||
player.gainMeso(-meso, false, true, false);
|
||||
player.getMap().spawnMesoDrop(meso, player.getPosition(), player, player, true, (byte) 2);
|
||||
}
|
||||
}
|
||||
if (!player.canDropMeso()){
|
||||
player.announce(MaplePacketCreator.serverNotice(5, "Fast meso drop has been patched, cut that out. ;)"));
|
||||
return;
|
||||
}
|
||||
slea.skip(4);
|
||||
int meso = slea.readInt();
|
||||
if (meso <= player.getMeso() && meso > 9 && meso < 50001) {
|
||||
player.gainMeso(-meso, false, true, false);
|
||||
player.getMap().spawnMesoDrop(meso, player.getPosition(), player, player, true, (byte) 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -269,11 +269,10 @@ public final class PlayerLoggedinHandler extends AbstractMaplePacketHandler {
|
||||
|
||||
if (player.getMap().getHPDec() > 0) player.resetHpDecreaseTask();
|
||||
|
||||
player.dispelBuffCoupons();
|
||||
player.resetPlayerRates();
|
||||
|
||||
if(ServerConstants.USE_ADD_RATES_BY_LEVEL == true) player.setPlayerRates();
|
||||
player.setWorldRates();
|
||||
player.setCouponRates();
|
||||
player.updateCouponRates();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user