Rename and clean up MapleHiredMerchant

This commit is contained in:
P0nk
2021-09-09 22:22:34 +02:00
parent 897f2a857f
commit d35969dea5
9 changed files with 142 additions and 134 deletions

View File

@@ -70,7 +70,7 @@ public final class Channel {
private MapleMapManager mapManager;
private EventScriptManager eventSM;
private ServicesManager services;
private Map<Integer, MapleHiredMerchant> hiredMerchants = new HashMap<>();
private Map<Integer, HiredMerchant> hiredMerchants = new HashMap<>();
private final Map<Integer, Integer> storedVars = new HashMap<>();
private Set<Integer> playersAway = new HashSet<>();
private Map<ExpeditionType, Expedition> expeditions = new HashMap<>();
@@ -228,7 +228,7 @@ public final class Channel {
private void closeAllMerchants() {
try {
List<MapleHiredMerchant> merchs;
List<HiredMerchant> merchs;
merchWlock.lock();
try {
@@ -238,7 +238,7 @@ public final class Channel {
merchWlock.unlock();
}
for (MapleHiredMerchant merch : merchs) {
for (HiredMerchant merch : merchs) {
merch.forceClose();
}
} catch (Exception e) {
@@ -352,7 +352,7 @@ public final class Channel {
}
}
public Map<Integer, MapleHiredMerchant> getHiredMerchants() {
public Map<Integer, HiredMerchant> getHiredMerchants() {
merchRlock.lock();
try {
return Collections.unmodifiableMap(hiredMerchants);
@@ -361,7 +361,7 @@ public final class Channel {
}
}
public void addHiredMerchant(int chrid, MapleHiredMerchant hm) {
public void addHiredMerchant(int chrid, HiredMerchant hm) {
merchWlock.lock();
try {
hiredMerchants.put(chrid, hm);

View File

@@ -23,7 +23,7 @@ import client.Client;
import constants.game.GameConstants;
import net.AbstractPacketHandler;
import net.packet.InPacket;
import server.maps.MapleHiredMerchant;
import server.maps.HiredMerchant;
import server.maps.MaplePlayerShop;
import tools.PacketCreator;
@@ -42,7 +42,7 @@ public final class OwlWarpHandler extends AbstractPacketHandler {
return;
}
MapleHiredMerchant hm = c.getWorldServer().getHiredMerchant(ownerid); // if both hired merchant and player shop is on the same map
HiredMerchant hm = c.getWorldServer().getHiredMerchant(ownerid); // if both hired merchant and player shop is on the same map
MaplePlayerShop ps;
if(hm == null || hm.getMapId() != mapid || !hm.hasItem(c.getPlayer().getOwlSearch())) {
ps = c.getWorldServer().getPlayerShop(ownerid);

View File

@@ -252,7 +252,7 @@ public final class PlayerInteractionHandler extends AbstractPacketHandler {
c.getWorldServer().registerPlayerShop(shop);
//c.sendPacket(PacketCreator.getPlayerShopRemoveVisitor(1));
} else if (ItemConstants.isHiredMerchant(itemId)) {
MapleHiredMerchant merchant = new MapleHiredMerchant(chr, desc, itemId);
HiredMerchant merchant = new HiredMerchant(chr, desc, itemId);
chr.setHiredMerchant(merchant);
c.getWorldServer().registerHiredMerchant(merchant);
chr.getClient().getChannelServer().addHiredMerchant(chr.getId(), merchant);
@@ -308,13 +308,13 @@ public final class PlayerInteractionHandler extends AbstractPacketHandler {
} else {
chr.sendPacket(PacketCreator.getMiniRoomError(22));
}
} else if (ob instanceof MapleHiredMerchant && chr.getHiredMerchant() == null) {
MapleHiredMerchant merchant = (MapleHiredMerchant) ob;
} else if (ob instanceof HiredMerchant && chr.getHiredMerchant() == null) {
HiredMerchant merchant = (HiredMerchant) ob;
merchant.visitShop(chr);
}
}
} else if (mode == Action.CHAT.getCode()) { // chat lol
MapleHiredMerchant merchant = chr.getHiredMerchant();
HiredMerchant merchant = chr.getHiredMerchant();
if (chr.getTrade() != null) {
chr.getTrade().chat(p.readString());
} else if (chr.getPlayerShop() != null) { //mini game
@@ -359,7 +359,7 @@ public final class PlayerInteractionHandler extends AbstractPacketHandler {
}
MaplePlayerShop shop = chr.getPlayerShop();
MapleHiredMerchant merchant = chr.getHiredMerchant();
HiredMerchant merchant = chr.getHiredMerchant();
if (shop != null && shop.isOwner(chr)) {
if(YamlConfig.config.server.USE_ERASE_PERMIT_ON_OPENSHOP) {
try {
@@ -601,7 +601,7 @@ public final class PlayerInteractionHandler extends AbstractPacketHandler {
MaplePlayerShopItem shopItem = new MaplePlayerShopItem(sellItem, bundles, price);
MaplePlayerShop shop = chr.getPlayerShop();
MapleHiredMerchant merchant = chr.getHiredMerchant();
HiredMerchant merchant = chr.getHiredMerchant();
if (shop != null && shop.isOwner(chr)) {
if (shop.isOpen() || !shop.addItem(shopItem)) { // thanks Vcoc for pointing an exploit with unlimited shop slots
c.sendPacket(PacketCreator.serverNotice(1, "You can't sell it anymore."));
@@ -667,12 +667,12 @@ public final class PlayerInteractionHandler extends AbstractPacketHandler {
shop.takeItemBack(slot, chr);
}
} else if (mode == Action.MERCHANT_MESO.getCode()) {
MapleHiredMerchant merchant = chr.getHiredMerchant();
HiredMerchant merchant = chr.getHiredMerchant();
if (merchant == null) return;
merchant.withdrawMesos(chr);
} else if (mode == Action.MERCHANT_ORGANIZE.getCode()) {
MapleHiredMerchant merchant = chr.getHiredMerchant();
HiredMerchant merchant = chr.getHiredMerchant();
if (merchant == null || !merchant.isOwner(chr)) return;
merchant.withdrawMesos(chr);
@@ -696,7 +696,7 @@ public final class PlayerInteractionHandler extends AbstractPacketHandler {
return;
}
MaplePlayerShop shop = chr.getPlayerShop();
MapleHiredMerchant merchant = chr.getHiredMerchant();
HiredMerchant merchant = chr.getHiredMerchant();
if (shop != null && shop.isVisitor(chr)) {
if (shop.buy(c, itemid, quantity)) {
shop.broadcast(PacketCreator.getPlayerShopItemUpdate(shop));
@@ -708,7 +708,7 @@ public final class PlayerInteractionHandler extends AbstractPacketHandler {
} else if (mode == Action.TAKE_ITEM_BACK.getCode()) {
if (isTradeOpen(chr)) return;
MapleHiredMerchant merchant = chr.getHiredMerchant();
HiredMerchant merchant = chr.getHiredMerchant();
if (merchant != null && merchant.isOwner(chr)) {
if (merchant.isOpen()) {
c.sendPacket(PacketCreator.serverNotice(1, "You can't take it with the store open."));
@@ -728,14 +728,14 @@ public final class PlayerInteractionHandler extends AbstractPacketHandler {
} else if (mode == Action.CLOSE_MERCHANT.getCode()) {
if (isTradeOpen(chr)) return;
MapleHiredMerchant merchant = chr.getHiredMerchant();
HiredMerchant merchant = chr.getHiredMerchant();
if (merchant != null) {
merchant.closeOwnerMerchant(chr);
}
} else if (mode == Action.MAINTENANCE_OFF.getCode()) {
if (isTradeOpen(chr)) return;
MapleHiredMerchant merchant = chr.getHiredMerchant();
HiredMerchant merchant = chr.getHiredMerchant();
if(merchant != null) {
if (merchant.isOwner(chr)) {
if (merchant.getItems().isEmpty()) {

View File

@@ -26,7 +26,7 @@ import client.Character;
import client.Client;
import net.AbstractPacketHandler;
import net.packet.InPacket;
import server.maps.MapleHiredMerchant;
import server.maps.HiredMerchant;
import tools.PacketCreator;
/**
@@ -37,7 +37,7 @@ public class RemoteStoreHandler extends AbstractPacketHandler {
@Override
public void handlePacket(InPacket p, Client c) {
Character chr = c.getPlayer();
MapleHiredMerchant hm = getMerchant(c);
HiredMerchant hm = getMerchant(c);
if (hm != null && hm.isOwner(chr)) {
if (hm.getChannel() == chr.getClient().getChannel()) {
hm.visitShop(chr);
@@ -51,7 +51,7 @@ public class RemoteStoreHandler extends AbstractPacketHandler {
c.sendPacket(PacketCreator.enableActions());
}
private static MapleHiredMerchant getMerchant(Client c) {
private static HiredMerchant getMerchant(Client c) {
if (c.getPlayer().hasMerchant()) {
return c.getWorldServer().getHiredMerchant(c.getPlayer().getId());
}

View File

@@ -132,7 +132,7 @@ public class World {
private Map<Integer, MaplePlayerShop> activePlayerShops = new LinkedHashMap<>();
private MonitoredReentrantLock activeMerchantsLock = MonitoredReentrantLockFactory.createLock(MonitoredLockType.WORLD_MERCHS, true);
private Map<Integer, Pair<MapleHiredMerchant, Integer>> activeMerchants = new LinkedHashMap<>();
private Map<Integer, Pair<HiredMerchant, Integer>> activeMerchants = new LinkedHashMap<>();
private ScheduledFuture<?> merchantSchedule;
private long merchantUpdate;
@@ -1555,7 +1555,7 @@ public class World {
}
}
public void registerHiredMerchant(MapleHiredMerchant hm) {
public void registerHiredMerchant(HiredMerchant hm) {
activeMerchantsLock.lock();
try {
int initProc;
@@ -1568,7 +1568,7 @@ public class World {
}
}
public void unregisterHiredMerchant(MapleHiredMerchant hm) {
public void unregisterHiredMerchant(HiredMerchant hm) {
activeMerchantsLock.lock();
try {
activeMerchants.remove(hm.getOwnerId());
@@ -1578,15 +1578,15 @@ public class World {
}
public void runHiredMerchantSchedule() {
Map<Integer, Pair<MapleHiredMerchant, Integer>> deployedMerchants;
Map<Integer, Pair<HiredMerchant, Integer>> deployedMerchants;
activeMerchantsLock.lock();
try {
merchantUpdate = Server.getInstance().getCurrentTime();
deployedMerchants = new LinkedHashMap<>(activeMerchants);
for(Map.Entry<Integer, Pair<MapleHiredMerchant, Integer>> dm: deployedMerchants.entrySet()) {
for(Map.Entry<Integer, Pair<HiredMerchant, Integer>> dm: deployedMerchants.entrySet()) {
int timeOn = dm.getValue().getRight();
MapleHiredMerchant hm = dm.getValue().getLeft();
HiredMerchant hm = dm.getValue().getLeft();
if(timeOn <= 144) { // 1440 minutes == 24hrs
activeMerchants.put(hm.getOwnerId(), new Pair<>(dm.getValue().getLeft(), timeOn + 1));
@@ -1602,12 +1602,12 @@ public class World {
}
}
public List<MapleHiredMerchant> getActiveMerchants() {
List<MapleHiredMerchant> hmList = new ArrayList<>();
public List<HiredMerchant> getActiveMerchants() {
List<HiredMerchant> hmList = new ArrayList<>();
activeMerchantsLock.lock();
try {
for(Pair<MapleHiredMerchant, Integer> hmp : activeMerchants.values()) {
MapleHiredMerchant hm = hmp.getLeft();
for(Pair<HiredMerchant, Integer> hmp : activeMerchants.values()) {
HiredMerchant hm = hmp.getLeft();
if(hm.isOpen()) {
hmList.add(hm);
}
@@ -1619,7 +1619,7 @@ public class World {
}
}
public MapleHiredMerchant getHiredMerchant(int ownerid) {
public HiredMerchant getHiredMerchant(int ownerid) {
activeMerchantsLock.lock();
try {
if(activeMerchants.containsKey(ownerid)) {
@@ -1816,7 +1816,7 @@ public class World {
public List<Pair<MaplePlayerShopItem, AbstractMapObject>> getAvailableItemBundles(int itemid) {
List<Pair<MaplePlayerShopItem, AbstractMapObject>> hmsAvailable = new ArrayList<>();
for (MapleHiredMerchant hm : getActiveMerchants()) {
for (HiredMerchant hm : getActiveMerchants()) {
List<MaplePlayerShopItem> itemBundles = hm.sendAvailableBundles(itemid);
for(MaplePlayerShopItem mpsi : itemBundles) {