Dieser Commit ist enthalten in:
Silent 2020-11-20 14:52:50 +01:00
Ursprung 25283705f6
Commit a69d3a07de
5 geänderte Dateien mit 100 neuen und 3 gelöschten Zeilen

Datei anzeigen

@ -10,7 +10,7 @@
<packaging>jar</packaging> <packaging>jar</packaging>
<name>HeadDB</name> <name>HeadDB</name>
<description>Head Database</description> <description>Thousands of heads in a GUI</description>
<repositories> <repositories>
<!-- Paper Repo --> <!-- Paper Repo -->

Datei anzeigen

@ -12,48 +12,119 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
/**
* This class provides simple methods
* for interacting with the HeadDB plugin
*
* @author TheSilentPro
*/
public class HeadAPI { public class HeadAPI {
/**
* Opens the database for a player
*
* @param player Target player
*/
public static void openDatabase(Player player) { public static void openDatabase(Player player) {
InventoryUtils.openDatabase(player); InventoryUtils.openDatabase(player);
} }
/**
* Opens a specific category of the database for a player
*
* @param player Target player
* @param category Category to open
*/
public static void openDatabase(Player player, Category category) { public static void openDatabase(Player player, Category category) {
InventoryUtils.openCategoryDatabase(player, category); InventoryUtils.openCategoryDatabase(player, category);
} }
/**
* Opens the database with results of a specific search term
*
* @param player Target player
* @param search Search term
*/
public static void openDatabase(Player player, String search) { public static void openDatabase(Player player, String search) {
InventoryUtils.openSearchDatabase(player, search); InventoryUtils.openSearchDatabase(player, search);
} }
/**
* Retrieve a {@link Head} by it's ID
*
* @param id The ID of the head
* @return The head
*/
public static Head getHeadByID(int id) { public static Head getHeadByID(int id) {
return HeadDatabase.getHeadByID(id); return HeadDatabase.getHeadByID(id);
} }
/**
* Retrieve a {@link Head} by it's UUID
*
* @param uuid The UUID of the head
* @return The head
*/
public static Head getHeadByUUID(UUID uuid) { public static Head getHeadByUUID(UUID uuid) {
return HeadDatabase.getHeadByUUID(uuid); return HeadDatabase.getHeadByUUID(uuid);
} }
/**
* Retrieves a {@link List} of {@link Head}'s matching a name
*
* @param name The name to match for
* @return List of heads
*/
public static List<Head> getHeadsByName(String name) { public static List<Head> getHeadsByName(String name) {
return HeadDatabase.getHeadsByName(name); return HeadDatabase.getHeadsByName(name);
} }
/**
* Retrieves a {@link List} of {@link Head}'s in a {@link Category} matching a name
*
* @param category The category to search in
* @param name The name to match for
* @return List of heads
*/
public static List<Head> getHeadsByName(Category category, String name) { public static List<Head> getHeadsByName(Category category, String name) {
return HeadDatabase.getHeadsByName(category, name); return HeadDatabase.getHeadsByName(category, name);
} }
/**
* Retrieve a {@link Head} by it's value
*
* @param value The texture value
* @return The head
*/
public static Head getHeadByValue(String value) { public static Head getHeadByValue(String value) {
return HeadDatabase.getHeadByValue(value); return HeadDatabase.getHeadByValue(value);
} }
/**
* Retrieve a {@link List} of {@link Head}'s in a specific {@link Category}
*
* @param category The category to search in
* @return List of heads
*/
public static List<Head> getHeads(Category category) { public static List<Head> getHeads(Category category) {
return HeadDatabase.getHeads(category); return HeadDatabase.getHeads(category);
} }
/**
* Retrieve a {@link List} of all {@link Head}'s
*
* @return List of all heads
*/
public static List<Head> getHeads() { public static List<Head> getHeads() {
return HeadDatabase.getHeads(); return HeadDatabase.getHeads();
} }
/**
* Add a {@link Head} to a players favorites
*
* @param uuid The UUID of the player
* @param id The ID of the head
*/
public static void addFavoriteHead(UUID uuid, int id) { public static void addFavoriteHead(UUID uuid, int id) {
List<Integer> favs = HeadDB.getPlayerdata().getIntList(uuid.toString() + ".favorites"); List<Integer> favs = HeadDB.getPlayerdata().getIntList(uuid.toString() + ".favorites");
if (!favs.contains(id)) { if (!favs.contains(id)) {
@ -63,6 +134,12 @@ public class HeadAPI {
HeadDB.getPlayerdata().save(); HeadDB.getPlayerdata().save();
} }
/**
* Remove a {@link Head} from a players favorites
*
* @param uuid The UUID of the player
* @param id The ID of the head
*/
public static void removeFavoriteHead(UUID uuid, int id) { public static void removeFavoriteHead(UUID uuid, int id) {
List<Integer> favs = HeadDB.getPlayerdata().getIntList(uuid.toString() + ".favorites"); List<Integer> favs = HeadDB.getPlayerdata().getIntList(uuid.toString() + ".favorites");
for (int i = 0; i < favs.size(); i++) { for (int i = 0; i < favs.size(); i++) {
@ -75,6 +152,12 @@ public class HeadAPI {
HeadDB.getPlayerdata().save(); HeadDB.getPlayerdata().save();
} }
/**
* Retrieve a {@link List} of favorite {@link Head} for a player
*
* @param uuid The UUID of the player
* @return List of favorite heads
*/
public static List<Head> getFavoriteHeads(UUID uuid) { public static List<Head> getFavoriteHeads(UUID uuid) {
List<Head> heads = new ArrayList<>(); List<Head> heads = new ArrayList<>();
List<Integer> ids = HeadDB.getPlayerdata().getIntList(uuid.toString() + ".favorites"); List<Integer> ids = HeadDB.getPlayerdata().getIntList(uuid.toString() + ".favorites");
@ -86,6 +169,12 @@ public class HeadAPI {
return heads; return heads;
} }
/**
* Retrieve a {@link List} of local heads.
* These heads are from players that have joined the server at least once.
*
* @return List of {@link LocalHead}'s
*/
public static List<LocalHead> getLocalHeads() { public static List<LocalHead> getLocalHeads() {
List<LocalHead> heads = new ArrayList<>(); List<LocalHead> heads = new ArrayList<>();
for (String key : HeadDB.getPlayerdata().getKeys(false)) { for (String key : HeadDB.getPlayerdata().getKeys(false)) {
@ -99,6 +188,9 @@ public class HeadAPI {
return heads; return heads;
} }
/**
* Update the Head Database
*/
public static void updateDatabase() { public static void updateDatabase() {
HeadDatabase.update(); HeadDatabase.update();
} }

Datei anzeigen

@ -104,7 +104,7 @@ public class Command_headdb implements CommandExecutor {
Utils.sendMessage(sender, " "); Utils.sendMessage(sender, " ");
Utils.sendMessage(sender, "&c&lHeadDB &c- &5Commands"); Utils.sendMessage(sender, "&c&lHeadDB &c- &5Commands");
Utils.sendMessage(sender, "&7&oParameters:&c command &9(aliases) &7- Description"); Utils.sendMessage(sender, "&7&oParameters:&c command &9(aliases)&c arguments... &7- Description");
Utils.sendMessage(sender, " > &c/hdb &7- Opens the database"); Utils.sendMessage(sender, " > &c/hdb &7- Opens the database");
Utils.sendMessage(sender, " > &c/hdb info &9(i) &7- Plugin Information"); Utils.sendMessage(sender, " > &c/hdb info &9(i) &7- Plugin Information");
Utils.sendMessage(sender, " > &c/hdb search &9(s) &c<name> &7- Search for heads matching a name"); Utils.sendMessage(sender, " > &c/hdb search &9(s) &c<name> &7- Search for heads matching a name");

Datei anzeigen

@ -16,6 +16,11 @@ import java.net.URLConnection;
import java.util.*; import java.util.*;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
/**
* This is the Database that holds all heads
*
* @author TheSilentPro
*/
public class HeadDatabase { public class HeadDatabase {
private static final Map<Category, List<Head>> HEADS = new HashMap<>(); private static final Map<Category, List<Head>> HEADS = new HashMap<>();

Datei anzeigen

@ -1,5 +1,5 @@
name: HeadDB name: HeadDB
description: Head Database description: Adds a menu with thousands of heads
main: tsp.headdb.HeadDB main: tsp.headdb.HeadDB
version: 1.3 version: 1.3