Prevent SiegeGuards AI onKill NPE.

This commit is contained in:
MobiusDevelopment 2020-02-11 07:03:13 +00:00
parent efc607fc81
commit 220e0b716c
17 changed files with 34 additions and 17 deletions

View File

@ -202,7 +202,8 @@ public class SiegeGuards extends AbstractNpcAI
@Override
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
{
RESIDENCE_GUARD_MAP.get(npc.getScriptValue()).remove(npc);
final int residenceId = npc.getScriptValue();
RESIDENCE_GUARD_MAP.get(RESIDENCE_GUARD_MAP.containsKey(residenceId) ? residenceId : 0).remove(npc);
return super.onKill(npc, killer, isSummon);
}

View File

@ -202,7 +202,8 @@ public class SiegeGuards extends AbstractNpcAI
@Override
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
{
RESIDENCE_GUARD_MAP.get(npc.getScriptValue()).remove(npc);
final int residenceId = npc.getScriptValue();
RESIDENCE_GUARD_MAP.get(RESIDENCE_GUARD_MAP.containsKey(residenceId) ? residenceId : 0).remove(npc);
return super.onKill(npc, killer, isSummon);
}

View File

@ -202,7 +202,8 @@ public class SiegeGuards extends AbstractNpcAI
@Override
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
{
RESIDENCE_GUARD_MAP.get(npc.getScriptValue()).remove(npc);
final int residenceId = npc.getScriptValue();
RESIDENCE_GUARD_MAP.get(RESIDENCE_GUARD_MAP.containsKey(residenceId) ? residenceId : 0).remove(npc);
return super.onKill(npc, killer, isSummon);
}

View File

@ -202,7 +202,8 @@ public class SiegeGuards extends AbstractNpcAI
@Override
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
{
RESIDENCE_GUARD_MAP.get(npc.getScriptValue()).remove(npc);
final int residenceId = npc.getScriptValue();
RESIDENCE_GUARD_MAP.get(RESIDENCE_GUARD_MAP.containsKey(residenceId) ? residenceId : 0).remove(npc);
return super.onKill(npc, killer, isSummon);
}

View File

@ -202,7 +202,8 @@ public class SiegeGuards extends AbstractNpcAI
@Override
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
{
RESIDENCE_GUARD_MAP.get(npc.getScriptValue()).remove(npc);
final int residenceId = npc.getScriptValue();
RESIDENCE_GUARD_MAP.get(RESIDENCE_GUARD_MAP.containsKey(residenceId) ? residenceId : 0).remove(npc);
return super.onKill(npc, killer, isSummon);
}

View File

@ -202,7 +202,8 @@ public class SiegeGuards extends AbstractNpcAI
@Override
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
{
RESIDENCE_GUARD_MAP.get(npc.getScriptValue()).remove(npc);
final int residenceId = npc.getScriptValue();
RESIDENCE_GUARD_MAP.get(RESIDENCE_GUARD_MAP.containsKey(residenceId) ? residenceId : 0).remove(npc);
return super.onKill(npc, killer, isSummon);
}

View File

@ -202,7 +202,8 @@ public class SiegeGuards extends AbstractNpcAI
@Override
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
{
RESIDENCE_GUARD_MAP.get(npc.getScriptValue()).remove(npc);
final int residenceId = npc.getScriptValue();
RESIDENCE_GUARD_MAP.get(RESIDENCE_GUARD_MAP.containsKey(residenceId) ? residenceId : 0).remove(npc);
return super.onKill(npc, killer, isSummon);
}

View File

@ -202,7 +202,8 @@ public class SiegeGuards extends AbstractNpcAI
@Override
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
{
RESIDENCE_GUARD_MAP.get(npc.getScriptValue()).remove(npc);
final int residenceId = npc.getScriptValue();
RESIDENCE_GUARD_MAP.get(RESIDENCE_GUARD_MAP.containsKey(residenceId) ? residenceId : 0).remove(npc);
return super.onKill(npc, killer, isSummon);
}

View File

@ -202,7 +202,8 @@ public class SiegeGuards extends AbstractNpcAI
@Override
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
{
RESIDENCE_GUARD_MAP.get(npc.getScriptValue()).remove(npc);
final int residenceId = npc.getScriptValue();
RESIDENCE_GUARD_MAP.get(RESIDENCE_GUARD_MAP.containsKey(residenceId) ? residenceId : 0).remove(npc);
return super.onKill(npc, killer, isSummon);
}

View File

@ -202,7 +202,8 @@ public class SiegeGuards extends AbstractNpcAI
@Override
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
{
RESIDENCE_GUARD_MAP.get(npc.getScriptValue()).remove(npc);
final int residenceId = npc.getScriptValue();
RESIDENCE_GUARD_MAP.get(RESIDENCE_GUARD_MAP.containsKey(residenceId) ? residenceId : 0).remove(npc);
return super.onKill(npc, killer, isSummon);
}

View File

@ -166,7 +166,8 @@ public class SiegeGuards extends AbstractNpcAI
@Override
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
{
RESIDENCE_GUARD_MAP.get(npc.getScriptValue()).remove(npc);
final int residenceId = npc.getScriptValue();
RESIDENCE_GUARD_MAP.get(RESIDENCE_GUARD_MAP.containsKey(residenceId) ? residenceId : 0).remove(npc);
return super.onKill(npc, killer, isSummon);
}

View File

@ -166,7 +166,8 @@ public class SiegeGuards extends AbstractNpcAI
@Override
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
{
RESIDENCE_GUARD_MAP.get(npc.getScriptValue()).remove(npc);
final int residenceId = npc.getScriptValue();
RESIDENCE_GUARD_MAP.get(RESIDENCE_GUARD_MAP.containsKey(residenceId) ? residenceId : 0).remove(npc);
return super.onKill(npc, killer, isSummon);
}

View File

@ -166,7 +166,8 @@ public class SiegeGuards extends AbstractNpcAI
@Override
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
{
RESIDENCE_GUARD_MAP.get(npc.getScriptValue()).remove(npc);
final int residenceId = npc.getScriptValue();
RESIDENCE_GUARD_MAP.get(RESIDENCE_GUARD_MAP.containsKey(residenceId) ? residenceId : 0).remove(npc);
return super.onKill(npc, killer, isSummon);
}

View File

@ -166,7 +166,8 @@ public class SiegeGuards extends AbstractNpcAI
@Override
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
{
RESIDENCE_GUARD_MAP.get(npc.getScriptValue()).remove(npc);
final int residenceId = npc.getScriptValue();
RESIDENCE_GUARD_MAP.get(RESIDENCE_GUARD_MAP.containsKey(residenceId) ? residenceId : 0).remove(npc);
return super.onKill(npc, killer, isSummon);
}

View File

@ -166,7 +166,8 @@ public class SiegeGuards extends AbstractNpcAI
@Override
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
{
RESIDENCE_GUARD_MAP.get(npc.getScriptValue()).remove(npc);
final int residenceId = npc.getScriptValue();
RESIDENCE_GUARD_MAP.get(RESIDENCE_GUARD_MAP.containsKey(residenceId) ? residenceId : 0).remove(npc);
return super.onKill(npc, killer, isSummon);
}

View File

@ -166,7 +166,8 @@ public class SiegeGuards extends AbstractNpcAI
@Override
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
{
RESIDENCE_GUARD_MAP.get(npc.getScriptValue()).remove(npc);
final int residenceId = npc.getScriptValue();
RESIDENCE_GUARD_MAP.get(RESIDENCE_GUARD_MAP.containsKey(residenceId) ? residenceId : 0).remove(npc);
return super.onKill(npc, killer, isSummon);
}

View File

@ -166,7 +166,8 @@ public class SiegeGuards extends AbstractNpcAI
@Override
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
{
RESIDENCE_GUARD_MAP.get(npc.getScriptValue()).remove(npc);
final int residenceId = npc.getScriptValue();
RESIDENCE_GUARD_MAP.get(RESIDENCE_GUARD_MAP.containsKey(residenceId) ? residenceId : 0).remove(npc);
return super.onKill(npc, killer, isSummon);
}