Initial commit

This commit is contained in:
2023-04-05 22:02:29 +02:00
commit ea3f25e278
13 changed files with 809 additions and 0 deletions

View File

@@ -0,0 +1,72 @@
package net.knarcraft.placeholdersigns.command;
import net.knarcraft.placeholdersigns.PlaceholderSigns;
import net.knarcraft.placeholdersigns.container.LineChangeRequest;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabExecutor;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.List;
/**
* A command for setting a sign's text to anything longer than normally possible
*/
public class EditSignCommand implements TabExecutor {
private static final List<String> lineNumbers;
static {
lineNumbers = new ArrayList<>();
for (int i = 1; i < 5; i++) {
lineNumbers.add(String.valueOf(i));
}
}
@Override
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s,
@NotNull String[] args) {
if (args.length < 2 || !(commandSender instanceof Player player)) {
return false;
}
// Parse the specified line number
int lineNumber;
try {
lineNumber = Integer.parseInt(args[0]);
if (lineNumber < 0 || lineNumber > 4) {
return false;
}
} catch (NumberFormatException exception) {
return false;
}
// Get all arguments as a space-separated string
StringBuilder builder = new StringBuilder(args[1]);
for (int i = 2; i < args.length; i++) {
builder.append(" ").append(args[i]);
}
// Register the line change request
LineChangeRequest request = new LineChangeRequest(player, lineNumber - 1, builder.toString());
PlaceholderSigns.getInstance().addChangeRequest(request);
commandSender.sendMessage("Please click the sign you want to change.");
return true;
}
@Nullable
@Override
public List<String> onTabComplete(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s,
@NotNull String[] args) {
if (args.length == 1) {
return lineNumbers;
} else {
return new ArrayList<>();
}
}
}