refator: streamline anvilmanager

This commit is contained in:
aro 2022-11-08 14:44:12 +01:00
parent 7fe7412a2d
commit 39cbfde76f
2 changed files with 19 additions and 33 deletions

View file

@ -2,7 +2,6 @@ package net.artelnatif.nicko.anvil;
import net.artelnatif.nicko.NickoBukkit; import net.artelnatif.nicko.NickoBukkit;
import net.artelnatif.nicko.disguise.AppearanceManager; import net.artelnatif.nicko.disguise.AppearanceManager;
import net.artelnatif.nicko.disguise.NickoProfile;
import net.artelnatif.nicko.disguise.UpdateResult; import net.artelnatif.nicko.disguise.UpdateResult;
import net.artelnatif.nicko.i18n.I18N; import net.artelnatif.nicko.i18n.I18N;
import net.artelnatif.nicko.i18n.I18NDict; import net.artelnatif.nicko.i18n.I18NDict;
@ -15,38 +14,30 @@ import org.bukkit.inventory.meta.ItemMeta;
public class AnvilManager { public class AnvilManager {
private final Player player; private final Player player;
private final NickoProfile profile;
private final AppearanceManager appearanceManager; private final AppearanceManager appearanceManager;
public AnvilManager(Player player) { public AnvilManager(Player player) {
this.player = player; this.player = player;
this.appearanceManager = AppearanceManager.get(player); this.appearanceManager = AppearanceManager.get(player);
this.profile = appearanceManager.getProfile();
} }
public void openNameAndSkinAnvil() { public void openNameThenSkinAnvil() {
final AnvilGUI.Builder skin = getSkinAnvil(); openNameAnvil();
final AnvilGUI.Builder name = new AnvilGUI.Builder() openSkinAnvil();
.plugin(NickoBukkit.getInstance())
.itemLeft(getLeftItem())
.onComplete((anvilPlayer, response) -> {
if (MojangUtils.isUsernameInvalid(response)) {
return AnvilGUI.Response.text("Invalid username!");
} else {
profile.setName(response);
skin.open(player);
return AnvilGUI.Response.close();
} }
})
.text("New name...");
name.open(player); public void openSkinAnvil() {
getSkinAnvil().open(player);
} }
public void openNameAnvil() { public void openNameAnvil() {
new AnvilGUI.Builder() getNameAnvil().open(player);
}
public AnvilGUI.Builder getNameAnvil() {
return new AnvilGUI.Builder()
.plugin(NickoBukkit.getInstance()) .plugin(NickoBukkit.getInstance())
.itemLeft(getLeftItem()) .itemLeft(getLeftItem(false))
.onComplete((anvilPlayer, response) -> { .onComplete((anvilPlayer, response) -> {
if (MojangUtils.isUsernameInvalid(response)) { if (MojangUtils.isUsernameInvalid(response)) {
return AnvilGUI.Response.text("Invalid username!"); return AnvilGUI.Response.text("Invalid username!");
@ -61,18 +52,13 @@ public class AnvilManager {
return AnvilGUI.Response.close(); return AnvilGUI.Response.close();
} }
}) })
.text("New name...") .text("New name...");
.open(player);
}
public void openSkinAnvil() {
getSkinAnvil().open(player);
} }
private AnvilGUI.Builder getSkinAnvil() { private AnvilGUI.Builder getSkinAnvil() {
return new AnvilGUI.Builder() return new AnvilGUI.Builder()
.plugin(NickoBukkit.getInstance()) .plugin(NickoBukkit.getInstance())
.itemLeft(getLeftItem()) .itemLeft(getLeftItem(true))
.onComplete((anvilPlayer, response) -> { .onComplete((anvilPlayer, response) -> {
if (MojangUtils.isUsernameInvalid(response)) { if (MojangUtils.isUsernameInvalid(response)) {
return AnvilGUI.Response.text("Invalid username!"); return AnvilGUI.Response.text("Invalid username!");
@ -90,10 +76,10 @@ public class AnvilManager {
.text("New skin..."); .text("New skin...");
} }
private ItemStack getLeftItem() { private ItemStack getLeftItem(boolean skin) {
final ItemStack item = new ItemStack(Material.PAPER); final ItemStack item = new ItemStack(Material.PAPER);
final ItemMeta meta = item.getItemMeta(); final ItemMeta meta = item.getItemMeta();
meta.setDisplayName("§0ID"); meta.setDisplayName("§0New " + (skin ? "skin" : "name") + "...");
item.setItemMeta(meta); item.setItemMeta(meta);
return item; return item;
} }

View file

@ -24,7 +24,7 @@ public class ChangeNameAndSkinItem extends BaseItem {
if (clickType.isLeftClick() || clickType.isRightClick()) { if (clickType.isLeftClick() || clickType.isRightClick()) {
event.getView().close(); event.getView().close();
final AnvilManager manager = new AnvilManager(player); final AnvilManager manager = new AnvilManager(player);
manager.openNameAndSkinAnvil(); manager.openNameThenSkinAnvil();
} }
} }
} }