Set name line empty if name isn't usable and always use account name

This commit is contained in:
Phoenix616 2019-05-07 23:57:56 +01:00
parent ca94031ddf
commit a8c57bc0ab

View File

@ -12,6 +12,7 @@ import org.bukkit.event.Listener;
import static com.Acrobot.ChestShop.Permission.OTHER_NAME_CREATE;
import static com.Acrobot.ChestShop.Signs.ChestShopSign.NAME_LINE;
import static com.Acrobot.ChestShop.Events.PreShopCreationEvent.CreationOutcome.SHOP_CREATED_SUCCESSFULLY;
import static com.Acrobot.ChestShop.Events.PreShopCreationEvent.CreationOutcome.UNKNOWN_PLAYER;
/**
@ -23,20 +24,22 @@ public class NameChecker implements Listener {
public static void onPreShopCreation(PreShopCreationEvent event) {
String name = event.getSignLine(NAME_LINE);
Player player = event.getPlayer();
event.setSignLine(NAME_LINE, "");
event.setOutcome(UNKNOWN_PLAYER);
if (name.isEmpty() || !NameManager.canUseName(player, OTHER_NAME_CREATE, name)) {
Account account = NameManager.getOrCreateAccount(player);
if (account != null) {
event.setSignLine(NAME_LINE, account.getShortName());
} else {
event.setOutcome(UNKNOWN_PLAYER);
event.setOutcome(SHOP_CREATED_SUCCESSFULLY);
}
} else {
AccountQueryEvent accountQueryEvent = new AccountQueryEvent(name);
Bukkit.getPluginManager().callEvent(accountQueryEvent);
Account account = accountQueryEvent.getAccount();
if (account == null) {
event.setOutcome(UNKNOWN_PLAYER);
if (account != null) {
event.setSignLine(NAME_LINE, account.getShortName());
event.setOutcome(SHOP_CREATED_SUCCESSFULLY);
}
}
}