Moves the setTitle command to its own file
This commit is contained in:
parent
7247098a54
commit
bc93ddcec5
@ -24,4 +24,4 @@ Ever wanted to export your book to a text file? Ever want to import it back in?
|
||||
* Give first time players a single book or a set of books when they join
|
||||
* Configurable option to require certain items or pay via Vault compatible economy to create books via command
|
||||
* Add lore to any item with a simple command
|
||||
* Supports adding and saving color to titles, lore, and book contents
|
||||
* Supports adding and saving color to title, lore, and book contents
|
@ -24,6 +24,7 @@ import net.knarcraft.bookswithoutborders.command.CommandSavePublic;
|
||||
import net.knarcraft.bookswithoutborders.command.CommandSetAuthor;
|
||||
import net.knarcraft.bookswithoutborders.command.CommandSetBookPrice;
|
||||
import net.knarcraft.bookswithoutborders.command.CommandSetLore;
|
||||
import net.knarcraft.bookswithoutborders.command.CommandSetTitle;
|
||||
import net.knarcraft.bookswithoutborders.command.CommandUnSign;
|
||||
import net.knarcraft.bookswithoutborders.command.GiveTabCompleter;
|
||||
import net.knarcraft.bookswithoutborders.state.EncryptionStyle;
|
||||
@ -48,7 +49,6 @@ import org.bukkit.inventory.ItemFactory;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.PlayerInventory;
|
||||
import org.bukkit.inventory.meta.BookMeta;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.plugin.RegisteredServiceProvider;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
@ -105,6 +105,7 @@ public class BooksWithoutBorders extends JavaPlugin {
|
||||
registerCommand("savePublic", new CommandSavePublic(this), null);
|
||||
registerCommand("save", new CommandSave(this), null);
|
||||
registerCommand("setAuthor", new CommandSetAuthor(), null);
|
||||
registerCommand("setTitle", new CommandSetTitle(), null);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -359,7 +360,7 @@ public class BooksWithoutBorders extends JavaPlugin {
|
||||
sendSuccessMessage(sender, "If true is specified the book will be signed, if false it will be");
|
||||
sendSuccessMessage(sender, "unsigned");
|
||||
}
|
||||
if (sender.hasPermission("bookswithoutborders.loadpublic")) {
|
||||
if (sender.hasPermission("bookswithoutborders.loadPublic")) {
|
||||
sender.sendMessage(commandColor + "loadPublic [file name or number] [# of copies] [true/false]:");
|
||||
sendSuccessMessage(sender, "Same as Load, but views files in the public directory");
|
||||
}
|
||||
@ -464,7 +465,7 @@ public class BooksWithoutBorders extends JavaPlugin {
|
||||
if (sender instanceof Player player) {
|
||||
|
||||
if (args[0].equalsIgnoreCase("loadPublic")) {
|
||||
if (!sender.hasPermission("bookswithoutborders.loadpublic")) {
|
||||
if (!sender.hasPermission("bookswithoutborders.loadPublic")) {
|
||||
sendErrorMessage(sender, " You don't have permission to use this command!");
|
||||
return false;
|
||||
}
|
||||
@ -561,46 +562,11 @@ public class BooksWithoutBorders extends JavaPlugin {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (args[0].equalsIgnoreCase("setTitle")) {
|
||||
if (!sender.hasPermission("bookswithoutborders.settitle")) {
|
||||
sendErrorMessage(sender, " You don't have permission to use this command!");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (args.length < 2) {
|
||||
sendErrorMessage(sender, "Too few command arguments!");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (((Player) sender).getItemInHand().getType() == Material.AIR) {
|
||||
sendErrorMessage(sender, "You must be holding an item to set title!");
|
||||
return false;
|
||||
}
|
||||
|
||||
String title = String.join(" ", args);
|
||||
title = ChatColor.translateAlternateColorCodes('&', title);
|
||||
|
||||
ItemMeta meta;
|
||||
if (((Player) sender).getItemInHand().getType() == Material.WRITTEN_BOOK) {
|
||||
BookMeta bMeta = (BookMeta) ((Player) sender).getItemInHand().getItemMeta();
|
||||
bMeta.setTitle(title);
|
||||
meta = bMeta;
|
||||
} else {
|
||||
ItemMeta iMeta = ((Player) sender).getItemInHand().getItemMeta();
|
||||
iMeta.setDisplayName(title);
|
||||
meta = iMeta;
|
||||
}
|
||||
|
||||
((Player) sender).getItemInHand().setItemMeta(meta);
|
||||
sendSuccessMessage(sender, "Title set to " + title + "!");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (args[0].equalsIgnoreCase("givePublic")) {
|
||||
if (sender instanceof Player) {
|
||||
if (!sender.hasPermission("bookswithoutborders.givepublic")) {
|
||||
if (!sender.hasPermission("bookswithoutborders.givePublic")) {
|
||||
sendErrorMessage(sender, " You don't have permission to use this command!");
|
||||
return false;
|
||||
}
|
||||
@ -661,7 +627,7 @@ public class BooksWithoutBorders extends JavaPlugin {
|
||||
}
|
||||
}
|
||||
|
||||
if (args[0].equalsIgnoreCase("deletepublic")) {
|
||||
if (args[0].equalsIgnoreCase("deletePublic")) {
|
||||
|
||||
if (sender instanceof Player) {
|
||||
if (!sender.hasPermission("bookswithoutborders.admin")) {
|
||||
@ -981,7 +947,7 @@ public class BooksWithoutBorders extends JavaPlugin {
|
||||
book.setItemMeta(bookMetadata);
|
||||
book.setAmount(numCopies);
|
||||
|
||||
if (booksHavePrice() && !sender.hasPermission("bookswithoutborders.bypassbookprice") &&
|
||||
if (booksHavePrice() && !sender.hasPermission("bookswithoutborders.bypassBookPrice") &&
|
||||
(dir.equalsIgnoreCase("public") || dir.equalsIgnoreCase("player") ||
|
||||
dir.equalsIgnoreCase("")) &&
|
||||
cannotPayForBookPrinting((Player) sender, numCopies)) {
|
||||
|
@ -35,7 +35,7 @@ public class CommandCopy implements CommandExecutor {
|
||||
}
|
||||
|
||||
if (args.length < 1) {
|
||||
BooksWithoutBorders.sendErrorMessage(player, "You must specifiy the number of copies to be made!");
|
||||
BooksWithoutBorders.sendErrorMessage(player, "You must specify the number of copies to be made!");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -44,13 +44,13 @@ public class CommandCopy implements CommandExecutor {
|
||||
try {
|
||||
int copies = Integer.parseInt(args[0]);
|
||||
if (copies > 0) {
|
||||
if (BooksWithoutBorders.authorOnlyCopy && !player.hasPermission("bookswithoutborders.bypassauthoronlycopy")) {
|
||||
if (BooksWithoutBorders.authorOnlyCopy && !player.hasPermission("bookswithoutborders.bypassAuthorOnlyCopy")) {
|
||||
if (!booksWithoutBorders.isAuthor(player, (BookMeta) Objects.requireNonNull(heldBook.getItemMeta())))
|
||||
return false;
|
||||
}
|
||||
|
||||
if (booksWithoutBorders.booksHavePrice() &&
|
||||
!player.hasPermission("bookswithoutborders.bypassbookprice") &&
|
||||
!player.hasPermission("bookswithoutborders.bypassBookPrice") &&
|
||||
booksWithoutBorders.cannotPayForBookPrinting(player, copies)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -0,0 +1,64 @@
|
||||
package net.knarcraft.bookswithoutborders.command;
|
||||
|
||||
import net.knarcraft.bookswithoutborders.BooksWithoutBorders;
|
||||
import net.knarcraft.bookswithoutborders.utility.InventoryHelper;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.BookMeta;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
/**
|
||||
* Command executor for the set title command
|
||||
*/
|
||||
public class CommandSetTitle implements CommandExecutor {
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (!(sender instanceof Player player)) {
|
||||
BooksWithoutBorders.sendErrorMessage(sender, "This command can only be used by a player!");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (args.length < 1) {
|
||||
BooksWithoutBorders.sendErrorMessage(player, "Too few command arguments!");
|
||||
return false;
|
||||
}
|
||||
|
||||
ItemStack heldItem = InventoryHelper.getHeldItem(player, true);
|
||||
if (heldItem.getType() == Material.AIR) {
|
||||
BooksWithoutBorders.sendErrorMessage(sender, "You must be holding an item to set title!");
|
||||
return false;
|
||||
}
|
||||
|
||||
String title = String.join(" ", args);
|
||||
title = ChatColor.translateAlternateColorCodes('&', title);
|
||||
|
||||
ItemMeta itemMetadata = heldItem.getItemMeta();
|
||||
if (itemMetadata == null) {
|
||||
BooksWithoutBorders.sendErrorMessage(sender, "Unable to get metadata for your held item!");
|
||||
return false;
|
||||
}
|
||||
|
||||
//Get and change metadata
|
||||
ItemMeta newMetaData;
|
||||
if (heldItem.getType() == Material.WRITTEN_BOOK) {
|
||||
BookMeta bookMetadata = (BookMeta) itemMetadata;
|
||||
bookMetadata.setTitle(title);
|
||||
newMetaData = bookMetadata;
|
||||
} else {
|
||||
itemMetadata.setDisplayName(title);
|
||||
newMetaData = itemMetadata;
|
||||
}
|
||||
|
||||
//Set the new metadata
|
||||
heldItem.setItemMeta(newMetaData);
|
||||
BooksWithoutBorders.sendSuccessMessage(sender, "Title set to " + title + "!");
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
@ -61,6 +61,10 @@ commands:
|
||||
description: Sets the author of the held book
|
||||
usage: /<command> <author>
|
||||
permission: bookswithoutborders.setauthor
|
||||
settitle:
|
||||
description: Sets the title of the held book
|
||||
usage: /<command> <title>
|
||||
permission: bookswithoutborders.settitle
|
||||
permissions:
|
||||
bookswithoutborders.admin:
|
||||
description: Grants all permissions
|
||||
|
Loading…
Reference in New Issue
Block a user