This commit is contained in:
2024-01-26 21:25:48 +01:00
parent f61e6d865e
commit b08fb8e5a4
5 changed files with 393 additions and 10 deletions

View File

@@ -42,8 +42,11 @@ public class VoidCommands implements CommandExecutor, TabCompleter{
});
return true;
case "give":
//TODO(Balance): Give to a player
return true;
if(args.length < 2) return false;
Player target = Bukkit.getPlayer(args[1]);
if(target != null && sender instanceof Player ply)
Voids.give(ply,target, Integer.parseInt(args[2]));
break;
case "event":
//TODO(event) manage event
return true;
@@ -91,8 +94,8 @@ public class VoidCommands implements CommandExecutor, TabCompleter{
if(args.length < 5) return false;
switch (args[2]) {
case "set":
Player target = Bukkit.getPlayer(args[3]);
Voids.set(target, Integer.parseInt(args[4]));
Player target_ = Bukkit.getPlayer(args[3]);
Voids.set(target_, Integer.parseInt(args[4]));
return true;
case "add":
case "sub":
@@ -119,7 +122,7 @@ public class VoidCommands implements CommandExecutor, TabCompleter{
}
@Override
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) {
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) { //TODO: add all commands
ArrayList<String> list = new ArrayList<>();
if(args.length == 1){
@@ -136,7 +139,7 @@ public class VoidCommands implements CommandExecutor, TabCompleter{
return list;
case "manage":
if(sender.hasPermission("void.manage")){
if(args[1] == "balance"){
if(args[1] == "balance" && args.length <= 3){
list.addAll(List.of("set", "add", "sub"));
return list;
}

View File

@@ -15,9 +15,7 @@ import org.bukkit.entity.Player;
import org.bukkit.entity.Villager;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryAction;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryInteractEvent;
import org.bukkit.event.player.PlayerInteractEntityEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.world.EntitiesLoadEvent;
@@ -38,6 +36,7 @@ public class Merchand implements Listener{
public static Tuple<Material, Integer> current, next;
private static Merchand instance;
private static final ArrayList<Material> mat = new ArrayList<>();
private static final ArrayList<String> names = new ArrayList<>();
private final Inventory inv;
private Villager m ;
@@ -51,6 +50,8 @@ public class Merchand implements Listener{
private Merchand() {
inv = Bukkit.createInventory(null, 9);
//Get file materials
File f = new File(TheVoidRoad.instance.getDataFolder(), "materials.txt");
try {
for (String s : Files.readAllLines(f.toPath())) {
@@ -59,10 +60,22 @@ public class Merchand implements Listener{
} catch(Exception e){
e.printStackTrace();
}
f = new File(TheVoidRoad.instance.getDataFolder(), "names.txt");
try {
for (String s : Files.readAllLines(f.toPath())) {
names.add(s);
}
} catch(Exception e){
e.printStackTrace();
}
//Is the game inited
if(DatabaseManager.getInstance().getConfig("init") != null &&
DatabaseManager.getInstance().getConfig("init").equalsIgnoreCase("true")){
regenerate();
}
//Webhook connection
}
public void regenerate(){
@@ -75,6 +88,7 @@ public class Merchand implements Listener{
m.getPersistentDataContainer().set(tagger, PersistentDataType.BOOLEAN, true);
m.setGlowing(true);
m.setInvulnerable(true);
m.customName(Component.text(names.get(new Random().nextInt(names.size()))));
Bukkit.getServer().forEachAudience((a) -> {
if(a instanceof Player ply){
ply.setCompassTarget(m.getLocation());
@@ -144,7 +158,7 @@ public class Merchand implements Listener{
//Do we have the item and if so remove them
if(ply.getInventory().contains(current.x)){
for (ItemStack i : ply.getInventory().getContents()) {
if(i.getType() == current.x){
if(i != null && i.getType() == current.x){
i.subtract(1);
Voids.add(ply, current.y);
return;

View File

@@ -21,6 +21,7 @@ public class TheVoidRoad extends JavaPlugin{
public void onEnable(){
saveResource("materials.txt", false);
saveResource("names.txt", false);
//Commands
getCommand("void").setExecutor(new VoidCommands());