Refactor BanishInfo - make it a record
This commit is contained in:
@@ -116,6 +116,7 @@ import server.events.Events;
|
|||||||
import server.events.RescueGaga;
|
import server.events.RescueGaga;
|
||||||
import server.events.gm.Fitness;
|
import server.events.gm.Fitness;
|
||||||
import server.events.gm.Ola;
|
import server.events.gm.Ola;
|
||||||
|
import server.life.BanishInfo;
|
||||||
import server.life.MobSkill;
|
import server.life.MobSkill;
|
||||||
import server.life.MobSkillFactory;
|
import server.life.MobSkillFactory;
|
||||||
import server.life.MobSkillId;
|
import server.life.MobSkillId;
|
||||||
@@ -1353,13 +1354,13 @@ public class Character extends AbstractCharacterObject {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void changeMapBanish(int mapid, String portal, String msg) {
|
public void changeMapBanish(BanishInfo banishInfo) {
|
||||||
if (msg != null) {
|
if (banishInfo.msg() != null) {
|
||||||
dropMessage(5, msg);
|
dropMessage(5, banishInfo.msg());
|
||||||
}
|
}
|
||||||
|
|
||||||
MapleMap map_ = getWarpMap(mapid);
|
MapleMap map_ = getWarpMap(mapid);
|
||||||
Portal portal_ = map_.getPortal(portal);
|
Portal portal_ = map_.getPortal(banishInfo.portal());
|
||||||
changeMap(map_, portal_ != null ? portal_ : map_.getRandomPlayerSpawnpoint());
|
changeMap(map_, portal_ != null ? portal_ : map_.getRandomPlayerSpawnpoint());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ import client.Character;
|
|||||||
import client.Client;
|
import client.Client;
|
||||||
import net.AbstractPacketHandler;
|
import net.AbstractPacketHandler;
|
||||||
import net.packet.InPacket;
|
import net.packet.InPacket;
|
||||||
import server.life.LifeFactory.BanishInfo;
|
import server.life.BanishInfo;
|
||||||
import server.life.Monster;
|
import server.life.Monster;
|
||||||
|
|
||||||
public final class MobBanishPlayerHandler extends AbstractPacketHandler {
|
public final class MobBanishPlayerHandler extends AbstractPacketHandler {
|
||||||
@@ -39,8 +39,9 @@ public final class MobBanishPlayerHandler extends AbstractPacketHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
BanishInfo banishInfo = mob.getBanish();
|
BanishInfo banishInfo = mob.getBanish();
|
||||||
if (banishInfo != null) {
|
if (banishInfo == null) {
|
||||||
chr.changeMapBanish(banishInfo.getMap(), banishInfo.getPortal(), banishInfo.getMsg());
|
return;
|
||||||
}
|
}
|
||||||
|
chr.changeMapBanish(banishInfo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -173,7 +173,7 @@ public final class MoveLifeHandler extends AbstractMovementPacketHandler {
|
|||||||
|
|
||||||
if (banishPlayers != null) {
|
if (banishPlayers != null) {
|
||||||
for (Character chr : banishPlayers) {
|
for (Character chr : banishPlayers) {
|
||||||
chr.changeMapBanish(monster.getBanish().getMap(), monster.getBanish().getPortal(), monster.getBanish().getMsg());
|
chr.changeMapBanish(monster.getBanish());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 :)
|
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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
9
src/main/java/server/life/BanishInfo.java
Normal file
9
src/main/java/server/life/BanishInfo.java
Normal 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");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -231,7 +231,10 @@ public class LifeFactory {
|
|||||||
|
|
||||||
Data banishData = monsterInfoData.getChildByPath("ban");
|
Data banishData = monsterInfoData.getChildByPath("ban");
|
||||||
if (banishData != null) {
|
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);
|
int noFlip = DataTool.getInt("noFlip", monsterInfoData, 0);
|
||||||
@@ -296,31 +299,6 @@ public class LifeFactory {
|
|||||||
return DataTool.getString(nid + "/d0", npcStringData, "(...)");
|
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 {
|
public static class loseItem {
|
||||||
|
|
||||||
private final int id;
|
private final int id;
|
||||||
|
|||||||
@@ -56,7 +56,6 @@ import org.slf4j.LoggerFactory;
|
|||||||
import scripting.event.EventInstanceManager;
|
import scripting.event.EventInstanceManager;
|
||||||
import server.StatEffect;
|
import server.StatEffect;
|
||||||
import server.TimerManager;
|
import server.TimerManager;
|
||||||
import server.life.LifeFactory.BanishInfo;
|
|
||||||
import server.loot.LootManager;
|
import server.loot.LootManager;
|
||||||
import server.maps.AbstractAnimatedMapObject;
|
import server.maps.AbstractAnimatedMapObject;
|
||||||
import server.maps.MapObjectType;
|
import server.maps.MapObjectType;
|
||||||
|
|||||||
@@ -21,7 +21,6 @@
|
|||||||
*/
|
*/
|
||||||
package server.life;
|
package server.life;
|
||||||
|
|
||||||
import server.life.LifeFactory.BanishInfo;
|
|
||||||
import server.life.LifeFactory.loseItem;
|
import server.life.LifeFactory.loseItem;
|
||||||
import server.life.LifeFactory.selfDestruction;
|
import server.life.LifeFactory.selfDestruction;
|
||||||
import tools.Pair;
|
import tools.Pair;
|
||||||
|
|||||||
@@ -8,9 +8,9 @@ import provider.DataProviderFactory;
|
|||||||
import provider.DataTool;
|
import provider.DataTool;
|
||||||
import provider.wz.DataType;
|
import provider.wz.DataType;
|
||||||
import provider.wz.WZFiles;
|
import provider.wz.WZFiles;
|
||||||
|
import server.life.BanishInfo;
|
||||||
import server.life.Element;
|
import server.life.Element;
|
||||||
import server.life.ElementalEffectiveness;
|
import server.life.ElementalEffectiveness;
|
||||||
import server.life.LifeFactory.BanishInfo;
|
|
||||||
import server.life.LifeFactory.loseItem;
|
import server.life.LifeFactory.loseItem;
|
||||||
import server.life.LifeFactory.selfDestruction;
|
import server.life.LifeFactory.selfDestruction;
|
||||||
import server.life.MobSkillId;
|
import server.life.MobSkillId;
|
||||||
@@ -134,7 +134,10 @@ public class MonsterStatFetcher {
|
|||||||
}
|
}
|
||||||
Data banishData = monsterInfoData.getChildByPath("ban");
|
Data banishData = monsterInfoData.getChildByPath("ban");
|
||||||
if (banishData != null) {
|
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);
|
monsterStats.put(mid, stats);
|
||||||
|
|||||||
Reference in New Issue
Block a user