Refactor BanishInfo - make it a record

This commit is contained in:
P0nk
2024-07-17 18:11:50 +02:00
parent 402163c33d
commit 2324ae7f9e
9 changed files with 29 additions and 39 deletions

View File

@@ -116,6 +116,7 @@ import server.events.Events;
import server.events.RescueGaga;
import server.events.gm.Fitness;
import server.events.gm.Ola;
import server.life.BanishInfo;
import server.life.MobSkill;
import server.life.MobSkillFactory;
import server.life.MobSkillId;
@@ -1353,13 +1354,13 @@ public class Character extends AbstractCharacterObject {
}
}
public void changeMapBanish(int mapid, String portal, String msg) {
if (msg != null) {
dropMessage(5, msg);
public void changeMapBanish(BanishInfo banishInfo) {
if (banishInfo.msg() != null) {
dropMessage(5, banishInfo.msg());
}
MapleMap map_ = getWarpMap(mapid);
Portal portal_ = map_.getPortal(portal);
Portal portal_ = map_.getPortal(banishInfo.portal());
changeMap(map_, portal_ != null ? portal_ : map_.getRandomPlayerSpawnpoint());
}

View File

@@ -23,7 +23,7 @@ import client.Character;
import client.Client;
import net.AbstractPacketHandler;
import net.packet.InPacket;
import server.life.LifeFactory.BanishInfo;
import server.life.BanishInfo;
import server.life.Monster;
public final class MobBanishPlayerHandler extends AbstractPacketHandler {
@@ -39,8 +39,9 @@ public final class MobBanishPlayerHandler extends AbstractPacketHandler {
}
BanishInfo banishInfo = mob.getBanish();
if (banishInfo != null) {
chr.changeMapBanish(banishInfo.getMap(), banishInfo.getPortal(), banishInfo.getMsg());
if (banishInfo == null) {
return;
}
chr.changeMapBanish(banishInfo);
}
}

View File

@@ -173,7 +173,7 @@ public final class MoveLifeHandler extends AbstractMovementPacketHandler {
if (banishPlayers != null) {
for (Character chr : banishPlayers) {
chr.changeMapBanish(monster.getBanish().getMap(), monster.getBanish().getPortal(), monster.getBanish().getMsg());
chr.changeMapBanish(monster.getBanish());
}
}
}

View File

@@ -289,7 +289,7 @@ public final class TakeDamageHandler extends AbstractPacketHandler {
}
for (Character player : banishPlayers) { // chill, if this list ever gets non-empty an attacker does exist, trust me :)
player.changeMapBanish(attacker.getBanish().getMap(), attacker.getBanish().getPortal(), attacker.getBanish().getMsg());
player.changeMapBanish(attacker.getBanish());
}
}
}

View File

@@ -0,0 +1,9 @@
package server.life;
import java.util.Objects;
public record BanishInfo(int map, String portal, String msg) {
public BanishInfo {
Objects.requireNonNull(portal, "BanishInfo portal");
}
}

View File

@@ -231,7 +231,10 @@ public class LifeFactory {
Data banishData = monsterInfoData.getChildByPath("ban");
if (banishData != null) {
stats.setBanishInfo(new BanishInfo(DataTool.getString("banMsg", banishData), DataTool.getInt("banMap/0/field", banishData, -1), DataTool.getString("banMap/0/portal", banishData, "sp")));
int map = DataTool.getInt("banMap/0/field", banishData, -1);
String portal = DataTool.getString("banMap/0/portal", banishData, "sp");
String msg = DataTool.getString("banMsg", banishData);
stats.setBanishInfo(new BanishInfo(map, portal, msg));
}
int noFlip = DataTool.getInt("noFlip", monsterInfoData, 0);
@@ -296,31 +299,6 @@ public class LifeFactory {
return DataTool.getString(nid + "/d0", npcStringData, "(...)");
}
public static class BanishInfo {
private final int map;
private final String portal;
private final String msg;
public BanishInfo(String msg, int map, String portal) {
this.msg = msg;
this.map = map;
this.portal = portal;
}
public int getMap() {
return map;
}
public String getPortal() {
return portal;
}
public String getMsg() {
return msg;
}
}
public static class loseItem {
private final int id;

View File

@@ -56,7 +56,6 @@ import org.slf4j.LoggerFactory;
import scripting.event.EventInstanceManager;
import server.StatEffect;
import server.TimerManager;
import server.life.LifeFactory.BanishInfo;
import server.loot.LootManager;
import server.maps.AbstractAnimatedMapObject;
import server.maps.MapObjectType;

View File

@@ -21,7 +21,6 @@
*/
package server.life;
import server.life.LifeFactory.BanishInfo;
import server.life.LifeFactory.loseItem;
import server.life.LifeFactory.selfDestruction;
import tools.Pair;

View File

@@ -8,9 +8,9 @@ import provider.DataProviderFactory;
import provider.DataTool;
import provider.wz.DataType;
import provider.wz.WZFiles;
import server.life.BanishInfo;
import server.life.Element;
import server.life.ElementalEffectiveness;
import server.life.LifeFactory.BanishInfo;
import server.life.LifeFactory.loseItem;
import server.life.LifeFactory.selfDestruction;
import server.life.MobSkillId;
@@ -134,7 +134,10 @@ public class MonsterStatFetcher {
}
Data banishData = monsterInfoData.getChildByPath("ban");
if (banishData != null) {
stats.setBanishInfo(new BanishInfo(DataTool.getString("banMsg", banishData), DataTool.getInt("banMap/0/field", banishData, -1), DataTool.getString("banMap/0/portal", banishData, "sp")));
int map = DataTool.getInt("banMap/0/field", banishData, -1);
String portal = DataTool.getString("banMap/0/portal", banishData, "sp");
String msg = DataTool.getString("banMsg", banishData);
stats.setBanishInfo(new BanishInfo(map, portal, msg));
}
monsterStats.put(mid, stats);