Rename and clean up MapleMonsterInformationProvider

This commit is contained in:
P0nk
2021-09-09 22:06:55 +02:00
parent 02786eab63
commit 2acf2ed83d
14 changed files with 34 additions and 34 deletions

View File

@@ -27,8 +27,8 @@ import client.Character;
import client.Client;
import client.command.Command;
import server.MapleItemInformationProvider;
import server.life.MapleMonsterInformationProvider;
import server.life.MonsterDropEntry;
import server.life.MonsterInformationProvider;
import tools.Pair;
import java.util.Iterator;
@@ -48,20 +48,20 @@ public class WhatDropsFromCommand extends Command {
String monsterName = player.getLastCommandMessage();
String output = "";
int limit = 3;
Iterator<Pair<Integer, String>> listIterator = MapleMonsterInformationProvider.getMobsIDsFromName(monsterName).iterator();
Iterator<Pair<Integer, String>> listIterator = MonsterInformationProvider.getMobsIDsFromName(monsterName).iterator();
for (int i = 0; i < limit; i++) {
if(listIterator.hasNext()) {
Pair<Integer, String> data = listIterator.next();
int mobId = data.getLeft();
String mobName = data.getRight();
output += mobName + " drops the following items:\r\n\r\n";
for (MonsterDropEntry drop : MapleMonsterInformationProvider.getInstance().retrieveDrop(mobId)){
for (MonsterDropEntry drop : MonsterInformationProvider.getInstance().retrieveDrop(mobId)){
try {
String name = MapleItemInformationProvider.getInstance().getName(drop.itemId);
if (name == null || name.equals("null") || drop.chance == 0){
continue;
}
float chance = Math.max(1000000 / drop.chance / (!MapleMonsterInformationProvider.getInstance().isBoss(mobId) ? player.getDropRate() : player.getBossDropRate()), 1);
float chance = Math.max(1000000 / drop.chance / (!MonsterInformationProvider.getInstance().isBoss(mobId) ? player.getDropRate() : player.getBossDropRate()), 1);
output += "- " + name + " (1/" + (int) chance + ")\r\n";
} catch (Exception ex){
ex.printStackTrace();

View File

@@ -27,7 +27,7 @@ import client.Character;
import client.Client;
import client.command.Command;
import server.MapleItemInformationProvider;
import server.life.MapleMonsterInformationProvider;
import server.life.MonsterInformationProvider;
import tools.DatabaseConnection;
import tools.Pair;
@@ -65,7 +65,7 @@ public class WhoDropsCommand extends Command {
try (ResultSet rs = ps.executeQuery()) {
while (rs.next()) {
String resultName = MapleMonsterInformationProvider.getInstance().getMobNameFromId(rs.getInt("dropperid"));
String resultName = MonsterInformationProvider.getInstance().getMobNameFromId(rs.getInt("dropperid"));
if (resultName != null) {
output += resultName + ", ";
}

View File

@@ -26,7 +26,7 @@ package client.command.commands.gm3;
import client.Character;
import client.Client;
import client.command.Command;
import server.life.MapleMonsterInformationProvider;
import server.life.MonsterInformationProvider;
public class ReloadDropsCommand extends Command {
{
@@ -36,7 +36,7 @@ public class ReloadDropsCommand extends Command {
@Override
public void execute(Client c, String[] params) {
Character player = c.getPlayer();
MapleMonsterInformationProvider.getInstance().clearDrops();
MonsterInformationProvider.getInstance().clearDrops();
player.dropMessage(5, "Reloaded Drops");
}
}

View File

@@ -278,7 +278,7 @@ public abstract class AbstractDealDamageHandler extends AbstractPacketHandler {
if (steal.getEffect(player.getSkillLevel(steal)).makeChanceResult()) {
monster.addStolen(0);
MapleMonsterInformationProvider mi = MapleMonsterInformationProvider.getInstance();
MonsterInformationProvider mi = MonsterInformationProvider.getInstance();
List<Integer> dropPool = mi.retrieveDropPool(monster.getId());
if(!dropPool.isEmpty()) {
int rndPool = (int) Math.floor(Math.random() * dropPool.get(dropPool.size() - 1));

View File

@@ -24,8 +24,8 @@ import client.Client;
import constants.game.GameConstants;
import net.AbstractPacketHandler;
import net.packet.InPacket;
import server.life.MapleMonsterInformationProvider;
import server.life.Monster;
import server.life.MonsterInformationProvider;
import server.maps.MapleMap;
import tools.FilePrinter;
import tools.PacketCreator;
@@ -48,7 +48,7 @@ public class FieldDamageMobHandler extends AbstractPacketHandler {
Monster mob = map.getMonsterByOid(mobOid);
if (mob != null) {
if (dmg < 0 || dmg > GameConstants.MAX_FIELD_MOB_DAMAGE) {
FilePrinter.printError(FilePrinter.EXPLOITS + c.getPlayer().getName() + ".txt", c.getPlayer().getName() + " tried to use an obstacle on mapid " + map.getId() + " to attack " + MapleMonsterInformationProvider.getInstance().getMobNameFromId(mob.getId()) + " with damage " + dmg);
FilePrinter.printError(FilePrinter.EXPLOITS + c.getPlayer().getName() + ".txt", c.getPlayer().getName() + " tried to use an obstacle on mapid " + map.getId() + " to attack " + MonsterInformationProvider.getInstance().getMobNameFromId(mob.getId()) + " with damage " + dmg);
return;
}

View File

@@ -28,8 +28,8 @@ import client.status.MonsterStatus;
import client.status.MonsterStatusEffect;
import net.AbstractPacketHandler;
import net.packet.InPacket;
import server.life.MapleMonsterInformationProvider;
import server.life.Monster;
import server.life.MonsterInformationProvider;
import server.maps.MapleMap;
import tools.FilePrinter;
import tools.PacketCreator;
@@ -61,7 +61,7 @@ public final class MobDamageMobHandler extends AbstractPacketHandler {
if (dmg > maxDmg) {
AutobanFactory.DAMAGE_HACK.alert(c.getPlayer(), "Possible packet editing hypnotize damage exploit."); // thanks Rien dev team
FilePrinter.printError(FilePrinter.EXPLOITS + c.getPlayer().getName() + ".txt", c.getPlayer().getName() + " had hypnotized " + MapleMonsterInformationProvider.getInstance().getMobNameFromId(attacker.getId()) + " to attack " + MapleMonsterInformationProvider.getInstance().getMobNameFromId(damaged.getId()) + " with damage " + dmg + " (max: " + maxDmg + ")");
FilePrinter.printError(FilePrinter.EXPLOITS + c.getPlayer().getName() + ".txt", c.getPlayer().getName() + " had hypnotized " + MonsterInformationProvider.getInstance().getMobNameFromId(attacker.getId()) + " to attack " + MonsterInformationProvider.getInstance().getMobNameFromId(damaged.getId()) + " with damage " + dmg + " (max: " + maxDmg + ")");
dmg = maxDmg;
}

View File

@@ -25,10 +25,10 @@ import client.Character;
import client.Client;
import config.YamlConfig;
import net.packet.InPacket;
import server.life.MapleMonsterInformationProvider;
import server.life.MobSkill;
import server.life.MobSkillFactory;
import server.life.Monster;
import server.life.MonsterInformationProvider;
import server.maps.MapleMap;
import server.maps.MapleMapObject;
import server.maps.MapleMapObjectType;
@@ -99,7 +99,7 @@ public final class MoveLifeHandler extends AbstractMovementPacketHandler {
toUse = MobSkillFactory.getMobSkill(useSkillId, useSkillLevel);
if (monster.canUseSkill(toUse, true)) {
int animationTime = MapleMonsterInformationProvider.getInstance().getMobSkillAnimationTime(toUse);
int animationTime = MonsterInformationProvider.getInstance().getMobSkillAnimationTime(toUse);
if(animationTime > 0 && toUse.getSkillId() != 129) {
toUse.applyDelayedEffect(player, monster, true, animationTime);
} else {

View File

@@ -34,8 +34,8 @@ import constants.skills.Outlaw;
import net.packet.InPacket;
import server.MapleItemInformationProvider;
import server.MapleStatEffect;
import server.life.MapleMonsterInformationProvider;
import server.life.Monster;
import server.life.MonsterInformationProvider;
import server.maps.MapleSummon;
import tools.FilePrinter;
import tools.PacketCreator;
@@ -109,7 +109,7 @@ public final class SummonDamageHandler extends AbstractDealDamageHandler {
if (damage > maxDmg) {
AutobanFactory.DAMAGE_HACK.alert(c.getPlayer(), "Possible packet editing summon damage exploit.");
FilePrinter.printError(FilePrinter.EXPLOITS + c.getPlayer().getName() + ".txt", c.getPlayer().getName() + " used a summon of skillid " + summon.getSkill() + " to attack " + MapleMonsterInformationProvider.getInstance().getMobNameFromId(target.getId()) + " with damage " + damage + " (max: " + maxDmg + ")");
FilePrinter.printError(FilePrinter.EXPLOITS + c.getPlayer().getName() + ".txt", c.getPlayer().getName() + " used a summon of skillid " + summon.getSkill() + " to attack " + MonsterInformationProvider.getInstance().getMobNameFromId(target.getId()) + " with damage " + damage + " (max: " + maxDmg + ")");
damage = maxDmg;
}

View File

@@ -36,7 +36,7 @@ import provider.*;
import provider.wz.WZFiles;
import server.MakerItemFactory.MakerItemCreateEntry;
import server.life.LifeFactory;
import server.life.MapleMonsterInformationProvider;
import server.life.MonsterInformationProvider;
import tools.*;
import java.sql.Connection;
@@ -2059,7 +2059,7 @@ public class MapleItemInformationProvider {
try (ResultSet rs = ps.executeQuery()) {
while (rs.next()) {
String resultName = MapleMonsterInformationProvider.getInstance().getMobNameFromId(rs.getInt("dropperid"));
String resultName = MonsterInformationProvider.getInstance().getMobNameFromId(rs.getInt("dropperid"));
if (!resultName.isEmpty()) {
list.add(resultName);
}

View File

@@ -80,7 +80,7 @@ public class LifeFactory {
private static void setMonsterAttackInfo(int mid, List<MobAttackInfoHolder> attackInfos) {
if (!attackInfos.isEmpty()) {
MapleMonsterInformationProvider mi = MapleMonsterInformationProvider.getInstance();
MonsterInformationProvider mi = MonsterInformationProvider.getInstance();
for (MobAttackInfoHolder attackInfo : attackInfos) {
mi.setMobAttackInfo(mid, attackInfo.attackPos, attackInfo.mpCon, attackInfo.coolTime);
@@ -181,7 +181,7 @@ public class LifeFactory {
}
decodeElementalString(stats, DataTool.getString("elemAttr", monsterInfoData, ""));
MapleMonsterInformationProvider mi = MapleMonsterInformationProvider.getInstance();
MonsterInformationProvider mi = MonsterInformationProvider.getInstance();
Data monsterSkillInfoData = monsterInfoData.getChildByPath("skill");
if (monsterSkillInfoData != null) {
int i = 0;

View File

@@ -314,9 +314,9 @@ public class Monster extends AbstractLoadedLife {
long animationTime;
if (skill == null) {
animationTime = MapleMonsterInformationProvider.getInstance().getMobAttackAnimationTime(this.getId(), attackPos);
animationTime = MonsterInformationProvider.getInstance().getMobAttackAnimationTime(this.getId(), attackPos);
} else {
animationTime = MapleMonsterInformationProvider.getInstance().getMobSkillAnimationTime(skill);
animationTime = MonsterInformationProvider.getInstance().getMobSkillAnimationTime(skill);
}
if (animationTime > 0) {
@@ -738,7 +738,7 @@ public class Monster extends AbstractLoadedLife {
public List<MonsterDropEntry> retrieveRelevantDrops() {
if (this.getStats().isFriendly()) { // thanks Conrad for noticing friendly mobs not spawning loots after a recent update
return MapleMonsterInformationProvider.getInstance().retrieveEffectiveDrop(this.getId());
return MonsterInformationProvider.getInstance().retrieveEffectiveDrop(this.getId());
}
Map<Integer, Character> pchars = map.getMapAllPlayers();
@@ -1542,7 +1542,7 @@ public class Monster extends AbstractLoadedLife {
}
*/
Pair<Integer, Integer> attackInfo = MapleMonsterInformationProvider.getInstance().getMobAttackInfo(this.getId(), attackPos);
Pair<Integer, Integer> attackInfo = MonsterInformationProvider.getInstance().getMobAttackInfo(this.getId(), attackPos);
if (attackInfo == null) {
return -1;
}

View File

@@ -38,12 +38,12 @@ import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.*;
public class MapleMonsterInformationProvider {
public class MonsterInformationProvider {
// Author : LightPepsi
private static final MapleMonsterInformationProvider instance = new MapleMonsterInformationProvider();
private static final MonsterInformationProvider instance = new MonsterInformationProvider();
public static MapleMonsterInformationProvider getInstance() {
public static MonsterInformationProvider getInstance() {
return instance;
}
@@ -63,7 +63,7 @@ public class MapleMonsterInformationProvider {
private final Map<Integer, Boolean> mobBossCache = new HashMap<>();
private final Map<Integer, String> mobNameCache = new HashMap<>();
protected MapleMonsterInformationProvider() {
protected MonsterInformationProvider() {
retrieveGlobal();
}
@@ -269,7 +269,7 @@ public class MapleMonsterInformationProvider {
if (mobName == null) {
DataProvider dataProvider = DataProviderFactory.getDataProvider(WZFiles.STRING);
Data mobData = dataProvider.getData("Mob.img");
mobName = DataTool.getString(mobData.getChildByPath(id + "/name"), "");
mobNameCache.put(id, mobName);
}

View File

@@ -20,8 +20,8 @@
package server.loot;
import client.Character;
import server.life.MapleMonsterInformationProvider;
import server.life.MonsterDropEntry;
import server.life.MonsterInformationProvider;
import server.quest.MapleQuest;
import java.util.LinkedList;
@@ -74,7 +74,7 @@ public class MapleLootManager {
}
public static List<MonsterDropEntry> retrieveRelevantDrops(int monsterId, List<Character> players) {
List<MonsterDropEntry> loots = MapleMonsterInformationProvider.getInstance().retrieveEffectiveDrop(monsterId);
List<MonsterDropEntry> loots = MonsterInformationProvider.getInstance().retrieveEffectiveDrop(monsterId);
if(loots.isEmpty()) return loots;
List<MapleLootInventory> playersInv = new LinkedList<>();

View File

@@ -721,7 +721,7 @@ public class MapleMap {
chRate = 1;
}
final MapleMonsterInformationProvider mi = MapleMonsterInformationProvider.getInstance();
final MonsterInformationProvider mi = MonsterInformationProvider.getInstance();
final List<MonsterGlobalDropEntry> globalEntry = mi.getRelevantGlobalDrops(this.getId());
final List<MonsterDropEntry> dropEntry = new ArrayList<>();
@@ -2793,7 +2793,7 @@ public class MapleMap {
}
if (monster.isBoss()) {
if (unclaimOwnership() != null) {
String mobName = MapleMonsterInformationProvider.getInstance().getMobNameFromId(monster.getId());
String mobName = MonsterInformationProvider.getInstance().getMobNameFromId(monster.getId());
if (mobName != null) {
mobName = mobName.trim();
this.dropMessage(5, "This lawn has been taken siege by " + mobName + "'s forces and will be kept hold until their defeat.");