Mirror von
https://github.com/TheSilentPro/HeadDB.git
synchronisiert 2024-12-27 11:20:05 +01:00
migrate to nexuslib, add blockedHeads, fix langs/favs
Dieser Commit ist enthalten in:
Ursprung
421757e484
Commit
19fbd70bf8
6
pom.xml
6
pom.xml
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<groupId>tsp.headdb</groupId>
|
<groupId>tsp.headdb</groupId>
|
||||||
<artifactId>HeadDB</artifactId>
|
<artifactId>HeadDB</artifactId>
|
||||||
<version>5.0.0-rc.5</version>
|
<version>5.0.0-rc.6</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<name>HeadDB</name>
|
<name>HeadDB</name>
|
||||||
@ -74,8 +74,8 @@
|
|||||||
<!-- Hard Dependencies (Shaded) -->
|
<!-- Hard Dependencies (Shaded) -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.github.TheSilentPro</groupId>
|
<groupId>com.github.TheSilentPro</groupId>
|
||||||
<artifactId>SmartPlugin</artifactId>
|
<artifactId>NexusLib</artifactId>
|
||||||
<version>737fc7b893</version>
|
<version>c01a0a0a7d</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.github.TheSilentPro</groupId>
|
<groupId>com.github.TheSilentPro</groupId>
|
||||||
|
@ -1,36 +1,25 @@
|
|||||||
package tsp.headdb;
|
package tsp.headdb;
|
||||||
|
|
||||||
import org.bukkit.command.PluginCommand;
|
import org.bukkit.command.PluginCommand;
|
||||||
import tsp.headdb.core.command.CommandCategory;
|
import tsp.headdb.core.command.*;
|
||||||
import tsp.headdb.core.command.CommandGive;
|
|
||||||
import tsp.headdb.core.command.CommandHelp;
|
|
||||||
import tsp.headdb.core.command.CommandInfo;
|
|
||||||
import tsp.headdb.core.command.CommandLanguage;
|
|
||||||
import tsp.headdb.core.command.CommandMain;
|
|
||||||
import tsp.headdb.core.command.CommandManager;
|
|
||||||
import tsp.headdb.core.command.CommandReload;
|
|
||||||
import tsp.headdb.core.command.CommandSearch;
|
|
||||||
|
|
||||||
import tsp.headdb.core.command.CommandSettings;
|
|
||||||
import tsp.headdb.core.command.CommandTexture;
|
|
||||||
import tsp.headdb.core.command.CommandUpdate;
|
|
||||||
import tsp.headdb.core.economy.BasicEconomyProvider;
|
import tsp.headdb.core.economy.BasicEconomyProvider;
|
||||||
import tsp.headdb.core.economy.VaultProvider;
|
import tsp.headdb.core.economy.VaultProvider;
|
||||||
import tsp.headdb.core.storage.Storage;
|
import tsp.headdb.core.storage.Storage;
|
||||||
import tsp.headdb.core.task.UpdateTask;
|
import tsp.headdb.core.task.UpdateTask;
|
||||||
|
|
||||||
import tsp.headdb.core.util.HeadDBLogger;
|
import tsp.headdb.core.util.HeadDBLogger;
|
||||||
import tsp.smartplugin.SmartPlugin;
|
import tsp.nexuslib.NexusPlugin;
|
||||||
import tsp.smartplugin.inventory.PaneListener;
|
import tsp.nexuslib.inventory.PaneListener;
|
||||||
import tsp.smartplugin.localization.TranslatableLocalization;
|
import tsp.nexuslib.localization.TranslatableLocalization;
|
||||||
import tsp.smartplugin.utils.PluginUtils;
|
import tsp.nexuslib.util.PluginUtils;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URISyntaxException;
|
import java.net.URISyntaxException;
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
public class HeadDB extends SmartPlugin {
|
public class HeadDB extends NexusPlugin {
|
||||||
|
|
||||||
private static HeadDB instance;
|
private static HeadDB instance;
|
||||||
private HeadDBLogger logger;
|
private HeadDBLogger logger;
|
||||||
@ -40,7 +29,7 @@ public class HeadDB extends SmartPlugin {
|
|||||||
private CommandManager commandManager;
|
private CommandManager commandManager;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onStart() {
|
public void onStart(NexusPlugin nexusPlugin) {
|
||||||
instance = this;
|
instance = this;
|
||||||
instance.saveDefaultConfig();
|
instance.saveDefaultConfig();
|
||||||
instance.logger = new HeadDBLogger(getConfig().getBoolean("debug"));
|
instance.logger = new HeadDBLogger(getConfig().getBoolean("debug"));
|
||||||
@ -66,6 +55,16 @@ public class HeadDB extends SmartPlugin {
|
|||||||
public void onDisable() {
|
public void onDisable() {
|
||||||
if (storage != null) {
|
if (storage != null) {
|
||||||
storage.getPlayerStorage().suspend();
|
storage.getPlayerStorage().suspend();
|
||||||
|
File langFile = new File(getDataFolder(), "langs.data");
|
||||||
|
if (!langFile.exists()) {
|
||||||
|
try {
|
||||||
|
langFile.createNewFile();
|
||||||
|
localization.saveLanguages(langFile);
|
||||||
|
} catch (IOException ex) {
|
||||||
|
logger.error("Failed to save receiver langauges!");
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -101,7 +100,13 @@ public class HeadDB extends SmartPlugin {
|
|||||||
instance.localization = new TranslatableLocalization(this, "messages");
|
instance.localization = new TranslatableLocalization(this, "messages");
|
||||||
try {
|
try {
|
||||||
instance.localization.createDefaults();
|
instance.localization.createDefaults();
|
||||||
return instance.localization.load();
|
int count = instance.localization.load();
|
||||||
|
File langFile = new File(getDataFolder(), "langs.data");
|
||||||
|
if (langFile.exists()) {
|
||||||
|
localization.loadLanguages(langFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
return count;
|
||||||
} catch (URISyntaxException | IOException ex) {
|
} catch (URISyntaxException | IOException ex) {
|
||||||
instance.logger.error("Failed to load localization!");
|
instance.logger.error("Failed to load localization!");
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
|
@ -1,21 +1,17 @@
|
|||||||
package tsp.headdb;
|
package tsp.headdb;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import org.bukkit.Bukkit;
|
||||||
import java.io.ByteArrayOutputStream;
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
import java.io.DataOutputStream;
|
import org.bukkit.entity.Player;
|
||||||
import java.io.File;
|
import org.bukkit.plugin.Plugin;
|
||||||
import java.io.IOException;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
import java.io.InputStreamReader;
|
|
||||||
|
import javax.net.ssl.HttpsURLConnection;
|
||||||
|
import java.io.*;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.Arrays;
|
import java.util.*;
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.UUID;
|
|
||||||
import java.util.concurrent.Callable;
|
import java.util.concurrent.Callable;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
@ -26,12 +22,6 @@ import java.util.function.Supplier;
|
|||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.zip.GZIPOutputStream;
|
import java.util.zip.GZIPOutputStream;
|
||||||
import javax.net.ssl.HttpsURLConnection;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.plugin.Plugin;
|
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
|
||||||
|
|
||||||
@SuppressWarnings({"all", "deprecation"}) // Class is from bstats, can't modify it.
|
@SuppressWarnings({"all", "deprecation"}) // Class is from bstats, can't modify it.
|
||||||
class Metrics {
|
class Metrics {
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package tsp.headdb.core.api;
|
package tsp.headdb.core.api;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
|
||||||
import tsp.headdb.HeadDB;
|
import tsp.headdb.HeadDB;
|
||||||
import tsp.headdb.core.storage.PlayerData;
|
import tsp.headdb.core.storage.PlayerData;
|
||||||
import tsp.headdb.core.util.Utils;
|
import tsp.headdb.core.util.Utils;
|
||||||
@ -12,14 +11,7 @@ import tsp.headdb.implementation.head.LocalHead;
|
|||||||
import tsp.headdb.implementation.requester.HeadProvider;
|
import tsp.headdb.implementation.requester.HeadProvider;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.UUID;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -7,7 +7,7 @@ import tsp.headdb.core.api.HeadAPI;
|
|||||||
import tsp.headdb.core.util.Utils;
|
import tsp.headdb.core.util.Utils;
|
||||||
import tsp.headdb.implementation.category.Category;
|
import tsp.headdb.implementation.category.Category;
|
||||||
import tsp.headdb.implementation.head.Head;
|
import tsp.headdb.implementation.head.Head;
|
||||||
import tsp.smartplugin.inventory.PagedPane;
|
import tsp.nexuslib.inventory.PagedPane;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package tsp.headdb.core.command;
|
package tsp.headdb.core.command;
|
||||||
|
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import tsp.smartplugin.player.PlayerUtils;
|
import tsp.nexuslib.player.PlayerUtils;
|
||||||
|
|
||||||
public class CommandHelp extends SubCommand {
|
public class CommandHelp extends SubCommand {
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@ package tsp.headdb.core.command;
|
|||||||
|
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import tsp.headdb.HeadDB;
|
import tsp.headdb.HeadDB;
|
||||||
import tsp.smartplugin.player.PlayerUtils;
|
import tsp.nexuslib.player.PlayerUtils;
|
||||||
|
|
||||||
public class CommandInfo extends SubCommand {
|
public class CommandInfo extends SubCommand {
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package tsp.headdb.core.command;
|
package tsp.headdb.core.command;
|
||||||
|
|
||||||
|
import net.wesjd.anvilgui.AnvilGUI;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
@ -8,23 +9,20 @@ import org.bukkit.command.CommandSender;
|
|||||||
import org.bukkit.command.TabCompleter;
|
import org.bukkit.command.TabCompleter;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import tsp.headdb.HeadDB;
|
import tsp.headdb.HeadDB;
|
||||||
import tsp.headdb.core.api.HeadAPI;
|
import tsp.headdb.core.api.HeadAPI;
|
||||||
import tsp.headdb.core.util.Utils;
|
import tsp.headdb.core.util.Utils;
|
||||||
import tsp.headdb.implementation.category.Category;
|
import tsp.headdb.implementation.category.Category;
|
||||||
import tsp.headdb.implementation.head.Head;
|
import tsp.headdb.implementation.head.Head;
|
||||||
import tsp.headdb.implementation.head.LocalHead;
|
import tsp.headdb.implementation.head.LocalHead;
|
||||||
import tsp.smartplugin.inventory.Button;
|
import tsp.nexuslib.inventory.Button;
|
||||||
import tsp.smartplugin.inventory.PagedPane;
|
import tsp.nexuslib.inventory.PagedPane;
|
||||||
import tsp.smartplugin.inventory.Pane;
|
import tsp.nexuslib.inventory.Pane;
|
||||||
import net.wesjd.anvilgui.AnvilGUI;
|
import tsp.nexuslib.util.StringUtils;
|
||||||
import tsp.smartplugin.utils.StringUtils;
|
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import javax.annotation.ParametersAreNonnullByDefault;
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@ -192,8 +190,7 @@ public class CommandMain extends HeadDBCommand implements CommandExecutor, TabCo
|
|||||||
return new ArrayList<>(sub.get().getCompletions());
|
return new ArrayList<>(sub.get().getCompletions());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return null;
|
||||||
return Collections.singletonList("error"); // for debug purpose, todo: remove
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@ import org.bukkit.entity.Player;
|
|||||||
import tsp.headdb.core.api.HeadAPI;
|
import tsp.headdb.core.api.HeadAPI;
|
||||||
import tsp.headdb.core.util.Utils;
|
import tsp.headdb.core.util.Utils;
|
||||||
import tsp.headdb.implementation.head.Head;
|
import tsp.headdb.implementation.head.Head;
|
||||||
import tsp.smartplugin.inventory.PagedPane;
|
import tsp.nexuslib.inventory.PagedPane;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -5,11 +5,11 @@ import org.bukkit.Material;
|
|||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import tsp.headdb.core.util.Utils;
|
import tsp.headdb.core.util.Utils;
|
||||||
import tsp.smartplugin.builder.item.ItemBuilder;
|
import tsp.nexuslib.builder.ItemBuilder;
|
||||||
import tsp.smartplugin.inventory.Button;
|
import tsp.nexuslib.inventory.Button;
|
||||||
import tsp.smartplugin.inventory.PagedPane;
|
import tsp.nexuslib.inventory.PagedPane;
|
||||||
import tsp.smartplugin.inventory.Pane;
|
import tsp.nexuslib.inventory.Pane;
|
||||||
import tsp.smartplugin.utils.StringUtils;
|
import tsp.nexuslib.util.StringUtils;
|
||||||
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ import net.md_5.bungee.api.chat.hover.content.Text;
|
|||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import tsp.headdb.core.util.Utils;
|
import tsp.headdb.core.util.Utils;
|
||||||
import tsp.smartplugin.utils.StringUtils;
|
import tsp.nexuslib.util.StringUtils;
|
||||||
|
|
||||||
public class CommandTexture extends SubCommand {
|
public class CommandTexture extends SubCommand {
|
||||||
|
|
||||||
|
@ -2,8 +2,8 @@ package tsp.headdb.core.command;
|
|||||||
|
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import tsp.headdb.HeadDB;
|
import tsp.headdb.HeadDB;
|
||||||
import tsp.smartplugin.localization.TranslatableLocalization;
|
import tsp.nexuslib.localization.TranslatableLocalization;
|
||||||
import tsp.smartplugin.utils.Validate;
|
import tsp.nexuslib.util.Validate;
|
||||||
|
|
||||||
import javax.annotation.ParametersAreNonnullByDefault;
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -4,9 +4,4 @@ import java.io.Serializable;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
// Notice that there is no need to add any additional boilerplate in order to make this serializable.
|
|
||||||
// Specifically, there is no need to add a serialVersionUID field,
|
|
||||||
// since the serialVersionUID of a record class is 0L unless explicitly declared,
|
|
||||||
// and the requirement for matching the serialVersionUID value is waived for record classes.
|
|
||||||
// Source: https://docs.oracle.com/en/java/javase/15/serializable-records/index.html#:~:text=Specifically%2C%20there%20is%20no%20need,is%20waived%20for%20record%20classes.
|
|
||||||
public record PlayerData(UUID uniqueId, Set<String> favorites) implements Serializable {}
|
public record PlayerData(UUID uniqueId, Set<String> favorites) implements Serializable {}
|
@ -4,13 +4,7 @@ import tsp.headdb.HeadDB;
|
|||||||
import tsp.warehouse.storage.file.SerializableFileDataManager;
|
import tsp.warehouse.storage.file.SerializableFileDataManager;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.Collections;
|
import java.util.*;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
public class PlayerStorage extends SerializableFileDataManager<HashSet<PlayerData>> {
|
public class PlayerStorage extends SerializableFileDataManager<HashSet<PlayerData>> {
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ package tsp.headdb.core.task;
|
|||||||
import tsp.headdb.HeadDB;
|
import tsp.headdb.HeadDB;
|
||||||
import tsp.headdb.core.api.HeadAPI;
|
import tsp.headdb.core.api.HeadAPI;
|
||||||
import tsp.headdb.implementation.head.Head;
|
import tsp.headdb.implementation.head.Head;
|
||||||
import tsp.smartplugin.tasker.Task;
|
import tsp.nexuslib.task.Task;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
@ -25,7 +25,7 @@ public class UpdateTask implements Task {
|
|||||||
size++;
|
size++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
HeadDB.getInstance().getLog().debug("Fetched: " + size + " Heads | Provider: " + HeadAPI.getDatabase().getRequester().getProvider().name() + " | Time: " + time + "ms (" + TimeUnit.MILLISECONDS.toSeconds(time) + "s)");
|
HeadDB.getInstance().getLog().info("Fetched: " + size + " Heads | Provider: " + HeadAPI.getDatabase().getRequester().getProvider().name() + " | Time: " + time + "ms (" + TimeUnit.MILLISECONDS.toSeconds(time) + "s)");
|
||||||
});
|
});
|
||||||
HeadDB.getInstance().getStorage().getPlayerStorage().backup();
|
HeadDB.getInstance().getStorage().getPlayerStorage().backup();
|
||||||
HeadDB.getInstance().getLog().debug("UpdateTask finished!");
|
HeadDB.getInstance().getLog().debug("UpdateTask finished!");
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package tsp.headdb.core.util;
|
package tsp.headdb.core.util;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import tsp.smartplugin.utils.StringUtils;
|
import tsp.nexuslib.util.StringUtils;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
public class HeadDBLogger {
|
public class HeadDBLogger {
|
||||||
|
@ -16,23 +16,18 @@ import tsp.headdb.core.economy.BasicEconomyProvider;
|
|||||||
import tsp.headdb.core.hook.Hooks;
|
import tsp.headdb.core.hook.Hooks;
|
||||||
import tsp.headdb.implementation.category.Category;
|
import tsp.headdb.implementation.category.Category;
|
||||||
import tsp.headdb.implementation.head.Head;
|
import tsp.headdb.implementation.head.Head;
|
||||||
import tsp.smartplugin.inventory.Button;
|
import tsp.nexuslib.inventory.Button;
|
||||||
import tsp.smartplugin.inventory.PagedPane;
|
import tsp.nexuslib.inventory.PagedPane;
|
||||||
import tsp.smartplugin.inventory.Pane;
|
import tsp.nexuslib.inventory.Pane;
|
||||||
import tsp.smartplugin.utils.StringUtils;
|
import tsp.nexuslib.util.StringUtils;
|
||||||
import tsp.smartplugin.utils.Validate;
|
import tsp.nexuslib.util.Validate;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import javax.annotation.ParametersAreNonnullByDefault;
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Locale;
|
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.UUID;
|
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
|
||||||
public class Utils {
|
public class Utils {
|
||||||
@ -131,7 +126,7 @@ public class Utils {
|
|||||||
Utils.purchase(player, head, amount);
|
Utils.purchase(player, head, amount);
|
||||||
} else if (fe.isRightClick()) {
|
} else if (fe.isRightClick()) {
|
||||||
HeadDB.getInstance().getStorage().getPlayerStorage().removeFavorite(player.getUniqueId(), head.getTexture());
|
HeadDB.getInstance().getStorage().getPlayerStorage().removeFavorite(player.getUniqueId(), head.getTexture());
|
||||||
HeadDB.getInstance().getLocalization().sendMessage(player, "removedFavorites");
|
HeadDB.getInstance().getLocalization().sendMessage(player, "removedFavorite");
|
||||||
openFavoritesMenu(player);
|
openFavoritesMenu(player);
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
@ -162,7 +157,7 @@ public class Utils {
|
|||||||
} else if (e.isRightClick()) {
|
} else if (e.isRightClick()) {
|
||||||
if (player.hasPermission("headdb.favorites")) {
|
if (player.hasPermission("headdb.favorites")) {
|
||||||
HeadDB.getInstance().getStorage().getPlayerStorage().addFavorite(player.getUniqueId(), head.getTexture());
|
HeadDB.getInstance().getStorage().getPlayerStorage().addFavorite(player.getUniqueId(), head.getTexture());
|
||||||
HeadDB.getInstance().getLocalization().sendMessage(player, "addedFavorites");
|
HeadDB.getInstance().getLocalization().sendMessage(player, "addedFavorite");
|
||||||
} else {
|
} else {
|
||||||
HeadDB.getInstance().getLocalization().sendMessage(player, "noAccessFavorites");
|
HeadDB.getInstance().getLocalization().sendMessage(player, "noAccessFavorites");
|
||||||
}
|
}
|
||||||
|
@ -6,8 +6,8 @@ import org.bukkit.inventory.meta.ItemMeta;
|
|||||||
import tsp.headdb.HeadDB;
|
import tsp.headdb.HeadDB;
|
||||||
import tsp.headdb.core.api.HeadAPI;
|
import tsp.headdb.core.api.HeadAPI;
|
||||||
import tsp.headdb.core.util.Utils;
|
import tsp.headdb.core.util.Utils;
|
||||||
import tsp.smartplugin.builder.item.ItemBuilder;
|
import tsp.nexuslib.builder.ItemBuilder;
|
||||||
import tsp.smartplugin.utils.StringUtils;
|
import tsp.nexuslib.util.StringUtils;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
@ -7,9 +7,9 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
import tsp.headdb.HeadDB;
|
import tsp.headdb.HeadDB;
|
||||||
import tsp.headdb.implementation.category.Category;
|
import tsp.headdb.implementation.category.Category;
|
||||||
import tsp.smartplugin.builder.item.ItemBuilder;
|
import tsp.nexuslib.builder.ItemBuilder;
|
||||||
import tsp.smartplugin.localization.TranslatableLocalization;
|
import tsp.nexuslib.localization.TranslatableLocalization;
|
||||||
import tsp.smartplugin.utils.Validate;
|
import tsp.nexuslib.util.Validate;
|
||||||
|
|
||||||
import javax.annotation.ParametersAreNonnullByDefault;
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
|
@ -1,15 +1,14 @@
|
|||||||
package tsp.headdb.implementation.requester;
|
package tsp.headdb.implementation.requester;
|
||||||
|
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
|
||||||
import tsp.headdb.HeadDB;
|
|
||||||
import tsp.headdb.core.util.Utils;
|
|
||||||
import tsp.headdb.implementation.category.Category;
|
|
||||||
import tsp.headdb.implementation.head.Head;
|
|
||||||
|
|
||||||
import com.google.gson.JsonArray;
|
import com.google.gson.JsonArray;
|
||||||
import com.google.gson.JsonElement;
|
import com.google.gson.JsonElement;
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
import com.google.gson.JsonParser;
|
import com.google.gson.JsonParser;
|
||||||
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
import tsp.headdb.HeadDB;
|
||||||
|
import tsp.headdb.core.util.Utils;
|
||||||
|
import tsp.headdb.implementation.category.Category;
|
||||||
|
import tsp.headdb.implementation.head.Head;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -43,8 +42,18 @@ public class Requester {
|
|||||||
JsonArray main = JsonParser.parseString(response.response()).getAsJsonArray();
|
JsonArray main = JsonParser.parseString(response.response()).getAsJsonArray();
|
||||||
for (JsonElement entry : main) {
|
for (JsonElement entry : main) {
|
||||||
JsonObject obj = entry.getAsJsonObject();
|
JsonObject obj = entry.getAsJsonObject();
|
||||||
|
int id = obj.get("id").getAsInt();
|
||||||
|
|
||||||
|
if (plugin.getConfig().contains("blockedHeads.ids")) {
|
||||||
|
List<Integer> blockedIds = plugin.getConfig().getIntegerList("blockedHeads.ids");
|
||||||
|
if (blockedIds.contains(id)) {
|
||||||
|
HeadDB.getInstance().getLog().debug("Skipped blocked head: " + obj.get("name").getAsString() + "(" + id + ")");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
result.add(new Head(
|
result.add(new Head(
|
||||||
obj.get("id").getAsInt(),
|
id,
|
||||||
Utils.validateUniqueId(obj.get("uuid").getAsString()).orElse(UUID.randomUUID()),
|
Utils.validateUniqueId(obj.get("uuid").getAsString()).orElse(UUID.randomUUID()),
|
||||||
obj.get("name").getAsString(),
|
obj.get("name").getAsString(),
|
||||||
obj.get("value").getAsString(),
|
obj.get("value").getAsString(),
|
||||||
|
@ -84,6 +84,12 @@ fallback: true
|
|||||||
# Shows more plugin information. (/hdb info)
|
# Shows more plugin information. (/hdb info)
|
||||||
showAdvancedPluginInfo: true
|
showAdvancedPluginInfo: true
|
||||||
|
|
||||||
|
# Block heads from all database instances.
|
||||||
|
blockedHeads:
|
||||||
|
# List of head ids to block
|
||||||
|
ids:
|
||||||
|
- -1
|
||||||
|
|
||||||
# Storage Options
|
# Storage Options
|
||||||
storage:
|
storage:
|
||||||
# Amount of threads in the executor pool used for storage.
|
# Amount of threads in the executor pool used for storage.
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren