9
0
mirror of https://github.com/HibiscusMC/HMCCosmetics.git synced 2025-12-29 11:59:21 +00:00

Initial Commit

This commit is contained in:
LoJoSho
2022-11-06 10:21:01 -06:00
commit a2421cb6eb
53 changed files with 4072 additions and 0 deletions

View File

@@ -0,0 +1,110 @@
package com.hibiscusmc.hmccosmetics.command;
import com.hibiscusmc.hmccosmetics.HMCCosmeticsPlugin;
import com.hibiscusmc.hmccosmetics.config.Settings;
import com.hibiscusmc.hmccosmetics.cosmetic.Cosmetic;
import com.hibiscusmc.hmccosmetics.cosmetic.CosmeticSlot;
import com.hibiscusmc.hmccosmetics.cosmetic.Cosmetics;
import com.hibiscusmc.hmccosmetics.gui.Menu;
import com.hibiscusmc.hmccosmetics.gui.Menus;
import com.hibiscusmc.hmccosmetics.user.CosmeticUser;
import com.hibiscusmc.hmccosmetics.user.CosmeticUsers;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
public class CosmeticCommand implements CommandExecutor {
// cosmetics apply cosmetics playerName
// 0 1 2
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (args.length == 0) {
// Possble default menu here?
return true;
}
if (args[0].equalsIgnoreCase("reload")) {
HMCCosmeticsPlugin.setup();
sender.sendMessage("Reloaded.");
return true;
}
if (args[0].equalsIgnoreCase("apply")) {
Player player = null;
Cosmetic cosmetic;
if (sender instanceof Player) player = ((Player) sender).getPlayer();
if (args.length >= 3) player = Bukkit.getPlayer(args[2]);
cosmetic = Cosmetics.getCosmetic(args[1]);
if (player == null || cosmetic == null) {
sender.sendMessage("Something was null");
return true;
}
CosmeticUser user = CosmeticUsers.getUser(player);
user.addPlayerCosmetic(cosmetic);
user.updateCosmetic(cosmetic.getSlot());
return true;
}
if (args[0].equalsIgnoreCase("unapply")) {
Player player = null;
Cosmetic cosmetic;
if (sender instanceof Player) player = ((Player) sender).getPlayer();
if (args.length >= 3) player = Bukkit.getPlayer(args[2]);
cosmetic = Cosmetics.getCosmetic(args[1]);
if (player == null || cosmetic == null) {
sender.sendMessage("Something was null");
return true;
}
CosmeticUser user = CosmeticUsers.getUser(player);
CosmeticSlot slot = cosmetic.getSlot();
user.removeCosmeticSlot(cosmetic);
user.updateCosmetic(slot);
return true;
}
if (args[0].equalsIgnoreCase("wardrobe")) {
Player player = null;
if (sender instanceof Player) player = ((Player) sender).getPlayer();
if (args.length >= 3) player = Bukkit.getPlayer(args[2]);
if (player == null) {
sender.sendMessage("Player was null");
return true;
}
CosmeticUser user = CosmeticUsers.getUser(player);
user.toggleWardrobe();
return true;
}
// cosmetic menu exampleMenu playerName
if (args[0].equalsIgnoreCase("menu")) {
Menu menu = Menus.getMenu(args[1]);
Player player = null;
if (sender instanceof Player) player = ((Player) sender).getPlayer();
if (args.length >= 3) player = Bukkit.getPlayer(args[2]);
if (player == null || menu == null) {
sender.sendMessage("Something was null");
return true;
}
menu.openMenu(CosmeticUsers.getUser(player));
return true;
}
return true;
}
}

View File

@@ -0,0 +1,58 @@
package com.hibiscusmc.hmccosmetics.command;
import com.hibiscusmc.hmccosmetics.cosmetic.Cosmetics;
import com.hibiscusmc.hmccosmetics.gui.Menus;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabCompleter;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class CosmeticCommandTabComplete implements TabCompleter {
@Nullable
@Override
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, @NotNull String[] args) {
List<String> completions = new ArrayList<>();
if (args.length == 1) {
completions.add("apply");
completions.add("wardrobe");
completions.add("unapply");
completions.add("menu");
completions.add("reload");
}
if (args.length >= 2) {
if (args[0].equalsIgnoreCase("apply") || args[0].equalsIgnoreCase("unapply")) {
completions.addAll(applyCommandComplete(args));
} else if (args[0].equalsIgnoreCase("menu")) {
completions.addAll(Menus.getMenuNames());
}
}
Collections.sort(completions);
return completions;
}
private static List<String> applyCommandComplete(String[] args) {
List<String> completitions = new ArrayList<>();
if (args.length == 2) {
completitions.addAll(Cosmetics.keys());
} else {
if (args.length == 3) {
for (Player player : Bukkit.getOnlinePlayers()) {
completitions.add(player.getName());
}
}
}
return completitions;
}
}