fix: npe on name change only

This commit is contained in:
aro 2022-12-05 18:13:40 +01:00
parent 93efcd2536
commit 451e1c4c95
3 changed files with 11 additions and 8 deletions

View file

@ -59,10 +59,10 @@ public class AnvilManager {
} else {
appearanceManager.setName(response);
final UpdateResult updateResult = appearanceManager.updatePlayer(false);
if (updateResult.isError()) {
if (!updateResult.isError()) {
player.sendMessage(I18N.translate(player, I18NDict.Event.DISGUISE_SUCCESS));
} else {
player.sendMessage(I18N.translate(player, I18NDict.Event.DISGUISE_FAIL));
player.sendMessage(I18N.translate(player, I18NDict.Event.DISGUISE_FAIL, updateResult.getErrorMessage()));
}
return AnvilGUI.Response.close();
}
@ -83,7 +83,7 @@ public class AnvilManager {
if (!updateResult.isError()) {
player.sendMessage(I18N.translate(player, I18NDict.Event.DISGUISE_SUCCESS));
} else {
player.sendMessage(I18N.translate(player, I18NDict.Event.DISGUISE_FAIL));
player.sendMessage(I18N.translate(player, I18NDict.Event.DISGUISE_FAIL, updateResult.getErrorMessage()));
}
return AnvilGUI.Response.close();
}

View file

@ -43,6 +43,10 @@ public class AppearanceManager {
return profile.getSkin();
}
public boolean needsASkinChange() {
return profile.getSkin() != null && !profile.getSkin().equals(player.getName());
}
public void setName(String name) {
profile.setName(name);
}

View file

@ -20,12 +20,11 @@ public class PlayerJoinListener implements Listener {
final AppearanceManager appearanceManager = AppearanceManager.get(player);
if (appearanceManager.hasData()) {
final boolean skinChange = !player.getName().equals(appearanceManager.getSkin());
final UpdateResult updateResult = appearanceManager.updatePlayer(skinChange);
if (updateResult.isError()) {
player.sendMessage(I18N.translate(player, I18NDict.Event.PREVIOUS_SKIN_APPLY_FAIL, I18N.translate(player, updateResult.getErrorMessage())));
} else {
final UpdateResult updateResult = appearanceManager.updatePlayer(appearanceManager.needsASkinChange());
if (!updateResult.isError()) {
player.sendMessage(I18N.translate(player, I18NDict.Event.PREVIOUS_SKIN_APPLIED));
} else {
player.sendMessage(I18N.translate(player, I18NDict.Event.PREVIOUS_SKIN_APPLY_FAIL, I18N.translate(player, updateResult.getErrorMessage())));
}
}
}, 20L);