68 lines
2.4 KiB
Java
68 lines
2.4 KiB
Java
package world.bentobox.bentobox.blueprints.conversation;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
import org.bukkit.conversations.ConversationContext;
|
|
import org.bukkit.conversations.Prompt;
|
|
import org.bukkit.conversations.StringPrompt;
|
|
import org.bukkit.entity.Player;
|
|
import org.eclipse.jdt.annotation.NonNull;
|
|
|
|
import world.bentobox.bentobox.api.addons.GameModeAddon;
|
|
import world.bentobox.bentobox.api.localization.TextVariables;
|
|
import world.bentobox.bentobox.api.user.User;
|
|
import world.bentobox.bentobox.blueprints.dataobjects.BlueprintBundle;
|
|
import world.bentobox.bentobox.util.Util;
|
|
|
|
|
|
/**
|
|
* Collects a description
|
|
* @author tastybento
|
|
*
|
|
*/
|
|
public class DescriptionPrompt extends StringPrompt {
|
|
|
|
private static final String DESCRIPTION = "description";
|
|
private final GameModeAddon addon;
|
|
private final BlueprintBundle bb;
|
|
|
|
public DescriptionPrompt(GameModeAddon addon, BlueprintBundle bb) {
|
|
this.addon = addon;
|
|
this.bb = bb;
|
|
}
|
|
|
|
@SuppressWarnings("unchecked")
|
|
@Override
|
|
public @NonNull String getPromptText(ConversationContext context) {
|
|
User user = User.getInstance((Player)context.getForWhom());
|
|
if (context.getSessionData(DESCRIPTION) != null) {
|
|
StringBuilder sb = new StringBuilder();
|
|
for (String line : ((List<String>) context.getSessionData(DESCRIPTION))) {
|
|
sb.append(user.getTranslation("commands.admin.blueprint.management.description.default-color"));
|
|
sb.append(line);
|
|
sb.append(System.getProperty("line.separator"));
|
|
}
|
|
return sb.toString();
|
|
}
|
|
return user.getTranslation("commands.admin.blueprint.management.description.instructions", TextVariables.NAME, bb.getDisplayName());
|
|
}
|
|
|
|
@SuppressWarnings("unchecked")
|
|
@Override
|
|
public Prompt acceptInput(ConversationContext context, String input) {
|
|
User user = User.getInstance((Player)context.getForWhom());
|
|
if (input.equals(user.getTranslation("commands.admin.blueprint.management.description.quit"))) {
|
|
return new DescriptionSuccessPrompt(addon, bb);
|
|
}
|
|
List<String> desc = new ArrayList<>();
|
|
if (context.getSessionData(DESCRIPTION) != null) {
|
|
desc = ((List<String>) context.getSessionData(DESCRIPTION));
|
|
}
|
|
desc.add(Util.translateColorCodes(input));
|
|
context.setSessionData(DESCRIPTION, desc);
|
|
return this;
|
|
}
|
|
}
|
|
|