MortarTuner now has actual code

master
Soper Aylamo 2021-05-25 23:32:39 -04:00
parent b27f56efdb
commit d7c15f6e4c
Signed by: Soper
GPG Key ID: A27AC885ACC3BEAE
1 changed files with 60 additions and 1 deletions

View File

@ -1,4 +1,63 @@
package xyz.soper.arty.item; package xyz.soper.arty.item;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.inventory.ItemStack;
import java.util.List;
public class MortarTuner { public class MortarTuner {
}
/**
* Linked location of the mortar object. Contains only coordinate data.
*/
private final Location linkedLocation;
public static final String BASIC_TUNER_NAME = ChatColor.RESET + "Basic Tuner";
public static final String NORMAL_TUNER_NAME = ChatColor.RESET + "Mortar Tuner";
MortarTuner(ItemStack tuner){
if(isTuner(tuner)){
String[] coords = tuner.getItemMeta().getLore().get(0).substring(20).split(", ");
linkedLocation = new Location(
null,
Double.parseDouble(coords[0]),
Double.parseDouble(coords[1]),
Double.parseDouble(coords[2])
);
} else throw new IllegalArgumentException("Incompatible ItemStack in MortarTuner constructor");
}
/**
* Gets the last location of the linked mortar.
* WARNING: Contains a null world, must be changed before it can be used.
* @return Location of last linked mortar with a null world.
*/
public Location getLinkedLocation() {
return linkedLocation;
}
public static void updateTunerLocation(ItemStack tuner, Location location) throws IllegalArgumentException{
if(!isTuner(tuner)){
throw new IllegalArgumentException("Tried to update an non-tuner item with tuner data");
}
List<String> lore = tuner.getItemMeta().getLore();
lore.set(0, ChatColor.GOLD + "Linked to Mortar at " + location.getBlockX() + ", " + location.getBlockY() + ", " + location.getBlockZ());
tuner.getItemMeta().setLore(lore);
}
// public static void updateTunerStatus(ItemStack tuner, boolean reset){
// if(!isTuner(tuner)){
// throw new IllegalArgumentException("Tried to update an non-tuner item with tuner data");
// }
// if(reset || )
// List<String> lore = tuner.getItemMeta().getLore();
// if(lore.size() == 1) lore.add(ChatColor.RED + "VERT");
// }
public static boolean isTuner(ItemStack item){
return (item.hasItemMeta() && item.getItemMeta().hasDisplayName())
&& (item.getItemMeta().getDisplayName().equals(BASIC_TUNER_NAME)
|| item.getItemMeta().getDisplayName().equals(NORMAL_TUNER_NAME));
}
}