Compare commits

..

63 Commits
2.7.1 ... main

Author SHA1 Message Date
90696365dd small fix 2024-07-08 05:09:51 +02:00
13af9faf36 Major changes 2024-07-08 00:52:07 +02:00
2b990c4f8b newConfig 2024-07-06 09:42:25 +02:00
bcba2a49c5 code changes
T2CodeLib api to 16.7
Starting with only config class
2024-07-06 08:45:08 +02:00
613d1c16fa 2.8.19
Changes in the Standard Config
2024-06-15 02:30:25 +02:00
36e6702e8b 2.8.18
-	Add „Plugin.Prefix“ in cofig.yml
-	Add Function: „Slots.Function.CloseGUI.Enable“ – With this function you can create a button to close the GUI
2024-05-17 01:17:29 +02:00
7768530c19 2.8.16
- 1.20.2 Support
- If UseItem.AllowToggle was disabled in config.yml, it was still possible to toggle it via the toggle function, this logic error has been fixed
- The BungeeCord option has been removed from config.yml. The setting from the T2CodeLib Config is adopted
2023-12-07 18:34:34 +01:00
a0026381af 2.8.16_dev 2023-09-05 22:56:44 +02:00
a2cb76733d Update configDeclaration.yml 2023-09-05 22:28:21 +02:00
ae5a3b3557 2.8.15
- API update to Minecraft version 1.20
- T2CodeLib API update to 15.0 (this version is required from now on)
2023-06-08 07:02:06 +02:00
367f1e32f4 Small bugfix 2023-04-23 13:25:14 +02:00
feed3914b0 „.gitea/ISSUE_TEMPLATE/feature_request.md“ ändern 2022-12-31 20:29:32 +00:00
2f3c555195 Merge pull request '2.8.14 | Bugfix: Player-Inv-Click' (#16) from 2.8.14-DEV into main
Reviewed-on: #16
2022-12-22 01:07:14 +00:00
bcfe98bf22 2.8.14 2022-12-22 02:05:57 +01:00
b83766744d Bugfix: Player-Inv-Click
Bugfix: #14
2022-12-22 02:04:32 +01:00
cd366cbe14 Merge branch 'main' of https://git.t2code.net/JaTiTV/CommandGUI 2022-12-22 01:50:02 +01:00
82cc31d41f 2.8.13
Change:
- The plugin reload now runs asyncron and therefore no longer causes the server to freeze briefly during a plugin reload.
2022-12-22 01:48:57 +01:00
b81071156f Merge pull request 'T2CodeLib-13.0' (#15) from T2CodeLib-13.0 into main
Reviewed-on: #15
2022-12-22 00:48:43 +00:00
3050ad337d 2.8.12 2022-11-15 15:31:26 +01:00
b825152415 small push 2022-11-14 14:21:58 +01:00
38b644bb27 T2CodeLib -> 13.0 2022-11-01 13:20:53 +01:00
8826ca9b6e 2 2022-08-10 15:53:01 +02:00
7be7c9f09e 1 2022-08-10 15:27:27 +02:00
893f99c3e5 2.8.9
Bugfix: If the plugin was already converted to T2C-CommandGUI but still a plugin folder named CommandGUI was present, the original folder was overwritten.
Bugfix: If T2CodeLib was not installed, an unwanted error occurred
Bugfix: The permission 'commandgui.updatemsg' was wrongly registered as 'commandgui.updatemsgupdatemsg' and thus also recognized by Luckperm.
2022-07-29 15:16:52 +02:00
JaTiTV
16e6af2fd4 „README.md“ ändern 2022-07-27 20:41:34 +02:00
fa1af88777 2.8.8
This update fixes a security vulnerability where players with modified clients could intercept all commands.
This bug affects the proxy (Bungee, Waterfall etc.)!
2022-07-19 18:25:48 +02:00
JaTiTV
abe9cfbe76 Merge pull request '2.8.5_DEV' (#13) from 2.8.5_DEV into main
Reviewed-on: JaTiTV/CommandGUI#13
2022-07-19 18:20:24 +02:00
f947025afa 2.8.7 No Permission Lore, Function load fix 2022-07-09 17:25:59 +02:00
da4bd4975a 2.8.6
Bugfix: If in a function the CustomSound was deactivated, the message came that the CustomSound does not exist, if none was specified and if one was specified, the CustomSound was played additionally. This has been fixed.
2022-07-09 10:50:47 +02:00
621f626707 quick fix 2022-07-09 10:50:19 +02:00
78a0bd5f7e 2.8.5
- With this update the plugin has been renamed from 'CommandGUI' to 'T2C-CommandGUI'.
- The plugin folder is now called 'T2C-CommandGUI'.
- The commands 't2c-commandgui', 't2c-commandguihelp' and 't2c-commandgui-item' have been added
- A new tab 'NoPermission' has been added to the functions, where it is adjustable:
- Whether a message should be displayed if you click on the function but don't have permission for it.
- CustomNoPermMessage
- Whether a custom lore should be displayed if you don't have a permission for this function.
2022-07-09 09:13:10 +02:00
bdb6711907 Update pom.xml 2022-07-09 04:42:29 +02:00
2f114cca41 Update guiDeclaration.yml 2022-06-28 13:25:38 +02:00
d0277deeb8 Update guiDeclaration.yml 2022-06-28 13:25:19 +02:00
a6dff7e243 2.8.4 | Minor code changes
In this update minor code changes were made to better structure the interaction with T2CodeLib
2022-06-28 08:25:23 +02:00
e2e649aef2 Revert "„README.md“ ändern"
This reverts commit 7c7cd51cec.
2022-06-10 03:20:24 +02:00
JaTiTV
7c7cd51cec „README.md“ ändern 2022-06-10 03:20:08 +02:00
e7f5b00b31 Bugfix 2022-06-09 04:06:26 +02:00
57ba6e6687 add new defaultconfigs 2022-06-08 06:01:47 +02:00
d168a7afec fix 2022-06-08 05:56:05 +02:00
92d3e9a2d8 files with explanations
NEW: In case of a new installation, files with explanations are now also created in the plugin folder
2022-06-08 05:50:18 +02:00
b45895dff8 Update Util.java 2022-06-08 05:14:56 +02:00
c43a5fd90c 2.8.2
Changes:
- The structure of config.yml has been slightly changed (nothing needs to be changed as the settings paths remain the same)
- The code structure has been rebuilt / improved

Fix:
- Fixed an error that occurred when a player joined the sever and immediately left.
2022-06-08 05:11:26 +02:00
48c06696ef 2.8.1
Bugfix for the AdminSubCommand option
2022-06-07 20:20:26 +02:00
16123ec578 2.8.1
Bugfix for the AdminSubCommand option
2022-06-07 20:16:50 +02:00
JaTiTV
7f2b346f7b Merge pull request '2.8.0-Voting' (#12) from 2.8.0-Voting into main
Reviewed-on: JaTiTV/CommandGUI#12
2022-06-07 20:16:33 +02:00
c590255d38 Update pom.xml
Development status in the version removed
2022-06-07 06:10:48 +02:00
5d646fce48 2.8.0 | VotePoints for payment, Items for payment and other new features
In this update more options to pay for the functions like Vote Points (VotingPlugin) and Items have been added.
Also, 2 completely new functions have been added to give or remove both Vote Points and Items to the player.
2022-06-07 06:09:37 +02:00
5b089a57d8 rename folder 2022-06-06 17:28:43 +02:00
87d0f75a4c Merge branch 'main' of https://git.t2code.net/JaTiTV/CommandGUI 2022-06-02 12:30:31 +02:00
6f3da3e3f4 2.7.7
Fixed a bug that prevented the plugin from loading on the bungee.
2022-06-02 12:29:53 +02:00
JaTiTV
80255a60eb Merge pull request 'mysql-crash' (#11) from mysql-crash into main
Reviewed-on: JaTiTV/CommandGUI#11
2022-06-02 12:29:17 +02:00
f6860e9ab5 2.7.6
Critical bugfix: MySQL had a server crash
Fix: The message when disabling the GUIItem was not displayed
2022-06-01 13:32:53 +02:00
ebbec1f660 2.7.6_DEV 2022-06-01 13:23:53 +02:00
JaTiTV
5674b54593 Merge pull request '2.7.5' (#10) from 2.7.5 into main
Reviewed-on: JaTiTV/CommandGUI#10
2022-06-01 00:15:35 +02:00
381afeba89 2.7.5
Added the option for hover & clickable messages for players.
2022-06-01 00:01:15 +02:00
19822f7024 2.7.4 | MySQL Bugfix
MySQL Bugfix
```
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF NOT EXISTS `Slot` INT(1) NULL DEFAULT NULL AFTER `Status`' at line 1
```
And minor code changes
2022-05-28 21:46:04 +02:00
ed810f31d7 Update pom.xml 2022-05-17 21:25:53 +02:00
b0286e597f Merge branch 'main' of https://git.t2code.net/JaTiTV/CommandGUI 2022-05-17 21:04:30 +02:00
ddfea4eba6 2.7.3
CHANGE: The placeholders are now usable internally in the plugin, even if PlaceholderAPI is not available.

FIX: Playerheads, Base64 Heads are now also available with 1.8 - 1.12
2022-05-17 21:04:23 +02:00
JaTiTV
ed86e7b143 „README.md“ ändern 2022-05-17 00:56:19 +02:00
32c1219bb2 2.7.2
ADD: Added a UseItem Item/Block Blacklist so that when you look at one of these blocks, the GUI does not open but the block (for example: CHEST, CRAFTING_TABLE, or buttons).
2022-05-17 00:19:39 +02:00
326dfae0e9 2.7.2
Small code changes that fixes minor bugs
2022-05-16 14:03:53 +02:00
96 changed files with 6411 additions and 5575 deletions

View File

@ -6,10 +6,10 @@
<groupId>net.t2code</groupId>
<artifactId>CommandGUI_V2</artifactId>
<version>2.7.1</version>
<version>2.9_dev-24</version>
<packaging>jar</packaging>
<name>CommandGUI</name>
<name>T2C-CommandGUI</name>
<properties>
<java.version>1.8</java.version>
@ -17,14 +17,15 @@
</properties>
<build>
<finalName>${project.name}_${project.version}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>8</source>
<target>8</target>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
<plugin>
@ -53,18 +54,17 @@
</build>
<repositories>
<!-- repo.t2code / T2Code -->
<repository>
<id>spigot-repo</id>
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
<id>T2Code</id>
<url>https://repo.t2code.net/repository/T2Code/</url>
</repository>
<repository>
<id>Builders-Paradise</id>
<url>https://repo.t2code.net/repository/Builders-Paradise/</url>
</repository>
<repository>
<id>T2Code</id>
<url>https://repo.t2code.net/repository/T2Code/</url>
</repository>
<!-- placeholderAPI -->
<repository>
<id>placeholderapi</id>
<url>https://repo.extendedclip.com/content/repositories/placeholderapi/</url>
@ -72,61 +72,78 @@
</repositories>
<dependencies>
<dependency>
<groupId>net.t2code</groupId>
<artifactId>bungee</artifactId>
<version>1615</version>
</dependency>
<dependency>
<groupId>net.t2code</groupId>
<artifactId>PlugmanGUI</artifactId>
<version>3.0</version>
</dependency>
<!-- repo.t2code / T2Code -->
<dependency>
<groupId>net.t2code</groupId>
<artifactId>T2CodeLib</artifactId>
<version>11.6</version>
<version>16.7</version>
<classifier>dev-24</classifier>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>net.t2code</groupId>
<artifactId>LuckyBox-API</artifactId>
<version>4.2.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>net.t2code</groupId>
<artifactId>bungee</artifactId>
<version>1615</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>net.t2code.minecraft.1_20.r2</groupId>
<artifactId>spigot</artifactId>
<version>1.20r2</version>
<classifier>1.20.2</classifier>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>net.t2code.minecraft.1_16.r2</groupId>
<artifactId>spigot</artifactId>
<version>1.16r2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>net.t2code.minecraft.1_10.r1</groupId>
<artifactId>spigot</artifactId>
<version>1.10r1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>net.t2code.minecraft.1_8.r1</groupId>
<artifactId>spigot</artifactId>
<version>1.8r1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>4.0.3</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version>1.7.10</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.22</version>
<groupId>net.t2code</groupId>
<artifactId>PlugmanGUI</artifactId>
<version>3.0</version>
<scope>provided</scope>
</dependency>
<!-- placeholderAPI -->
<dependency>
<groupId>me.clip</groupId>
<artifactId>placeholderapi</artifactId>
<version>2.11.1</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/com.zaxxer/HikariCP -->
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<!--version>4.0.3</version-->
<version>5.1.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>

View File

@ -1,40 +0,0 @@
package de.jatitv.commandguiv2.Bungee;
import net.md_5.bungee.config.Configuration;
import net.md_5.bungee.config.ConfigurationProvider;
import net.md_5.bungee.config.YamlConfiguration;
import java.io.File;
import java.io.IOException;
public class BConfig {
public static void create() throws IOException {
File config = new File(BMain.plugin.getDataFolder(), "config.yml");
if (!BMain.plugin.getDataFolder().exists()) BMain.plugin.getDataFolder().mkdir();
if (!config.exists()) {
config.createNewFile();
}
Configuration configuration = ConfigurationProvider.getProvider(YamlConfiguration.class).load(config);
configuration.set("MySQL.Enable", false);
configuration.set("MySQL.IP", "localhost");
configuration.set("MySQL.Port", 3306);
configuration.set("MySQL.Database", "database");
configuration.set("MySQL.User", "user");
configuration.set("MySQL.Password", "");
configuration.set("MySQL.SSL", false);
ConfigurationProvider.getProvider(YamlConfiguration.class).save(configuration, config);
BMySQL.Enable = configuration.getBoolean("MySQL.Enable");
BMySQL.ip = configuration.getString("MySQL.IP");
BMySQL.port = configuration.getInt("MySQL.Port");
BMySQL.database = configuration.getString("MySQL.Database");
BMySQL.user = configuration.getString("MySQL.User");
BMySQL.password = configuration.getString("MySQL.Password");
BMySQL.SSL = configuration.getBoolean("MySQL.SSL");
}
}

View File

@ -1,98 +0,0 @@
package de.jatitv.commandguiv2.Bungee;
import net.md_5.bungee.BungeeCord;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.event.PlayerDisconnectEvent;
import net.md_5.bungee.api.event.PluginMessageEvent;
import net.md_5.bungee.api.event.PostLoginEvent;
import net.md_5.bungee.api.plugin.Listener;
import net.md_5.bungee.event.EventHandler;
import net.t2code.lib.Bungee.Lib.messages.Bsend;
import java.io.*;
import java.util.logging.Logger;
public class BListener implements Listener {
@EventHandler
public void onPluginmessage(PluginMessageEvent event) {
if (event.getTag().equalsIgnoreCase("cgui:bungee")) {
DataInputStream stream = new DataInputStream(new ByteArrayInputStream(event.getData()));
try {
String channel = stream.readUTF();
String input = stream.readUTF();
if (channel.equals("cgui-Console")) {
ProxyServer.getInstance().getConsole().sendMessage("Command Console: "+ input);
ProxyServer.getInstance().getPluginManager().dispatchCommand(ProxyServer.getInstance().getConsole(), input);
} else {
ProxiedPlayer player = ProxyServer.getInstance().getPlayer(channel);
if (player != null) {
ProxyServer.getInstance().getConsole().sendMessage("Command " + player +": "+ input);
ProxyServer.getInstance().getPluginManager().dispatchCommand(player, input);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
@EventHandler
public void onJoin(PostLoginEvent e) {
ProxiedPlayer player = e.getPlayer();
sendToSpigotPlayer(player.getName(), true);
/*
if (BMySQL.Enable) {
BMySQL.query("INSERT INTO `gui-bungeeplayer` (`UUID`, `Name`, `Online`) VALUES ('" + player.getUniqueId() + "', '" + player.getName()
+ "', 'true') ON DUPLICATE KEY UPDATE `Name` = '" + player.getName() + "', `Online` = 'true';");
}
*/
}
@EventHandler
public void onDisconnect(PlayerDisconnectEvent e) {
ProxiedPlayer player = e.getPlayer();
sendToSpigotPlayer(e.getPlayer().getName(), false);
/*
if (BMySQL.Enable) {
BMySQL.query("INSERT INTO `gui-bungeeplayer` (`UUID`, `Name`, `Online`) VALUES ('" + player.getUniqueId() + "', '" + player.getName()
+ "', 'true') ON DUPLICATE KEY UPDATE `Name` = '" + player.getName() + "', `Online` = 'false';");
}
*/
}
public static void sendToSpigotPlayer(String name, Boolean join) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
DataOutputStream output = new DataOutputStream(stream);
try {
if (join) {
output.writeUTF("join");
} else {
output.writeUTF("left");
}
output.writeUTF(name);
} catch (IOException e) {
Logger.getLogger(e.getMessage());
}
BungeeCord.getInstance().getServers().values().stream().forEach((server) -> {
server.sendData("cgui:onlinepl", stream.toByteArray());
});
}
public static void sendToSpigotDeleteAll() {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
DataOutputStream output = new DataOutputStream(stream);
try {
output.writeUTF("clear");
output.writeUTF("");
} catch (IOException e) {
Logger.getLogger(e.getMessage());
}
BungeeCord.getInstance().getServers().values().stream().forEach((server) -> {
server.sendData("cgui:onlinepl", stream.toByteArray());
});
}
}

View File

@ -1,112 +0,0 @@
package de.jatitv.commandguiv2.Bungee;
import de.jatitv.commandguiv2.Util;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.plugin.Plugin;
import net.t2code.lib.Bungee.Lib.messages.Bsend;
import java.io.IOException;
import java.util.logging.Level;
public final class BMain extends Plugin {
private boolean enable = false;
public static Plugin plugin;
public static String update_version = null;
public static String prefix = "§8[§4C§9GUI§8]";
public static String version;
public static String autor;
public static Integer spigotID = 90671;
public static Integer bstatsID = 10840;
public static String spigot = "https://www.spigotmc.org/resources/" + spigotID;
public static String discord = "http://dc.t2code.net";
@Override
public void onEnable() {
// Plugin startup logic
Long long_ = Long.valueOf(System.currentTimeMillis());
plugin = this;
autor = plugin.getDescription().getAuthor();
version = plugin.getDescription().getVersion();
if (pluginNotFound("T2CodeLib", 96388, Util.getRequiredT2CodeLibVersion())) return;
Bsend.console(prefix + "§4============================= §8[§4Command§9GUI§5BUNGEE§8] §4=============================");
Bsend.console(prefix + "§4 _____ §9_____ _ _ _____ §e ___ ");
Bsend.console(prefix + "§4 / ____§9/ ____| | | |_ _|§e |__ \\ ");
Bsend.console(prefix + "§4 | | §9| | __| | | | | |§e_ __ ) |");
Bsend.console(prefix + "§4 | | §9| | |_ | | | | | §e\\ \\ / // / ");
Bsend.console(prefix + "§4 | |___§9| |__| | |__| |_| |§e\\ V // /_ ");
Bsend.console(prefix + "§4 \\_____§9\\_____|\\____/|_____§e\\_/|____|");
Bsend.console(prefix);
Bsend.console(prefix + " §2Autor: §6" + String.valueOf(autor).replace("[", "").replace("]", ""));
Bsend.console(prefix + " §2Version: §6" + version);
Bsend.console(prefix + " §2Spigot: §6" + spigot);
Bsend.console(prefix + " §2Discord: §6" + discord);
/* try {
BConfig.create();
} catch (IOException e) {
e.printStackTrace();
}
*/
plugin.getProxy().registerChannel("cgui:bungee");
plugin.getProxy().getPluginManager().registerListener(plugin, new BListener());
BListener.sendToSpigotDeleteAll();
BMetrics metrics = new BMetrics(this, bstatsID);
/*
if (BMySQL.Enable){
BMySQL.main();
BMySQL.query("CREATE TABLE IF NOT EXISTS `gui-bungeeplayer` (" +
" `UUID` VARCHAR(191) NOT NULL COLLATE 'utf8mb4_general_ci'," +
" `Name` TINYTEXT NOT NULL COLLATE 'utf8mb4_general_ci'," +
" `Online` TINYTEXT NOT NULL COLLATE 'utf8mb4_general_ci'," +
" UNIQUE INDEX `UUID` (`UUID`)" +
")" +
"COLLATE='utf8mb4_general_ci'" +
"ENGINE=InnoDB" +
";");
}
*/
Bsend.console(prefix + " §2Plugin loaded successfully." + " §7- §e" + (System.currentTimeMillis() - long_.longValue()) + "ms");
Bsend.console(prefix + "§4==============================================================================");
BUpdateChecker.onUpdateCheck();
BUpdateChecker.onUpdateCheckTimer();
enable = true;
}
@Override
public void onDisable() {
// Plugin shutdown logic
if (!enable) {
return;
}
Bsend.console(prefix + "§4============================= §8[§4Command§9GUI§5BUNGEE§8] §4=============================");
Bsend.console(prefix + " §2Autor: §6" + String.valueOf(autor).replace("[", "").replace("]", ""));
Bsend.console(prefix + " §2Version: §6" + version);
Bsend.console(prefix + " §2Spigot: §6" + spigot);
Bsend.console(prefix + " §2Discord: §6" + discord);
Bsend.console(prefix + " §4Plugin successfully disabled.");
Bsend.console(prefix + "§4==============================================================================");
}
public static Boolean pluginNotFound(String pl, Integer spigotID, double ver) {
if (ProxyServer.getInstance().getPluginManager().getPlugin(pl) == null) {
plugin.getLogger().log(Level.SEVERE, "Plugin can not be loaded!");
ProxyServer.getInstance().getConsole().sendMessage(prefix + " §e" + pl + " §4could not be found. Please download it here: " +
"§6https://spigotmc.org/resources/" + pl + "." + spigotID + " §4to be able to use this plugin.");
// BMain.plugin.getPluginLoader().disablePlugin(BMain.plugin);
BMain.plugin.onDisable();
return true;
} else {
if (Double.parseDouble(ProxyServer.getInstance().getPluginManager().getPlugin(pl).getDescription().getVersion()) < ver) {
plugin.getLogger().log(Level.SEVERE, "Plugin can not be loaded!");
ProxyServer.getInstance().getConsole().sendMessage(prefix + " §e" + pl + " §4is out of date! This plugin requires at least version §2" + ver + " §4of §6" + pl + " §4Please update it here: §6https://spigotmc.org/resources/" + pl + "." + spigotID + " §4to use this version of " + plugin.getDescription().getName() + ".");
// BMain.plugin.getPluginLoader().disablePlugin(BMain.plugin);
BMain.plugin.onDisable();
return true;
}
return false;
}
}
}

View File

@ -1,857 +0,0 @@
package de.jatitv.commandguiv2.Bungee;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
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.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Supplier;
import java.util.logging.Level;
import java.util.stream.Collectors;
import java.util.zip.GZIPOutputStream;
import javax.net.ssl.HttpsURLConnection;
import net.md_5.bungee.api.plugin.Plugin;
import net.md_5.bungee.config.Configuration;
import net.md_5.bungee.config.ConfigurationProvider;
import net.md_5.bungee.config.YamlConfiguration;
public class BMetrics {
private final Plugin plugin;
private final MetricsBase metricsBase;
private boolean enabled;
private String serverUUID;
private boolean logErrors = false;
private boolean logSentData;
private boolean logResponseStatusText;
/**
* Creates a new Metrics instance.
*
* @param plugin Your plugin instance.
* @param serviceId The id of the service. It can be found at <a
* href="https://bstats.org/what-is-my-plugin-id">What is my plugin id?</a>
*/
public BMetrics(Plugin plugin, int serviceId) {
this.plugin = plugin;
try {
loadConfig();
} catch (IOException e) {
// Failed to load configuration
plugin.getLogger().log(Level.WARNING, "Failed to load bStats config!", e);
metricsBase = null;
return;
}
metricsBase =
new MetricsBase(
"bungeecord",
serverUUID,
serviceId,
enabled,
this::appendPlatformData,
this::appendServiceData,
null,
() -> true,
(message, error) -> this.plugin.getLogger().log(Level.WARNING, message, error),
(message) -> this.plugin.getLogger().log(Level.INFO, message),
logErrors,
logSentData,
logResponseStatusText);
}
/** Loads the bStats configuration. */
private void loadConfig() throws IOException {
File bStatsFolder = new File(plugin.getDataFolder().getParentFile(), "bStats");
bStatsFolder.mkdirs();
File configFile = new File(bStatsFolder, "config.yml");
if (!configFile.exists()) {
writeFile(
configFile,
"# bStats (https://bStats.org) collects some basic information for plugin authors, like how",
"# many people use their plugin and their total player count. It's recommended to keep bStats",
"# enabled, but if you're not comfortable with this, you can turn this setting off. There is no",
"# performance penalty associated with having metrics enabled, and data sent to bStats is fully",
"# anonymous.",
"enabled: true",
"serverUuid: \"" + UUID.randomUUID() + "\"",
"logFailedRequests: false",
"logSentData: false",
"logResponseStatusText: false");
}
Configuration configuration =
ConfigurationProvider.getProvider(YamlConfiguration.class).load(configFile);
// Load configuration
enabled = configuration.getBoolean("enabled", true);
serverUUID = configuration.getString("serverUuid");
logErrors = configuration.getBoolean("logFailedRequests", false);
logSentData = configuration.getBoolean("logSentData", false);
logResponseStatusText = configuration.getBoolean("logResponseStatusText", false);
}
private void writeFile(File file, String... lines) throws IOException {
try (BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(file))) {
for (String line : lines) {
bufferedWriter.write(line);
bufferedWriter.newLine();
}
}
}
/**
* Adds a custom chart.
*
* @param chart The chart to add.
*/
public void addCustomChart(CustomChart chart) {
metricsBase.addCustomChart(chart);
}
private void appendPlatformData(JsonObjectBuilder builder) {
builder.appendField("playerAmount", plugin.getProxy().getOnlineCount());
builder.appendField("managedServers", plugin.getProxy().getServers().size());
builder.appendField("onlineMode", plugin.getProxy().getConfig().isOnlineMode() ? 1 : 0);
builder.appendField("bungeecordVersion", plugin.getProxy().getVersion());
builder.appendField("javaVersion", System.getProperty("java.version"));
builder.appendField("osName", System.getProperty("os.name"));
builder.appendField("osArch", System.getProperty("os.arch"));
builder.appendField("osVersion", System.getProperty("os.version"));
builder.appendField("coreCount", Runtime.getRuntime().availableProcessors());
}
private void appendServiceData(JsonObjectBuilder builder) {
builder.appendField("pluginVersion", plugin.getDescription().getVersion());
}
public static class MetricsBase {
/** The version of the Metrics class. */
public static final String METRICS_VERSION = "2.2.1";
private static final ScheduledExecutorService scheduler =
Executors.newScheduledThreadPool(1, task -> new Thread(task, "bStats-Metrics"));
private static final String REPORT_URL = "https://bStats.org/api/v2/data/%s";
private final String platform;
private final String serverUuid;
private final int serviceId;
private final Consumer<JsonObjectBuilder> appendPlatformDataConsumer;
private final Consumer<JsonObjectBuilder> appendServiceDataConsumer;
private final Consumer<Runnable> submitTaskConsumer;
private final Supplier<Boolean> checkServiceEnabledSupplier;
private final BiConsumer<String, Throwable> errorLogger;
private final Consumer<String> infoLogger;
private final boolean logErrors;
private final boolean logSentData;
private final boolean logResponseStatusText;
private final Set<CustomChart> customCharts = new HashSet<>();
private final boolean enabled;
/**
* Creates a new MetricsBase class instance.
*
* @param platform The platform of the service.
* @param serviceId The id of the service.
* @param serverUuid The server uuid.
* @param enabled Whether or not data sending is enabled.
* @param appendPlatformDataConsumer A consumer that receives a {@code JsonObjectBuilder} and
* appends all platform-specific data.
* @param appendServiceDataConsumer A consumer that receives a {@code JsonObjectBuilder} and
* appends all service-specific data.
* @param submitTaskConsumer A consumer that takes a runnable with the submit task. This can be
* used to delegate the data collection to a another thread to prevent errors caused by
* concurrency. Can be {@code null}.
* @param checkServiceEnabledSupplier A supplier to check if the service is still enabled.
* @param errorLogger A consumer that accepts log message and an error.
* @param infoLogger A consumer that accepts info log messages.
* @param logErrors Whether or not errors should be logged.
* @param logSentData Whether or not the sent data should be logged.
* @param logResponseStatusText Whether or not the response status text should be logged.
*/
public MetricsBase(
String platform,
String serverUuid,
int serviceId,
boolean enabled,
Consumer<JsonObjectBuilder> appendPlatformDataConsumer,
Consumer<JsonObjectBuilder> appendServiceDataConsumer,
Consumer<Runnable> submitTaskConsumer,
Supplier<Boolean> checkServiceEnabledSupplier,
BiConsumer<String, Throwable> errorLogger,
Consumer<String> infoLogger,
boolean logErrors,
boolean logSentData,
boolean logResponseStatusText) {
this.platform = platform;
this.serverUuid = serverUuid;
this.serviceId = serviceId;
this.enabled = enabled;
this.appendPlatformDataConsumer = appendPlatformDataConsumer;
this.appendServiceDataConsumer = appendServiceDataConsumer;
this.submitTaskConsumer = submitTaskConsumer;
this.checkServiceEnabledSupplier = checkServiceEnabledSupplier;
this.errorLogger = errorLogger;
this.infoLogger = infoLogger;
this.logErrors = logErrors;
this.logSentData = logSentData;
this.logResponseStatusText = logResponseStatusText;
checkRelocation();
if (enabled) {
startSubmitting();
}
}
public void addCustomChart(CustomChart chart) {
this.customCharts.add(chart);
}
private void startSubmitting() {
final Runnable submitTask =
() -> {
if (!enabled || !checkServiceEnabledSupplier.get()) {
// Submitting data or service is disabled
scheduler.shutdown();
return;
}
if (submitTaskConsumer != null) {
submitTaskConsumer.accept(this::submitData);
} else {
this.submitData();
}
};
// Many servers tend to restart at a fixed time at xx:00 which causes an uneven distribution
// of requests on the
// bStats backend. To circumvent this problem, we introduce some randomness into the initial
// and second delay.
// WARNING: You must not modify and part of this Metrics class, including the submit delay or
// frequency!
// WARNING: Modifying this code will get your plugin banned on bStats. Just don't do it!
long initialDelay = (long) (1000 * 60 * (3 + Math.random() * 3));
long secondDelay = (long) (1000 * 60 * (Math.random() * 30));
scheduler.schedule(submitTask, initialDelay, TimeUnit.MILLISECONDS);
scheduler.scheduleAtFixedRate(
submitTask, initialDelay + secondDelay, 1000 * 60 * 30, TimeUnit.MILLISECONDS);
}
private void submitData() {
final JsonObjectBuilder baseJsonBuilder = new JsonObjectBuilder();
appendPlatformDataConsumer.accept(baseJsonBuilder);
final JsonObjectBuilder serviceJsonBuilder = new JsonObjectBuilder();
appendServiceDataConsumer.accept(serviceJsonBuilder);
JsonObjectBuilder.JsonObject[] chartData =
customCharts.stream()
.map(customChart -> customChart.getRequestJsonObject(errorLogger, logErrors))
.filter(Objects::nonNull)
.toArray(JsonObjectBuilder.JsonObject[]::new);
serviceJsonBuilder.appendField("id", serviceId);
serviceJsonBuilder.appendField("customCharts", chartData);
baseJsonBuilder.appendField("service", serviceJsonBuilder.build());
baseJsonBuilder.appendField("serverUUID", serverUuid);
baseJsonBuilder.appendField("metricsVersion", METRICS_VERSION);
JsonObjectBuilder.JsonObject data = baseJsonBuilder.build();
scheduler.execute(
() -> {
try {
// Send the data
sendData(data);
} catch (Exception e) {
// Something went wrong! :(
if (logErrors) {
errorLogger.accept("Could not submit bStats metrics data", e);
}
}
});
}
private void sendData(JsonObjectBuilder.JsonObject data) throws Exception {
if (logSentData) {
infoLogger.accept("Sent bStats metrics data: " + data.toString());
}
String url = String.format(REPORT_URL, platform);
HttpsURLConnection connection = (HttpsURLConnection) new URL(url).openConnection();
// Compress the data to save bandwidth
byte[] compressedData = compress(data.toString());
connection.setRequestMethod("POST");
connection.addRequestProperty("Accept", "application/json");
connection.addRequestProperty("Connection", "close");
connection.addRequestProperty("Content-Encoding", "gzip");
connection.addRequestProperty("Content-Length", String.valueOf(compressedData.length));
connection.setRequestProperty("Content-Type", "application/json");
connection.setRequestProperty("User-Agent", "Metrics-Service/1");
connection.setDoOutput(true);
try (DataOutputStream outputStream = new DataOutputStream(connection.getOutputStream())) {
outputStream.write(compressedData);
}
StringBuilder builder = new StringBuilder();
try (BufferedReader bufferedReader =
new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
String line;
while ((line = bufferedReader.readLine()) != null) {
builder.append(line);
}
}
if (logResponseStatusText) {
infoLogger.accept("Sent data to bStats and received response: " + builder);
}
}
/** Checks that the class was properly relocated. */
private void checkRelocation() {
// You can use the property to disable the check in your test environment
if (System.getProperty("bstats.relocatecheck") == null
|| !System.getProperty("bstats.relocatecheck").equals("false")) {
// Maven's Relocate is clever and changes strings, too. So we have to use this little
// "trick" ... :D
final String defaultPackage =
new String(new byte[] {'o', 'r', 'g', '.', 'b', 's', 't', 'a', 't', 's'});
final String examplePackage =
new String(new byte[] {'y', 'o', 'u', 'r', '.', 'p', 'a', 'c', 'k', 'a', 'g', 'e'});
// We want to make sure no one just copy & pastes the example and uses the wrong package
// names
if (MetricsBase.class.getPackage().getName().startsWith(defaultPackage)
|| MetricsBase.class.getPackage().getName().startsWith(examplePackage)) {
throw new IllegalStateException("bStats Metrics class has not been relocated correctly!");
}
}
}
/**
* Gzips the given string.
*
* @param str The string to gzip.
* @return The gzipped string.
*/
private static byte[] compress(final String str) throws IOException {
if (str == null) {
return null;
}
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
try (GZIPOutputStream gzip = new GZIPOutputStream(outputStream)) {
gzip.write(str.getBytes(StandardCharsets.UTF_8));
}
return outputStream.toByteArray();
}
}
public static class AdvancedBarChart extends CustomChart {
private final Callable<Map<String, int[]>> callable;
/**
* Class constructor.
*
* @param chartId The id of the chart.
* @param callable The callable which is used to request the chart data.
*/
public AdvancedBarChart(String chartId, Callable<Map<String, int[]>> callable) {
super(chartId);
this.callable = callable;
}
@Override
protected JsonObjectBuilder.JsonObject getChartData() throws Exception {
JsonObjectBuilder valuesBuilder = new JsonObjectBuilder();
Map<String, int[]> map = callable.call();
if (map == null || map.isEmpty()) {
// Null = skip the chart
return null;
}
boolean allSkipped = true;
for (Map.Entry<String, int[]> entry : map.entrySet()) {
if (entry.getValue().length == 0) {
// Skip this invalid
continue;
}
allSkipped = false;
valuesBuilder.appendField(entry.getKey(), entry.getValue());
}
if (allSkipped) {
// Null = skip the chart
return null;
}
return new JsonObjectBuilder().appendField("values", valuesBuilder.build()).build();
}
}
public static class SimpleBarChart extends CustomChart {
private final Callable<Map<String, Integer>> callable;
/**
* Class constructor.
*
* @param chartId The id of the chart.
* @param callable The callable which is used to request the chart data.
*/
public SimpleBarChart(String chartId, Callable<Map<String, Integer>> callable) {
super(chartId);
this.callable = callable;
}
@Override
protected JsonObjectBuilder.JsonObject getChartData() throws Exception {
JsonObjectBuilder valuesBuilder = new JsonObjectBuilder();
Map<String, Integer> map = callable.call();
if (map == null || map.isEmpty()) {
// Null = skip the chart
return null;
}
for (Map.Entry<String, Integer> entry : map.entrySet()) {
valuesBuilder.appendField(entry.getKey(), new int[] {entry.getValue()});
}
return new JsonObjectBuilder().appendField("values", valuesBuilder.build()).build();
}
}
public static class MultiLineChart extends CustomChart {
private final Callable<Map<String, Integer>> callable;
/**
* Class constructor.
*
* @param chartId The id of the chart.
* @param callable The callable which is used to request the chart data.
*/
public MultiLineChart(String chartId, Callable<Map<String, Integer>> callable) {
super(chartId);
this.callable = callable;
}
@Override
protected JsonObjectBuilder.JsonObject getChartData() throws Exception {
JsonObjectBuilder valuesBuilder = new JsonObjectBuilder();
Map<String, Integer> map = callable.call();
if (map == null || map.isEmpty()) {
// Null = skip the chart
return null;
}
boolean allSkipped = true;
for (Map.Entry<String, Integer> entry : map.entrySet()) {
if (entry.getValue() == 0) {
// Skip this invalid
continue;
}
allSkipped = false;
valuesBuilder.appendField(entry.getKey(), entry.getValue());
}
if (allSkipped) {
// Null = skip the chart
return null;
}
return new JsonObjectBuilder().appendField("values", valuesBuilder.build()).build();
}
}
public static class AdvancedPie extends CustomChart {
private final Callable<Map<String, Integer>> callable;
/**
* Class constructor.
*
* @param chartId The id of the chart.
* @param callable The callable which is used to request the chart data.
*/
public AdvancedPie(String chartId, Callable<Map<String, Integer>> callable) {
super(chartId);
this.callable = callable;
}
@Override
protected JsonObjectBuilder.JsonObject getChartData() throws Exception {
JsonObjectBuilder valuesBuilder = new JsonObjectBuilder();
Map<String, Integer> map = callable.call();
if (map == null || map.isEmpty()) {
// Null = skip the chart
return null;
}
boolean allSkipped = true;
for (Map.Entry<String, Integer> entry : map.entrySet()) {
if (entry.getValue() == 0) {
// Skip this invalid
continue;
}
allSkipped = false;
valuesBuilder.appendField(entry.getKey(), entry.getValue());
}
if (allSkipped) {
// Null = skip the chart
return null;
}
return new JsonObjectBuilder().appendField("values", valuesBuilder.build()).build();
}
}
public abstract static class CustomChart {
private final String chartId;
protected CustomChart(String chartId) {
if (chartId == null) {
throw new IllegalArgumentException("chartId must not be null");
}
this.chartId = chartId;
}
public JsonObjectBuilder.JsonObject getRequestJsonObject(
BiConsumer<String, Throwable> errorLogger, boolean logErrors) {
JsonObjectBuilder builder = new JsonObjectBuilder();
builder.appendField("chartId", chartId);
try {
JsonObjectBuilder.JsonObject data = getChartData();
if (data == null) {
// If the data is null we don't send the chart.
return null;
}
builder.appendField("data", data);
} catch (Throwable t) {
if (logErrors) {
errorLogger.accept("Failed to get data for custom chart with id " + chartId, t);
}
return null;
}
return builder.build();
}
protected abstract JsonObjectBuilder.JsonObject getChartData() throws Exception;
}
public static class SingleLineChart extends CustomChart {
private final Callable<Integer> callable;
/**
* Class constructor.
*
* @param chartId The id of the chart.
* @param callable The callable which is used to request the chart data.
*/
public SingleLineChart(String chartId, Callable<Integer> callable) {
super(chartId);
this.callable = callable;
}
@Override
protected JsonObjectBuilder.JsonObject getChartData() throws Exception {
int value = callable.call();
if (value == 0) {
// Null = skip the chart
return null;
}
return new JsonObjectBuilder().appendField("value", value).build();
}
}
public static class SimplePie extends CustomChart {
private final Callable<String> callable;
/**
* Class constructor.
*
* @param chartId The id of the chart.
* @param callable The callable which is used to request the chart data.
*/
public SimplePie(String chartId, Callable<String> callable) {
super(chartId);
this.callable = callable;
}
@Override
protected JsonObjectBuilder.JsonObject getChartData() throws Exception {
String value = callable.call();
if (value == null || value.isEmpty()) {
// Null = skip the chart
return null;
}
return new JsonObjectBuilder().appendField("value", value).build();
}
}
public static class DrilldownPie extends CustomChart {
private final Callable<Map<String, Map<String, Integer>>> callable;
/**
* Class constructor.
*
* @param chartId The id of the chart.
* @param callable The callable which is used to request the chart data.
*/
public DrilldownPie(String chartId, Callable<Map<String, Map<String, Integer>>> callable) {
super(chartId);
this.callable = callable;
}
@Override
public JsonObjectBuilder.JsonObject getChartData() throws Exception {
JsonObjectBuilder valuesBuilder = new JsonObjectBuilder();
Map<String, Map<String, Integer>> map = callable.call();
if (map == null || map.isEmpty()) {
// Null = skip the chart
return null;
}
boolean reallyAllSkipped = true;
for (Map.Entry<String, Map<String, Integer>> entryValues : map.entrySet()) {
JsonObjectBuilder valueBuilder = new JsonObjectBuilder();
boolean allSkipped = true;
for (Map.Entry<String, Integer> valueEntry : map.get(entryValues.getKey()).entrySet()) {
valueBuilder.appendField(valueEntry.getKey(), valueEntry.getValue());
allSkipped = false;
}
if (!allSkipped) {
reallyAllSkipped = false;
valuesBuilder.appendField(entryValues.getKey(), valueBuilder.build());
}
}
if (reallyAllSkipped) {
// Null = skip the chart
return null;
}
return new JsonObjectBuilder().appendField("values", valuesBuilder.build()).build();
}
}
/**
* An extremely simple JSON builder.
*
* <p>While this class is neither feature-rich nor the most performant one, it's sufficient enough
* for its use-case.
*/
public static class JsonObjectBuilder {
private StringBuilder builder = new StringBuilder();
private boolean hasAtLeastOneField = false;
public JsonObjectBuilder() {
builder.append("{");
}
/**
* Appends a null field to the JSON.
*
* @param key The key of the field.
* @return A reference to this object.
*/
public JsonObjectBuilder appendNull(String key) {
appendFieldUnescaped(key, "null");
return this;
}
/**
* Appends a string field to the JSON.
*
* @param key The key of the field.
* @param value The value of the field.
* @return A reference to this object.
*/
public JsonObjectBuilder appendField(String key, String value) {
if (value == null) {
throw new IllegalArgumentException("JSON value must not be null");
}
appendFieldUnescaped(key, "\"" + escape(value) + "\"");
return this;
}
/**
* Appends an integer field to the JSON.
*
* @param key The key of the field.
* @param value The value of the field.
* @return A reference to this object.
*/
public JsonObjectBuilder appendField(String key, int value) {
appendFieldUnescaped(key, String.valueOf(value));
return this;
}
/**
* Appends an object to the JSON.
*
* @param key The key of the field.
* @param object The object.
* @return A reference to this object.
*/
public JsonObjectBuilder appendField(String key, JsonObject object) {
if (object == null) {
throw new IllegalArgumentException("JSON object must not be null");
}
appendFieldUnescaped(key, object.toString());
return this;
}
/**
* Appends a string array to the JSON.
*
* @param key The key of the field.
* @param values The string array.
* @return A reference to this object.
*/
public JsonObjectBuilder appendField(String key, String[] values) {
if (values == null) {
throw new IllegalArgumentException("JSON values must not be null");
}
String escapedValues =
Arrays.stream(values)
.map(value -> "\"" + escape(value) + "\"")
.collect(Collectors.joining(","));
appendFieldUnescaped(key, "[" + escapedValues + "]");
return this;
}
/**
* Appends an integer array to the JSON.
*
* @param key The key of the field.
* @param values The integer array.
* @return A reference to this object.
*/
public JsonObjectBuilder appendField(String key, int[] values) {
if (values == null) {
throw new IllegalArgumentException("JSON values must not be null");
}
String escapedValues =
Arrays.stream(values).mapToObj(String::valueOf).collect(Collectors.joining(","));
appendFieldUnescaped(key, "[" + escapedValues + "]");
return this;
}
/**
* Appends an object array to the JSON.
*
* @param key The key of the field.
* @param values The integer array.
* @return A reference to this object.
*/
public JsonObjectBuilder appendField(String key, JsonObject[] values) {
if (values == null) {
throw new IllegalArgumentException("JSON values must not be null");
}
String escapedValues =
Arrays.stream(values).map(JsonObject::toString).collect(Collectors.joining(","));
appendFieldUnescaped(key, "[" + escapedValues + "]");
return this;
}
/**
* Appends a field to the object.
*
* @param key The key of the field.
* @param escapedValue The escaped value of the field.
*/
private void appendFieldUnescaped(String key, String escapedValue) {
if (builder == null) {
throw new IllegalStateException("JSON has already been built");
}
if (key == null) {
throw new IllegalArgumentException("JSON key must not be null");
}
if (hasAtLeastOneField) {
builder.append(",");
}
builder.append("\"").append(escape(key)).append("\":").append(escapedValue);
hasAtLeastOneField = true;
}
/**
* Builds the JSON string and invalidates this builder.
*
* @return The built JSON string.
*/
public JsonObject build() {
if (builder == null) {
throw new IllegalStateException("JSON has already been built");
}
JsonObject object = new JsonObject(builder.append("}").toString());
builder = null;
return object;
}
/**
* Escapes the given string like stated in https://www.ietf.org/rfc/rfc4627.txt.
*
* <p>This method escapes only the necessary characters '"', '\'. and '\u0000' - '\u001F'.
* Compact escapes are not used (e.g., '\n' is escaped as "\u000a" and not as "\n").
*
* @param value The value to escape.
* @return The escaped value.
*/
private static String escape(String value) {
final StringBuilder builder = new StringBuilder();
for (int i = 0; i < value.length(); i++) {
char c = value.charAt(i);
if (c == '"') {
builder.append("\\\"");
} else if (c == '\\') {
builder.append("\\\\");
} else if (c <= '\u000F') {
builder.append("\\u000").append(Integer.toHexString(c));
} else if (c <= '\u001F') {
builder.append("\\u00").append(Integer.toHexString(c));
} else {
builder.append(c);
}
}
return builder.toString();
}
/**
* A super simple representation of a JSON object.
*
* <p>This class only exists to make methods of the {@link JsonObjectBuilder} type-safe and not
* allow a raw string inputs for methods like {@link JsonObjectBuilder#appendField(String,
* JsonObject)}.
*/
public static class JsonObject {
private final String value;
private JsonObject(String value) {
this.value = value;
}
@Override
public String toString() {
return value;
}
}
}
}

View File

@ -1,107 +0,0 @@
package de.jatitv.commandguiv2.Bungee;
import net.md_5.bungee.api.plugin.Plugin;
import net.t2code.lib.Bungee.Lib.messages.Bsend;
import java.sql.*;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.Calendar;
public class BMySQL {
private static Plugin plugin = BMain.plugin;
protected static Boolean Enable = false;
protected static String ip = "localhost";
protected static Integer port = 3306;
protected static String database;
protected static String user = "root";
protected static String password = "";
protected static String url;
protected static Boolean SSL;
public static void main() {
Long long_ = Long.valueOf(System.currentTimeMillis());
Calendar now = Calendar.getInstance();
ZoneId timeZone = now.getTimeZone().toZoneId();
Bsend.debug(plugin, "Server TimeZone is : " + timeZone);
url = "jdbc:mysql://" + ip + ":" + port + "/" + database + "?useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=" + timeZone;
// Europe/Berlin
if (SSL) {
url = url + "&useSSL=true";
} else url = url + "&useSSL=false";
Bsend.debug(plugin, url);
try (Connection con = DriverManager.getConnection(url, user, password)) {
Statement stmt = con.createStatement();
stmt.close();
Bsend.console(BMain.prefix + " §2MySQL successfully connected." + " §7- §e" + (System.currentTimeMillis() - long_.longValue()) + "ms");
} catch (SQLException ex) {
Bsend.console(BMain.prefix + " §4MySQL not connected." + " §7- §e" + (System.currentTimeMillis() - long_.longValue()) + "ms");
Bsend.error(plugin, ex.getMessage() + " --- " + (System.currentTimeMillis() - long_.longValue()) + "ms");
}
}
public static void query(String query) {
try (Connection con = DriverManager.getConnection(url, user, password)) {
Statement stmt = con.createStatement();
stmt.execute(query);
stmt.close();
} catch (SQLException ex) {
System.err.println(ex.getMessage());
}
}
public static ArrayList<String> selectAll(String query) {
ArrayList<String> Result = new ArrayList<>();
try (Connection con = DriverManager.getConnection(url, user, password)) {
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
int columns = rs.getMetaData().getColumnCount();
while (rs.next()) {
Result.add(rs.getString(1));
}
rs.close();
stmt.close();
} catch (SQLException ex) {
System.err.println(ex.getMessage());
}
return Result;
}
public static String select(String query) {
String Ausgabe = "";
try (Connection con = DriverManager.getConnection(url, user, password)) {
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
int columns = rs.getMetaData().getColumnCount();
while (rs.next()) {
Ausgabe = String.valueOf(rs.getString(1));
}
rs.close();
stmt.close();
} catch (SQLException ex) {
System.err.println(ex.getMessage());
}
return Ausgabe;
}
public static int count(String query) {
Integer count = 0;
try (Connection con = DriverManager.getConnection(url, user, password)) {
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
int columns = rs.getMetaData().getColumnCount();
while (rs.next()) {
count++;
}
rs.close();
stmt.close();
} catch (SQLException ex) {
System.err.println(ex.getMessage());
}
return count;
}
}

View File

@ -1,106 +0,0 @@
// This claas was created by JaTiTV
// -----------------------------
// _____ _____ _ _ _____
// / ____/ ____| | | |_ _|
// | | | | __| | | | | |
// | | | | |_ | | | | | |
// | |___| |__| | |__| |_| |_
// \_____\_____|\____/|_____|
// -----------------------------
package de.jatitv.commandguiv2.Bungee;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.plugin.Plugin;
import net.t2code.lib.Bungee.Lib.messages.Bsend;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Scanner;
import java.util.concurrent.TimeUnit;
import java.util.function.Consumer;
public class BUpdateChecker {
public static void sendUpdateMsg(String Prefix, String foundVersion, String update_version) {
Bsend.console("§4=========== " + Prefix + " §4===========");
Bsend.console("§6A new version was found!");
Bsend.console("§6Your version: §c" + foundVersion + " §7- §6Current version: §a" + update_version);
Bsend.console("§6You can download it here: §e" + BMain.spigot);
Bsend.console("§6You can find more information on Discord: §e" + BMain.discord);
Bsend.console("§4=========== " + Prefix + " §4===========");
}
public static void onUpdateCheckTimer() {
ProxyServer.getInstance().getScheduler().schedule(BMain.plugin, new Runnable() {
public void run() {
(new BUpdateChecker(BMain.plugin, BMain.spigotID)).getVersion((update_version) -> {
String foundVersion = BMain.plugin.getDescription().getVersion();
BMain.update_version = update_version;
if (!foundVersion.replace("_Bungee", "").equalsIgnoreCase(update_version)) {
sendUpdateMsg(BMain.prefix, foundVersion, update_version);
}
});
}
}, 0, 20 * 60 * 60L, TimeUnit.SECONDS);
}
public static void onUpdateCheck() {
(new BUpdateChecker(BMain.plugin, BMain.spigotID)).getVersion((update_version) -> {
String foundVersion = BMain.plugin.getDescription().getVersion();
BMain.update_version = update_version;
if (foundVersion.replace("_Bungee", "").equalsIgnoreCase(update_version)) {
Bsend.console(BMain.prefix + " §2No update found.");
}
});
}
private Plugin plugin;
private int resourceId;
public BUpdateChecker(Plugin plugin, int resourceId) {
this.plugin = plugin;
this.resourceId = resourceId;
}
public void getVersion(Consumer<String> consumer) {
ProxyServer.getInstance().getScheduler().runAsync(this.plugin, () -> {
try {
InputStream inputStream = (new URL("https://api.spigotmc.org/legacy/update.php?resource=" + this.resourceId)).openStream();
try {
Scanner scanner = new Scanner(inputStream);
try {
if (scanner.hasNext()) {
consumer.accept(scanner.next());
}
} catch (Throwable var8) {
try {
scanner.close();
} catch (Throwable var7) {
var8.addSuppressed(var7);
}
throw var8;
}
scanner.close();
} catch (Throwable var9) {
if (inputStream != null) {
try {
inputStream.close();
} catch (Throwable var6) {
var9.addSuppressed(var6);
}
}
throw var9;
}
if (inputStream != null) {
inputStream.close();
}
} catch (IOException var10) {
this.plugin.getLogger().severe(BMain.prefix + "§4 Cannot look for updates: " + var10.getMessage());
}
});
}
}

View File

@ -1,277 +0,0 @@
package de.jatitv.commandguiv2.Spigot.Listener;
import de.jatitv.commandguiv2.Spigot.Listener.UseItem_Listener.Events;
import de.jatitv.commandguiv2.Spigot.objects.functions.Function;
import de.jatitv.commandguiv2.Spigot.cmdManagement.Commands;
import de.jatitv.commandguiv2.Spigot.objects.slots.Slot;
import de.jatitv.commandguiv2.Spigot.system.Bungee_Sender_Reciver;
import de.jatitv.commandguiv2.Spigot.config.languages.SelectMessages;
import de.jatitv.commandguiv2.Spigot.objects.guis.Gui;
import de.jatitv.commandguiv2.Spigot.gui.OpenGUI;
import de.jatitv.commandguiv2.Spigot.config.config.SelectConfig;
import de.jatitv.commandguiv2.Spigot.Main;
import de.jatitv.commandguiv2.Util;
import net.t2code.lib.Spigot.Lib.items.ItemVersion;
import net.t2code.lib.Spigot.Lib.messages.send;
import net.t2code.lib.Spigot.Lib.replace.Replace;
import net.t2code.lib.Spigot.Lib.vault.Vault;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitRunnable;
import java.io.File;
import java.io.IOException;
public class GUIListener implements Listener {
private static String prefix = Util.getPrefix();
public static String GUICode;
private static Plugin plugin = Main.plugin;
@EventHandler
public void onInventoryClick(InventoryClickEvent e) {
Player player = (Player) e.getWhoClicked();
JavaPlugin plugin = Main.plugin;
if (e.getInventory() == null) return;
if (e.getCurrentItem() == null) return;
for (Gui gui : Main.guiHashMap.values()) {
if (player.getOpenInventory().getTitle().equals(Replace.replace(prefix, GUICode + gui.guiName))
|| (Main.PaPi && player.getOpenInventory().getTitle().equals(Replace.replace(prefix, player, GUICode + gui.guiName)))) {
e.setCancelled(true);
for (Slot slot : gui.slots) {
Function function = Main.functionHashMap.get(slot.function);
if (e.getSlot() != slot.slot) continue;
if (slot.permission && !player.hasPermission(slot.permissionToSee)) continue;
if (slot.permission && !player.hasPermission(slot.permissionToUse)) {
player.sendMessage(SelectMessages.NoPermissionForItem.replace("[item]", Replace.replace(prefix, function.name))
.replace("[perm]", slot.permissionToUse));
continue;
}
if (e.getCurrentItem().getType() == ItemVersion.getHead() || e.getCurrentItem().getType() == ItemVersion.getGreenWool().getType() ||
e.getCurrentItem().getType() == ItemVersion.getRedWool().getType() ||
e.getCurrentItem().getType() == Material.valueOf(function.item.toUpperCase().replace(".", "_"))) {
if (!slot.enable) continue;
if (function.cost_Enable) {
if (function.command_Enable || function.message_Enable || function.openGUI_Enable || function.serverChange) {
if (!Vault.buy(prefix, player, function.price)) {
new BukkitRunnable() {
@Override
public void run() {
player.closeInventory();
}
}.runTaskLater(plugin, 1L);
player.sendMessage(SelectMessages.No_money);
if (SelectConfig.Sound_NoMoney_Enable && SelectConfig.Sound_Enable)
player.playSound(player.getLocation(), SelectConfig.Sound_NoMoney, 3, 1);
} else {
player.sendMessage(SelectMessages.Buy_msg.replace("[itemname]", Replace.replace(prefix, function.name))
.replace("[price]", function.price + " " + SelectConfig.Currency));
execute(function, slot, player, e, gui);
}
}
} else {
execute(function, slot, player, e, gui);
}
}
}
}
}
}
private static void execute(Function function, Slot slot, Player player, InventoryClickEvent e, Gui gui) {
if (function.togglePermission) togglePerm(function, gui, player);
if (function.toggleUseItem) toggleUseItem(player, gui);
if (function.command_Enable) command(function, player);
if (function.openGUI_Enable) openGUI(function, player);
if (function.message_Enable) message(function, player);
if (function.serverChange) serverChange(function, player);
if (function.setConfigEnable) setConfig(function, player, e);
if (SelectConfig.Sound_Enable && SelectConfig.Sound_Click_Enable) sound(function, slot, player, gui);
}
private static void command(Function slot, Player player) {
new BukkitRunnable() {
@Override
public void run() {
player.closeInventory();
}
}.runTaskLater(plugin, 1L);
new BukkitRunnable() {
@Override
public void run() {
if (slot.command_BungeeCommand) {
if (SelectConfig.Bungee) {
for (String cmd : slot.command) {
Bungee_Sender_Reciver.sendToBungee(player, cmd.replace("[player]", player.getName()), slot.commandAsConsole);
}
} else {
send.console(prefix + " §4To use bungee commands, enable the Bungee option in the config.");
send.player(player, prefix + " §4To use bungee commands, enable the Bungee option in the config.");
}
} else {
for (String cmd : slot.command) {
if (slot.commandAsConsole) {
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), cmd.replace("[player]", player.getName()));
} else player.chat("/" + cmd.replace("[player]", player.getName()));
}
}
}
}.runTaskLater(plugin, 2L);
}
private static void openGUI(Function slot, Player player) {
player.closeInventory();
new BukkitRunnable() {
@Override
public void run() {
OpenGUI.openGUI(player, slot.openGUI, true);
}
}.runTaskLater(plugin, 1L);
}
private static void message(Function slot, Player player) {
new BukkitRunnable() {
@Override
public void run() {
player.closeInventory();
}
}.runTaskLater(plugin, 1L);
for (String msg : slot.message) {
if (Main.PaPi) {
if (slot.cost_Enable) {
player.sendMessage(Replace.replacePrice(prefix, player, msg, slot.price + " " + SelectConfig.Currency));
} else player.sendMessage(Replace.replace(prefix, player, msg.replace("[prefix]", prefix)));
} else {
if (slot.cost_Enable) {
player.sendMessage(Replace.replacePrice(prefix, msg, slot.price + " " + SelectConfig.Currency));
} else player.sendMessage(Replace.replace(prefix, msg.replace("[prefix]", prefix)));
}
}
}
private static void serverChange(Function slot, Player player) {
new BukkitRunnable() {
@Override
public void run() {
player.closeInventory();
}
}.runTaskLater(plugin, 1L);
send.player(player, SelectMessages.onServerChange.replace("[server]", slot.serverChangeServer));
new BukkitRunnable() {
@Override
public void run() {
ServerChange.send(player, slot.serverChangeServer);
}
}.runTaskLater(Main.plugin, 20L);
}
private static void setConfig(Function slot, Player player, InventoryClickEvent e) {
File config = new File(slot.configFilePath);
YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config);
if (e.getClick() == ClickType.LEFT) {
if (slot.configOptionPremat.equals("String")) {
yamlConfiguration.set(slot.configOptionPath.replace("/", "."), slot.configStringValueLeft);
} else if (slot.configOptionPremat.equals("Boolean")) {
yamlConfiguration.set(slot.configOptionPath.replace("/", "."), slot.configBooleanValueLeft);
} else if (slot.configOptionPremat.equals("Integer")) {
yamlConfiguration.set(slot.configOptionPath.replace("/", "."), slot.configIntegerValueLeft);
} else if (slot.configOptionPremat.equals("Double")) {
yamlConfiguration.set(slot.configOptionPath.replace("/", "."), slot.configDoubleValueLeft);
} else if (slot.configOptionPremat.equals("List")) {
yamlConfiguration.set(slot.configOptionPath.replace("/", "."), slot.configListValueLeft);
} else {
player.sendMessage("§cCheck the Option §6SetConfig/Option/Premat"); //todo
}
}
if (e.getClick() == ClickType.RIGHT) {
if (slot.configOptionPremat.equals("String")) {
yamlConfiguration.set(slot.configOptionPath.replace("/", "."), slot.configStringValueRight);
} else if (slot.configOptionPremat.equals("Boolean")) {
yamlConfiguration.set(slot.configOptionPath.replace("/", "."), slot.configBooleanValueRight);
} else if (slot.configOptionPremat.equals("Integer")) {
yamlConfiguration.set(slot.configOptionPath.replace("/", "."), slot.configIntegerValueRight);
} else if (slot.configOptionPremat.equals("Double")) {
yamlConfiguration.set(slot.configOptionPath.replace("/", "."), slot.configDoubleValueRight);
} else if (slot.configOptionPremat.equals("List")) {
yamlConfiguration.set(slot.configOptionPath.replace("/", "."), slot.configListValueRight);
} else {
player.sendMessage("§cCheck the Option §6SetConfig/Option/Premat"); //todo
}
}
try {
yamlConfiguration.save(config);
} catch (IOException tac) {
tac.printStackTrace();
}
if (slot.pluginReloadEnable) {
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), slot.pluginReloadCommand);
}
new BukkitRunnable() {
@Override
public void run() {
player.closeInventory();
}
}.runTaskLater(plugin, 1L);
}
private static void sound(Function function, Slot slot, Player player, Gui gui) {
if (function.customSound_Enable) {
if (!function.customSound_NoSound) {
try {
player.playSound(player.getLocation(), Sound.valueOf(function.customSound_Sound.toUpperCase().replace(".", "_")), 3, 1);
} catch (Exception e1) {
send.console("§4\n§4\n§4\n" + SelectMessages.SoundNotFound.replace("[prefix]", prefix)
.replace("[sound]", "§6GUI: §e" + Replace.replace(prefix, gui.guiName) + "§r §6Slot: §e" + slot.slot + " §6CustomSound: §9" + function.customSound_Sound));
player.playSound(player.getLocation(), SelectConfig.Sound_Click, 3, 1);
}
}
} else player.playSound(player.getLocation(), SelectConfig.Sound_Click, 3, 1);
}
private static void togglePerm(Function function, Gui gui, Player player) {
if (player.hasPermission(function.togglePermissionPerm)) {
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), SelectConfig.togglePermFalse.replace("[player]", player.getName()).replace("[perm]", function.togglePermissionPerm));
new BukkitRunnable() {
@Override
public void run() {
player.closeInventory();
OpenGUI.openGUI(player, gui.key, false);
}
}.runTaskLater(plugin, 4L);
} else
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), SelectConfig.togglePermTrue.replace("[player]", player.getName()).replace("[perm]", function.togglePermissionPerm));
new BukkitRunnable() {
@Override
public void run() {
player.closeInventory();
OpenGUI.openGUI(player, gui.key, false);
}
}.runTaskLater(plugin, 4L);
}
private static void toggleUseItem(Player player, Gui gui) {
if (Events.useItemHashMap.get(player)) {
Commands.itemOff(player);
} else {
Commands.itemOn(player);
}
new BukkitRunnable() {
@Override
public void run() {
player.closeInventory();
OpenGUI.openGUI(player, gui.key, false);
}
}.runTaskLater(plugin, 2L);
}
}

View File

@ -1,117 +0,0 @@
package de.jatitv.commandguiv2.Spigot.Listener;
import de.jatitv.commandguiv2.Spigot.Listener.UseItem_Listener.Events;
import de.jatitv.commandguiv2.Spigot.Main;
import de.jatitv.commandguiv2.Spigot.system.UseItem;
import de.jatitv.commandguiv2.Spigot.config.config.SelectConfig;
import net.t2code.lib.Spigot.Lib.messages.send;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
public class ItemChange {
public static void itemChange(Player player, Boolean setCursor) {
Integer slot;
if (SelectConfig.UseItem_InventorySlotEnforce) {
slot = SelectConfig.UseItem_InventorySlot;
} else {
if (Events.useItemSlotHashMap.get(player) == null) {
slot = SelectConfig.UseItem_InventorySlot;
} else {
slot = Events.useItemSlotHashMap.get(player);
}
}
if (!SelectConfig.UseItem_Enable) {
return;
}
UseItem.removeItem(player);
if (UseItem.protection(player, false)) return;
if (SelectConfig.UseItem_GiveOnlyOnFirstJoin) {
if (!SelectConfig.UseItem_AllowToggle || Events.useItemHashMap.get(player)) {
if (!player.hasPlayedBefore()) {
new BukkitRunnable() {
@Override
public void run() {
UseItem.giveUseItem(player);
if (setCursor) {
setCursor(player, slot);
}
}
}.runTaskLater(Main.plugin, 1L * 1);
if (SelectConfig.Cursor_ToGUIItem_OnlyOnFirstLogin || SelectConfig.Cursor_ToGUIItem_OnLogin) {
player.getInventory().setHeldItemSlot(slot - 1);
}
}
}
send.debug(Main.plugin, "GiveOnlyOnFirstJoin: " + player.getName());
return;
}
if (!SelectConfig.UseItem_GiveOnEveryJoin) {
send.debug(Main.plugin, "!GiveOnEveryJoin: " + player.getName());
return;
}
new BukkitRunnable() {
@Override
public void run() {
if (player == null) return;
if (!SelectConfig.UseItem_AllowToggle || Events.useItemHashMap.get(player)) {
if (SelectConfig.UseItem_InventorySlotEnforce || player.getInventory().getItem(slot - 1) == null) {
send.debug(Main.plugin, "Give: " + player.getName());
UseItem.giveUseItem(player);
if (setCursor) {
setCursor(player, slot);
}
} else if (SelectConfig.UseItem_InventorySlot_FreeSlot) {
boolean empty = false;
for (int i = 0; i < 9; i++) {
if (player.getInventory().getItem(i) == null) {
empty = true;
break;
}
}
if (empty) {
UseItem.addUseItem(player);
}
}
}
}
}.runTaskLater(Main.plugin, 1L * 1);
}
private static void setCursor(Player player, int slot) {
send.debug(Main.plugin, "setCursor 1 Player: " + player.getName());
if (!SelectConfig.Cursor_ToGUIItem_OnLogin) {
return;
}
send.debug(Main.plugin, "setCursor 2 Player: " + player.getName());
if (SelectConfig.Cursor_ToGUIItem_OnlyOnFirstLogin) {
if (!player.hasPlayedBefore()) {
player.getInventory().setHeldItemSlot(slot - 1);
send.debug(Main.plugin, "setCursor 3 Player: " + player.getName());
}
return;
}
send.debug(Main.plugin, "setCursor 4 Player: " + player.getName());
if (!SelectConfig.Bungee) {
player.getInventory().setHeldItemSlot(slot - 1);
send.debug(Main.plugin, "setCursor 5 Player: " + player.getName());
return;
}
send.debug(Main.plugin, "setCursor 6 Player: " + player.getName());
if (SelectConfig.UseItem_ServerChange) {
player.getInventory().setHeldItemSlot(slot - 1);
send.debug(Main.plugin, "setCursor 7 Player: " + player.getName());
return;
}
send.debug(Main.plugin, "setCursor 8 Player: " + player.getName());
send.debug(Main.plugin, "setCursor bungeejoinplayers: " + Main.bungeejoinplayers);
send.debug(Main.plugin, "setCursor Player: " + player.getName());
if (Main.bungeejoinplayers.contains(player.getName())) {
player.getInventory().setHeldItemSlot(slot - 1);
send.debug(Main.plugin, "setCursor 9 Player: " + player.getName());
Main.bungeejoinplayers.remove(player.getName());
}
}
}

View File

@ -1,79 +0,0 @@
// This claas was created by JaTiTV
package de.jatitv.commandguiv2.Spigot.Listener;
import de.jatitv.commandguiv2.Spigot.Main;
import de.jatitv.commandguiv2.Spigot.config.config.SelectConfig;
import de.jatitv.commandguiv2.Spigot.system.database.SelectDatabase;
import de.jatitv.commandguiv2.Util;
import net.t2code.lib.Spigot.Lib.update.UpdateAPI;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
import org.bukkit.event.player.PlayerLoginEvent;
import org.bukkit.event.server.ServerCommandEvent;
import org.bukkit.scheduler.BukkitRunnable;
public class PluginEvent implements Listener {
private static String prefix = Main.prefix;
@EventHandler
public void onJoinEvent(PlayerLoginEvent event) {
Player player = event.getPlayer();
SelectDatabase.nameCheck(player);
UpdateAPI.join(Main.plugin,prefix, "commandgui.updatemsg", event.getPlayer(), Util.getSpigot(), Util.getDiscord());
}
@EventHandler
public void onClearServer(ServerCommandEvent event) {
if (SelectConfig.UseItem_KeepAtCommandClear) {
if (event.getCommand().contains("clear " + event.getCommand().replace("/", "").replace("clear ", ""))) {
new BukkitRunnable() {
@Override
public void run() {
try {
Player player = Bukkit.getPlayer(event.getCommand().replace("/", "").replace("clear ", ""));
if (player == null){
return;
}
clearGive(player);
} catch (Exception ex){
ex.printStackTrace();
return;
}
}
}.runTaskLater(Main.plugin, 1L);
}
}
}
@EventHandler
public void onClearPlayer(PlayerCommandPreprocessEvent event) {
if (SelectConfig.UseItem_KeepAtCommandClear) {
if (event.getMessage().toLowerCase().contains("clear")) {
new BukkitRunnable() {
@Override
public void run() {
clearGive(event.getPlayer());
}
}.runTaskLater(Main.plugin, 1L);
}
if (event.getMessage().toLowerCase().contains("clear " + event.getMessage().toLowerCase().replace("/", "").replace("clear ", ""))) {
new BukkitRunnable() {
@Override
public void run() {
clearGive(Bukkit.getPlayer(event.getMessage().toLowerCase().replace("/", "").replace("clear ", "")));
}
}.runTaskLater(Main.plugin, 1L);
}
}
}
private static void clearGive(Player player) {
ItemChange.itemChange(player, false);
}
}

View File

@ -1,300 +0,0 @@
package de.jatitv.commandguiv2.Spigot.Listener.UseItem_Listener;
import de.jatitv.commandguiv2.Spigot.Listener.ItemChange;
import de.jatitv.commandguiv2.Spigot.Main;
import de.jatitv.commandguiv2.Spigot.cmdManagement.Commands;
import de.jatitv.commandguiv2.Spigot.config.config.SelectConfig;
import de.jatitv.commandguiv2.Spigot.config.languages.SelectMessages;
import de.jatitv.commandguiv2.Spigot.gui.OpenGUI;
import de.jatitv.commandguiv2.Spigot.system.UseItem;
import de.jatitv.commandguiv2.Spigot.system.database.SelectDatabase;
import de.jatitv.commandguiv2.api.CGuiAPI;
import net.t2code.lib.Spigot.Lib.items.ItemVersion;
import net.t2code.lib.Spigot.Lib.messages.send;
import net.t2code.lib.Spigot.Lib.minecraftVersion.MCVersion;
import net.t2code.lib.Spigot.Lib.minecraftVersion.NMSVersion;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryDragEvent;
import org.bukkit.event.inventory.InventoryMoveItemEvent;
import org.bukkit.event.inventory.InventoryPickupItemEvent;
import org.bukkit.event.player.*;
import org.bukkit.inventory.ItemStack;
import org.bukkit.scheduler.BukkitRunnable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
public class Events implements Listener {
public static HashMap<Player, Boolean> useItemHashMap = new HashMap<>();
public static HashMap<Player, Integer> useItemSlotHashMap = new HashMap<>();
@EventHandler
public void onJoin(PlayerJoinEvent e) {
if (SelectDatabase.selectItemStatus(e.getPlayer())) {
useItemHashMap.put(e.getPlayer(), true);
} else useItemHashMap.put(e.getPlayer(), false);
useItemSlotHashMap.put(e.getPlayer(), SelectDatabase.selectSlot(e.getPlayer()));
if (CGuiAPI.JoinDisable) {
send.debug(Main.plugin, "JoinDisable");
return;
}
if (e.getPlayer().hasPermission("commandgui.get.guiitem.at.login")) {
new BukkitRunnable() {
@Override
public void run() {
send.debug(Main.plugin, "itemChange: " + e.getPlayer().getName());
ItemChange.itemChange(e.getPlayer(), true);
}
}.runTaskLater(Main.plugin, 20L * 1);
}
}
@EventHandler
public void onJoin(PlayerQuitEvent e) {
useItemHashMap.remove(e.getPlayer());
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onDeathDrop(PlayerDeathEvent e) {
Player player = e.getEntity().getPlayer();
UseItem.removeItem(player);
if (!e.getDrops().isEmpty()) {
Iterator var3 = (new ArrayList(e.getDrops())).iterator();
while (var3.hasNext()) {
ItemStack items = (ItemStack) var3.next();
if (items != null && items.hasItemMeta() && items.getItemMeta().hasDisplayName()
&& items.getItemMeta().getDisplayName().equals(SelectConfig.UseItem_Name)) {
e.getDrops().remove(items);
}
}
}
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onRespawn(PlayerRespawnEvent e) {
Player player = e.getPlayer();
if (SelectConfig.UseItem_Enable) {
ItemChange.itemChange(player, false);
//if (!SelectConfig.UseItem_AllowToggle || Select_Database.selectItemStatus(player)) {
// if (SelectConfig.UseItem_GiveOnlyOnFirstJoin) {
// if (!player.hasPlayedBefore()) {
// new BukkitRunnable() {
// @Override
// public void run() {
// Give_UseItem.onGive(player);
// }
// }.runTaskLater(Main.plugin, 20L * 1);
// }
// } else {
// new BukkitRunnable() {
// @Override
// public void run() {
// Give_UseItem.onGive(player);
// }
// }.runTaskLater(Main.plugin, 20L * 1);
// }
//}
}
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onGameModeChange(PlayerGameModeChangeEvent e) {
Player player = e.getPlayer();
if (!SelectConfig.UseItemGameModeChangeEnable) {
return;
}
new BukkitRunnable() {
@Override
public void run() {
ItemChange.itemChange(player, false);
}
}.runTaskLater(Main.plugin, SelectConfig.UseItemGameModeChangeDelayInTicks * 1L);
}
@EventHandler
public void onWorldChange(PlayerChangedWorldEvent e) {
Player player = e.getPlayer();
if (!SelectConfig.UseItemWorldChangeEnable) {
return;
}
new BukkitRunnable() {
@Override
public void run() {
ItemChange.itemChange(player, false);
}
}.runTaskLater(Main.plugin, SelectConfig.UseItemWorldChangeDelayInTicks * 1L);
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onInteract(PlayerInteractEvent e) {
Player p = e.getPlayer();
if (SelectConfig.UseItem_Enable) {
if (SelectConfig.UseItem_PlayerHead_Enable) {
if (e.getItem() != null && p.getItemInHand().getType() == ItemVersion.getHead()) {
if (e.getItem().getItemMeta().getDisplayName().equals(SelectConfig.UseItem_Name)) {
openGUI(e, p);
}
}
} else {
if (e.getItem() != null && p.getItemInHand().getType() == Material.valueOf(SelectConfig.UseItem_Material)) {
if (e.getItem().getItemMeta().getDisplayName().equals(SelectConfig.UseItem_Name)) {
openGUI(e, p);
}
}
}
}
}
private static void openGUI(PlayerInteractEvent e, Player player) {
e.setCancelled(true);
if ((!SelectConfig.disableInfoBySneak) && player.isSneaking()) {
Commands.info(player);
return;
}
if (!legacy()) {
if (!topInventoryIsEmpty(player)) return;
}
if (UseItem.protection(player, true)) return;
if (SelectConfig.UseItemGameModeProtection) {
if (SelectConfig.UseItemGameModeMode.equalsIgnoreCase("blacklist") && SelectConfig.UseItemGameModeList.contains(player.getGameMode().toString())) {
e.setCancelled(true);
send.player(player, SelectMessages.UseItemDisabledInGameMode);
return;
}
if (SelectConfig.UseItemGameModeMode.equalsIgnoreCase("whitelist") && !SelectConfig.UseItemGameModeList.contains(player.getGameMode().toString())) {
e.setCancelled(true);
send.player(player, SelectMessages.UseItemDisabledInGameMode);
return;
}
}
if (SelectConfig.UseItemWorldProtection) {
if (SelectConfig.UseItemWorldMode.equalsIgnoreCase("blacklist") && SelectConfig.UseItemWorldList.contains(player.getWorld().getName())) {
e.setCancelled(true);
send.player(player, SelectMessages.UseItemDisabledInWorld);
return;
}
if (SelectConfig.UseItemWorldMode.equalsIgnoreCase("whitelist") && !SelectConfig.UseItemWorldList.contains(player.getWorld().getName())) {
e.setCancelled(true);
send.player(player, SelectMessages.UseItemDisabledInWorld);
return;
}
}
if (!SelectConfig.UseItem_Permission || player.hasPermission("commandgui.useitem")) {
OpenGUI.openGUI(player, SelectConfig.UseItem_OpenGUI, true);
} else {
player.sendMessage(SelectMessages.NoPermissionForUseItem.replace("[perm]", "commandgui.useitem")
.replace("[gui]", SelectConfig.UseItem_OpenGUI));
}
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onItemMoveEvent(InventoryMoveItemEvent e) {
if (!SelectConfig.UseItem_BlockMoveAndDrop || !SelectConfig.UseItem_Enable) return;
if (e.getItem() != null && e.getItem().hasItemMeta() && e.getItem().getItemMeta().hasDisplayName()
&& e.getItem().getItemMeta().getDisplayName().equals(SelectConfig.UseItem_Name)) {
e.setCancelled(true);
}
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onItemMove(InventoryDragEvent e) {
if (!SelectConfig.UseItem_BlockMoveAndDrop || !SelectConfig.UseItem_Enable) return;
if (e.getWhoClicked() instanceof Player) {
Player p = (Player) e.getWhoClicked();
if (e.getCursor() != null && e.getCursor().hasItemMeta() && e.getCursor().getItemMeta().hasDisplayName()
&& e.getCursor().getItemMeta().getDisplayName().equals(SelectConfig.UseItem_Name)) {
p.closeInventory();
e.setCancelled(true);
ItemChange.itemChange(p, false);
}
if (e.getOldCursor() != null && e.getOldCursor().hasItemMeta() && e.getOldCursor().getItemMeta().hasDisplayName()
&& e.getOldCursor().getItemMeta().getDisplayName().equals(SelectConfig.UseItem_Name)) {
p.closeInventory();
e.setCancelled(true);
ItemChange.itemChange(p, false);
}
}
}
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onItemMove(InventoryClickEvent e) {
if (!SelectConfig.UseItem_BlockMoveAndDrop || !SelectConfig.UseItem_Enable) return;
if (e.getCursor() != null && e.getCursor().hasItemMeta() && e.getCursor().getItemMeta().hasDisplayName()
&& e.getCursor().getItemMeta().getDisplayName().equals(SelectConfig.UseItem_Name)) {
e.setCancelled(true);
}
if (e.getCurrentItem() != null && e.getCurrentItem().hasItemMeta() && e.getCurrentItem().getItemMeta().hasDisplayName()
&& e.getCurrentItem().getItemMeta().getDisplayName().equals(SelectConfig.UseItem_Name)) {
e.setCancelled(true);
}
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onItemMove(InventoryPickupItemEvent e) {
if (!SelectConfig.UseItem_BlockMoveAndDrop || !SelectConfig.UseItem_Enable) return;
if (e.getItem() != null && e.getItem().getItemStack() != null) {
ItemStack item = e.getItem().getItemStack();
if (item.hasItemMeta() && item.getItemMeta().hasDisplayName()
&& item.getItemMeta().getDisplayName().equals(SelectConfig.UseItem_Name)) {
e.setCancelled(true);
}
}
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onPlace(BlockPlaceEvent e) {
if (!SelectConfig.UseItem_BlockMoveAndDrop || !SelectConfig.UseItem_Enable) return;
if (e.getItemInHand() != null && e.getItemInHand().hasItemMeta() && e.getItemInHand().getItemMeta().hasDisplayName()
&& e.getItemInHand().getItemMeta().getDisplayName().equals(SelectConfig.UseItem_Name)) {
e.setCancelled(true);
}
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onDrop(PlayerDropItemEvent e) {
if (!SelectConfig.UseItem_BlockMoveAndDrop || !SelectConfig.UseItem_Enable) return;
if (e.getItemDrop() != null && e.getItemDrop().getItemStack() != null) {
ItemStack item = e.getItemDrop().getItemStack();
if (item.hasItemMeta() && item.getItemMeta().hasDisplayName()
&& item.getItemMeta().getDisplayName().equals(SelectConfig.UseItem_Name)) {
e.setCancelled(true);
}
}
}
private static boolean legacy() {
if (MCVersion.minecraft1_8 || MCVersion.minecraft1_9 || MCVersion.minecraft1_10 || MCVersion.minecraft1_11 || MCVersion.minecraft1_12 || MCVersion.minecraft1_13 || MCVersion.minecraft1_14 || MCVersion.minecraft1_15 || NMSVersion.v1_16_R1) {
return true;
} else return false;
}
private static boolean topInventoryIsEmpty(Player p) {
return p.getOpenInventory().getTopInventory().isEmpty();
}
}

View File

@ -1,122 +0,0 @@
package de.jatitv.commandguiv2.Spigot;
//s<ds
import de.jatitv.commandguiv2.Spigot.objects.functions.Function;
import de.jatitv.commandguiv2.Spigot.system.Load;
import de.jatitv.commandguiv2.Spigot.objects.guis.Gui;
import de.jatitv.commandguiv2.Spigot.system.database.MySQL;
import de.jatitv.commandguiv2.Util;
import net.t2code.lib.Spigot.Lib.messages.T2CodeTemplate;
import net.t2code.lib.Spigot.Lib.messages.send;
import net.t2code.lib.Spigot.Lib.plugins.PluginCheck;
import org.bukkit.Bukkit;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin;
import java.io.File;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
public final class Main extends JavaPlugin {
public static ArrayList<String> bungeejoinplayers = new ArrayList<>();
public static File getPath() {
return plugin.getDataFolder();
}
private static Boolean enable = false;
public static String prefix = "§8[§4C§9GUI§8]";
public static String version;
public static List<String> autor;
public static Main plugin;
public static List plugins;
public static String update_version = null;
public static Boolean PaPi = false;
public static Boolean PlotSquaredGUI = false;
public static Boolean LuckyBox = false;
public static Boolean PlugManGUI = false;
public static HashMap<String, Gui> guiHashMap = new HashMap<>();
public static ArrayList<String> allAliases = new ArrayList<>();
public static HashMap<String, Function> functionHashMap = new HashMap<>();
@Override
public void onEnable() {
plugins = Arrays.asList(getServer().getPluginManager().getPlugins());
// Plugin startup logic
// Plugin startup logic
Logger logger = this.getLogger();
plugin = this;
autor = plugin.getDescription().getAuthors();
version = plugin.getDescription().getVersion();
if (pluginNotFound("T2CodeLib", 96388, Util.getRequiredT2CodeLibVersion())) return;
getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
if (PluginCheck.papi()) {
PaPi = true;
}
Load.onLoad(prefix, autor, version, Util.getSpigot(), Util.getSpigotID(), Util.getDiscord(), Util.getBstatsID());
enable = true;
}
public static void addonLoad() {
if (PluginCheck.plotSquaredGUI()) {
PlotSquaredGUI = true;
addonEnable(Bukkit.getPluginManager().getPlugin("PlotSquaredGUI"));
}if (PluginCheck.luckyBox()) {
LuckyBox = true;
addonEnable(Bukkit.getPluginManager().getPlugin("T2C-LuckyBox"));
}
if (PluginCheck.plugManGUI()) {
PlugManGUI = true;
addonEnable(Bukkit.getPluginManager().getPlugin("PlugManGUI"));
}
}
public static void addonEnable(Plugin plugin) {
send.console(prefix + " §aAddon for: §e" + plugin.getName() + "§7 - Version: " + plugin.getDescription().getVersion() + " §aloaded successfully!");
}
public static Boolean pluginNotFound(String pl, Integer spigotID) {
if (Bukkit.getPluginManager().getPlugin(pl) == null) {
plugin.getLogger().log(Level.SEVERE, "Plugin can not be loaded!");
Bukkit.getConsoleSender().sendMessage(prefix + " §e" + pl + " §4could not be found. Please download it here: " +
"§6https://spigotmc.org/resources/" + pl + "." + spigotID + " §4to be able to use this plugin.");
Main.plugin.getPluginLoader().disablePlugin(Main.plugin);
return true;
} else return false;
}
public static Boolean pluginNotFound(String pl, Integer spigotID, double ver) {
if (Bukkit.getPluginManager().getPlugin(pl) == null) {
plugin.getLogger().log(Level.SEVERE, "Plugin can not be loaded!");
Bukkit.getConsoleSender().sendMessage(prefix + " §e" + pl + " §4could not be found. Please download it here: " +
"§6https://spigotmc.org/resources/" + pl + "." + spigotID + " §4to be able to use this plugin.");
Main.plugin.getPluginLoader().disablePlugin(Main.plugin);
return true;
} else {
if (Double.parseDouble(Bukkit.getPluginManager().getPlugin(pl).getDescription().getVersion()) < ver) {
plugin.getLogger().log(Level.SEVERE, "Plugin can not be loaded!");
Bukkit.getConsoleSender().sendMessage(prefix + " §e" + pl + " §4is out of date! This plugin requires at least version §2" + ver + " §4of §6" + pl + " §4Please update it here: §6https://spigotmc.org/resources/" + pl + "." + spigotID + " §4to use this version of " + plugin.getDescription().getName() + ".");
Main.plugin.getPluginLoader().disablePlugin(Main.plugin);
return true;
}
return false;
}
}
@Override
public void onDisable() {
// Plugin shutdown logic
if (enable) T2CodeTemplate.onDisable(prefix, autor, version, Util.getSpigot(), Util.getDiscord());
MySQL.close();
}
}

View File

@ -1,171 +0,0 @@
package de.jatitv.commandguiv2.Spigot.cmdManagement;
import de.jatitv.commandguiv2.Spigot.Main;
import de.jatitv.commandguiv2.Spigot.system.Debug;
import de.jatitv.commandguiv2.Spigot.config.gui.CreateGUI;
import de.jatitv.commandguiv2.Spigot.config.languages.SelectMessages;
import de.jatitv.commandguiv2.Util;
import net.t2code.lib.Spigot.Lib.commands.Tab;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabCompleter;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class CmdExecuter_GUITab implements CommandExecutor, TabCompleter {
private static String prefix = Util.getPrefix();
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (args.length == 0) {
if (!(sender instanceof Player)) {
sender.sendMessage(SelectMessages.OnlyForPlayer);
return false;
}
Player player = (Player) sender;
Commands.gui(player);
} else {
if (args[0].equals("admin")) {
if (args.length == 1) {
Help.sendHelp(sender, prefix);
return false;
}
switch (args[1].toLowerCase()) {
case "info":
case "plugin":
case "pl":
case "version":
case "ver":
if (sender.hasPermission("commandgui.command.info")) {
Commands.info(sender);
} else sender.sendMessage(SelectMessages.NoPermissionForCommand
.replace("[cmd]", "/commandgui admin").replace("[perm]", "commandgui.command.info"));
break;
case "reload":
case "rl":
if (sender.hasPermission("commandgui.admin")) {
Commands.reload(sender);
} else sender.sendMessage(SelectMessages.NoPermissionForCommand
.replace("[cmd]", "/commandgui admin").replace("[perm]", "commandgui.admin"));
break;
case "createdefaultgui":
if (sender.hasPermission("commandgui.admin")) {
CreateGUI.configCreate();
sender.sendMessage(SelectMessages.DefaultGUIcreate.replace("[directory]", Main.getPath() + "/GUIs/default.yml"));
} else sender.sendMessage(SelectMessages.NoPermissionForCommand
.replace("[cmd]", "/commandgui admin").replace("[perm]", "commandgui.admin"));
break;
case "debug":
if (sender.hasPermission("commandgui.admin")) {
Debug.onDebugFile(sender);
/*if (args.length == 2) {
if (args[1].equals("config")) {
Debug.debugmsg();
}
if (args[1].equals("2")) {
send.debug("2");
}
break;
} else Debug.debugmsg();
*/
} else sender.sendMessage(SelectMessages.NoPermissionForCommand.replace("[cmd]", "/commandgui admin").replace("[perm]", "commandgui.admin"));
break;
case "give":
if (args.length == 3) {
if (sender.hasPermission("commandgui.giveitem.other")) {
Player target = Bukkit.getPlayer(args[2]);
Commands.give(sender, target);
} else sender.sendMessage(SelectMessages.NoPermissionForCommand.replace("[cmd]", "/commandgui give")
.replace("[perm]", "commandgui.command.give"));
} else Help.sendHelp(sender, prefix);
break;
case "help":
default:
Help.sendHelp(sender, prefix);
break;
}
} else {
if (sender instanceof Player) {
Player player = (Player) sender;
Commands.gui(player, args[0]);
return false;
}
Help.sendHelp(sender, prefix);
}
}
return false;
}
//TabCompleter
public static HashMap<String, String> arg1 = new HashMap<String, String>();
private static HashMap<String, String> arg2 = new HashMap<String, String>() {{
put("reload", "commandgui.admin");
put("rl", "commandgui.admin");
put("createdefaultgui", "commandgui.admin");
put("give", "commandgui.giveitem.other");
put("info", "commandgui.command.info");
}};
@Override
public List<String> onTabComplete(CommandSender sender, Command cmd, String s, String[] args) {
List<String> list = new ArrayList<>();
Tab.tab(list, sender, 0, args, arg1);
Tab.tab(list, sender, 0, "admin", 1, args, arg2);
Tab.tab(list, sender, 1, "give", 2, args, "commandgui.giveitem.other", true);
// if (args.length == 1) {
// for (String command : arg1.keySet()) {
// Boolean passend = true;
// for (int i = 0; i < args[0].length(); i++) {
// if (args[0].length() >= command.length()) {
// passend = false;
// } else {
// if (args[0].charAt(i) != command.charAt(i)) {
// passend = false;
// }
// }
// }
// if (hasPermission(sender, arg1.get(command)) && passend) {
// list.add(command);
// }
// }
// }
// if (args.length > 1) {
// if (args[0].toLowerCase().equals("admin")){
// return Tab.tab(sender,1,args,arg2);
// }
//
// }
return list;
}
public static boolean hasPermission(CommandSender sender, String permission) {
if (permission.equals("")) {
return true;
}
String[] Permissions = permission.split(";");
for (String perm : Permissions) {
if (sender.hasPermission(perm)) {
return true;
}
}
return false;
}
}

View File

@ -1,224 +0,0 @@
package de.jatitv.commandguiv2.Spigot.cmdManagement;
import de.jatitv.commandguiv2.Spigot.Listener.UseItem_Listener.Events;
import de.jatitv.commandguiv2.Spigot.Main;
import de.jatitv.commandguiv2.Spigot.objects.Obj_Select;
import de.jatitv.commandguiv2.Spigot.objects.guis.Gui;
import de.jatitv.commandguiv2.Spigot.cmdManagement.register.AliasRegister;
import de.jatitv.commandguiv2.Spigot.gui.OpenGUI;
import de.jatitv.commandguiv2.Spigot.system.UseItem;
import de.jatitv.commandguiv2.Spigot.config.config.ConfigCreate;
import de.jatitv.commandguiv2.Spigot.config.config.SelectConfig;
import de.jatitv.commandguiv2.Spigot.config.languages.LanguagesCreate;
import de.jatitv.commandguiv2.Spigot.config.languages.SelectMessages;
import de.jatitv.commandguiv2.Spigot.system.Permissions;
import de.jatitv.commandguiv2.Spigot.system.database.SelectDatabase;
import de.jatitv.commandguiv2.Util;
import net.t2code.lib.Spigot.Lib.items.ItemVersion;
import net.t2code.lib.Spigot.Lib.messages.send;
import net.t2code.lib.Spigot.Lib.update.UpdateAPI;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import java.util.Objects;
public class Commands {
public static void info(CommandSender sender) {
if (sender instanceof Player) {
Player player = (Player) sender;
send.player(player, Util.getPrefix() + "§4======= §8[§4Command§9GUI§8] §4=======");
send.player(player, Util.getPrefix() + " §2Autor: §6" + String.valueOf(Main.autor).replace("[", "").replace("]", ""));
if (UpdateAPI.PluginVersionen.get(Main.plugin.getName()).publicVersion.equalsIgnoreCase(Main.version)) {
send.player(player, Util.getPrefix() + " §2Version: §6" + Main.version);
} else {
UpdateAPI.sendUpdateMsg(Util.getPrefix(), Util.getSpigot(), Util.getDiscord(), Main.version, UpdateAPI.PluginVersionen.get(Main.plugin.getName()).publicVersion, player);
}
send.player(player, Util.getPrefix() + " §2Spigot: §6" + Util.getSpigot());
send.player(player, Util.getPrefix() + " §2Discord: §6" + Util.getDiscord());
send.player(player, Util.getPrefix() + "§4======= §8[§4Command§9GUI§8] §4=======");
} else {
send.sender(sender, Util.getPrefix() + "§4======= §8[§4Command§9GUI§8] §4=======");
send.sender(sender, Util.getPrefix() + " §2String.valueOf(Main.autor): §6" + String.valueOf(String.valueOf(Main.autor)).replace("[", "").replace("]", ""));
if (UpdateAPI.PluginVersionen.get(Main.plugin.getName()).publicVersion.equalsIgnoreCase(Main.version)) {
send.sender(sender, Util.getPrefix() + " §2Version: §6" + Main.version);
} else {
UpdateAPI.sendUpdateMsg(Util.getPrefix(), Util.getSpigot(), Util.getDiscord(), Main.version, UpdateAPI.PluginVersionen.get(Main.plugin.getName()).publicVersion);
}
send.sender(sender, Util.getPrefix() + " §2Spigot: §6" + Util.getSpigot());
send.sender(sender, Util.getPrefix() + " §2Discord: §6" + Util.getDiscord());
send.sender(sender, Util.getPrefix() + "§4======= §8[§4Command§9GUI§8] §4=======");
}
}
public static void reload(CommandSender sender) {
if (sender instanceof Player) sender.sendMessage(SelectMessages.ReloadStart);
send.console(Util.getPrefix() + "§8-------------------------------");
send.console(Util.getPrefix() + " §6Plugin reload...");
send.console(Util.getPrefix() + "§8-------------------------------");
CmdExecuter_GUITab.arg1.clear();
CmdExecuter_GUITab.arg1.put("admin", "commandgui.admin;commandgui.giveitem.other;commandgui.command.info");
SelectConfig.onSelect();
Main.plugin.reloadConfig();
if (!Objects.equals(SelectDatabase.getStorage().toString(), SelectConfig.storage)) {
if (sender instanceof Player) send.sender(sender, "You have changed the storage medium! To apply this change, you must restart the server!");
send.console("You have changed the storage medium! To apply this change, you must restart the server!");
}
LanguagesCreate.langCreate();
Obj_Select.onSelect();
SelectMessages.onSelect(Util.getPrefix());
SelectConfig.sound(Util.getPrefix());
try {
AliasRegister.onRegister();
} catch (Exception e) {
e.printStackTrace();
}
try {
Permissions.onPermRegister();
} catch (Exception e) {
e.printStackTrace();
}
if (SelectConfig.Bungee) {
Bukkit.getMessenger().registerOutgoingPluginChannel(Main.plugin, "commandgui:bungee");
}
if (sender instanceof Player) sender.sendMessage(SelectMessages.ReloadEnd);
send.console(Util.getPrefix() + "§8-------------------------------");
send.console(Util.getPrefix() + " §2Plugin successfully reloaded.");
send.console(Util.getPrefix() + "§8-------------------------------");
}
public static void give(CommandSender sender, Player target) {
if (Bukkit.getPlayer(target.getName()) != null) {
UseItem.giveUseItem(target);
send.sender(sender, SelectMessages.Give_Sender.replace("[player]", target.getName()).replace("[item]", SelectConfig.UseItem_Name));
send.player(target, SelectMessages.Give_Receiver.replace("[sender]", sender.getName()).replace("[item]", SelectConfig.UseItem_Name));
if (SelectConfig.Sound_Give_Enable && SelectConfig.Sound_Enable) {
target.playSound(target.getLocation(), SelectConfig.Sound_Give, 3, 1);
}
} else {
sender.sendMessage(SelectMessages.PlayerNotFond.replace("[player]", target.getName()));
if (SelectConfig.Sound_PlayerNotFound_Enable && SelectConfig.Sound_Enable) {
if (sender instanceof Player)
((Player) sender).playSound(((Player) sender).getLocation(), SelectConfig.Sound_PlayerNotFound, 3, 1);
}
}
}
public static void itemOn(Player player) {
UseItem.removeItem(player);
Integer slot = null;
if (SelectConfig.UseItem_InventorySlotEnforce) {
slot = SelectConfig.UseItem_InventorySlot;
} else {
if (Events.useItemSlotHashMap.get(player) == null) {
slot = SelectConfig.UseItem_InventorySlot;
} else {
slot = Events.useItemSlotHashMap.get(player);
}
}
send.debug(Main.plugin, String.valueOf(slot));
if (player.getInventory().getItem(slot - 1) == null) {
SelectDatabase.setItemStatusTrue(player);
UseItem.giveUseItem(player);
} else {
boolean empty = false;
for (int i = 0; i < 9; i++) {
if (player.getInventory().getItem(i) == null) {
empty = true;
break;
}
}
if (empty) {
SelectDatabase.setItemStatusTrue(player);
UseItem.addUseItem(player);
send.player(player, SelectMessages.ItemON);
} else {
player.sendMessage(SelectMessages.NoInventorySpace);
if (SelectConfig.Sound_NoInventorySpace_Enable && SelectConfig.Sound_Enable) {
player.playSound(player.getLocation(), SelectConfig.Sound_NoInventorySpace, 3, 1);
}
}
}
}
public static void itemOff(Player player) {
SelectDatabase.setItemStatusFalse(player);
UseItem.removeItem(player);
}
public static void onSetSlot(Player player, Integer setSlot) {
if (!SelectConfig.UseItem_AllowSetSlot) {
player.sendMessage(Util.getPrefix() + " §4Function disabled");
return;
}
if (setSlot < 1) {
send.player(player, SelectMessages.ItemSlot_wrongValue);
return;
}
if (setSlot > 9) {
send.player(player, SelectMessages.ItemSlot_wrongValue);
return;
}
if (Events.useItemHashMap.get(player)) {
if (Objects.equals(Events.useItemSlotHashMap.get(player), setSlot)) {
player.sendMessage(SelectMessages.ItemSlotAlreadySet.replace("[slot]", setSlot.toString()));
return;
}
}
if (SelectConfig.UseItem_InventorySlotEnforce || player.getInventory().getItem(setSlot - 1) != null) {
send.player(player, SelectMessages.ItemSlotNotEmpty.replace("[slot]", setSlot.toString()));
return;
}
UseItem.removeItem(player);
SelectDatabase.setSlot(player, setSlot);
Events.useItemSlotHashMap.replace(player, setSlot);
if (Events.useItemHashMap.get(player)) {
UseItem.giveUseItem(player);
}
send.player(player, SelectMessages.ItemSlot.replace("[slot]", setSlot.toString()));
}
public static void gui(Player player) {
if (Main.guiHashMap.containsKey(SelectConfig.DefaultGUI)) {
Gui gui = Main.guiHashMap.get(SelectConfig.DefaultGUI);
if (gui.guiEnable || player.hasPermission("commandgui.bypass")) {
if (!gui.commandPermissionEnable || player.hasPermission("commandgui.command") || player.hasPermission("commandgui.bypass")) {
OpenGUI.openGUI(player, SelectConfig.DefaultGUI, true);
} else player.sendMessage(SelectMessages.NoPermissionForCommand.replace("[cmd]", "/commandgui")
.replace("[perm]", "commandgui.command"));
} else player.sendMessage(SelectMessages.GUIIsDisabled.replace("[gui]", gui.guiName));
}
}
public static void gui(Player player, String arg) {
if (Main.guiHashMap.containsKey(arg)) {
Gui gui = Main.guiHashMap.get(arg);
if (gui.guiEnable || player.hasPermission("commandgui.bypass")) {
if (!gui.commandPermissionEnable || player.hasPermission("commandgui.command." + gui.key) || player.hasPermission("commandgui.bypass")) {
OpenGUI.openGUI(player, arg, true);
} else player.sendMessage(SelectMessages.NoPermissionForCommand.replace("[cmd]", "/commandgui " + gui.key)
.replace("[perm]", "commandgui.command." + arg.toLowerCase()));
} else player.sendMessage(SelectMessages.GUIIsDisabled.replace("[gui]", gui.key));
} else player.sendMessage(SelectMessages.GUInotFound);
}
}

View File

@ -1,50 +0,0 @@
package de.jatitv.commandguiv2.Spigot.cmdManagement;
import de.jatitv.commandguiv2.Spigot.config.languages.SelectMessages;
import de.jatitv.commandguiv2.Spigot.Main;
import de.jatitv.commandguiv2.Spigot.objects.guis.Gui;
import de.jatitv.commandguiv2.Spigot.config.config.SelectConfig;
import de.jatitv.commandguiv2.Util;
import net.t2code.lib.Spigot.Lib.messages.send;
import net.t2code.lib.Spigot.Lib.replace.Replace;
import org.bukkit.command.CommandSender;
public class Help {
private static String prefix = Util.getPrefix();
public static void sendHelp(CommandSender sender, String Prefix) {
send.sender(sender, Prefix + " §8----- §4Command§9GUI §chelp §8-----");
if (sender.hasPermission("commandgui.command")) {
Gui gui = Main.guiHashMap.get(SelectConfig.DefaultGUI);
send.sender(sender, Prefix + " " + SelectMessages.HelpCgui.replace("[gui]", Replace.replace(prefix,gui.guiName)));
for (String alias : Main.allAliases) {
if (Main.guiHashMap.get(alias).guiEnable || sender.hasPermission("commandgui.bypass")) {
send.sender(sender, Prefix + " " + SelectMessages.HelpOpen.replace("[gui]", alias).replace("[guiname]", Replace.replace(prefix,Main.guiHashMap.get(alias).guiName)));
}
}
send.sender(sender, Prefix + " " + SelectMessages.HelpHelp);
}
if (sender.hasPermission("commandgui.useitem.toggle")) {
send.sender(sender, Prefix + " " + SelectMessages.GUIItemHelp_on);
send.sender(sender, Prefix + " " + SelectMessages.GUIItemHelp_off);
send.sender(sender, Prefix + " " + SelectMessages.GUIItemHelp_Slot);
}
if (sender.hasPermission("commandgui.command.info")) {
send.sender(sender, Prefix + " " + SelectMessages.HelpInfo);
}
if (sender.hasPermission("commandgui.admin")) {
send.sender(sender, Prefix + " " + SelectMessages.HelpCreateDefaultGUI.replace("[directory]", Main.getPath()+ "\\GUIs\\default.yml"));
send.sender(sender, Prefix + " " + SelectMessages.HelpReload);
}
send.sender(sender, Prefix + " §8-------------------------");
}
public static void sendGUIItemHelp(CommandSender sender, String Prefix) {
if (sender.hasPermission("commandgui.useitem.toggle")) {
send.sender(sender, Prefix + " §8------ §4Command§9GUI§2Item §chelp §8------");
send.sender(sender, Prefix + " " + SelectMessages.GUIItemHelp_on);
send.sender(sender, Prefix + " " + SelectMessages.GUIItemHelp_off);
send.sender(sender, Prefix + " " + SelectMessages.GUIItemHelp_Slot);
send.sender(sender, Prefix + " §8------------------------------");
}
}
}

View File

@ -1,164 +0,0 @@
package de.jatitv.commandguiv2.Spigot.config.config;
import de.jatitv.commandguiv2.Spigot.Main;
import de.jatitv.commandguiv2.Util;
import net.t2code.lib.Spigot.Lib.items.ItemVersion;
import net.t2code.lib.Spigot.Lib.messages.send;
import net.t2code.lib.Spigot.Lib.minecraftVersion.MCVersion;
import net.t2code.lib.Spigot.Lib.yamlConfiguration.Config;
import org.bukkit.configuration.file.YamlConfiguration;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
public class ConfigCreate {
public static void configCreate() {
long long_ = System.currentTimeMillis();
if (new File(Main.getPath(), "config.yml").exists()) {
if (Main.plugin.getConfig().getBoolean("Plugin.Debug")) send.console(Main.prefix + " §5DEBUG: §6" + " §4config.yml are created / updated...");
} else send.console(Main.prefix + " §4config.yml are created...");
File config = new File(Main.getPath(), "config.yml");
YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config);
if (!config.exists()) Config.set("ConfigVersion", Util.getConfigVersion(), yamlConfiguration);
Config.set("Plugin.Debug", false, yamlConfiguration);
Config.set("Plugin.HelpAlias", true, yamlConfiguration);
Config.set("Plugin.language", "english", yamlConfiguration);
Config.set("Plugin.Currency", "$", yamlConfiguration);
Config.set("Plugin.DefaultGUI", "default", yamlConfiguration);
Config.set("Storage.Type", "SQLITE", yamlConfiguration);
Config.set("Storage.MySQL.IP", "localhost", yamlConfiguration);
Config.set("Storage.MySQL.Port", 3306, yamlConfiguration);
Config.set("Storage.MySQL.Database", "database", yamlConfiguration);
Config.set("Storage.MySQL.User", "root", yamlConfiguration);
Config.set("Storage.MySQL.Password", "password", yamlConfiguration);
Config.set("Storage.MySQL.SSL", false, yamlConfiguration);
Config.set("BungeeCord.Enable", false, yamlConfiguration);
Config.set("BungeeCord.ThisServer", "server", yamlConfiguration);
Config.set("UseItem.Enable", true, yamlConfiguration);
Config.set("UseItem.AllowToggle", true, yamlConfiguration);
Config.set("UseItem.AllowSetSlot", true, yamlConfiguration);
Config.set("UseItem.BlockMoveAndDrop", true, yamlConfiguration);
Config.set("UseItem.OpenGUI", "default", yamlConfiguration);
Config.set("UseItem.Permission.NeededToUse", true, yamlConfiguration);
Config.set("UseItem.KeepAtCommandClear", true, yamlConfiguration);
Config.set("UseItem.InventorySlot.Slot", 1, yamlConfiguration);
Config.set("UseItem.InventorySlot.SlotEnforce", false, yamlConfiguration);
Config.set("UseItem.InventorySlot.FreeSlot", false, yamlConfiguration);
Config.set("UseItem.Item.Material", "paper", yamlConfiguration);
if (!(MCVersion.minecraft1_8 || MCVersion.minecraft1_9 || MCVersion.minecraft1_10 || MCVersion.minecraft1_11 || MCVersion.minecraft1_12)) {
Config.set("UseItem.Item.PlayerHead.Enable", false, yamlConfiguration);
Config.set("UseItem.Item.PlayerHead.Base64.Enable", false, yamlConfiguration);
Config.set("UseItem.Item.PlayerHead.Base64.Base64Value", "", yamlConfiguration);
Config.set("UseItem.Item.PlayerHead.PlayerWhoHasOpenedTheGUI", false, yamlConfiguration);
Config.set("UseItem.Item.PlayerHead.Playername", "", yamlConfiguration);
}
Config.set("UseItem.Item.Name", "&bDefault &6GUI", yamlConfiguration);
Config.set("UseItem.Item.Lore", Arrays.asList("&eThis is an example GUI"), yamlConfiguration);
Config.set("UseItem.Join.GiveOnEveryJoin", true, yamlConfiguration);
Config.set("UseItem.Join.GiveOnlyOnFirstJoin", false, yamlConfiguration);
//convert
if (yamlConfiguration.contains("UseItem.Join.Cursor.ToGUIItem.OnEveryLogin")) {
Config.set("UseItem.Join.Cursor.ToGUIItem.OnEveryLogin", yamlConfiguration);
Config.set("UseItem.Join.Cursor.ToGUIItem.OnLogin.Enable", yamlConfiguration.getBoolean("UseItem.Join.Cursor.ToGUIItem.OnEveryLogin"), yamlConfiguration);
}
if (yamlConfiguration.contains("UseItem.Join.Cursor.ToGUIItem.OnOnlyFirstLogin")) {
Config.set("UseItem.Join.Cursor.ToGUIItem.OnOnlyFirstLogin", yamlConfiguration);
Config.set("UseItem.Join.Cursor.ToGUIItem.Spigot.OnOnlyFirstLogin", yamlConfiguration.getBoolean("UseItem.Join.Cursor.ToGUIItem.OnOnlyFirstLogin"), yamlConfiguration);
}
if (yamlConfiguration.contains("UseItem.Join.Cursor.ToGUIItem.EXPERIMENTELL_ServerChange")) {
Config.set("UseItem.Join.Cursor.ToGUIItem.EXPERIMENTELL_ServerChange", yamlConfiguration);
Config.set("UseItem.Join.Cursor.ToGUIItem.Bungee.OnServerChange", yamlConfiguration.getBoolean("UseItem.Join.Cursor.ToGUIItem.EXPERIMENTELL_ServerChange"), yamlConfiguration);
}
Config.set("UseItem.Join.Cursor.ToGUIItem.OnLogin.Enable", true, yamlConfiguration);
Config.set("UseItem.Join.Cursor.ToGUIItem.Spigot.OnOnlyFirstLogin", true, yamlConfiguration);
Config.set("UseItem.Join.Cursor.ToGUIItem.Bungee.OnServerChange", false, yamlConfiguration);
Config.set("Advanced.UseItem.GameMode.Change.Enable", true, yamlConfiguration);
Config.set("Advanced.UseItem.GameMode.Change.DelayInTicks", 1, yamlConfiguration);
Config.set("Advanced.UseItem.GameMode.Protection.Enable", false, yamlConfiguration);
Config.set("Advanced.UseItem.GameMode.Protection.RemoveItemWhenItIsDisabled", false, yamlConfiguration);
Config.set("Advanced.UseItem.GameMode.Protection.Mode", "blacklist", yamlConfiguration);
Config.set("Advanced.UseItem.GameMode.Protection.List", Arrays.asList("CREATIVE", "Spectator"), yamlConfiguration);
Config.set("Advanced.UseItem.World.Change.Enable", true, yamlConfiguration);
Config.set("Advanced.UseItem.World.Change.DelayInTicks", 1, yamlConfiguration);
Config.set("Advanced.UseItem.World.Protection.Enable", false, yamlConfiguration);
Config.set("Advanced.UseItem.World.Protection.RemoveItemWhenItIsDisabled", false, yamlConfiguration);
Config.set("Advanced.UseItem.World.Protection.Mode", "blacklist", yamlConfiguration);
Config.set("Advanced.UseItem.World.Protection.List", Arrays.asList("World1", "World2"), yamlConfiguration);
Config.set("Toggle.Items.OnOrYes.Item.Base64.Enable", false, yamlConfiguration);
Config.set("Toggle.Items.OnOrYes.Item.Base64.Base64Value", "", yamlConfiguration);
Config.set("Toggle.Items.OnOrYes.Item.Material", ItemVersion.getGreenWool().getType().toString(), yamlConfiguration);
Config.set("Toggle.Items.OffOrNo.Item.Base64.Enable", false, yamlConfiguration);
Config.set("Toggle.Items.OffOrNo.Item.Base64.Base64Value", "", yamlConfiguration);
Config.set("Toggle.Items.OffOrNo.Item.Material", ItemVersion.getRedWool().getType().toString(), yamlConfiguration);
Config.set("Toggle.Permission.Commands.True", "luckperms user [player] permission set [perm] true", yamlConfiguration);
Config.set("Toggle.Permission.Commands.False", "luckperms user [player] permission set [perm] false", yamlConfiguration);
Config.set("Placeholder.True", "&2true", yamlConfiguration);
Config.set("Placeholder.False", "&4false", yamlConfiguration);
Config.set("Sound.Enable", true, yamlConfiguration);
Config.set("Sound.OpenInventory.Enable", true, yamlConfiguration);
if (MCVersion.minecraft1_8) {
Config.set("Sound.OpenInventory.Sound", "CHEST_OPEN", yamlConfiguration);
} else Config.set("Sound.OpenInventory.Sound", "BLOCK_CHEST_OPEN", yamlConfiguration);
Config.set("Sound.Click.Enable", true, yamlConfiguration);
if (MCVersion.minecraft1_8) {
Config.set("Sound.Click.Sound", "NOTE_STICKS", yamlConfiguration);
} else if (MCVersion.minecraft1_9 || MCVersion.minecraft1_10 || MCVersion.minecraft1_11 || MCVersion.minecraft1_12) {
Config.set("Sound.Click.Sound", "BLOCK_NOTE_HAT", yamlConfiguration);
} else Config.set("Sound.Click.Sound", "BLOCK_NOTE_BLOCK_HAT", yamlConfiguration);
Config.set("Sound.NoMoney.Enable", true, yamlConfiguration);
if (MCVersion.minecraft1_8) {
Config.set("Sound.NoMoney.Sound", "NOTE_PIANO", yamlConfiguration);
} else if (MCVersion.minecraft1_9 || MCVersion.minecraft1_10 || MCVersion.minecraft1_11 || MCVersion.minecraft1_12) {
Config.set("Sound.NoMoney.Sound", "BLOCK_NOTE_HARP", yamlConfiguration);
} else Config.set("Sound.NoMoney.Sound", "BLOCK_NOTE_BLOCK_HARP", yamlConfiguration);
Config.set("Sound.NoInventorySpace.Enable", true, yamlConfiguration);
if (MCVersion.minecraft1_8) {
Config.set("Sound.NoInventorySpace.Sound", "NOTE_PIANO", yamlConfiguration);
} else if (MCVersion.minecraft1_9 || MCVersion.minecraft1_10 || MCVersion.minecraft1_11 || MCVersion.minecraft1_12) {
Config.set("Sound.NoInventorySpace.Sound", "BLOCK_NOTE_HARP", yamlConfiguration);
} else Config.set("Sound.NoInventorySpace.Sound", "BLOCK_NOTE_BLOCK_HARP", yamlConfiguration);
Config.set("Sound.Give.Enable", true, yamlConfiguration);
if (MCVersion.minecraft1_8) {
Config.set("Sound.Give.Sound", "LEVEL_UP", yamlConfiguration);
} else Config.set("Sound.Give.Sound", "ENTITY_PLAYER_LEVELUP", yamlConfiguration);
Config.set("Sound.PlayerNotFound.Enable", true, yamlConfiguration);
if (MCVersion.minecraft1_8) {
Config.set("Sound.PlayerNotFound.Sound", "NOTE_PIANO", yamlConfiguration);
} else if (MCVersion.minecraft1_9 || MCVersion.minecraft1_10 || MCVersion.minecraft1_11 || MCVersion.minecraft1_12) {
Config.set("Sound.PlayerNotFound.Sound", "BLOCK_NOTE_HARP", yamlConfiguration);
} else Config.set("Sound.PlayerNotFound.Sound", "BLOCK_NOTE_BLOCK_HARP", yamlConfiguration);
try {
yamlConfiguration.save(config);
} catch (IOException e) {
e.printStackTrace();
}
send.console(Main.prefix + " §2config.yml were successfully created / updated." + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
}
}

View File

@ -1,357 +0,0 @@
package de.jatitv.commandguiv2.Spigot.config.config;
import de.jatitv.commandguiv2.Spigot.Main;
import de.jatitv.commandguiv2.Spigot.config.configConverter.ConfigConverterUnderV5;
import de.jatitv.commandguiv2.Spigot.config.languages.SelectMessages;
import de.jatitv.commandguiv2.Spigot.system.database.MySQL;
import de.jatitv.commandguiv2.Spigot.system.database.SelectDatabase;
import de.jatitv.commandguiv2.Spigot.system.database.StorageType;
import de.jatitv.commandguiv2.Util;
import net.t2code.lib.Spigot.Lib.messages.send;
import net.t2code.lib.Spigot.Lib.minecraftVersion.MCVersion;
import net.t2code.lib.Spigot.Lib.replace.Replace;
import org.bukkit.Sound;
import org.bukkit.configuration.file.YamlConfiguration;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class SelectConfig {
public static Boolean Debug;
public static Boolean HelpAlias;
public static String language;
public static String Currency;
public static String storage;
public static Boolean Bungee;
public static String thisServer;
public static String DefaultGUI;
public static Boolean UseItem_Enable;
public static Boolean UseItem_AllowToggle;
public static Boolean UseItem_AllowSetSlot;
public static Boolean UseItem_GiveOnEveryJoin;
public static Boolean UseItem_GiveOnlyOnFirstJoin;
public static Boolean UseItem_ServerChange;
public static Boolean Cursor_ToGUIItem_OnLogin;
public static Boolean Cursor_ToGUIItem_OnlyOnFirstLogin;
public static Boolean UseItem_BlockMoveAndDrop;
public static String UseItem_OpenGUI;
public static Boolean UseItem_Permission;
public static Boolean UseItem_KeepAtCommandClear;
public static Boolean UseItemGameModeChangeEnable;
public static int UseItemGameModeChangeDelayInTicks;
public static Boolean UseItemGameModeProtection;
public static Boolean UseItemGameModeRemoveItemWhenItIsDisabled;
public static String UseItemGameModeMode;
public static List<String> UseItemGameModeList;
public static Boolean UseItemWorldChangeEnable;
public static int UseItemWorldChangeDelayInTicks;
public static Boolean UseItemWorldProtection;
public static Boolean UseItemWorldRemoveItemWhenItIsDisabled;
public static String UseItemWorldMode;
public static List<String> UseItemWorldList;
public static Boolean disableInfoBySneak = false;
public static Boolean UseItem_InventorySlot_FreeSlot;
public static Integer UseItem_InventorySlot;
public static Boolean UseItem_InventorySlotEnforce;
public static String UseItem_Material;
public static Boolean UseItem_PlayerHead_Enable;
public static Boolean UseItem_Base64_Enable;
public static String UseItem_Base64value;
public static Boolean UseItem_PlayerWhoHasOpenedTheGUI;
public static String UseItem_PlayerName;
public static String UseItem_Name;
public static List<String> UseItem_Lore;
public static Boolean toggleItemOnOrYesBase64;
public static String toggleItemOnOrYesBase64Value;
public static String toggleItemOnOrYesMaterial;
public static Boolean toggleItemOffOrNoBase64;
public static String toggleItemOffOrNoBase64Value;
public static String toggleItemOffOrNoMaterial;
public static String togglePermTrue;
public static String togglePermFalse;
public static String placeholderTrue;
public static String placeholderFalse;
public static Boolean Sound_Enable = true;
public static Boolean Sound_OpenInventory_Enable = true;
public static Sound Sound_OpenInventory;
public static String Sound_OpenInventory_input;
public static Boolean Sound_Click_Enable = true;
public static Sound Sound_Click;
public static String Sound_Click_input;
public static Boolean Sound_NoMoney_Enable = true;
public static Sound Sound_NoMoney;
public static String Sound_NoMoney_input;
public static Boolean Sound_NoInventorySpace_Enable = true;
public static Sound Sound_NoInventorySpace;
public static String Sound_NoInventorySpace_input;
public static Boolean Sound_Give_Enable = true;
public static Sound Sound_Give;
public static String Sound_Give_input;
public static Boolean Sound_PlayerNotFound_Enable = true;
public static Sound Sound_PlayerNotFound;
public static String Sound_PlayerNotFound_input;
public static void onSelect() {
File config = new File(Main.getPath(), "config.yml");
YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config);
if (yamlConfiguration.getInt("ConfigVersion") < Util.getConfigVersion() && new File(Main.getPath(), "config.yml").exists()) {
send.console(Util.getPrefix() + " §4----------------------");
send.console(Util.getPrefix() + " ");
send.console(Util.getPrefix() + " §6New features have been added to CommandGUI. The Config is adapted!");
send.console(Util.getPrefix() + " ");
send.console(Util.getPrefix() + " §4----------------------");
if (yamlConfiguration.getInt("ConfigVersion") < 5) {
ConfigConverterUnderV5.convert();
}
}
Debug = yamlConfiguration.getBoolean("Plugin.Debug");
HelpAlias = yamlConfiguration.getBoolean("Plugin.HelpAlias");
language = yamlConfiguration.getString("Plugin.language");
Currency = yamlConfiguration.getString("Plugin.Currency");
DefaultGUI = yamlConfiguration.getString("Plugin.DefaultGUI");
storage = yamlConfiguration.getString("Storage.Type").toUpperCase();
MySQL.ip = yamlConfiguration.getString("Storage.MySQL.IP");
MySQL.port = yamlConfiguration.getInt("Storage.MySQL.Port");
MySQL.database = yamlConfiguration.getString("Storage.MySQL.Database");
MySQL.user = yamlConfiguration.getString("Storage.MySQL.User");
MySQL.password = yamlConfiguration.getString("Storage.MySQL.Password");
MySQL.SSL = yamlConfiguration.getBoolean("Storage.MySQL.SSL");
Bungee = yamlConfiguration.getBoolean("BungeeCord.Enable");
thisServer = yamlConfiguration.getString("BungeeCord.ThisServer");
UseItem_Enable = yamlConfiguration.getBoolean("UseItem.Enable");
UseItem_AllowToggle = yamlConfiguration.getBoolean("UseItem.AllowToggle");
UseItem_AllowSetSlot = yamlConfiguration.getBoolean("UseItem.AllowSetSlot");
UseItem_BlockMoveAndDrop = yamlConfiguration.getBoolean("UseItem.BlockMoveAndDrop");
UseItem_OpenGUI = yamlConfiguration.getString("UseItem.OpenGUI");
UseItem_Permission = yamlConfiguration.getBoolean("UseItem.Permission.NeededToUse");
UseItem_KeepAtCommandClear = yamlConfiguration.getBoolean("UseItem.KeepAtCommandClear");
UseItem_InventorySlot_FreeSlot = yamlConfiguration.getBoolean("UseItem.InventorySlot.FreeSlot");
UseItem_InventorySlot = yamlConfiguration.getInt("UseItem.InventorySlot.Slot");
UseItem_InventorySlotEnforce = yamlConfiguration.getBoolean("UseItem.InventorySlot.SlotEnforce");
UseItem_Material = yamlConfiguration.getString("UseItem.Item.Material").toUpperCase();
UseItem_PlayerHead_Enable = yamlConfiguration.getBoolean("UseItem.Item.PlayerHead.Enable");
UseItem_Base64_Enable = yamlConfiguration.getBoolean("UseItem.Item.PlayerHead.Base64.Enable");
UseItem_Base64value = yamlConfiguration.getString("UseItem.Item.PlayerHead.Base64.Base64Value");
UseItem_PlayerWhoHasOpenedTheGUI = yamlConfiguration.getBoolean("UseItem.Item.PlayerHead.PlayerWhoHasOpenedTheGUI");
UseItem_PlayerName = yamlConfiguration.getString("UseItem.Item.PlayerHead.PlayerName");
UseItem_Name = Replace.replace(Util.getPrefix(), yamlConfiguration.getString("UseItem.Item.Name"));
UseItem_Lore = yamlConfiguration.getStringList("UseItem.Item.Lore");
UseItem_GiveOnEveryJoin = yamlConfiguration.getBoolean("UseItem.Join.GiveOnEveryJoin");
UseItem_GiveOnlyOnFirstJoin = yamlConfiguration.getBoolean("UseItem.Join.GiveOnlyOnFirstJoin");
Cursor_ToGUIItem_OnLogin = yamlConfiguration.getBoolean("UseItem.Join.Cursor.ToGUIItem.OnLogin.Enable");
Cursor_ToGUIItem_OnlyOnFirstLogin = yamlConfiguration.getBoolean("UseItem.Join.Cursor.ToGUIItem.Spigot.OnlyOnFirstLogin");
UseItem_ServerChange = yamlConfiguration.getBoolean("UseItem.Join.Cursor.ToGUIItem.Bungee.OnServerChange");
UseItemGameModeChangeEnable = yamlConfiguration.getBoolean("Advanced.UseItem.GameMode.Change.Enable");
UseItemGameModeChangeDelayInTicks = yamlConfiguration.getInt("Advanced.UseItem.GameMode.Change.DelayInTicks");
UseItemGameModeProtection = yamlConfiguration.getBoolean("Advanced.UseItem.GameMode.Protection.Enable");
UseItemGameModeRemoveItemWhenItIsDisabled = yamlConfiguration.getBoolean("Advanced.UseItem.GameMode.Protection.RemoveItemWhenItIsDisabled");
UseItemGameModeMode = yamlConfiguration.getString("Advanced.UseItem.GameMode.Protection.Mode");
List<String> gml = new ArrayList<>();
for (String gm : yamlConfiguration.getStringList("Advanced.UseItem.GameMode.Protection.List")) {
gml.add(gm.toUpperCase());
}
UseItemGameModeList = gml;
UseItemWorldChangeEnable = yamlConfiguration.getBoolean("Advanced.UseItem.World.Change.Enable");
UseItemWorldChangeDelayInTicks = yamlConfiguration.getInt("Advanced.UseItem.World.Change.DelayInTicks");
UseItemWorldProtection = yamlConfiguration.getBoolean("Advanced.UseItem.World.Protection.Enable");
UseItemWorldRemoveItemWhenItIsDisabled = yamlConfiguration.getBoolean("Advanced.UseItem.World.Protection.RemoveItemWhenItIsDisabled");
UseItemWorldMode = yamlConfiguration.getString("Advanced.UseItem.World.Protection.Mode");
UseItemWorldList = yamlConfiguration.getStringList("Advanced.UseItem.World.Protection.List");
if (yamlConfiguration.get("Advanced.UseItem.DisableInfoBySneak") != null) {
disableInfoBySneak = yamlConfiguration.getBoolean("Advanced.UseItem.DisableInfoBySneak");
}
toggleItemOnOrYesBase64 = yamlConfiguration.getBoolean("Toggle.Items.OnOrYes.Item.Base64.Enable");
toggleItemOnOrYesBase64Value = yamlConfiguration.getString("Toggle.Items.OnOrYes.Item.Base64.Base64Value");
toggleItemOnOrYesMaterial = yamlConfiguration.getString("Toggle.Items.OnOrYes.Item.Material");
toggleItemOffOrNoBase64 = yamlConfiguration.getBoolean("Toggle.Items.OffOrNo.Item.Base64.Enable");
toggleItemOffOrNoBase64Value = yamlConfiguration.getString("Toggle.Items.OffOrNo.Item.Base64.Base64Value");
toggleItemOffOrNoMaterial = yamlConfiguration.getString("Toggle.Items.OffOrNo.Item.Material");
togglePermTrue = yamlConfiguration.getString("Toggle.Permission.Commands.True");
togglePermFalse = yamlConfiguration.getString("Toggle.Permission.Commands.False");
placeholderTrue = yamlConfiguration.getString("Placeholder.True");
placeholderFalse = yamlConfiguration.getString("Placeholder.False");
Sound_Enable = yamlConfiguration.getBoolean("Sound.Enable");
Sound_OpenInventory_Enable = yamlConfiguration.getBoolean("Sound.OpenInventory.Enable");
Sound_OpenInventory_input = (yamlConfiguration.getString("Sound.OpenInventory.Sound").toUpperCase().replace(".", "_"));
Sound_Click_Enable = yamlConfiguration.getBoolean("Sound.Click.Enable");
Sound_Click_input = (yamlConfiguration.getString("Sound.Click.Sound").toUpperCase().replace(".", "_"));
Sound_NoMoney_Enable = yamlConfiguration.getBoolean("Sound.NoMoney.Enable");
Sound_NoMoney_input = (yamlConfiguration.getString("Sound.NoMoney.Sound").toUpperCase().replace(".", "_"));
Sound_NoInventorySpace_Enable = yamlConfiguration.getBoolean("Sound.NoInventorySpace.Enable");
Sound_NoInventorySpace_input = (yamlConfiguration.getString("Sound.NoInventorySpace.Sound").toUpperCase().replace(".", "_"));
Sound_Give_Enable = yamlConfiguration.getBoolean("Sound.Give.Enable");
Sound_Give_input = (yamlConfiguration.getString("Sound.Give.Sound").toUpperCase().replace(".", "_"));
Sound_PlayerNotFound_Enable = yamlConfiguration.getBoolean("Sound.PlayerNotFound.Enable");
Sound_PlayerNotFound_input = (yamlConfiguration.getString("Sound.PlayerNotFound.Sound").toUpperCase().replace(".", "_"));
}
public static void sound(String Prefix) {
String soundOpenInventory;
if (MCVersion.minecraft1_8) {
soundOpenInventory = "CHEST_OPEN";
} else {
soundOpenInventory = "BLOCK_CHEST_OPEN";
}
String soundClick;
if (MCVersion.minecraft1_8) {
soundClick = "NOTE_STICKS";
} else if (MCVersion.minecraft1_9 || MCVersion.minecraft1_10 || MCVersion.minecraft1_11 || MCVersion.minecraft1_12) {
soundClick = "BLOCK_NOTE_HAT";
} else {
soundClick = "BLOCK_NOTE_BLOCK_HAT";
}
String soundNoMoney;
if (MCVersion.minecraft1_8) {
soundNoMoney = "NOTE_PIANO";
} else if (MCVersion.minecraft1_9 || MCVersion.minecraft1_10 || MCVersion.minecraft1_11 || MCVersion.minecraft1_12) {
soundNoMoney = "BLOCK_NOTE_HARP";
} else {
soundNoMoney = "BLOCK_NOTE_BLOCK_HARP";
}
String soundNoInventorySpace;
if (MCVersion.minecraft1_8) {
soundNoInventorySpace = "NOTE_PIANO";
} else if (MCVersion.minecraft1_9 || MCVersion.minecraft1_10 || MCVersion.minecraft1_11 || MCVersion.minecraft1_12) {
soundNoInventorySpace = "BLOCK_NOTE_BASS";
} else {
soundNoInventorySpace = "BLOCK_NOTE_BLOCK_GUITAR";
}
String soundGive;
if (MCVersion.minecraft1_8) {
soundGive = "LEVEL_UP";
} else {
soundGive = "ENTITY_PLAYER_LEVELUP";
}
String soundPlayerNotFound;
if (MCVersion.minecraft1_8) {
soundPlayerNotFound = "NOTE_PIANO";
} else if (MCVersion.minecraft1_9 || MCVersion.minecraft1_10 || MCVersion.minecraft1_11 || MCVersion.minecraft1_12) {
soundPlayerNotFound = "BLOCK_NOTE_HARP";
} else {
soundPlayerNotFound = "BLOCK_NOTE_BLOCK_HARP";
}
try {
Sound sound_OpenInventory = Sound.valueOf(Sound_OpenInventory_input);
if (sound_OpenInventory != null) {
Sound_OpenInventory = sound_OpenInventory;
}
} catch (Exception e) {
send.console("§4\n§4\n§4\n" + SelectMessages.SoundNotFound.replace("[prefix]", Prefix)
.replace("[sound]", "§8OpenInventory: §6" + Sound_OpenInventory_input) + "§4\n§4\n§4\n");
Sound_OpenInventory = Sound.valueOf(soundOpenInventory);
}
try {
Sound sound_Click = Sound.valueOf(Sound_Click_input);
if (sound_Click != null) {
Sound_Click = sound_Click;
}
} catch (Exception e) {
send.console("§4\n§4\n§4\n" + SelectMessages.SoundNotFound.replace("[prefix]", Prefix)
.replace("[sound]", "§8Click: §6" + Sound_Click_input) + "§4\n§4\n§4\n");
Sound_Click = Sound.valueOf(soundClick);
}
try {
Sound sound_NoMoney = Sound.valueOf(Sound_NoMoney_input);
if (sound_NoMoney != null) {
Sound_Click = sound_NoMoney;
}
} catch (Exception e) {
send.console("§4\n§4\n§4\n" + SelectMessages.SoundNotFound.replace("[prefix]", Prefix)
.replace("[sound]", "§8NoMoney: §6" + Sound_NoMoney_input) + "§4\n§4\n§4\n");
Sound_NoMoney = Sound.valueOf(soundNoMoney);
}
try {
Sound sound_NoInventorySpace = Sound.valueOf(Sound_NoInventorySpace_input);
if (sound_NoInventorySpace != null) {
Sound_NoInventorySpace = sound_NoInventorySpace;
}
} catch (Exception e) {
send.console("§4\n§4\n§4\n" + SelectMessages.SoundNotFound.replace("[prefix]", Prefix)
.replace("[sound]", "§8NoInventorySpace: §6" + Sound_NoInventorySpace_input) + "§4\n§4\n§4\n");
Sound_NoInventorySpace = Sound.valueOf(soundNoInventorySpace);
}
try {
Sound sound_Give = Sound.valueOf(Sound_Give_input);
if (sound_Give != null) {
Sound_Give = sound_Give;
}
} catch (Exception e) {
send.console("§4\n§4\n§4\n" + SelectMessages.SoundNotFound.replace("[prefix]", Prefix)
.replace("[sound]", "§8Give: §6" + Sound_Give_input) + "§4\n§4\n§4\n");
Sound_Give = Sound.valueOf(soundGive);
}
try {
Sound sound_PlayerNotFound = Sound.valueOf(Sound_PlayerNotFound_input);
if (sound_PlayerNotFound != null) {
Sound_PlayerNotFound = sound_PlayerNotFound;
}
} catch (Exception e) {
send.console("§4\n§4\n§4\n" + SelectMessages.SoundNotFound.replace("[prefix]", Prefix)
.replace("[sound]", "§8PlayerNotFound: §6" + Sound_PlayerNotFound_input) + "§4\n§4\n§4\n");
Sound_PlayerNotFound = Sound.valueOf(soundPlayerNotFound);
}
}
public static void setConfigVersion() {
File config = new File(Main.getPath(), "config.yml");
YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config);
yamlConfiguration.set("ConfigVersion", Util.getConfigVersion());
try {
yamlConfiguration.save(config);
} catch (IOException e) {
e.printStackTrace();
}
}
}

View File

@ -1,176 +0,0 @@
package de.jatitv.commandguiv2.Spigot.config.configConverter;
import de.jatitv.commandguiv2.Spigot.Main;
import de.jatitv.commandguiv2.Spigot.config.functions.CreateFunctions;
import de.jatitv.commandguiv2.Util;
import net.t2code.lib.Spigot.Lib.messages.send;
import net.t2code.lib.Spigot.Lib.minecraftVersion.MCVersion;
import org.apache.commons.io.FileUtils;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.Plugin;
import java.io.File;
import java.io.IOException;
import java.util.List;
public class ConfigConverterUnderV5 {
public static void convert() {
renameFolder();
send.console(Util.getPrefix() + " §7[§5ConfigConvert§7] §4----------------------");
send.console(Util.getPrefix() + " §7[§5ConfigConvert§7]");
send.console(Util.getPrefix() + " §7[§5ConfigConvert§7] §4Config conversion to the new config structure starts!");
send.console(Util.getPrefix() + " §7[§5ConfigConvert§7]");
send.console(Util.getPrefix() + " §7[§5ConfigConvert§7] §4----------------------");
File f = new File(Main.getPath() + "/OldConfig/GUIs/Version4");
File[] fileArray = f.listFiles();
for (File configOld : fileArray) {
String sub = configOld.getName().substring(configOld.getName().length() - 4);
if (sub.equals(".yml")) {
YamlConfiguration yamlConfigurationOld = YamlConfiguration.loadConfiguration(configOld);
File config = new File(Main.getPath(), "GUIs/" + configOld.getName().replace(".yml", "") + ".yml");
YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config);
Boolean enable = yamlConfigurationOld.getBoolean("GUI.Enable");
Integer lines = yamlConfigurationOld.getInt("GUI.Lines");
String name = yamlConfigurationOld.getString("GUI.Name");
Boolean fillItemEnable = yamlConfigurationOld.getBoolean("GUI.FillItem.Enable");
String fillItem;
if (MCVersion.minecraft1_8 || MCVersion.minecraft1_9 || MCVersion.minecraft1_10 || MCVersion.minecraft1_11 || MCVersion.minecraft1_12) {
fillItem = yamlConfigurationOld.getString("GUI.FillItem.GlassPaneColor");
} else fillItem = yamlConfigurationOld.getString("GUI.FillItem.Item");
Boolean alias = yamlConfigurationOld.getBoolean("Command.Alias");
Boolean aliasPerm = yamlConfigurationOld.getBoolean("Command.Permission.Required");
setNew(enable, lines, name, fillItemEnable, fillItem, alias, aliasPerm, yamlConfiguration);
for (String key : yamlConfigurationOld.getConfigurationSection("Slots").getKeys(false)) {
Integer slotNumber = yamlConfigurationOld.getInt("Slots." + key + ".Slot");
Boolean slotEnable = yamlConfigurationOld.getBoolean("Slots." + key + ".Enable");
Boolean permRequired = yamlConfigurationOld.getBoolean("Slots." + key + ".Permission.Required");
Boolean empty = yamlConfigurationOld.getBoolean("Slots." + key + ".Item.Empty");
Integer itemAmount = yamlConfigurationOld.getInt("Slots." + key + ".Item.Amount");
Boolean playerHeadEnable = yamlConfigurationOld.getBoolean("Slots." + key + ".Item.PlayerHead.Enable");
Boolean base64Enable = yamlConfigurationOld.getBoolean("Slots." + key + ".Item.PlayerHead.Base64.Enable");
String base64Value = yamlConfigurationOld.getString("Slots." + key + ".Item.PlayerHead.Base64.Base64Value");
Boolean playerWhoHasOpenedTheGUI = yamlConfigurationOld.getBoolean("Slots." + key + ".Item.PlayerHead.PlayerWhoHasOpenedTheGUI");
String playerName = yamlConfigurationOld.getString("Slots." + key + ".Item.PlayerHead.PlayerName");
String itemMaterial = yamlConfigurationOld.getString("Slots." + key + ".Item.Material");
String itemName = yamlConfigurationOld.getString("Slots." + key + ".Item.Name");
List<String> lore = yamlConfigurationOld.getStringList("Slots." + key + ".Item.Lore");
Boolean customSoundEnable = yamlConfigurationOld.getBoolean("Slots." + key + ".CustomSound.Enable");
Boolean customSoundNoSound = yamlConfigurationOld.getBoolean("Slots." + key + ".CustomSound.NoSound");
String customSoundSound = yamlConfigurationOld.getString("Slots." + key + ".CustomSound.Sound");
Boolean costEnable = yamlConfigurationOld.getBoolean("Slots." + key + ".Cost.Enable");
Double price = yamlConfigurationOld.getDouble("Slots." + key + ".Cost.Price");
Boolean commandEnable = yamlConfigurationOld.getBoolean("Slots." + key + ".Command.Enable");
Boolean commandBungeeCommand = yamlConfigurationOld.getBoolean("Slots." + key + ".Command.BungeeCommand");
Boolean commandAsConsole = yamlConfigurationOld.getBoolean("Slots." + key + ".Command.CommandAsConsole");
List<String> command = yamlConfigurationOld.getStringList("Slots." + key + ".Command.Command");
Boolean serverChange = yamlConfigurationOld.getBoolean("Slots." + key + ".ServerChange.Enable");
String serverChangeServer = yamlConfigurationOld.getString("Slots." + key + ".ServerChange.Server");
Boolean openGUIEnable = yamlConfigurationOld.getBoolean("Slots." + key + ".OpenGUI.Enable");
String openGUI = yamlConfigurationOld.getString("Slots." + key + ".OpenGUI.GUI");
Boolean togglePermission = yamlConfigurationOld.getBoolean("Slots." + key + ".Toggle.Permission.Enable");
String togglePermissionPerm = yamlConfigurationOld.getString("Slots." + key + ".Toggle.Permission.Permission");
Boolean toggleUseItem = yamlConfigurationOld.getBoolean("Slots." + key + ".Toggle.UseItem.Enable");
Boolean messageEnable = yamlConfigurationOld.getBoolean("Slots." + key + ".Message.Enable");
List<String> message = yamlConfigurationOld.getStringList("Slots." + key + ".Message.Message");
Boolean setConfigEnable = yamlConfigurationOld.getBoolean("Slots." + key + ".SetConfig.Enable");
String configFilePath = yamlConfigurationOld.getString("Slots." + key + ".SetConfig.File.Path");
String configOptionPath = yamlConfigurationOld.getString("Slots." + key + ".SetConfig.Option.Path");
String configOptionPremat = yamlConfigurationOld.getString("Slots." + key + ".SetConfig.Option.Premat");
// Boolean ConfigChatInput = ;
String configStringValueLeft = yamlConfigurationOld.getString("Slots." + key + ".SetConfig.Value.LeftClick.String");
Boolean configBooleanValueLeft = yamlConfigurationOld.getBoolean("Slots." + key + ".SetConfig.Value.LeftClick.Boolean");
Integer configIntegerValueLeft = yamlConfigurationOld.getInt("Slots." + key + ".SetConfig.Value.LeftClick.Integer");
Double configDoubleValueLeft = yamlConfigurationOld.getDouble("Slots." + key + ".SetConfig.Value.LeftClick.Double");
List<String> configListValueLeft = yamlConfigurationOld.getStringList("Slots." + key + ".SetConfig.Value.LeftClick.List");
String configStringValueRight = yamlConfigurationOld.getString("Slots." + key + ".SetConfig.Value.RightClick.String");
Boolean configBooleanValueRight = yamlConfigurationOld.getBoolean("Slots." + key + ".SetConfig.Value.RightClick.Boolean");
Integer configIntegerValueRight = yamlConfigurationOld.getInt("Slots." + key + ".SetConfig.Value.RightClick.Integer");
Double configDoubleValueRight = yamlConfigurationOld.getDouble("Slots." + key + ".SetConfig.Value.RightClick.Double");
List<String> configListValueRight = yamlConfigurationOld.getStringList("Slots." + key + ".SetConfig.RightClick.Value.List");
Boolean pluginReloadEnable = yamlConfigurationOld.getBoolean("Slots." + key + ".SetConfig.PluginReload.Enable");
String pluginReloadCommand = yamlConfigurationOld.getString("Slots." + key + ".SetConfig.PluginReload.Command");
setNew(key, slotNumber, slotEnable, key, permRequired, yamlConfiguration);
CreateFunctions.createFunction(key, empty, itemAmount, playerHeadEnable, base64Enable, base64Value, playerWhoHasOpenedTheGUI, playerName, itemMaterial, itemName, lore,
customSoundEnable, customSoundNoSound, customSoundSound, costEnable, price, commandEnable, commandBungeeCommand, commandAsConsole, command, serverChange,
serverChangeServer, openGUIEnable, openGUI, togglePermission, togglePermissionPerm, toggleUseItem, messageEnable, message, setConfigEnable, configFilePath,
configOptionPath, configOptionPremat, configStringValueLeft, configBooleanValueLeft, configIntegerValueLeft, configDoubleValueLeft, configListValueLeft,
configStringValueRight, configBooleanValueRight, configIntegerValueRight, configDoubleValueRight, configListValueRight, pluginReloadEnable, pluginReloadCommand);
}
try {
yamlConfiguration.save(config);
} catch (IOException e) {
e.printStackTrace();
}
}
}
send.console(Util.getPrefix() + " §7[§5ConfigConvert§7] §4----------------------");
send.console(Util.getPrefix() + " §7[§5ConfigConvert§7]");
send.console(Util.getPrefix() + " §7[§5ConfigConvert§7] §4The conversion to the new config structure is completed!");
send.console(Util.getPrefix() + " §7[§5ConfigConvert§7]");
send.console(Util.getPrefix() + " §7[§5ConfigConvert§7] §4----------------------");
}
private static void renameFolder() {
File dir = new File(Main.getPath() + "/GUIs");
File newDir = new File(Main.getPath() + "/OldConfig/GUIs/Version4");
try {
FileUtils.moveDirectory(dir, newDir);
} catch (IOException e) {
e.printStackTrace();
}
}
private static void setNew(Boolean enable, Integer lines, String name, Boolean fillItemEnable, String fillItem, Boolean alias, Boolean aliasPerm, YamlConfiguration yamlConfiguration) {
set("GUI.Enable", enable, yamlConfiguration);
set("GUI.Lines", lines, yamlConfiguration);
set("GUI.Name", name, yamlConfiguration);
set("GUI.FillItem.Enable", fillItemEnable, yamlConfiguration);
if (MCVersion.minecraft1_8 || MCVersion.minecraft1_9 || MCVersion.minecraft1_10 || MCVersion.minecraft1_11 || MCVersion.minecraft1_12) {
set("GUI.FillItem.GlassPaneColor", fillItem, yamlConfiguration);
} else set("GUI.FillItem.Item", fillItem, yamlConfiguration);
set("Command.Alias", alias, yamlConfiguration);
set("Command.Permission.Required", aliasPerm, yamlConfiguration);
}
private static void setNew(String key, Integer slotNumber, Boolean slotEnable, String function, Boolean permRequired, YamlConfiguration yamlConfiguration) {
set("Slots." + key + ".Slot", slotNumber, yamlConfiguration);
set("Slots." + key + ".Enable", slotEnable, yamlConfiguration);
set("Slots." + key + ".Function", function, yamlConfiguration);
set("Slots." + key + ".Permission.Required", permRequired, yamlConfiguration);
set("Slots." + key + ".Permission.See", "commandgui.gui.[function].slot.[slot].see", yamlConfiguration);
set("Slots." + key + ".Permission.Use", "commandgui.gui.[function].slot.[slot].use", yamlConfiguration);
}
private static void set(String path, String value, YamlConfiguration config) {
if (!config.contains(path)) {
config.set(path, value);
}
}
private static void set(String path, Integer value, YamlConfiguration config) {
if (!config.contains(path)) {
config.set(path, value);
}
}
private static void set(String path, Boolean value, YamlConfiguration config) {
if (!config.contains(path)) {
config.set(path, value);
}
}
}

View File

@ -1,146 +0,0 @@
package de.jatitv.commandguiv2.Spigot.config.functions;
import de.jatitv.commandguiv2.Spigot.Main;
import net.t2code.lib.Spigot.Lib.messages.send;
import net.t2code.lib.Spigot.Lib.minecraftVersion.MCVersion;
import org.bukkit.configuration.file.YamlConfiguration;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
public class CreateFunctions {
public static void create() {
createFunction("UseItem", false, 1, false, false, "", false, "", "",
"&6Toggle UseItem", Arrays.asList("&bYou currently have the UseItem set to: %commandgui_useitem%"), false, false,
"", false, 0.0, false, false, false, Arrays.asList(), false,
"", false, "", false, "", true, true,
Arrays.asList("&bYour UseItem was set to: %commandgui_useitem%&b."), false, "", "", "String",
"", false, 0, 0.0, Arrays.asList(), "", false,
0, 0.0, Arrays.asList(), false, "");
createFunction("SupportDiscord", false, 1, true, true, "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzg3M2MxMmJmZmI1MjUxYTBiODhkNWFlNzVjNzI0N2NiMzlhNzVmZjFhODFjYmU0YzhhMzliMzExZGRlZGEifX19",
false, "", (MCVersion.minecraft1_8 || MCVersion.minecraft1_9 || MCVersion.minecraft1_10 || MCVersion.minecraft1_11 || MCVersion.minecraft1_12) ? "TNT" : "",
"&3Support Discord", Arrays.asList("&8-----------------", "&bIf you need help setting up the plugin,", "&bfeel free to contact me on the Suport Discord.",
"&8-----------------", "&eIf you find any errors or bugs,", "&eplease contact me so I can fix them.", "&8-----------------", "&5Discord: §7http://dc.t2code.net"),
false, false, "", false, 0.0, false, false,
false, Arrays.asList(), false, "", false, "", false, "",
false, true, Arrays.asList("&6You can find more information on Discord: &ehttp://dc.t2code.net"), false, "",
"", "String", "", false, 0, 0.0, Arrays.asList(),
"", false, 0, 0.0, Arrays.asList(), false, "");
}
public static void createFunction(String fileName, Boolean empty, Integer itemAmount, Boolean playerHeadEnable, Boolean base64Enable, String base64Value, Boolean playerWhoHasOpenedTheGUI,
String playerName, String itemMaterial, String name, List<String> lore, Boolean customSoundEnable, Boolean customSoundNoSound, String customSoundSound,
Boolean costEnable, Double price, Boolean commandEnable, Boolean commandBungeeCommand, Boolean commandAsConsole, List<String> command,
Boolean serverChange, String serverChangeServer, Boolean openGUIEnable, String openGUI, Boolean togglePermission, String togglePermissionPerm,
Boolean toggleUseItem, Boolean messageEnable, List<String> message, Boolean setConfigEnable, String configFilePath, String configOptionPath,
String configOptionPremat, String configStringValueLeft, Boolean configBooleanValueLeft, Integer configIntegerValueLeft, Double configDoubleValueLeft,
List<String> configListValueLeft, String configStringValueRight, Boolean configBooleanValueRight, Integer configIntegerValueRight, Double configDoubleValueRight,
List<String> configListValueRight, Boolean pluginReloadEnable, String pluginReloadCommand) {
long long_ = System.currentTimeMillis();
File config = new File(Main.getPath(), "Functions/" + fileName + ".yml");
int i = 1;
while (config.exists()) {
config = new File(Main.getPath(), "Functions/" + fileName + "-" + i + ".yml");
i++;
}
send.console(Main.prefix + " §4Function GUI file (Functions/" + config.getName() + ") is loaded...");
YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config);
set("Slots.Function.Item.Empty", empty, yamlConfiguration);
set("Slots.Function.Item.Amount", itemAmount, yamlConfiguration);
// if (!(MCVersion.minecraft1_8 || MCVersion.minecraft1_9 || MCVersion.minecraft1_10 || MCVersion.minecraft1_11 || MCVersion.minecraft1_12)) {
set("Slots.Function.Item.PlayerHead.Enable", playerHeadEnable, yamlConfiguration);
set("Slots.Function.Item.PlayerHead.Base64.Enable", base64Enable, yamlConfiguration);
set("Slots.Function.Item.PlayerHead.Base64.Base64Value", base64Value, yamlConfiguration);
set("Slots.Function.Item.PlayerHead.PlayerWhoHasOpenedTheGUI", playerWhoHasOpenedTheGUI, yamlConfiguration);
set("Slots.Function.Item.PlayerHead.PlayerName", playerName, yamlConfiguration);
// }
set("Slots.Function.Item.Material", itemMaterial == null ? "" : itemMaterial, yamlConfiguration);
set("Slots.Function.Item.Name", name == null ? "" : name, yamlConfiguration);
set("Slots.Function.Item.Lore", lore, yamlConfiguration);
set("Slots.Function.CustomSound.Enable", customSoundEnable, yamlConfiguration);
set("Slots.Function.CustomSound.NoSound", customSoundNoSound, yamlConfiguration);
set("Slots.Function.CustomSound.Sound", customSoundSound == null ? "" : customSoundSound, yamlConfiguration);
set("Slots.Function.Cost.Enable", costEnable, yamlConfiguration);
set("Slots.Function.Cost.Price", price, yamlConfiguration);
set("Slots.Function.Command.Enable", commandEnable, yamlConfiguration);
set("Slots.Function.Command.BungeeCommand", commandBungeeCommand, yamlConfiguration);
set("Slots.Function.Command.CommandAsConsole", commandAsConsole, yamlConfiguration);
set("Slots.Function.Command.Command", command, yamlConfiguration);
set("Slots.Function.ServerChange.Enable", serverChange, yamlConfiguration);
set("Slots.Function.ServerChange.Server", serverChangeServer == null ? "" : serverChangeServer, yamlConfiguration);
set("Slots.Function.OpenGUI.Enable", openGUIEnable, yamlConfiguration);
set("Slots.Function.OpenGUI.GUI", openGUI == null ? "" : openGUI, yamlConfiguration);
set("Slots.Function.Toggle.Permission.Enable", togglePermission, yamlConfiguration);
set("Slots.Function.Toggle.Permission.Permission", togglePermissionPerm == null ? "" : togglePermissionPerm, yamlConfiguration);
set("Slots.Function.Toggle.UseItem.Enable", toggleUseItem, yamlConfiguration);
set("Slots.Function.Message.Enable", messageEnable, yamlConfiguration);
set("Slots.Function.Message.Message", message, yamlConfiguration);
set("Slots.Function.SetConfig.Enable", setConfigEnable, yamlConfiguration);
set("Slots.Function.SetConfig.File.Path", configFilePath == null ? "" : configFilePath, yamlConfiguration);
set("Slots.Function.SetConfig.Option.Path", configOptionPath == null ? "" : configOptionPath, yamlConfiguration);
set("Slots.Function.SetConfig.Option.Premat", configOptionPremat == null ? "" : configOptionPremat, yamlConfiguration);
set("Slots.Function.SetConfig.Value.LeftClick.String", configStringValueLeft == null ? "" : configStringValueLeft, yamlConfiguration);
set("Slots.Function.SetConfig.Value.LeftClick.Boolean", configBooleanValueLeft, yamlConfiguration);
set("Slots.Function.SetConfig.Value.LeftClick.Integer", configIntegerValueLeft, yamlConfiguration);
set("Slots.Function.SetConfig.Value.LeftClick.Double", configDoubleValueLeft, yamlConfiguration);
set("Slots.Function.SetConfig.Value.LeftClick.List", configListValueLeft, yamlConfiguration);
set("Slots.Function.SetConfig.Value.RightClick.String", configStringValueRight == null ? "" : configStringValueRight, yamlConfiguration);
set("Slots.Function.SetConfig.Value.RightClick.Boolean", configBooleanValueRight, yamlConfiguration);
set("Slots.Function.SetConfig.Value.RightClick.Integer", configIntegerValueRight, yamlConfiguration);
set("Slots.Function.SetConfig.Value.RightClick.Double", configDoubleValueRight, yamlConfiguration);
set("Slots.Function.SetConfig.Value.RightClick.List", configListValueRight, yamlConfiguration);
set("Slots.Function.SetConfig.PluginReload.Enable", pluginReloadEnable, yamlConfiguration);
set("Slots.Function.SetConfig.PluginReload.Command", pluginReloadCommand == null ? "" : pluginReloadCommand, yamlConfiguration);
try {
yamlConfiguration.save(config);
} catch (IOException e) {
e.printStackTrace();
}
send.console(Main.prefix + " §2Function file (Functions/" + config.getName() + ") was loaded." + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
}
private static void set(String path, String value, YamlConfiguration config) {
if (!config.contains(path)) {
config.set(path, value);
}
}
private static void set(String path, Integer value, YamlConfiguration config) {
if (!config.contains(path)) {
config.set(path, value);
}
}
private static void set(String path, Boolean value, YamlConfiguration config) {
if (!config.contains(path)) {
config.set(path, value);
}
}
private static void set(String path, List value, YamlConfiguration config) {
if (!config.contains(path)) {
config.set(path, value);
}
}
private static void set(String path, Double value, YamlConfiguration config) {
if (!config.contains(path)) {
config.set(path, value);
}
}
}

View File

@ -1,72 +0,0 @@
package de.jatitv.commandguiv2.Spigot.config.gui;
import de.jatitv.commandguiv2.Spigot.Main;
import net.t2code.lib.Spigot.Lib.messages.send;
import net.t2code.lib.Spigot.Lib.minecraftVersion.MCVersion;
import org.bukkit.configuration.file.YamlConfiguration;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
public class CreateGUI {
public static void configCreate() {
long long_ = System.currentTimeMillis();
send.console(Main.prefix + " §4Default GUI file (GUIs/default.yml) is loaded...");
File config = new File(Main.getPath(), "GUIs/default.yml");
YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config);
set("GUI.Enable", true, yamlConfiguration);
set("GUI.Lines", 1, yamlConfiguration);
set("GUI.Name", "&5default &9GUI", yamlConfiguration);
set("GUI.FillItem.Enable", true, yamlConfiguration);
if (MCVersion.minecraft1_8 || MCVersion.minecraft1_9 || MCVersion.minecraft1_10 || MCVersion.minecraft1_11 || MCVersion.minecraft1_12) {
set("GUI.FillItem.GlassPaneColor", 15, yamlConfiguration);
} else set("GUI.FillItem.Item", "BLACK_STAINED_GLASS_PANE", yamlConfiguration);
set("Command.Alias", true, yamlConfiguration);
set("Command.Permission.Required", true, yamlConfiguration);
set("Slots.SupportDiscord.Slot", 4, yamlConfiguration);
set("Slots.SupportDiscord.Enable", true, yamlConfiguration);
set("Slots.SupportDiscord.Function", "SupportDiscord", yamlConfiguration);
set("Slots.SupportDiscord.Permission.Required", false, yamlConfiguration);
set("Slots.SupportDiscord.Permission.See", "commandgui.gui.[function].slot.[slot].see", yamlConfiguration);
set("Slots.SupportDiscord.Permission.Use", "commandgui.gui.[function].slot.[slot].use", yamlConfiguration);
set("Slots.UseItem.Slot", 6, yamlConfiguration);
set("Slots.UseItem.Enable", true, yamlConfiguration);
set("Slots.UseItem.Function", "UseItem", yamlConfiguration);
set("Slots.UseItem.Permission.Required", false, yamlConfiguration);
set("Slots.UseItem.Permission.See", "commandgui.gui.[function].slot.[slot].see", yamlConfiguration);
set("Slots.UseItem.Permission.Use", "commandgui.gui.[function].slot.[slot].use", yamlConfiguration);
try {
yamlConfiguration.save(config);
} catch (IOException e) {
e.printStackTrace();
}
send.console(Main.prefix + " §2Default GUI file (GUIs/default.yml) was loaded." + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
}
private static void set(String path, String value, YamlConfiguration config) {
if (!config.contains(path)) {
config.set(path, value);
}
}
private static void set(String path, Integer value, YamlConfiguration config) {
if (!config.contains(path)) {
config.set(path, value);
}
}
private static void set(String path, Boolean value, YamlConfiguration config) {
if (!config.contains(path)) {
config.set(path, value);
}
}
}

View File

@ -1,219 +0,0 @@
package de.jatitv.commandguiv2.Spigot.config.languages;
import de.jatitv.commandguiv2.Spigot.Main;
import net.t2code.lib.Spigot.Lib.messages.send;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.Plugin;
import java.io.File;
import java.io.IOException;
public class LanguagesCreate {
private static Plugin plugin = Main.plugin;
public static void langCreate() {
send.debug(plugin,"§4Language files are created / updated...");
Long long_ = Long.valueOf(System.currentTimeMillis());
/**
*
* ENGLISH
*
*/
File messagesEN = new File(Main.getPath(), "languages/english_messages.yml");
YamlConfiguration yamlConfigurationEN = YamlConfiguration.loadConfiguration(messagesEN);
set("Plugin.VaultNotSetUp", MSG.EN_VaultNotSetUp, yamlConfigurationEN);
set("Plugin.SoundNotFound", MSG.EN_SoundNotFound, yamlConfigurationEN);
set("Plugin.OnlyForPlayer", MSG.EN_OnlyForPlayer, yamlConfigurationEN);
set("Plugin.DefaultGUI.create", MSG.EN_DefaultGUI, yamlConfigurationEN);
set("Plugin.Reload.Start", MSG.EN_ReloadStart, yamlConfigurationEN);
set("Plugin.Reload.End", MSG.EN_ReloadEnd, yamlConfigurationEN);
set("NoPermission.ForCommandGUI", MSG.EN_NoPermission, yamlConfigurationEN);
set("NoPermission.ForCommand", MSG.EN_NoPermissionForCommand, yamlConfigurationEN);
set("NoPermission.ForUseItem", MSG.EN_NoPermissionForUseItem, yamlConfigurationEN);
set("NoPermission.ForItem", MSG.EN_NoPermissionForItem, yamlConfigurationEN);
set("UseItem.UseItem_ON", MSG.EN_ItemON, yamlConfigurationEN);
set("UseItem.UseItem_OFF", MSG.EN_ItemOFF, yamlConfigurationEN);
set("UseItem.Change_Slot", MSG.EN_ItemSlot, yamlConfigurationEN);
set("UseItem.SlotNotEmpty", MSG.EN_ItemSlotNotEmpty, yamlConfigurationEN);
set("UseItem.SlotAlreadySet", MSG.EN_ItemSlotAlreadySet, yamlConfigurationEN);
set("UseItem.ItemSlot_wrongValue", MSG.EN_ItemSlot_wrongValue, yamlConfigurationEN);
set("UseItem.DisabledInGameMode", MSG.EN_UseItemDisabledInGameMode, yamlConfigurationEN);
set("UseItem.DisabledInWorld", MSG.EN_UseItemDisabledInWorld, yamlConfigurationEN);
set("Cost.Buy_msg", MSG.EN_Buy_msg, yamlConfigurationEN);
set("Cost.No_money", MSG.EN_No_money, yamlConfigurationEN);
set("Cost.NoInventorySpace", MSG.EN_NoInventorySpace, yamlConfigurationEN);
set("ServerChange.onServerChange", MSG.EN_onServerChange, yamlConfigurationEN);
set("GUI.GUInotFound", MSG.EN_GUInotFound, yamlConfigurationEN);
set("GUI.GUIisDisabled", MSG.EN_GUIisDisabled, yamlConfigurationEN);
set("Give.Sender", MSG.EN_GiveSender, yamlConfigurationEN);
set("Give.Receiver", MSG.EN_GiveReceiver, yamlConfigurationEN);
set("Player.PlayerNotFond", MSG.EN_PlayerNotFond, yamlConfigurationEN);
set("Player.PlayerNoInventorySpace", MSG.EN_PlayerNoInventorySpace, yamlConfigurationEN);
set("Help.CGUI", MSG.EN_Help_CGUI, yamlConfigurationEN);
set("Help.Help", MSG.EN_Help_Help, yamlConfigurationEN);
set("Help.Info", MSG.EN_Help_Info, yamlConfigurationEN);
set("Help.Open", MSG.EN_Help_Open, yamlConfigurationEN);
set("Help.Give", MSG.EN_Help_Give, yamlConfigurationEN);
set("Help.CreateDefaultGUI", MSG.EN_Help_CreateDefaultGUI, yamlConfigurationEN);
set("Help.Reload", MSG.EN_Help_Reload, yamlConfigurationEN);
set("Help.UseItem_On", MSG.EN_GUIItemHelp_on, yamlConfigurationEN);
set("Help.UseItem_Off", MSG.EN_GUIItemHelp_off, yamlConfigurationEN);
set("Help.UseItem_Slot", MSG.EN_GUIItemHelp_Slot, yamlConfigurationEN);
try {
yamlConfigurationEN.save(messagesEN);
} catch (IOException e) {
send.warning(plugin,e.getMessage());
e.printStackTrace();
}
/**
*
* GERMAN
*
*/
File messagesDE = new File(Main.getPath(), "languages/german_messages.yml");
YamlConfiguration yamlConfigurationDE = YamlConfiguration.loadConfiguration(messagesDE);
set("Plugin.VaultNotSetUp", MSG.DE_VaultNotSetUp, yamlConfigurationDE);
set("Plugin.SoundNotFound", MSG.DE_SoundNotFound, yamlConfigurationDE);
set("Plugin.OnlyForPlayer", MSG.DE_OnlyForPlayer, yamlConfigurationDE);
set("Plugin.DefaultGUI.create", MSG.DE_DefaultGUI, yamlConfigurationDE);
set("Plugin.Reload.Start", MSG.DE_ReloadStart, yamlConfigurationDE);
set("Plugin.Reload.End", MSG.DE_ReloadEnd, yamlConfigurationDE);
set("NoPermission.ForCommandGUI", MSG.DE_NoPermission, yamlConfigurationDE);
set("NoPermission.ForCommand", MSG.DE_NoPermissionForCommand, yamlConfigurationDE);
set("NoPermission.ForUseItem", MSG.DE_NoPermissionForUseItem, yamlConfigurationDE);
set("NoPermission.ForItem", MSG.DE_NoPermissionForItem, yamlConfigurationDE);
set("UseItem.UseItem_ON", MSG.DE_ItemON, yamlConfigurationDE);
set("UseItem.UseItem_OFF", MSG.DE_ItemOFF, yamlConfigurationDE);
set("UseItem.Change_Slot", MSG.DE_ItemSlot, yamlConfigurationDE);
set("UseItem.SlotNotEmpty", MSG.DE_ItemSlotNotEmpty, yamlConfigurationDE);
set("UseItem.SlotAlreadySet", MSG.DE_ItemSlotAlreadySet, yamlConfigurationDE);
set("UseItem.ItemSlot_wrongValue", MSG.DE_ItemSlot_wrongValue, yamlConfigurationDE);
set("UseItem.DisabledInGameMode", MSG.DE_UseItemDisabledInGameMode, yamlConfigurationDE);
set("UseItem.DisabledInWorld", MSG.DE_UseItemDisabledInWorld, yamlConfigurationDE);
set("Cost.Buy_msg", MSG.DE_Buy_msg, yamlConfigurationDE);
set("Cost.No_money", MSG.DE_No_money, yamlConfigurationDE);
set("Cost.NoInventorySpace", MSG.DE_NoInventorySpace, yamlConfigurationDE);
set("ServerChange.onServerChange", MSG.DE_onServerChange, yamlConfigurationDE);
set("GUI.GUInotFound", MSG.DE_GUInotFound, yamlConfigurationDE);
set("GUI.GUIisDisabled", MSG.DE_GUIisDisabled, yamlConfigurationDE);
set("Give.Sender", MSG.DE_GiveSender, yamlConfigurationDE);
set("Give.Receiver", MSG.DE_GiveReceiver, yamlConfigurationDE);
set("Player.PlayerNotFond", MSG.DE_PlayerNotFond, yamlConfigurationDE);
set("Player.PlayerNoInventorySpace", MSG.DE_PlayerNoInventorySpace, yamlConfigurationDE);
set("Help.CGUI", MSG.DE_Help_CGUI, yamlConfigurationDE);
set("Help.Help", MSG.DE_Help_Help, yamlConfigurationDE);
set("Help.Info", MSG.DE_Help_Info, yamlConfigurationDE);
set("Help.Open", MSG.DE_Help_Open, yamlConfigurationDE);
set("Help.Give", MSG.DE_Help_Give, yamlConfigurationDE);
set("Help.CreateDefaultGUI", MSG.DE_Help_CreateDefaultGUI, yamlConfigurationDE);
set("Help.Reload", MSG.DE_Help_Reload, yamlConfigurationDE);
set("Help.UseItem_On", MSG.DE_GUIItemHelp_on, yamlConfigurationDE);
set("Help.UseItem_Off", MSG.DE_GUIItemHelp_off, yamlConfigurationDE);
set("Help.UseItem_Slot", MSG.DE_GUIItemHelp_Slot, yamlConfigurationDE);
try {
yamlConfigurationDE.save(messagesDE);
} catch (IOException e) {
send.warning(plugin,e.getMessage());
e.printStackTrace();
}
/**
*
* norwegian
*
*/
File messagesNO = new File(Main.getPath(), "languages/norwegian_messages.yml");
YamlConfiguration yamlConfigurationNO = YamlConfiguration.loadConfiguration(messagesNO);
set("Plugin.VaultNotSetUp", MSG.NO_VaultNotSetUp, yamlConfigurationNO);
set("Plugin.SoundNotFound", MSG.NO_SoundNotFound, yamlConfigurationNO);
set("Plugin.OnlyForPlayer", MSG.NO_OnlyForPlayer, yamlConfigurationNO);
set("Plugin.DefaultGUI.create", MSG.NO_DefaultGUI, yamlConfigurationNO);
set("Plugin.Reload.Start", MSG.NO_ReloadStart, yamlConfigurationNO);
set("Plugin.Reload.End", MSG.NO_ReloadEnd, yamlConfigurationNO);
set("NoPermission.ForCommandGUI", MSG.NO_NoPermission, yamlConfigurationNO);
set("NoPermission.ForCommand", MSG.NO_NoPermissionForCommand, yamlConfigurationNO);
set("NoPermission.ForUseItem", MSG.NO_NoPermissionForUseItem, yamlConfigurationNO);
set("NoPermission.ForItem", MSG.NO_NoPermissionForItem, yamlConfigurationNO);
set("UseItem.UseItem_ON", MSG.NO_ItemON, yamlConfigurationNO);
set("UseItem.UseItem_OFF", MSG.NO_ItemOFF, yamlConfigurationNO);
set("UseItem.Change_Slot", MSG.NO_ItemSlot, yamlConfigurationNO);
set("UseItem.SlotNotEmpty", MSG.NO_ItemSlotNotEmpty, yamlConfigurationNO);
set("UseItem.SlotAlreadySet", MSG.NO_ItemSlotAlreadySet, yamlConfigurationNO);
set("UseItem.ItemSlot_wrongValue", MSG.NO_ItemSlot_wrongValue, yamlConfigurationNO);
set("UseItem.DisabledInGameMode", MSG.NO_UseItemDisabledInGameMode, yamlConfigurationNO);
set("UseItem.DisabledInWorld", MSG.NO_UseItemDisabledInWorld, yamlConfigurationNO);
set("Cost.Buy_msg", MSG.NO_Buy_msg, yamlConfigurationNO);
set("Cost.No_money", MSG.NO_No_money, yamlConfigurationNO);
set("Cost.NoInventorySpace", MSG.NO_NoInventorySpace, yamlConfigurationNO);
set("ServerChange.onServerChange", MSG.NO_onServerChange, yamlConfigurationNO);
set("GUI.GUInotFound", MSG.NO_GUInotFound, yamlConfigurationNO);
set("GUI.GUIisDisabled", MSG.NO_GUIisDisabled, yamlConfigurationNO);
set("Give.Sender", MSG.NO_GiveSender, yamlConfigurationNO);
set("Give.Receiver", MSG.NO_GiveReceiver, yamlConfigurationNO);
set("Player.PlayerNotFond", MSG.NO_PlayerNotFond, yamlConfigurationNO);
set("Player.PlayerNoInventorySpace", MSG.NO_PlayerNoInventorySpace, yamlConfigurationNO);
set("Help.CGUI", MSG.NO_Help_CGUI, yamlConfigurationNO);
set("Help.Help", MSG.NO_Help_Help, yamlConfigurationNO);
set("Help.Info", MSG.NO_Help_Info, yamlConfigurationNO);
set("Help.Open", MSG.NO_Help_Open, yamlConfigurationNO);
set("Help.Give", MSG.NO_Help_Give, yamlConfigurationNO);
set("Help.CreateDefaultGUI", MSG.NO_Help_CreateDefaultGUI, yamlConfigurationNO);
set("Help.Reload", MSG.NO_Help_Reload, yamlConfigurationNO);
set("Help.UseItem_On", MSG.NO_GUIItemHelp_on, yamlConfigurationNO);
set("Help.UseItem_Off", MSG.NO_GUIItemHelp_off, yamlConfigurationNO);
set("Help.UseItem_Slot", MSG.NO_GUIItemHelp_Slot, yamlConfigurationNO);
try {
yamlConfigurationNO.save(messagesNO);
} catch (IOException e) {
send.warning(plugin,e.getMessage());
e.printStackTrace();
}
send.console(Main.prefix + " §2Language files were successfully created / updated." + " §7- §e" + (System.currentTimeMillis() - long_.longValue()) + "ms");
}
private static void set(String path, String value, YamlConfiguration config) {
if (!config.contains(path)) {
config.set(path, value);
}
}
}

View File

@ -1,166 +0,0 @@
// This claas was created by JaTiTV
// -----------------------------
// _____ _____ _ _ _____
// / ____/ ____| | | |_ _|
// | | | | __| | | | | |
// | | | | |_ | | | | | |
// | |___| |__| | |__| |_| |_
// \_____\_____|\____/|_____|
// -----------------------------
package de.jatitv.commandguiv2.Spigot.config.languages;
public class MSG {
// EN
public static String EN_VaultNotSetUp = "[prefix] &4Vault / Economy not set up!";
public static String EN_SoundNotFound = "[prefix] &4The sound &6[sound] &4was not found! Please check the settings.";
public static String EN_OnlyForPlayer = "[prefix] &cThis command is for players only!";
public static String EN_DefaultGUI = "[prefix] &2DefaultGUI was created. You can find it in the directory: &e[directory]&2!";
public static String EN_ReloadStart = "[prefix] &6Plugin is reloaded...";
public static String EN_ReloadEnd = "[prefix] &2Plugin was successfully reloaded.";
public static String EN_NoPermission = "[prefix] &cYou do not have permission for &4Command&9GUI&c!";
public static String EN_NoPermissionForCommand = "[prefix] &cFor &b[cmd] &cyou lack the permission &6[perm]&c!";
public static String EN_NoPermissionForUseItem = "[prefix] &cYou lack the permission &6[perm] &cto use the item for the GUI: &6[gui].";
public static String EN_NoPermissionForItem = "[prefix] &cFor &b[item] &cyou lack the permission &6[perm]&c!";
public static String EN_Buy_msg = "[prefix] &2You bought [itemname] &2for &6[price]&2.";
public static String EN_No_money = "[prefix] &cYou don't have enough money!";
public static String EN_NoInventorySpace = "[prefix] &cYou have no room in your inventory!";
public static String EN_onServerChange = "[prefix] &2You will be connected to the server &e[server]§2.";
public static String EN_ItemON = "[prefix] &2You have activated the GUI item.";
public static String EN_ItemOFF = "[prefix] &2You have disabled the GUI item.";
public static String EN_ItemSlot = "[prefix] &2You have changed the GUI item to slot: &6[slot]&2.";
public static String EN_ItemSlotNotEmpty = "[prefix] &6The slot &e[slot] &6is currently occupied!";
public static String EN_ItemSlotAlreadySet = "[prefix] &6The slot §e[slot] §6is already set!";
public static String EN_ItemSlot_wrongValue = "[prefix] &cThe specified slot must be between 1 and 9!";
public static String EN_UseItemDisabledInGameMode = "[prefix] &cThe UseItem is disabled in this GameMode!";
public static String EN_UseItemDisabledInWorld = "[prefix] &cThe UseItem is disabled in this World!";
public static String EN_GUInotFound = "[prefix] &cThe GUI chosen by the does not exist.";
public static String EN_GUIisDisabled = "[prefix] &cThe GUI [gui] &cis currently Disabled!";
public static String EN_GiveSender = "[prefix] &2You have given &6[player] &2an [item] &2!";
public static String EN_GiveReceiver = "[prefix] &2You got &2, [item] &2from &6[sender]!";
public static String EN_PlayerNotFond = "[prefix] &cThe player &6[player] &cwas not found or is not online!";
public static String EN_PlayerNoInventorySpace = "[prefix] &6[player] &chas no free space in his inventory!";
public static String EN_Help_CGUI = "&8''&b/commandgui &8| &b/cgui&8'' &eOpen the default GUI &7(&r[gui]&7)&e.";
public static String EN_Help_Open = "&8''&b/commandgui [gui]&8'' &eOpen the GUI: &6[guiname]&e.";
public static String EN_Help_Help = "&8''&b/commandguihelp&8'' &eOpen this help.";
public static String EN_Help_Info = "&8''&b/commandgui admin info&8'' &eCall the info from &4Command&9GUI &e.";
public static String EN_Help_Give = "&8''&b/commandgui admin give &7<player>&8'' &eGive a player the GUI item.";
public static String EN_Help_CreateDefaultGUI = "&8''&b/commandgui admin createdefaultgui&8'' &eCreate a default GUI &7([directory])&e.";
public static String EN_Help_Reload = "&8''&b/commandgui admin reload&8'' &eReload the plugin.";
public static String EN_GUIItemHelp_on = "&8''&b/gui-item on&8'' &eActivate the GUIItem for you.";
public static String EN_GUIItemHelp_off = "&8''&b/gui-item off&8'' &eDisable the GUIItem for yourself.";
public static String EN_GUIItemHelp_Slot = "&8''&b/gui-item slot [slot]&8'' &eSet the slot for GUIItem for you.";
// DE
public static String DE_VaultNotSetUp = "[prefix] &4Vault / Economy nicht eingerichtet!";
public static String DE_SoundNotFound = "[prefix] &4Der Sound &6[sound] &4wurde nicht gefunden! Bitte [ue]berpr[ue]fe die Einstellungen.";
public static String DE_OnlyForPlayer = "[prefix] &cDieser Command ist nur f[ue]r Spieler!";
public static String DE_DefaultGUI = "[prefix] &2DefaultGUI wurde erstellt. Du findst sie im Verzeichnis: &e[directory]&2!";
public static String DE_ReloadStart = "[prefix] &6Plugin wird neu geladen...";
public static String DE_ReloadEnd = "[prefix] &2Plugin wurde erfolgreich neu geladen.";
public static String DE_NoPermission = "[prefix] &cDu hast keine Permission f[ue]r &4Command&9GUI&c!";
public static String DE_NoPermissionForCommand = "[prefix] &cF[ue]r &b[cmd] &cfehlt dir die Permission &6[perm]&c!";
public static String DE_NoPermissionForUseItem = "[prefix] &cDir fehlt die Permission &6[perm] &cum das Item f[ue]r die GUI: &6[gui] &cnutzen zu k[oe]nnen.";
public static String DE_NoPermissionForItem = "[prefix] &cF[ue]r &b[item] &cfehlt dir die Permission &6[perm]&c!";
public static String DE_ItemON = "[prefix] &2Du hast das GUI-Item aktiviert.";
public static String DE_ItemOFF = "[prefix] &2Du hast das GUI-Item deaktiviert.";
public static String DE_ItemSlot = "[prefix] &2Du hast das GUI-Item auf Slot &6[slot] &2umgestellt.";
public static String DE_ItemSlotNotEmpty = "[prefix] &6Der Slot §e[slot] §6ist derzeit belegt!.";
public static String DE_ItemSlotAlreadySet = "[prefix] &6Der Slot §e[slot] §6ist bereits eingestellt!";
public static String DE_ItemSlot_wrongValue = "[prefix] &cDer angegebene Slot muss sich zwischen 1 und 9 befinden!";
public static String DE_UseItemDisabledInGameMode = "[prefix] &cDas UseItem ist in diesem GameMode deaktiviert!";
public static String DE_UseItemDisabledInWorld = "[prefix] &cDas UseItem ist in dieser Welt deaktiviert!";
public static String DE_Buy_msg = "[prefix] &2Du hast dir [itemname] &2f[ue]r &6[price] &2gekauft.";
public static String DE_No_money = "[prefix] &cDu hast nicht gen[ue]gend Geld!";
public static String DE_NoInventorySpace = "[prefix] &cDu hast keinen Platz in deinem Inventar!";
public static String DE_onServerChange = "[prefix] &2Du wirst auf den Server §e[server] §2verbunden.";
public static String DE_GUInotFound = "[prefix] &cDie von die gew[ae]hlte GUI gibt es nicht.";
public static String DE_GUIisDisabled = "[prefix] &cDie GUI [gui] &cist derzeit Deaktiviert!";
public static String DE_GiveSender = "[prefix] &2Du hast &6[player] &2ein [item] &2gegeben!";
public static String DE_GiveReceiver = "[prefix] &2Du hast von &6[sender] &2, [item] &2bekommen!";
public static String DE_PlayerNotFond = "[prefix] &cDer Spieler &6[player] &cwurde nicht gefunden oder ist nicht Online!";
public static String DE_PlayerNoInventorySpace = "[prefix] &6[player] &chat keinen freien Platz in seinem Inventar!";
public static String DE_Help_CGUI = "&8''&b/commandgui &8| &b/cgui&8'' &e[OE]ffne die default GUI &7(&r[gui]&7)&e.";
public static String DE_Help_Open = "&8''&b/commandgui [gui]&8'' &e[OE]ffne die GUI: &6[guiname]&e.";
public static String DE_Help_Help = "&8''&b/commandguihelp&8'' &e[OE]ffne diese help.";
public static String DE_Help_Info = "&8''&b/commandgui admin info&8'' &eRufe die Infos von &4Command&9GUI &eauf.";
public static String DE_Help_Give = "&8''&b/commandgui admin give &7<player>&8'' &eGebe einem Spieler das GUI-Item.";
public static String DE_Help_CreateDefaultGUI = "&8''&b/commandgui admin createdefaultgui&8'' &eLasse eine default GUI erstellen &7([directory])&e.";
public static String DE_Help_Reload = "&8''&b/commandgui admin reload&8'' &eLade das Plugin neu.";
public static String DE_GUIItemHelp_on = "&8''&b/gui-item on&8'' &eAktiviere f[ue]r dich das GUIItem.";
public static String DE_GUIItemHelp_off = "&8''&b/gui-item off&8'' &eDeaktiviere f[ue]r dich das GUIItem.";
public static String DE_GUIItemHelp_Slot = "&8''&b/gui-item slot [slot]&8'' &eSetze den Slot für GUIItem für Sie einstellen.";
// FR
// NO
public static String NO_VaultNotSetUp = "[prefix] &4Vault / Økonomi har ikke blitt satt opp!";
public static String NO_SoundNotFound = "[prefix] &4Lyden &6[sound] &4ble ikke bli funnet! Vennligst sjekk innstillingene.";
public static String NO_OnlyForPlayer = "[prefix] &cDenne kommandoen er for spillere kun!";
public static String NO_DefaultGUI = "[prefix] &2DefaultGUI har blitt laget. Du kan finne den i mappen: &e[directory]&2!";
public static String NO_ReloadStart = "[prefix] &6Pluginet blir relastet...";
public static String NO_ReloadEnd = "[prefix] &2Pluginet har blitt lastet inn på nytt.";
public static String NO_NoPermission = "[prefix] &cDu har ikke tilgang til &4Command&9GUI&c!";
public static String NO_NoPermissionForCommand = "[prefix] &cFor &b[cmd] &cmangler du tillatelsen &6[perm]&c!";
public static String NO_NoPermissionForUseItem = "[prefix] &cDu mangler tillatelsen &6[perm] &cfor å bruke gjenstanden i GUI: &6[gui].";
public static String NO_NoPermissionForItem = "[prefix] &cFor &b[item] &cmangler du tillatelsen &6[perm]&c!";
public static String NO_ItemON = "[prefix] &2You have activated the GUI item.";
public static String NO_ItemOFF = "[prefix] &2You have disabled the GUI item.";
public static String NO_ItemSlot = "[prefix] &2You have changed the GUI item to slot: &6[slot]&2.";
public static String NO_ItemSlotNotEmpty = "[prefix] &6Plassen &e[slot] &6er opptatt for øyeblikket!";
public static String NO_ItemSlotAlreadySet = "[prefix] &6Plassen §e[slot] §6er allerede satt!";
public static String NO_ItemSlot_wrongValue = "[prefix] &cDen spesifiserte plassen må være mellom 1 og 9!";
public static String NO_UseItemDisabledInGameMode = "[prefix] &cBrukselementet er deaktivert i denne spillmodusen!!";
public static String NO_UseItemDisabledInWorld = "[prefix] &cUseItem er deaktivert i denne verden!";
public static String NO_Buy_msg = "[prefix] &2Du kjøpte [itemname] &2for &6[price]&2.";
public static String NO_No_money = "[prefix] &cDu har ikke nok penger!";
public static String NO_NoInventorySpace = "[prefix] &cDu har ikke nok plass i inventaret ditt!";
public static String NO_onServerChange = "[prefix] &2Du vil bli tilkoblet serveren &e[server]&2.";
public static String NO_GUInotFound = "[prefix] &cGUIen som ble spesifisert finnes ikke.";
public static String NO_GUIisDisabled = "[prefix] &cGUIen [gui] &cer slått av for øyeblikket!";
public static String NO_GiveSender = "[prefix] &2Du har gitt &6[player] &2en [item]&2!";
public static String NO_GiveReceiver = "[prefix] &2Du fikk &2, [item] &2fra &6[sender]!";
public static String NO_PlayerNotFond = "[prefix] &cSpilleren &6[player] &cble ikke funnet eller er ikke pålogget!";
public static String NO_PlayerNoInventorySpace = "[prefix] &6[player] &char ikke nok plass i inventaret sitt!";
public static String NO_Help_CGUI = "&8''&b/commandgui &8| &b/cgui&8'' &eÅpne default GUIen &7(&r[gui]&7)&e.";
public static String NO_Help_Open = "&8''&b/commandgui [gui]&8'' &eÅpne GUIen: &6[guiname]&e.";
public static String NO_Help_Help = "&8''&b/commandguihelp&8'' &eSender denne hjelpe meldingen.";
public static String NO_Help_Info = "&8''&b/commandgui admin info&8'' &eKall informasjon fra &4Command&9GUI&e.";
public static String NO_Help_Give = "&8''&b/commandgui admin give &7<player>&8'' &eGi en spiller GUI gjenstanden.";
public static String NO_Help_CreateDefaultGUI = "&8''&b/commandgui admin createdefaultgui&8'' &eLag en normalverdi GUI &7([directory])&e.";
public static String NO_Help_Reload = "&8''&b/commandgui admin reload&8'' &eLast inn pluginet på nytt.";
public static String NO_GUIItemHelp_on = "&8''&b/gui-item on&8'' &eAktiverer en GUI gjenstand for deg.";
public static String NO_GUIItemHelp_off = "&8''&b/gui-item off&8'' &eDeaktiverer en GUI gjenstand for deg.";
public static String NO_GUIItemHelp_Slot = "&8''&b/gui-item slot [slot]&8'' &eSett sporet for GUIItem for deg.";
}

View File

@ -1,138 +0,0 @@
package de.jatitv.commandguiv2.Spigot.config.languages;
import de.jatitv.commandguiv2.Spigot.Main;
import de.jatitv.commandguiv2.Spigot.config.config.SelectConfig;
import de.jatitv.commandguiv2.Util;
import net.t2code.lib.Spigot.Lib.messages.send;
import net.t2code.lib.Spigot.Lib.replace.Replace;
import org.bukkit.configuration.file.YamlConfiguration;
import java.io.File;
public class SelectMessages {
public static String selectMSG;
public static String VaultNotSetUp;
public static String SoundNotFound;
public static String OnlyForPlayer;
public static String DefaultGUIcreate;
public static String ReloadStart;
public static String ReloadEnd;
public static String NoPermission;
public static String NoPermissionForCommand;
public static String NoPermissionForUseItem;
public static String NoPermissionForItem;
public static String ItemON;
public static String ItemOFF;
public static String ItemSlot;
public static String ItemSlotNotEmpty;
public static String ItemSlotAlreadySet;
public static String ItemSlot_wrongValue;
public static String UseItemDisabledInGameMode;
public static String UseItemDisabledInWorld;
public static String Buy_msg;
public static String No_money;
public static String NoInventorySpace;
public static String onServerChange;
public static String GUInotFound;
public static String GUIIsDisabled;
public static String Give_Sender;
public static String Give_Receiver;
public static String PlayerNotFond;
public static String PlayerNoInventorySpace;
public static String HelpCgui;
public static String HelpHelp;
public static String HelpInfo;
public static String HelpOpen;
public static String HelpGive;
public static String HelpCreateDefaultGUI;
public static String HelpReload;
public static String GUIItemHelp_on;
public static String GUIItemHelp_off;
public static String GUIItemHelp_Slot;
public static void onSelect(String Prefix) {
send.debug(Main.plugin, "§4Select language...");
Long long_ = Long.valueOf(System.currentTimeMillis());
File msg;
msg = new File(Main.getPath(), "languages/" + SelectConfig.language + "_messages.yml");
if (!msg.isFile()) {
send.console(Prefix);
send.console(Prefix + " §4!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
send.console(Prefix + " §4The selected §c" + SelectConfig.language + " §4language file was not found.");
send.console(Prefix + " §6The default language §eEnglish §6is used!");
send.console(Prefix + " §4!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
send.console(Prefix);
msg = new File(Main.getPath(), "languages/" + "english_messages.yml");
selectMSG = "english";
} else selectMSG = SelectConfig.language;
YamlConfiguration yamlConfiguration_msg = YamlConfiguration.loadConfiguration(msg);
VaultNotSetUp = select("Plugin.VaultNotSetUp", yamlConfiguration_msg);
SoundNotFound = select("Plugin.SoundNotFound", yamlConfiguration_msg);
OnlyForPlayer = select("Plugin.OnlyForPlayer", yamlConfiguration_msg);
DefaultGUIcreate = select("Plugin.DefaultGUI.create", yamlConfiguration_msg);
ReloadStart = select("Plugin.Reload.Start", yamlConfiguration_msg);
ReloadEnd = select("Plugin.Reload.End", yamlConfiguration_msg);
NoPermission = select("NoPermission.ForCommandGUI", yamlConfiguration_msg);
NoPermissionForCommand = select("NoPermission.ForCommand", yamlConfiguration_msg);
NoPermissionForUseItem = select("NoPermission.ForUseItem", yamlConfiguration_msg);
NoPermissionForItem = select("NoPermission.ForItem", yamlConfiguration_msg);
ItemON = select("UseItem.UseItem_ON", yamlConfiguration_msg);
ItemOFF = select("UseItem.UseItem_OFF", yamlConfiguration_msg);
ItemSlot = select("UseItem.Change_Slot", yamlConfiguration_msg);
ItemSlotNotEmpty = select("UseItem.SlotNotEmpty", yamlConfiguration_msg);
ItemSlotAlreadySet = select("UseItem.SlotAlreadySet", yamlConfiguration_msg);
ItemSlot_wrongValue = select("UseItem.ItemSlot_wrongValue", yamlConfiguration_msg);
UseItemDisabledInGameMode =select("UseItem.DisabledInGameMode",yamlConfiguration_msg);
UseItemDisabledInWorld =select("UseItem.DisabledInWorld",yamlConfiguration_msg);
Buy_msg = select("Cost.Buy_msg", yamlConfiguration_msg);
No_money = select("Cost.No_money", yamlConfiguration_msg);
NoInventorySpace = select("Cost.NoInventorySpace", yamlConfiguration_msg);
onServerChange = select("ServerChange.onServerChange", yamlConfiguration_msg);
GUInotFound = select("GUI.GUInotFound", yamlConfiguration_msg);
GUIIsDisabled = select("GUI.GUIisDisabled", yamlConfiguration_msg);
Give_Sender = select("Give.Sender", yamlConfiguration_msg);
Give_Receiver = select("Give.Receiver", yamlConfiguration_msg);
PlayerNotFond = select("Player.PlayerNotFond", yamlConfiguration_msg);
PlayerNoInventorySpace = select("Player.PlayerNoInventorySpace", yamlConfiguration_msg);
HelpCgui = select("Help.CGUI", yamlConfiguration_msg);
HelpHelp = select("Help.Help", yamlConfiguration_msg);
HelpInfo = select("Help.Info", yamlConfiguration_msg);
HelpOpen = select("Help.Open", yamlConfiguration_msg);
HelpGive = select("Help.Give", yamlConfiguration_msg);
HelpCreateDefaultGUI = select("Help.CreateDefaultGUI", yamlConfiguration_msg);
HelpReload = select("Help.Reload", yamlConfiguration_msg);
GUIItemHelp_on = select("Help.UseItem_On", yamlConfiguration_msg);
GUIItemHelp_off = select("Help.UseItem_Off", yamlConfiguration_msg);
GUIItemHelp_Slot = select("Help.UseItem_Slot", yamlConfiguration_msg);
send.console(Prefix + " §2Language successfully selected to: §6" + selectMSG + " §7- §e" + (System.currentTimeMillis() - long_.longValue()) + "ms");
}
private static String select(String path, YamlConfiguration yamlConfiguration){
return Replace.replace(Util.getPrefix(),yamlConfiguration.getString(path));
}
}

View File

@ -1,122 +0,0 @@
package de.jatitv.commandguiv2.Spigot.gui;
import com.mojang.authlib.GameProfile;
import com.mojang.authlib.properties.Property;
import de.jatitv.commandguiv2.Spigot.Main;
import de.jatitv.commandguiv2.Spigot.objects.guis.Gui;
import de.jatitv.commandguiv2.Spigot.objects.functions.Function;
import de.jatitv.commandguiv2.Spigot.config.config.SelectConfig;
import de.jatitv.commandguiv2.Util;
import net.t2code.lib.Spigot.Lib.items.ItemVersion;
import net.t2code.lib.Spigot.Lib.minecraftVersion.MCVersion;
import net.t2code.lib.Spigot.Lib.replace.Replace;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.inventory.meta.SkullMeta;
import java.lang.reflect.Field;
import java.util.UUID;
public class GuiBuilder {
private static String prefix = Util.getPrefix();
protected static void item(Function function, Integer slot, Player player, Inventory inventory) {
ItemStack item = new ItemStack(Material.valueOf(function.item.toUpperCase().replace(".", "_")));
ItemMeta itemMeta = item.getItemMeta();
setDisplayNameAndLore(itemMeta, player, function);
item.setItemMeta(itemMeta);
Integer am;
if (function.itemAmount == 0) {
am = 1;
} else am = function.itemAmount;
item.setAmount(am);
inventory.setItem(slot, item);
}
protected static void item(String material, Function function,Integer slot, Player player, Inventory inventory) {
ItemStack item = new ItemStack(Material.valueOf(material));
ItemMeta itemMeta = item.getItemMeta();
setDisplayNameAndLore(itemMeta, player, function);
item.setItemMeta(itemMeta);
Integer am;
if (function.itemAmount == 0) {
am = 1;
} else am = function.itemAmount;
item.setAmount(am);
inventory.setItem(slot, item);
}
private static void setDisplayNameAndLore(ItemMeta itemMeta, Player player, Function slot) {
if (Main.PaPi) {
itemMeta.setDisplayName(Replace.replace(prefix, player, slot.name.replace("[player]", player.getName())));
itemMeta.setLore(Replace.replacePrice(prefix, player, slot.lore, slot.price + " " + SelectConfig.Currency));
} else {
itemMeta.setDisplayName(Replace.replace(prefix, slot.name.replace("[player]", player.getName())));
itemMeta.setLore(Replace.replacePrice(prefix, slot.lore, slot.price + " " + SelectConfig.Currency));
}
}
protected static void base64(String base64Value, Function function, Integer slot, Player player, Inventory inventory) {
ItemStack item = ItemVersion.getHeadIS();
SkullMeta itemMeta = (SkullMeta) item.getItemMeta();
setBase64(itemMeta, base64Value);
setDisplayNameAndLore(itemMeta, player, function);
item.setItemMeta(itemMeta);
Integer am;
if (function.itemAmount == 0) {
am = 1;
} else am = function.itemAmount;
item.setAmount(am);
inventory.setItem(slot, item);
}
private static void setBase64(ItemMeta itemMeta, String base64Value) {
GameProfile profile = new GameProfile(UUID.randomUUID(), "");
profile.getProperties().put("textures", new Property("textures", base64Value == null ? "" : base64Value));
Field profileField;
try {
profileField = itemMeta.getClass().getDeclaredField("profile");
profileField.setAccessible(true);
profileField.set(itemMeta, profile);
} catch (IllegalArgumentException | IllegalAccessException | NoSuchFieldException | SecurityException e) {
e.printStackTrace();
}
}
protected static void base64(Function function,Integer slot, Player player, Inventory inventory) {
base64(function.base64Value, function,slot, player, inventory);
}
protected static void playerHead(Function function, Integer slot,Player player, Inventory inventory, String skullName) {
ItemStack item = ItemVersion.getHeadIS();
SkullMeta itemMeta = (SkullMeta) item.getItemMeta();
setDisplayNameAndLore(itemMeta, player, function);
itemMeta.setOwner(skullName);
item.setItemMeta(itemMeta);
Integer am;
if (function.itemAmount == 0) {
am = 1;
} else am = function.itemAmount;
item.setAmount(am);
inventory.setItem(slot, item);
}
public static void fillItem(Inventory inventory, Gui gui) {
ItemStack glass;
if (MCVersion.minecraft1_8 || MCVersion.minecraft1_9 || MCVersion.minecraft1_10 || MCVersion.minecraft1_11 || MCVersion.minecraft1_12) {
glass = new ItemStack(Material.valueOf("STAINED_GLASS_PANE"), 1, Short.valueOf(gui.guiFillItemItem));
} else glass = new ItemStack(Material.valueOf(gui.guiFillItemItem.toUpperCase().replace(".", "_")));
ItemMeta itemMetaglass = glass.getItemMeta();
itemMetaglass.setDisplayName(" ");
glass.setItemMeta(itemMetaglass);
glass.setAmount(1);
for (int i = 0; i < 9 * gui.guiLines; i++) {
inventory.setItem(i, glass);
}
}
}

View File

@ -1,151 +0,0 @@
package de.jatitv.commandguiv2.Spigot.gui;
import de.jatitv.commandguiv2.Spigot.Listener.GUIListener;
import de.jatitv.commandguiv2.Spigot.Listener.UseItem_Listener.Events;
import de.jatitv.commandguiv2.Spigot.Main;
import de.jatitv.commandguiv2.Spigot.objects.functions.Function;
import de.jatitv.commandguiv2.Spigot.config.languages.SelectMessages;
import de.jatitv.commandguiv2.Spigot.objects.guis.Gui;
import de.jatitv.commandguiv2.Spigot.config.config.SelectConfig;
import de.jatitv.commandguiv2.Spigot.objects.slots.Slot;
import de.jatitv.commandguiv2.Util;
import io.github.solyze.plugmangui.inventories.PluginListGUI;
import net.t2code.lib.Spigot.Lib.messages.send;
import net.t2code.lib.Spigot.Lib.minecraftVersion.MCVersion;
import net.t2code.lib.Spigot.Lib.replace.Replace;
import net.t2code.luckyBox.api.LuckyBoxAPI;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.Plugin;
public class OpenGUI {
private static Plugin plugin = Main.plugin;
private static String prefix = Util.getPrefix();
public static void openGUI(Player player, String guiString, Boolean sound) {
Gui gui = Main.guiHashMap.get(guiString);
Long long_ = Long.valueOf(System.currentTimeMillis());
switch (guiString) {
//case "plugin.PlotSquaredGUI":
// if (Main.PlotSquaredGUI) {
// PlotSquaredGUIapi.openMainGUI(player);
// } else {
// if (player.hasPermission("commandgui.admin")) {
// send.player(player, prefix + " §4PlotSquaredGUI could not be found! §9Please download it here: " +
// "§6https://spigotmc.org/resources/plotsquaredgui.77506/");
// }
// }
// return; todo
case "plugin.PlugManGUI":
if (Main.PlugManGUI) {
player.openInventory((new PluginListGUI(54, 1)).getInventory());
} else {
if (player.hasPermission("commandgui.admin")) {
send.player(player, prefix + " §4PlugManGUI could not be found! §9Please download it here: " +
"§6https://spigotmc.org/resources/plugmangui.87599/");
}
}
return;
case "plugin.T2C-LuckyBox":
if (Main.LuckyBox) {
LuckyBoxAPI.openShop(player);
} else {
if (player.hasPermission("commandgui.admin")) {
send.player(player, prefix + " §4T2C-LuckyBox could not be found! §9Please download it here: " +
"§6https://www.spigotmc.org/resources/luckybox.98154/");
}
}
return;
}
if (MCVersion.minecraft1_13) {
GUIListener.GUICode = "";
} else GUIListener.GUICode = "§6§8§9§r";
if (gui.guiEnable || player.hasPermission("commandgui.bypass")) {
Inventory inventory;
if (Main.PaPi) {
inventory = Bukkit.createInventory((InventoryHolder) null, 9 * gui.guiLines, (Replace.replace(prefix, player, GUIListener.GUICode + gui.guiName)));
} else inventory = Bukkit.createInventory((InventoryHolder) null, 9 * gui.guiLines, (Replace.replace(prefix, GUIListener.GUICode + gui.guiName)));
if (gui.guiFillItemEnable) {
GuiBuilder.fillItem(inventory, gui);
}
for (Slot slot : gui.slots) {
Function function = Main.functionHashMap.get(slot.function);
if (function == null) {
send.error(Main.plugin, "The Function " + slot.function + " in the GUI " + gui.key + " does not exist!");
continue;
}
if (slot.permission && !player.hasPermission(slot.permissionToSee)) continue;
if (slot.slot < 0 || slot.slot > gui.guiLines * 9) continue;
if (slot.enable) {
if (function.empty) {
ItemStack air = new ItemStack(Material.AIR);
inventory.setItem(slot.slot, air);
} else {
if (function.togglePermission) {
if (player.hasPermission(function.togglePermissionPerm)) {
toggleOn(function, slot.slot, player, inventory);
} else {
toggleOff(function, slot.slot, player, inventory);
}
} else if (function.toggleUseItem) {
if (Events.useItemHashMap.get(player)) {
toggleOn(function, slot.slot, player, inventory);
} else {
toggleOff(function, slot.slot, player, inventory);
}
} else {
if (function.playerHead_Enable) {
if (MCVersion.minecraft1_8 || MCVersion.minecraft1_9 || MCVersion.minecraft1_10 || MCVersion.minecraft1_11 || MCVersion.minecraft1_12) {
send.player(player, prefix + "§c Playerheads are only available from version §61.13§c! §7- §bGUI: §6" +
Replace.replace(prefix, gui.guiName).toString() + " §bSlot: §6" + (slot.slot + 1) + " §7- " + Replace.replace(prefix, function.name));
send.error(plugin, "Playerheads are only available from version 1.13!");
send.console(prefix + " §bGUI: §6" + Replace.replace(prefix, gui.guiName).toString() + " §bSlot: §6" +
(slot.slot + 1) + " §7- " + Replace.replace(prefix, function.name));
} else {
if (function.base64_Enable) {
GuiBuilder.base64(function, slot.slot, player, inventory);
} else {
if (function.playerWhoHasOpenedTheGUI) {
GuiBuilder.playerHead(function, slot.slot, player, inventory, player.getName());
} else {
GuiBuilder.playerHead(function, slot.slot, player, inventory, function.playerName);
}
}
}
} else {
GuiBuilder.item(function, slot.slot, player, inventory);
}
}
}
}
}
if (sound) {
if (SelectConfig.Sound_Enable && SelectConfig.Sound_OpenInventory_Enable) {
player.playSound(player.getLocation(), SelectConfig.Sound_OpenInventory, 3, 1);
}
}
player.openInventory(inventory);
send.debug(plugin, "§6" + player.getName() + " §5Open §6" + Replace.replace(prefix, gui.guiName) + " §5" + " §7- §e" + (System.currentTimeMillis() - long_.longValue()) + "ms");
} else player.sendMessage(SelectMessages.GUIIsDisabled.replace("[gui]", Replace.replace(prefix, gui.guiName)));
}
private static void toggleOn(Function function, Integer slot, Player player, Inventory inventory) {
if (SelectConfig.toggleItemOnOrYesBase64) {
GuiBuilder.base64(SelectConfig.toggleItemOnOrYesBase64Value, function, slot, player, inventory);
} else GuiBuilder.item(SelectConfig.toggleItemOnOrYesMaterial, function, slot, player, inventory);
}
private static void toggleOff(Function function, Integer slot, Player player, Inventory inventory) {
if (SelectConfig.toggleItemOffOrNoBase64) {
GuiBuilder.base64(SelectConfig.toggleItemOffOrNoBase64Value, function, slot, player, inventory);
} else GuiBuilder.item(SelectConfig.toggleItemOffOrNoMaterial, function, slot, player, inventory);
}
}

View File

@ -1,170 +0,0 @@
package de.jatitv.commandguiv2.Spigot.objects;
import de.jatitv.commandguiv2.Spigot.Main;
import de.jatitv.commandguiv2.Spigot.cmdManagement.CmdExecuter_GUITab;
import de.jatitv.commandguiv2.Spigot.objects.functions.Function;
import de.jatitv.commandguiv2.Spigot.objects.guis.Gui;
import de.jatitv.commandguiv2.Spigot.objects.slots.Slot;
import net.t2code.lib.Spigot.Lib.messages.send;
import net.t2code.lib.Spigot.Lib.minecraftVersion.MCVersion;
import org.bukkit.configuration.file.YamlConfiguration;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
public class Obj_Select {
public static void onSelect() {
onSelectFunction();
onSelectGui();
}
public static void onSelectGui() {
Main.guiHashMap.clear();
Main.allAliases.clear();
File f = new File(Main.getPath() + "/GUIs/");
File[] fileArray = f.listFiles();
for (File config_gui : fileArray) {
String sub = config_gui.getName().substring(config_gui.getName().length() - 4);
if (sub.equals(".yml")) {
String key = config_gui.getName().replace(".yml", "");
Main.allAliases.add(key);
YamlConfiguration yamlConfiguration_gui = YamlConfiguration.loadConfiguration(config_gui);
Boolean guiEnable = yamlConfiguration_gui.getBoolean("GUI.Enable");
Integer guiLines = yamlConfiguration_gui.getInt("GUI.Lines");
if (yamlConfiguration_gui.getInt("GUI.Lines") > 6) {
yamlConfiguration_gui.set("GUI.Lines", 6);
}
if (yamlConfiguration_gui.getInt("GUI.Lines") < 1) {
yamlConfiguration_gui.set("GUI.Lines", 1);
}
String guiName = yamlConfiguration_gui.getString("GUI.Name");
Boolean guiFillItemEnable = yamlConfiguration_gui.getBoolean("GUI.FillItem.Enable");
String guiFillItemItem;
if (MCVersion.minecraft1_8 || MCVersion.minecraft1_9 || MCVersion.minecraft1_10 || MCVersion.minecraft1_11 || MCVersion.minecraft1_12) {
guiFillItemItem = yamlConfiguration_gui.getString("GUI.FillItem.GlassPaneColor");
} else guiFillItemItem = yamlConfiguration_gui.getString("GUI.FillItem.Item");
Boolean commandAliasEnable = yamlConfiguration_gui.getBoolean("Command.Alias");
Boolean commandPermission = yamlConfiguration_gui.getBoolean("Command.Permission.Required");
ArrayList<Slot> slots = new ArrayList<>();
for (String slotKey : yamlConfiguration_gui.getConfigurationSection("Slots").getKeys(false)) {
Integer slotNumber = yamlConfiguration_gui.getInt("Slots." + slotKey + ".Slot") - 1;
Boolean enable = yamlConfiguration_gui.getBoolean("Slots." + slotKey + ".Enable");
String function = yamlConfiguration_gui.getString("Slots." + slotKey + ".Function");
Function functionCheck = Main.functionHashMap.get(function);
if (functionCheck == null) {
send.error(Main.plugin, "The Function " + function + " in the GUI " + key + " does not exist!");
}
Boolean permRequired = yamlConfiguration_gui.getBoolean("Slots." + slotKey + ".Permission.Required");
String permSee = yamlConfiguration_gui.getString("Slots." + slotKey + ".Permission.See");
String permUse = yamlConfiguration_gui.getString("Slots." + slotKey + ".Permission.Use");
Slot slot = new Slot(slotNumber, enable, function, permRequired,
Objects.requireNonNull(permSee).replace("[function]", key).replace("[slot]", String.valueOf(slotNumber + 1))
.replace("[slotname]", slotKey.toLowerCase()),
Objects.requireNonNull(permUse).replace("[function]", key).replace("[slot]", String.valueOf(slotNumber + 1))
.replace("[slotname]", slotKey.toLowerCase()));
slots.add(slot);
}
Gui gui = new Gui(guiEnable, guiLines, guiName, guiFillItemEnable, guiFillItemItem,
key, commandAliasEnable, commandPermission, slots);
Main.guiHashMap.put(key, gui);
CmdExecuter_GUITab.arg1.put(config_gui.getName()
.replace(".yml", ""), "commandgui.gui." + key);
try {
yamlConfiguration_gui.save(config_gui);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static void onSelectFunction() {
Main.functionHashMap.clear();
File f = new File(Main.getPath() + "/Functions/");
File[] fileArray = f.listFiles();
for (File config : fileArray) {
String sub = config.getName().substring(config.getName().length() - 4);
if (sub.equals(".yml")) {
YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config);
String key = config.getName().replace(".yml", "");
Boolean empty = yamlConfiguration.getBoolean("Slots.Function.Item.Empty");
Integer itemAmount = yamlConfiguration.getInt("Slots.Function.Item.Amount");
Boolean playerHead_Enable = yamlConfiguration.getBoolean("Slots.Function.Item.PlayerHead.Enable");
Boolean base64_Enable = yamlConfiguration.getBoolean("Slots.Function.Item.PlayerHead.Base64.Enable");
String base64Value = yamlConfiguration.getString("Slots.Function.Item.PlayerHead.Base64.Base64Value");
Boolean playerWhoHasOpenedTheGUI = yamlConfiguration.getBoolean("Slots.Function.Item.PlayerHead.PlayerWhoHasOpenedTheGUI");
String playerName = yamlConfiguration.getString("Slots.Function.Item.PlayerHead.PlayerName");
String item = yamlConfiguration.getString("Slots.Function.Item.Material");
String name = yamlConfiguration.getString("Slots.Function.Item.Name");
List<String> lore = yamlConfiguration.getStringList("Slots.Function.Item.Lore");
Boolean customSound_Enable = yamlConfiguration.getBoolean("Slots.Function.CustomSound.Enable");
Boolean customSound_NoSound = yamlConfiguration.getBoolean("Slots.Function.CustomSound.NoSound");
String customSound_Sound = yamlConfiguration.getString("Slots.Function.CustomSound.Sound");
Boolean cost_Enable = yamlConfiguration.getBoolean("Slots.Function.Cost.Enable");
Double price = yamlConfiguration.getDouble("Slots.Function.Cost.Price");
Boolean command_Enable = yamlConfiguration.getBoolean("Slots.Function.Command.Enable");
Boolean command_BungeeCommand = yamlConfiguration.getBoolean("Slots.Function.Command.BungeeCommand");
Boolean commandAsConsole = yamlConfiguration.getBoolean("Slots.Function.Command.CommandAsConsole");
List<String> command = yamlConfiguration.getStringList("Slots.Function.Command.Command");
Boolean serverChange = yamlConfiguration.getBoolean("Slots.Function.ServerChange.Enable");
String serverChangeServer = yamlConfiguration.getString("Slots.Function.ServerChange.Server");
Boolean openGUI_Enable = yamlConfiguration.getBoolean("Slots.Function.OpenGUI.Enable");
String openGUI = yamlConfiguration.getString("Slots.Function.OpenGUI.GUI");
Boolean togglePermission = yamlConfiguration.getBoolean("Slots.Function.Toggle.Permission.Enable");
String togglePermissionPerm = yamlConfiguration.getString("Slots.Function.Toggle.Permission.Permission");
Boolean toggleUseItem = yamlConfiguration.getBoolean("Slots.Function.Toggle.UseItem.Enable");
Boolean message_Enable = yamlConfiguration.getBoolean("Slots.Function.Message.Enable");
List<String> message = yamlConfiguration.getStringList("Slots.Function.Message.Message");
Boolean setConfigEnable = yamlConfiguration.getBoolean("Slots.Function.SetConfig.Enable");
String configFilePath = yamlConfiguration.getString("Slots.Function.SetConfig.File.Path");
String configOptionPath = yamlConfiguration.getString("Slots.Function.SetConfig.Option.Path");
String configOptionPremat = yamlConfiguration.getString("Slots.Function.SetConfig.Option.Premat");
// Boolean ConfigChatInput = ;
String configStringValueLeft = yamlConfiguration.getString("Slots.Function.SetConfig.Value.LeftClick.String");
Boolean configBooleanValueLeft = yamlConfiguration.getBoolean("Slots.Function.SetConfig.Value.LeftClick.Boolean");
Integer configIntegerValueLeft = yamlConfiguration.getInt("Slots.Function.SetConfig.Value.LeftClick.Integer");
Double configDoubleValueLeft = yamlConfiguration.getDouble("Slots.Function.SetConfig.Value.LeftClick.Double");
List<String> configListValueLeft = yamlConfiguration.getStringList("Slots.Function.SetConfig.Value.LeftClick.List");
String configStringValueRight = yamlConfiguration.getString("Slots.Function.SetConfig.Value.RightClick.String");
Boolean configBooleanValueRight = yamlConfiguration.getBoolean("Slots.Function.SetConfig.Value.RightClick.Boolean");
Integer configIntegerValueRight = yamlConfiguration.getInt("Slots.Function.SetConfig.Value.RightClick.Integer");
Double configDoubleValueRight = yamlConfiguration.getDouble("Slots.Function.SetConfig.Value.RightClick.Double");
List<String> configListValueRight = yamlConfiguration.getStringList("Slots.Function.SetConfig.RightClick.Value.List");
Boolean pluginReloadEnable = yamlConfiguration.getBoolean("Slots.Function.SetConfig.PluginReload.Enable");
String pluginReloadCommand = yamlConfiguration.getString("Slots.Function.SetConfig.PluginReload.Command");
Function function = new Function(key, empty, itemAmount, playerHead_Enable, base64_Enable, base64Value, playerWhoHasOpenedTheGUI, playerName, item, name, lore,
customSound_Enable, customSound_NoSound, customSound_Sound, cost_Enable, price, command_Enable, command_BungeeCommand, commandAsConsole, command,
serverChange, serverChangeServer, openGUI_Enable, openGUI, togglePermission, togglePermissionPerm, toggleUseItem, message_Enable, message,
setConfigEnable, configFilePath, configOptionPath, configOptionPremat, configStringValueLeft, configBooleanValueLeft, configIntegerValueLeft,
configDoubleValueLeft, configListValueLeft, configStringValueRight, configBooleanValueRight, configIntegerValueRight, configDoubleValueRight,
configListValueRight, pluginReloadEnable, pluginReloadCommand);
Main.functionHashMap.put(key, function);
try {
yamlConfiguration.save(config);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}

View File

@ -1,96 +0,0 @@
package de.jatitv.commandguiv2.Spigot.system;
import de.jatitv.commandguiv2.Spigot.Main;
import net.t2code.lib.Spigot.Lib.messages.send;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.Plugin;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.List;
public class Debug {
private static Plugin plugin = Main.plugin;
public static void debugmsg() {
send.debug(plugin,"§5!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
send.debug(plugin,"§3Bukkit Version: §e" + Bukkit.getBukkitVersion());
send.debug(plugin,"§3NMS Version: §e" + Bukkit.getServer().getClass().getPackage().getName().replace("org.bukkit.craftbukkit.", ""));
send.debug(plugin,"§3Version: §e" + Bukkit.getVersion());
send.debug(plugin,"§3Java: §e" + System.getProperty("java.version"));
send.debug(plugin,"§3Worlds: §e" +String.valueOf(Bukkit.getServer().getWorlds()));
send.debug(plugin,String.valueOf(Main.plugins));
send.debug(plugin,"§5----------------------------------");
if (new File(Main.getPath(), "config.yml").exists()) {
File f = new File(String.valueOf(Main.getPath()));
File f2 = new File(String.valueOf(Main.getPath() + "/GUIs/"));
File f3 = new File(String.valueOf(Main.getPath() + "/languages/"));
File[] fileArray = f.listFiles();
File[] fileArray2 = f2.listFiles();
File[] fileArray3 = f3.listFiles();
for (File config : fileArray) {
send.debug(plugin,String.valueOf(config).replace("plugins/CommandGUI/", ""));
}
for (File config2 : fileArray2) {
send.debug(plugin,String.valueOf(config2).replace("plugins/CommandGUI/", ""));
}
for (File config3 : fileArray3) {
send.debug(plugin,String.valueOf(config3).replace("plugins/CommandGUI/", ""));
}
}
send.debug(plugin,"§5!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
}
public static void onDebugFile(CommandSender sender){
String timeStamp = new SimpleDateFormat("dd_MM_yyyy_HH_mm_ss").format(Calendar.getInstance().getTime());
String timeStampcfg = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(Calendar.getInstance().getTime());
send.sender(sender, Main.prefix + " §5Debug file was createt: §e" + Main.getPath() + "\\debug\\commandgui_debug_"+ timeStamp +".yml");
File debug = new File(Main.getPath(), "debug/commandgui_debug_"+ timeStamp +".yml");
YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(debug);
set("Time", timeStampcfg, yamlConfiguration);
set("CommandGUI.Version", String.valueOf(plugin.getDescription().getVersion()), yamlConfiguration);
set("Server.Bukkit_Version", String.valueOf(Bukkit.getBukkitVersion()), yamlConfiguration);
set("Server.NMS_Version", String.valueOf(Bukkit.getServer().getClass().getPackage().getName().replace("org.bukkit.craftbukkit.", "")), yamlConfiguration);
set("Server.Version", String.valueOf(Bukkit.getVersion()), yamlConfiguration);
set("Server.Java", String.valueOf(System.getProperty("java.version")), yamlConfiguration);
set("Server.Worlds", String.valueOf(Bukkit.getServer().getWorlds()), yamlConfiguration);
set("Server.Plugins", String.valueOf(Main.plugins) , yamlConfiguration);
try {
yamlConfiguration.save(debug);
} catch (IOException e) {
send.warning(plugin,e.getMessage());
e.printStackTrace();
}
}
private static void set(String path, String value, YamlConfiguration config){
if (!config.contains(path)) {
config.set(path, value);
}
}
private static void set(String path, Integer value, YamlConfiguration config){
if (!config.contains(path)) {
config.set(path, value);
}
}
private static void set(String path, Boolean value, YamlConfiguration config){
if (!config.contains(path)) {
config.set(path, value);
}
}
private static void set(String path, List value, YamlConfiguration config){
if (!config.contains(path)) {
config.set(path, value);
}
}
}

View File

@ -1,211 +0,0 @@
package de.jatitv.commandguiv2.Spigot.system;
import de.jatitv.commandguiv2.Spigot.Listener.GUIListener;
import de.jatitv.commandguiv2.Spigot.Listener.UseItem_Listener.EventsFrom110;
import de.jatitv.commandguiv2.Spigot.cmdManagement.CmdExecuter_GUITab;
import de.jatitv.commandguiv2.Spigot.cmdManagement.CmdExecuter_GUIItem;
import de.jatitv.commandguiv2.Spigot.cmdManagement.CmdExecuter_Help;
import de.jatitv.commandguiv2.Spigot.cmdManagement.register.AliasRegister;
import de.jatitv.commandguiv2.Spigot.config.functions.CreateFunctions;
import de.jatitv.commandguiv2.Spigot.config.gui.CreateGUI;
import de.jatitv.commandguiv2.Spigot.config.languages.LanguagesCreate;
import de.jatitv.commandguiv2.Spigot.config.languages.SelectMessages;
import de.jatitv.commandguiv2.Spigot.system.database.MySQL;
import de.jatitv.commandguiv2.Spigot.Listener.PluginEvent;
import de.jatitv.commandguiv2.Spigot.Listener.UseItem_Listener.Events;
import de.jatitv.commandguiv2.Spigot.Main;
import de.jatitv.commandguiv2.Spigot.objects.Obj_Select;
import de.jatitv.commandguiv2.Spigot.config.config.ConfigCreate;
import de.jatitv.commandguiv2.Spigot.config.config.SelectConfig;
import de.jatitv.commandguiv2.Spigot.system.database.SQLITE;
import de.jatitv.commandguiv2.Spigot.system.database.SelectDatabase;
import de.jatitv.commandguiv2.Spigot.system.database.StorageType;
import net.t2code.lib.Spigot.Lib.messages.T2CodeTemplate;
import net.t2code.lib.Spigot.Lib.messages.send;
import net.t2code.lib.Spigot.Lib.minecraftVersion.MCVersion;
import net.t2code.lib.Spigot.Lib.plugins.PluginCheck;
import net.t2code.lib.Spigot.Lib.update.UpdateAPI;
import org.bukkit.Bukkit;
import org.bukkit.plugin.Plugin;
import java.io.*;
import java.sql.SQLException;
import java.util.List;
public class Load {
static Plugin plugin = Main.plugin;
public static void onLoad(String prefix, List autor, String version, String spigot, int spigotID, String discord, int bstatsID) {
Long long_ = T2CodeTemplate.onLoadHeader(prefix, autor, version, spigot, discord);
try {
Debug.debugmsg();
} catch (Exception e) {
e.printStackTrace();
}
send.console(prefix + " §8-------------------------------");
if (!new File(Main.getPath(), "config.yml").exists()) {
try {
CreateGUI.configCreate();
} catch (Exception e) {
e.printStackTrace();
}
try {
CreateFunctions.create();
} catch (Exception e) {
e.printStackTrace();
}
}
try {
ConfigCreate.configCreate();
} catch (Exception e) {
e.printStackTrace();
}
try {
SelectConfig.onSelect();
} catch (Exception e) {
e.printStackTrace();
}
SelectConfig.setConfigVersion();
if (SelectConfig.Bungee) {
if (!Bukkit.getMessenger().isOutgoingChannelRegistered(plugin, "cgui:bungee")) {
send.debug(plugin, "registerOutgoingPluginChannel §ecgui:bungee");
Bukkit.getMessenger().registerOutgoingPluginChannel(plugin, "cgui:bungee");
}
if (!Bukkit.getMessenger().isIncomingChannelRegistered(plugin, "cgui:onlinepl")) {
send.debug(plugin, "registerIncomingPluginChannel §ecgui:onlinepl");
Bukkit.getMessenger().registerIncomingPluginChannel(plugin, "cgui:onlinepl", new Bungee_Sender_Reciver());
}
}
if (PluginCheck.papi()) {
new Placeholder().register();
}
try {
LanguagesCreate.langCreate();
} catch (Exception e) {
e.printStackTrace();
}
try {
Obj_Select.onSelect();
} catch (Exception e) {
e.printStackTrace();
}
try {
CmdExecuter_GUITab.arg1.put("admin", "commandgui.admin;commandgui.giveitem.other;commandgui.command.info");
} catch (Exception e) {
e.printStackTrace();
}
try {
SelectMessages.onSelect(prefix);
} catch (Exception e) {
e.printStackTrace();
}
try {
SelectConfig.sound(prefix);
} catch (Exception e) {
e.printStackTrace();
}
send.console(prefix + " §8-------------------------------");
loadStorage(prefix);
send.console(prefix + " §8-------------------------------");
if (Main.PaPi) {
send.console(prefix + " §2PlaceholderAPI successfully connected!");
} else {
send.console(prefix + " §4PlaceholderAPI could not be connected / found!");
}
try {
Permissions.onPermRegister();
} catch (Exception e) {
e.printStackTrace();
}
if (SelectConfig.HelpAlias) {
Main.plugin.getCommand("commandguihelp").setExecutor(new CmdExecuter_Help());
send.debug(plugin, "CommandRegister: commandguihelp");
}
Main.plugin.getCommand("commandgui").setExecutor(new CmdExecuter_GUITab());
send.debug(plugin, "CommandRegister: commandgui");
Main.plugin.getCommand("commandgui-item").setExecutor(new CmdExecuter_GUIItem());
send.debug(plugin, "CommandRegister: commandgui-item");
try {
AliasRegister.onRegister();
} catch (Exception e) {
e.printStackTrace();
}
Bukkit.getServer().getPluginManager().registerEvents(new GUIListener(), plugin);
Bukkit.getServer().getPluginManager().registerEvents(new PluginEvent(), plugin);
Bukkit.getServer().getPluginManager().registerEvents(new Events(), Main.plugin);
if (!MCVersion.minecraft1_8 && !MCVersion.minecraft1_9) {
Bukkit.getServer().getPluginManager().registerEvents(new EventsFrom110(), plugin);
}
UpdateAPI.onUpdateCheck(plugin, prefix, spigot, spigotID, discord);
Metrics.Bstats();
Main.addonLoad();
T2CodeTemplate.onLoadFooter(prefix, long_);
}
private static void loadStorage(String prefix) {
try {
SelectDatabase.setStorage(StorageType.valueOf(SelectConfig.storage));
} catch (Exception ignored) {
send.error(Main.plugin, "The storage medium " + SelectConfig.storage + " is not supported!");
send.error(Main.plugin, "Storage medium " + StorageType.SQLITE + " is used.");
SelectDatabase.setStorage(StorageType.SQLITE);
}
switch (SelectDatabase.getStorage()) {
case MYSQL:
send.console(prefix + " §2Storage medium §6" + SelectDatabase.getStorage() + " §2is used.");
MySQL.main();
try {
MySQL.query("CREATE TABLE IF NOT EXISTS `gui-item` (" +
" `UUID` VARCHAR(191) NOT NULL COLLATE 'utf8mb4_general_ci'," +
" `Name` TINYTEXT NOT NULL COLLATE 'utf8mb4_general_ci'," +
" `Status` INT(1) NOT NULL DEFAULT '1'," +
" `Slot` INT(1) NULL DEFAULT NULL," +
" UNIQUE INDEX `UUID` (`UUID`)" +
")" +
"COLLATE='utf8mb4_general_ci'" +
"ENGINE=InnoDB" +
";");
MySQL.query("ALTER TABLE `gui-item` ADD COLUMN IF NOT EXISTS `Slot` INT(1) NULL DEFAULT NULL AFTER `Status`;");
} catch (Exception e) {
e.printStackTrace();
}
break;
case YML:
send.console(prefix + " §2Storage medium §6" + SelectDatabase.getStorage() + " §2is used.");
break;
default:
case SQLITE:
send.console(prefix + " §2Storage medium §6" + SelectDatabase.getStorage() + " §2is used.");
try {
SQLITE.main();
SQLITE.query("CREATE TABLE IF NOT EXISTS `gui-item` (" +
"UUID TEXT NOT NULL," +
"Name TEXT NOT NULL," +
"Status INTEGER NOT NULL DEFAULT 1," +
"Slot INTEGER," +
"PRIMARY KEY(UUID)" +
");");
} catch (SQLException e) {
e.printStackTrace();
}
break;
}
}
}

View File

@ -1,77 +0,0 @@
package de.jatitv.commandguiv2.Spigot.system;
import de.jatitv.commandguiv2.Spigot.Main;
import de.jatitv.commandguiv2.Spigot.objects.guis.Gui;
import de.jatitv.commandguiv2.Spigot.objects.slots.Slot;
import net.t2code.lib.Spigot.Lib.register.Register;
import org.bukkit.permissions.PermissionDefault;
import org.bukkit.plugin.Plugin;
public class Permissions {
private static final Plugin plugin = Main.plugin;
public static final String key = "commandgui.";
public static final String command = key + "command";
public static final String info = key + "command.info";
public static final String bypass = key + "bypass";
public static final String useitemToggle = key + "useitem.toggle";
public static final String useitem = key + "useitem";
public static final String getGuiItemAtLogin = key + "get.guiitem.at.login";
public static final String updatemsg = key + "updatemsgupdatemsg";
public static final String player = key + "player";
public static final String admin = key + "admin";
public static final PermissionDefault op = PermissionDefault.OP;
public static final PermissionDefault notOp = PermissionDefault.NOT_OP;
public static void onPermRegister() {
Register.permission(command, op, plugin);
Register.permissionDescription(command, "Required permission to open GUIs via command", plugin);
Register.permission(getGuiItemAtLogin, op, plugin);
Register.permissionDescription(getGuiItemAtLogin, "Only players with this permission will receive the GUI item", plugin);
Register.permission(useitem, op, plugin);
Register.permissionDescription(useitem, "Required permission to use the GUI Item", plugin);
Register.permission(useitemToggle, op, plugin);
Register.permissionDescription(useitemToggle, "Required permission to enable/disable the GUI Item for itself (if the function UseItem/AllowToggle is set to true)", plugin);
Register.permission(updatemsg, op, plugin);
Register.permissionDescription(updatemsg, "Players with this permission get the update message when joining if an update is available", plugin);
Register.permission(bypass, op, plugin);
Register.permissionDescription(bypass, "Bypass to open disabled GUIs", plugin);
Register.permission(info, notOp, plugin);
Register.permissionDescription(info, "Permission to view CommandGUI info", plugin);
Register.permission(player, op, command, true, plugin);
Register.permission(player, op, getGuiItemAtLogin, true, plugin);
Register.permission(player, op, useitem, true, plugin);
Register.permission(player, op, useitemToggle, true, plugin);
Register.permissionDescription(player, "All permissions from CommandGUI for Player", plugin);
Register.permission(admin, op, command, true, plugin);
Register.permission(admin, op, getGuiItemAtLogin, true, plugin);
Register.permission(admin, op, useitem, true, plugin);
Register.permission(admin, op, useitemToggle, true, plugin);
Register.permission(admin, op, updatemsg, true, plugin);
Register.permission(admin, op, bypass, true, plugin);
Register.permission(admin, op, info, true, plugin);
Register.permissionDescription(admin, "All permissions from CommandGUI", plugin);
for (Gui gui : Main.guiHashMap.values()) {
Register.permission("commandgui.command." + gui.key, op, plugin);
Register.permission(admin, op, "commandgui.command." + gui.key, true, plugin);
for (Slot slot : gui.slots) {
Register.permission(slot.permissionToUse, op, plugin);
Register.permission(admin, op, slot.permissionToUse, true, plugin);
Register.permission(slot.permissionToSee, op, plugin);
Register.permission(admin, op, slot.permissionToSee, true, plugin);
}
}
}
}

View File

@ -1,56 +0,0 @@
// This claas was created by JaTiTV
package de.jatitv.commandguiv2.Spigot.system;
import de.jatitv.commandguiv2.Spigot.Listener.UseItem_Listener.Events;
import de.jatitv.commandguiv2.Spigot.Main;
import de.jatitv.commandguiv2.Spigot.config.config.SelectConfig;
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import org.bukkit.entity.Player;
public class Placeholder extends PlaceholderExpansion {
@Override
public String getIdentifier() {
return "commandgui";
}
@Override
public String getAuthor() {
return Main.plugin.getDescription().getAuthors().toString();
}
@Override
public String getVersion() {
return Main.plugin.getDescription().getVersion();
}
@Override
public boolean canRegister() {
return true;
}
@Override
public boolean persist() {
return true;
}
@Override
public String onPlaceholderRequest(Player p, String params) {
if (params.contains("useitem_boolean")) {
return Events.useItemHashMap.get(p).toString();
}
if (params.contains("useitem")) {
if (Events.useItemHashMap.get(p)) {
return SelectConfig.placeholderTrue;
} else return SelectConfig.placeholderFalse;
}
if (params.contains("slot")){
return Events.useItemSlotHashMap.get(p).toString();
}
return null;
}
}

View File

@ -1,149 +0,0 @@
package de.jatitv.commandguiv2.Spigot.system;
import com.mojang.authlib.GameProfile;
import com.mojang.authlib.properties.Property;
import de.jatitv.commandguiv2.Spigot.Listener.UseItem_Listener.Events;
import de.jatitv.commandguiv2.Spigot.Main;
import de.jatitv.commandguiv2.Spigot.config.config.SelectConfig;
import de.jatitv.commandguiv2.Spigot.config.languages.SelectMessages;
import de.jatitv.commandguiv2.Util;
import net.t2code.lib.Spigot.Lib.items.ItemVersion;
import net.t2code.lib.Spigot.Lib.messages.send;
import net.t2code.lib.Spigot.Lib.minecraftVersion.MCVersion;
import net.t2code.lib.Spigot.Lib.replace.Replace;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.inventory.meta.SkullMeta;
import java.lang.reflect.Field;
import java.util.UUID;
public class UseItem {
public static void giveUseItem(Player player) {
Integer slot;
if (protection(player, false)) return;
if (SelectConfig.UseItem_InventorySlotEnforce) {
slot = SelectConfig.UseItem_InventorySlot;
} else {
if (Events.useItemSlotHashMap.get(player) == null) {
slot = SelectConfig.UseItem_InventorySlot;
} else {
slot = Events.useItemSlotHashMap.get(player);
}
}
if (SelectConfig.UseItem_InventorySlot_FreeSlot) {
player.getInventory().addItem(itemStack(player));
} else {
send.debug(Main.plugin, "setUseItem: " + player.getName() + " Slot: " + Integer.parseInt(String.valueOf(slot - 1)));
player.getInventory().setItem(slot - 1, itemStack(player));
}
}
public static void addUseItem(Player player) {
if (protection(player, false)) return;
if (SelectConfig.UseItem_InventorySlot_FreeSlot) {
player.getInventory().addItem(itemStack(player));
} else player.getInventory().addItem(itemStack(player));
}
private static ItemStack itemStack(Player player) {
ItemStack item = null;
if (SelectConfig.UseItem_PlayerHead_Enable) {
if (MCVersion.minecraft1_8 || MCVersion.minecraft1_9 || MCVersion.minecraft1_10 || MCVersion.minecraft1_11 || MCVersion.minecraft1_12) {
send.player(player, Main.prefix + "§c Playerheads for UseItem are only available from version §61.13§c!");
send.error(Main.plugin, "Playerheads for UseItem are only available from version 1.13!");
} else {
item = ItemVersion.getHeadIS();
SkullMeta playerheadmeta = (SkullMeta) item.getItemMeta();
playerheadmeta.setDisplayName(SelectConfig.UseItem_Name);
if (SelectConfig.UseItem_Base64_Enable) {
if (Main.PaPi) {
playerheadmeta.setLore(Replace.replace(Util.getPrefix(), player, SelectConfig.UseItem_Lore));
} else playerheadmeta.setLore(Replace.replace(Util.getPrefix(), SelectConfig.UseItem_Lore));
GameProfile profile = new GameProfile(UUID.randomUUID(), "");
profile.getProperties().put("textures", new Property("textures", SelectConfig.UseItem_Base64value));
Field profileField = null;
try {
profileField = playerheadmeta.getClass().getDeclaredField("profile");
profileField.setAccessible(true);
profileField.set(playerheadmeta, profile);
} catch (IllegalArgumentException | IllegalAccessException | NoSuchFieldException | SecurityException e) {
e.printStackTrace();
}
} else {
String p;
if (SelectConfig.UseItem_PlayerWhoHasOpenedTheGUI) {
p = player.getName();
} else p = SelectConfig.UseItem_PlayerName;
playerheadmeta.setOwner(p);
if (Main.PaPi) {
playerheadmeta.setLore(Replace.replace(Util.getPrefix(), player, SelectConfig.UseItem_Lore));
} else playerheadmeta.setLore(Replace.replace(Util.getPrefix(), SelectConfig.UseItem_Lore));
}
item.setItemMeta(playerheadmeta);
}
} else {
item = new ItemStack(Material.valueOf(SelectConfig.UseItem_Material));
ItemMeta itemMeta = item.getItemMeta();
itemMeta.setDisplayName(SelectConfig.UseItem_Name);
if (Main.PaPi) {
itemMeta.setLore(Replace.replace(Util.getPrefix(), player, SelectConfig.UseItem_Lore));
} else itemMeta.setLore(Replace.replace(Util.getPrefix(), SelectConfig.UseItem_Lore));
item.setItemMeta(itemMeta);
item.setAmount(1);
}
return item;
}
public static boolean protection(Player player, Boolean interact) {
if (SelectConfig.UseItemGameModeProtection) {
if (SelectConfig.UseItemGameModeMode.equalsIgnoreCase("blacklist") && SelectConfig.UseItemGameModeList.contains(player.getGameMode().toString())) {
if (interact) {
send.player(player, SelectMessages.UseItemDisabledInGameMode);
} else if (!SelectConfig.UseItemWorldRemoveItemWhenItIsDisabled) removeItem(player);
return true;
}
if (SelectConfig.UseItemGameModeMode.equalsIgnoreCase("whitelist") && !SelectConfig.UseItemGameModeList.contains(player.getGameMode().toString())) {
if (interact) {
send.player(player, SelectMessages.UseItemDisabledInGameMode);
} else if (!SelectConfig.UseItemWorldRemoveItemWhenItIsDisabled) removeItem(player);
return true;
}
}
if (SelectConfig.UseItemWorldProtection) {
if (SelectConfig.UseItemWorldMode.equalsIgnoreCase("blacklist") && SelectConfig.UseItemWorldList.contains(player.getWorld().getName())) {
if (interact) {
send.player(player, SelectMessages.UseItemDisabledInWorld);
} else if (!SelectConfig.UseItemWorldRemoveItemWhenItIsDisabled) removeItem(player);
return true;
}
if (SelectConfig.UseItemWorldMode.equalsIgnoreCase("whitelist") && !SelectConfig.UseItemWorldList.contains(player.getWorld().getName())) {
if (interact) {
send.player(player, SelectMessages.UseItemDisabledInWorld);
} else if (!SelectConfig.UseItemWorldRemoveItemWhenItIsDisabled) removeItem(player);
return true;
}
}
return false;
}
public static void removeItem(Player player) {
send.debug(Main.plugin, "World disabled: " + player.getName() + " " + player.getWorld().toString());
for (int iam = 0; iam < player.getInventory().getSize() - 5; iam++) {
ItemStack itm = player.getInventory().getItem(iam);
if (itm != null) {
if (itm.getType() == Material.valueOf(SelectConfig.UseItem_Material) || itm.getType() == ItemVersion.getHead()) {
if (itm.getItemMeta().getDisplayName().equals(SelectConfig.UseItem_Name)) {
player.getInventory().remove(itm);
player.updateInventory();
break;
}
}
}
}
}
}

View File

@ -1,7 +0,0 @@
package de.jatitv.commandguiv2.Spigot.system.database;
public enum StorageType {
MYSQL,
SQLITE,
YML
}

View File

@ -1,39 +0,0 @@
package de.jatitv.commandguiv2;
public class Util {
private static Integer configVersion = 5;
private static double requiredT2CodeLibVersion = 10.3;
private static String Prefix = "§8[§4C§9GUI§8]";
private static Integer SpigotID = 90671;
private static Integer BstatsID = 10840;
private static String Spigot = "https://www.spigotmc.org/resources/" + SpigotID;
private static String Discord = "http://dc.t2code.net";
public static double getRequiredT2CodeLibVersion() {
return requiredT2CodeLibVersion;
}
public static String getPrefix() {
return Prefix;
}
public static Integer getSpigotID() {
return SpigotID;
}
public static Integer getBstatsID() {
return BstatsID;
}
public static String getSpigot() {
return Spigot;
}
public static String getDiscord() {
return Discord;
}
public static Integer getConfigVersion() {
return configVersion;
}
}

View File

@ -1,97 +0,0 @@
package de.jatitv.commandguiv2.api;
import de.jatitv.commandguiv2.Spigot.Listener.ItemChange;
import de.jatitv.commandguiv2.Spigot.Listener.UseItem_Listener.Events;
import de.jatitv.commandguiv2.Spigot.Main;
import de.jatitv.commandguiv2.Spigot.cmdManagement.Commands;
import de.jatitv.commandguiv2.Spigot.cmdManagement.Help;
import de.jatitv.commandguiv2.Spigot.config.gui.CreateGUI;
import de.jatitv.commandguiv2.Spigot.config.config.SelectConfig;
import de.jatitv.commandguiv2.Spigot.config.languages.SelectMessages;
import de.jatitv.commandguiv2.Spigot.system.Permissions;
import de.jatitv.commandguiv2.Spigot.system.database.SelectDatabase;
import net.t2code.lib.Spigot.Lib.messages.send;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
public class CGuiAPI {
public static Boolean JoinDisable = false;
public static void onItemChange(Player player) {
ItemChange.itemChange(player, false);
}
public static boolean hasUseItemInMainHand(Player player) {
ItemStack item = player.getInventory().getItemInMainHand();
return item.hasItemMeta() && item.getItemMeta().hasDisplayName()
&& item.getItemMeta().getDisplayName().equals(SelectConfig.UseItem_Name);
}
public static boolean hasUseItemInOffHand(Player player) {
ItemStack item = player.getInventory().getItemInOffHand();
return item.hasItemMeta() && item.getItemMeta().hasDisplayName()
&& item.getItemMeta().getDisplayName().equals(SelectConfig.UseItem_Name);
}
public static void onItemChange(Player player, Boolean setCursor) {
ItemChange.itemChange(player, setCursor);
}
public static void disableItemGiveOnJoin(Boolean disableItemGiveOnJoin) {
send.debug(Main.plugin, "CGuiAPI: " + disableItemGiveOnJoin);
JoinDisable = disableItemGiveOnJoin;
}
public static Boolean selectPlayerItemEnable(Player player) {
return Events.useItemHashMap.get(player);
}
public static Integer selectPlayerItemSlot(Player player) {
return Events.useItemSlotHashMap.get(player);
}
public static void setPlayerItemEnable(Player player, Boolean value) {
if (value) {
SelectDatabase.setItemStatusTrue(player);
} else SelectDatabase.setItemStatusFalse(player);
}
public static void setPlayerItemSlot(Player player, Integer value) {
SelectDatabase.setSlot(player, value);
}
public static void openDefaultGUI(Player player) {
Commands.gui(player);
}
public static void openGUI(Player player, String GUI_CommandName) {
Commands.gui(player, GUI_CommandName);
}
public static void sendHelp(CommandSender sender) {
Help.sendHelp(sender, Main.prefix);
}
public static void sendPluginInfo(CommandSender sender) {
if (sender.hasPermission(Permissions.info)) {
Commands.info(sender);
} else sender.sendMessage(SelectMessages.NoPermissionForCommand
.replace("[cmd]", "/commandgui admin").replace("[perm]", Permissions.info));
}
public static void createDefaultGUI(CommandSender sender) {
if (sender.hasPermission(Permissions.admin)) {
CreateGUI.configCreate();
sender.sendMessage(SelectMessages.DefaultGUIcreate.replace("[directory]", Main.getPath() + "\\GUIs\\default.yml"));
} else sender.sendMessage(SelectMessages.NoPermissionForCommand
.replace("[cmd]", "/commandgui admin").replace("[perm]", Permissions.admin));
}
public static void reload(CommandSender sender) {
if (sender.hasPermission(Permissions.admin)) {
Commands.reload(sender);
} else sender.sendMessage(SelectMessages.NoPermissionForCommand
.replace("[cmd]", "/commandgui admin").replace("[perm]", Permissions.admin));
}
}

View File

@ -0,0 +1,148 @@
package net.t2code.commandguiv2.Spigot;
import lombok.Getter;
import net.t2code.commandguiv2.Spigot.objects.Function;
import net.t2code.commandguiv2.Spigot.system.Load;
import net.t2code.commandguiv2.Spigot.objects.Gui;
import net.t2code.commandguiv2.Spigot.database.MySQL;
import net.t2code.commandguiv2.Spigot.system.Plugman;
import net.t2code.commandguiv2.Util;
import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Send;
import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Template;
import net.t2code.t2codelib.SPIGOT.api.minecraftVersion.T2C_McVersion;
import net.t2code.t2codelib.SPIGOT.api.plugins.T2C_PluginCheck;
import org.bukkit.Bukkit;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin;
import java.io.File;
import java.util.*;
import java.util.logging.Level;
public final class Main extends JavaPlugin {
public static ArrayList<String> proxyJoinPlayers = new ArrayList<>();
public static File getPath() {
return plugin.getDataFolder();
}
private static Boolean enable = false;
public static Boolean legacy = false;
public static String version;
public static List<String> autor;
@Getter
private static Main plugin;
public static Boolean PaPi = false;
public static Boolean PlotSquaredGUI = false;
public static Boolean LuckyBox = false;
public static Boolean PlugManGUI = false;
public static HashMap<String, Gui> guiHashMap = new HashMap<>();
public static ArrayList<String> allAliases = new ArrayList<>();
public static HashMap<String, Function> functionHashMap = new HashMap<>();
@Override
public void onEnable() {
// Plugin startup logic
plugin = this;
autor = this.getDescription().getAuthors();
version = this.getDescription().getVersion();
if (pluginNotFound("T2CodeLib", 96388, Util.getRequiredT2CodeLibVersion())) return;
if (T2C_McVersion.isMc1_8() || T2C_McVersion.isMc1_9() || T2C_McVersion.isMc1_10() || T2C_McVersion.isMc1_11() || T2C_McVersion.isMc1_12() || T2C_McVersion.isMc1_13() ||
T2C_McVersion.isMc1_14() || T2C_McVersion.isMc1_15() || T2C_McVersion.isNms1_16_R1()) {
legacy = true;
}
if (T2C_PluginCheck.pluginCheck("CommandGUI")) {
T2C_Send.error( plugin, "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
T2C_Send.error( plugin,"");
T2C_Send.error( plugin,"An older version of the plugin T2C-CommandGUI was found!");
T2C_Send.error( plugin,"This plugin is now called T2C-CommandGUI and no longer CommandGUI!");
T2C_Send.error( plugin,"Please remove the older version (CommandGUI)!");
T2C_Send.error( plugin,this.getName() + " version: " + this.getDescription().getVersion() + " could not be loaded!");
T2C_Send.error( plugin,"");
T2C_Send.error( plugin,"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
Main.plugin.getPluginLoader().disablePlugin(Main.plugin);
return;
}
getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
if (T2C_PluginCheck.papi()) {
PaPi = true;
}
Load.onLoad(Util.getPrefix(), autor, version, Util.getSpigot(), Util.getSpigotID(), Util.getDiscord(), Util.getBstatsID());
enable = true;
}
public static void addonLoad() {
if (T2C_PluginCheck.plotSquaredGUI()) {
PlotSquaredGUI = true;
addonEnable(Objects.requireNonNull(Bukkit.getPluginManager().getPlugin("PlotSquaredGUI")));
}
if (T2C_PluginCheck.luckyBox()) {
LuckyBox = true;
addonEnable(Objects.requireNonNull(Bukkit.getPluginManager().getPlugin("T2C-LuckyBox")));
}
if (T2C_PluginCheck.plugManGUI()) {
PlugManGUI = true;
addonEnable(Objects.requireNonNull(Bukkit.getPluginManager().getPlugin("PlugManGUI")));
}
}
public static void addonEnable(Plugin plugin) {
T2C_Send.console(Util.getPrefix() + " §aAddon for: §e" + plugin.getName() + "§7 - Version: " + plugin.getDescription().getVersion() + " §aloaded successfully!");
}
public static Boolean pluginNotFound(String pl, Integer spigotID, String ver) {
if (Bukkit.getPluginManager().getPlugin(pl) == null) {
plugin.getLogger().log(Level.SEVERE, "Plugin can not be loaded!");
Bukkit.getConsoleSender().sendMessage(Util.getPrefix() + " §e" + pl + " §4could not be found. Please download it here: "
+ "§6https://spigotmc.org/resources/" + pl + "." + spigotID + " §4to be able to use this plugin.");
Main.plugin.getPluginLoader().disablePlugin(Main.plugin);
return true;
} else {
String plVer = Objects.requireNonNull(Bukkit.getPluginManager().getPlugin(pl)).getDescription().getVersion();
if (ver.contains("_")) {
if (!plVer.equals(ver)) {
plugin.getLogger().log(Level.SEVERE, "Plugin can not be loaded!");
Bukkit.getConsoleSender().sendMessage(Util.getPrefix() + " §e" + pl + " §4is out of date! This plugin requires the version §2"
+ ver + " §4of §6" + pl + " §4Please use this version! Please download it here or contact us in Discord: §6https://spigotmc.org/resources/"
+ pl + "." + spigotID + " Or contact us in Discord: http://dc.t2code.net");
Main.plugin.getPluginLoader().disablePlugin(Main.plugin);
return true;
}
return false;
}
String[] split = plVer.split("_");
if (Double.parseDouble(split[0]) < Double.parseDouble(ver)) {
plugin.getLogger().log(Level.SEVERE, "Plugin can not be loaded!");
Bukkit.getConsoleSender().sendMessage(Util.getPrefix() + " §e" + pl + " §4is out of date! This plugin requires at least version §2"
+ ver + " §4of §6" + pl + " §4Please update it here: §6https://spigotmc.org/resources/" + pl + "." + spigotID
+ " §4to use this version of " + plugin.getDescription().getName() + ".");
Main.plugin.getPluginLoader().disablePlugin(Main.plugin);
return true;
}
return false;
}
}
public static void sendTryCatch(Class c, StackTraceElement line) {
T2C_Send.error(plugin,c.getName() + " Line: " + line.getLineNumber());
}
@Override
public void onDisable() {
// Plugin shutdown logic
if (enable) T2C_Template.onDisable(Util.getPrefix(), plugin);
Plugman.unLoad();
MySQL.close();
}
}

View File

@ -0,0 +1,117 @@
package net.t2code.commandguiv2.Spigot.cmdManagement;
import net.t2code.commandguiv2.Spigot.Main;
import net.t2code.commandguiv2.Spigot.config.config.Config;
import net.t2code.commandguiv2.Spigot.config.gui.GuiFile;
import net.t2code.commandguiv2.Spigot.config.languages.Languages;
import net.t2code.commandguiv2.Util;
import net.t2code.t2codelib.SPIGOT.api.commands.T2C_Tab;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabCompleter;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class CmdExecuter_GUI implements CommandExecutor, TabCompleter {
private static String prefix = Util.getPrefix();
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (args.length == 0) {
if (!(sender instanceof Player)) {
sender.sendMessage(Languages.VALUES.OnlyForPlayer.getValue().toString());
return false;
}
Player player = (Player) sender;
Commands.gui(player);
} else {
if (args[0].equals(Config.VALUES.adminSubCommand.getValue().toString())) {
if (args.length == 1) {
Help.sendHelp(sender, prefix);
return false;
}
switch (args[1].toLowerCase()) {
case "info":
case "plugin":
case "pl":
case "version":
case "ver":
if (sender.hasPermission("commandgui.command.info")) {
Commands.info(sender);
} else sender.sendMessage(Languages.VALUES.NoPermissionForCommand.getValue().toString()
.replace("[cmd]", "/commandgui admin").replace("[perm]", "commandgui.command.info"));
break;
case "reload":
case "rl":
if (sender.hasPermission("commandgui.admin")) {
Commands.reload(sender);
} else sender.sendMessage(Languages.VALUES.NoPermissionForCommand.getValue().toString()
.replace("[cmd]", "/commandgui admin").replace("[perm]", "commandgui.admin"));
break;
case "createdefaultgui":
if (sender.hasPermission("commandgui.admin")) {
GuiFile.createDefault(true);
sender.sendMessage(Languages.VALUES.DefaultGUIcreate.getValue().toString().replace("[directory]", Main.getPath() + "/GUIs/default.yml"));
} else sender.sendMessage(Languages.VALUES.NoPermissionForCommand.getValue().toString()
.replace("[cmd]", "/commandgui admin").replace("[perm]", "commandgui.admin"));
break;
case "give":
if (args.length == 3) {
if (sender.hasPermission("commandgui.giveitem.other")) {
Player target = Bukkit.getPlayer(args[2]);
Commands.give(sender, target);
} else sender.sendMessage(Languages.VALUES.NoPermissionForCommand.getValue().toString().replace("[cmd]", "/commandgui give")
.replace("[perm]", "commandgui.command.give"));
} else Help.sendHelp(sender, prefix);
break;
case "help":
default:
Help.sendHelp(sender, prefix);
break;
}
} else {
if (!args[0].equalsIgnoreCase("updateinfo")) {
if (sender instanceof Player) {
Player player = (Player) sender;
Commands.gui(player, args[0]);
return false;
}
Help.sendHelp(sender, prefix);
}
}
}
return false;
}
//TabCompleter
public static HashMap<String, String> arg1 = new HashMap<String, String>();
private static HashMap<String, String> arg2 = new HashMap<String, String>() {{
put("reload", "commandgui.admin");
put("rl", "commandgui.admin");
put("createdefaultgui", "commandgui.admin");
put("give", "commandgui.giveitem.other");
put("info", "commandgui.command.info");
}};
@Override
public List<String> onTabComplete(CommandSender sender, Command cmd, String s, String[] args) {
List<String> list = new ArrayList<>();
T2C_Tab.tab(list, sender, 0, args, arg1);
T2C_Tab.tab(list, sender, 0, Config.VALUES.adminSubCommand.getValue().toString(), 1, args, arg2);
T2C_Tab.tab(list, sender, 1, "give", 2, args, "commandgui.giveitem.other", true);
return list;
}
}

View File

@ -1,9 +1,9 @@
package de.jatitv.commandguiv2.Spigot.cmdManagement;
package net.t2code.commandguiv2.Spigot.cmdManagement;
import de.jatitv.commandguiv2.Spigot.config.config.SelectConfig;
import de.jatitv.commandguiv2.Spigot.config.languages.SelectMessages;
import de.jatitv.commandguiv2.Util;
import net.t2code.lib.Spigot.Lib.messages.send;
import net.t2code.commandguiv2.Spigot.config.config.Config;
import net.t2code.commandguiv2.Spigot.config.languages.Languages;
import net.t2code.commandguiv2.Util;
import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Send;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
@ -19,16 +19,16 @@ public class CmdExecuter_GUIItem implements CommandExecutor, TabCompleter {
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
Player player = (Player) sender;
if (sender.hasPermission("commandgui.useitem.toggle")) {
if (args.length == 0) {
if (SelectConfig.UseItem_AllowToggle) {
Help.sendGUIItemHelp(sender, prefix);
} else send.sender(sender, "§4UseItem toggle is disabled!");// todo
if ((boolean)Config.VALUES.useItemAllowToggle.getValue()) {
Help.sendGUIItemHelp(sender);
} else T2C_Send.sender(sender, "§4UseItem toggle is disabled!");//todo in lang file
} else {
if (args.length == 1 || args.length == 2) {
if (sender instanceof Player) {
if (SelectConfig.UseItem_AllowToggle) {
Player player = (Player) sender;
if ((boolean) Config.VALUES.useItemAllowToggle.getValue()) {
switch (args[0].toLowerCase()) {
case "on":
Commands.itemOn(player);
@ -41,21 +41,21 @@ public class CmdExecuter_GUIItem implements CommandExecutor, TabCompleter {
try {
Commands.onSetSlot(player, Integer.valueOf(args[1]));
} catch (Exception e5) {
send.player(player, SelectMessages.ItemSlot_wrongValue);
T2C_Send.player(player, Languages.VALUES.ItemSlot_wrongValue.getValue().toString());
}
} else send.player(player, "§4Use: §7/gui-item slot [slot]");
} else T2C_Send.player(player, "§4Use: §7/gui-item slot [slot]"); //todo in lang file
break;
default:
Help.sendHelp(player, prefix);
}
} else send.sender(sender, "§4UseItem toggle is disabled!");// todo
} else sender.sendMessage(SelectMessages.OnlyForPlayer);
} else T2C_Send.sender(sender, "§4UseItem toggle is disabled!");//todo in lang file
} else sender.sendMessage(Languages.VALUES.OnlyForPlayer.getValue().toString());
}
}
} else sender.sendMessage(SelectMessages.NoPermissionForCommand.replace("[cmd]", "/commandgui-item")
} else sender.sendMessage(Languages.VALUES.NoPermissionForCommand.getValue().toString().replace("[cmd]", "/commandgui-item")
.replace("[perm]", "commandgui.useitem.toggle"));
return false;
}
@ -65,7 +65,7 @@ public class CmdExecuter_GUIItem implements CommandExecutor, TabCompleter {
private static HashMap<String, String> arg1 = new HashMap<String, String>() {{
put("on", "commandgui.useitem.toggle");
put("off", "commandgui.useitem.toggle");
if (SelectConfig.UseItem_AllowSetSlot) {
if ((boolean)Config.VALUES.useItemAllowSetSlot.getValue()) {
put("slot", "commandgui.useitem.toggle");
}
}};
@ -74,7 +74,7 @@ public class CmdExecuter_GUIItem implements CommandExecutor, TabCompleter {
public List<String> onTabComplete(CommandSender sender, Command cmd, String s, String[] args) {
List<String> list = new ArrayList<>();
if (sender instanceof Player) {
if (SelectConfig.UseItem_AllowToggle) {
if ((boolean)Config.VALUES.useItemAllowToggle.getValue()) {
Player p = (Player) sender;
if (args.length == 1) {
for (String command : arg1.keySet()) {

View File

@ -1,6 +1,6 @@
package de.jatitv.commandguiv2.Spigot.cmdManagement;
package net.t2code.commandguiv2.Spigot.cmdManagement;
import de.jatitv.commandguiv2.Util;
import net.t2code.commandguiv2.Util;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;

View File

@ -0,0 +1,201 @@
package net.t2code.commandguiv2.Spigot.cmdManagement;
import net.t2code.commandguiv2.Spigot.config.config.Config;
import net.t2code.commandguiv2.Spigot.config.functions.FunctionsFile;
import net.t2code.commandguiv2.Spigot.config.gui.GuiFile;
import net.t2code.commandguiv2.Spigot.config.languages.Languages;
import net.t2code.commandguiv2.Spigot.useItem.Events;
import net.t2code.commandguiv2.Spigot.Main;
import net.t2code.commandguiv2.Spigot.objects.Gui;
import net.t2code.commandguiv2.Spigot.cmdManagement.register.AliasRegister;
import net.t2code.commandguiv2.Spigot.gui.OpenGUI;
import net.t2code.commandguiv2.Spigot.useItem.UseItem;
import net.t2code.commandguiv2.Spigot.system.Permissions;
import net.t2code.commandguiv2.Spigot.database.SelectDatabase;
import net.t2code.commandguiv2.Spigot.sound.Sound;
import net.t2code.commandguiv2.Spigot.enums.SoundEnum;
import net.t2code.commandguiv2.Util;
import net.t2code.t2codelib.SPIGOT.api.debug.T2C_Debug;
import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Send;
import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Template;
import net.t2code.t2codelib.SPIGOT.system.T2C_Main;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.Objects;
public class Commands {
public static void info(CommandSender sender) {
T2C_Template.sendInfo(sender, Main.getPlugin(), Util.getSpigotID(), Util.getDiscord(), Util.getInfoText());
}
public static void reload(CommandSender sender) {
Bukkit.getScheduler().runTaskAsynchronously(Main.getPlugin(), new Runnable() {
@Override
public void run() {
if (sender instanceof Player) sender.sendMessage(Languages.VALUES.ReloadStart.getValue().toString());
T2C_Send.console(Util.getPrefix() + "§8-------------------------------");
T2C_Send.console(Util.getPrefix() + " §6Plugin reload...");
T2C_Send.console(Util.getPrefix() + "§8-------------------------------");
Config.set(true);
Main.getPlugin().reloadConfig();
CmdExecuter_GUI.arg1.clear();
CmdExecuter_GUI.arg1.put(Config.VALUES.adminSubCommand.getValue().toString(), "commandgui.admin;commandgui.giveitem.other;commandgui.command.info");
if (!Objects.equals(SelectDatabase.getStorage().toString(), Config.VALUES.storage.getValue().toString())) {
if (sender instanceof Player) T2C_Send.sender(sender, "You have changed the storage medium! To apply this change, you must restart the server!");
T2C_Send.warning(Main.getPlugin(), "You have changed the storage medium! To apply this change, you must restart the server!");
}
FunctionsFile.select(true);
GuiFile.set(true);
Languages.set(true);
Config.checkSounds();
try {
AliasRegister.onRegister(true);
} catch (Exception e) {
e.printStackTrace();
}
try {
Permissions.onPermRegister();
} catch (Exception e) {
e.printStackTrace();
}
if (T2C_Main.isProxy()) {
Bukkit.getMessenger().registerOutgoingPluginChannel(Main.getPlugin(), "commandgui:bungee");
}
if (sender instanceof Player) sender.sendMessage(Languages.VALUES.ReloadEnd.getValue().toString());
T2C_Send.console(Util.getPrefix() + "§8-------------------------------");
T2C_Send.console(Util.getPrefix() + " §2Plugin successfully reloaded.");
T2C_Send.console(Util.getPrefix() + "§8-------------------------------");
}
});
}
public static void give(CommandSender sender, Player target) {
if (Bukkit.getPlayer(target.getName()) != null) {
UseItem.giveUseItem(target);
T2C_Send.sender(sender, Languages.VALUES.Give_Sender.getValue().toString().replace("[player]", target.getName()).replace("[item]", Config.VALUES.useItemName.getValue().toString()));
T2C_Send.player(target, Languages.VALUES.Give_Receiver.getValue().toString().replace("[sender]", sender.getName()).replace("[item]", Config.VALUES.useItemName.getValue().toString()));
Sound.play(target, SoundEnum.Give);
} else {
sender.sendMessage(Languages.VALUES.PlayerNotFond.getValue().toString().replace("[player]", target.getName()));
if (sender instanceof Player) Sound.play((Player) sender, SoundEnum.PlayerNotFound);
}
}
public static void itemOn(Player player) {
UseItem.removeItem(player);
Integer slot = null;
if ((boolean) Config.VALUES.useItemInventorySlotEnforce.getValue()) {
slot = (int) Config.VALUES.useItemInventorySlot.getValue();
} else {
slot = Events.useItemSlotHashMap.get(player.getName());
}
T2C_Debug.debug(Main.getPlugin(), String.valueOf(slot));
if (player.getInventory().getItem(slot - 1) == null) {
SelectDatabase.setItemStatusTrue(player);
UseItem.giveUseItem(player);
} else {
boolean empty = false;
for (int i = 0; i < 9; i++) {
if (player.getInventory().getItem(i) == null) {
empty = true;
break;
}
}
if (empty) {
SelectDatabase.setItemStatusTrue(player);
UseItem.addUseItem(player);
T2C_Send.player(player, Languages.VALUES.ItemON);
} else {
T2C_Send.player(player, Languages.VALUES.NoInventorySpace);
Sound.play(player, SoundEnum.NoInventorySpace);
}
}
}
public static void itemOff(Player player) {
SelectDatabase.setItemStatusFalse(player);
UseItem.removeItem(player);
T2C_Send.player(player, Languages.VALUES.ItemOFF);
}
public static void onSetSlot(Player player, Integer setSlot) {
if (!(boolean) Config.VALUES.useItemAllowSetSlot.getValue()) {
T2C_Send.player(player, Util.getPrefix() + " §4Function disabled");
return;
}
if (setSlot < 1) {
T2C_Send.player(player, Languages.VALUES.ItemSlot_wrongValue);
return;
}
if (setSlot > 9) {
T2C_Send.player(player, Languages.VALUES.ItemSlot_wrongValue);
return;
}
if (Events.useItemHashMap.get(player.getName())) {
if (Objects.equals(Events.useItemSlotHashMap.get(player.getName()), setSlot)) {
T2C_Send.player(player, Languages.VALUES.ItemSlotAlreadySet.getValue().toString().replace("[slot]", setSlot.toString()));
return;
}
}
if ((boolean) Config.VALUES.useItemInventorySlotEnforce.getValue() || player.getInventory().getItem(setSlot - 1) != null) {
T2C_Send.player(player, Languages.VALUES.ItemSlotNotEmpty.getValue().toString().replace("[slot]", setSlot.toString()));
return;
}
UseItem.removeItem(player);
SelectDatabase.setSlot(player, setSlot);
Events.useItemSlotHashMap.replace(player.getName(), setSlot);
if (Events.useItemHashMap.get(player.getName())) {
UseItem.giveUseItem(player);
}
T2C_Send.player(player, Languages.VALUES.ItemSlot.getValue().toString().replace("[slot]", setSlot.toString()));
}
public static void gui(Player player) {
if (Main.guiHashMap.containsKey(Config.VALUES.defaultGUI.getValue().toString())) {
Gui gui = Main.guiHashMap.get(Config.VALUES.defaultGUI.getValue().toString());
if (gui.guiEnable || player.hasPermission("commandgui.bypass")) {
if (!gui.commandPermissionEnable || player.hasPermission("commandgui.command") || player.hasPermission("commandgui.bypass")) {
OpenGUI.openGUI(player, Config.VALUES.defaultGUI.toString(), true);
} else T2C_Send.player(player, Languages.VALUES.NoPermissionForCommand.getValue().toString().replace("[cmd]", "/commandgui")
.replace("[perm]", "commandgui.command"));
} else T2C_Send.player(player, Languages.VALUES.GUIIsDisabled.getValue().toString().replace("[gui]", gui.guiName));
} else {
T2C_Send.player(player, Languages.VALUES.guiNotFound.getValue().toString());
T2C_Send.error(Main.getPlugin(), "");
T2C_Send.console(Util.getPrefix()+ " <red>The gui <gold>[gui]</gold> that the player <gold>[player]</gold> wanted to open does not exist!".replace("[gui]", Config.VALUES.defaultGUI.getValue().toString()).replace("[player]", player.getName())); //todo in lang
T2C_Send.error(Main.getPlugin(), "");
}
}
public static void gui(Player player, String arg) {
Gui gui = Main.guiHashMap.get(arg);
if (gui == null) {
T2C_Send.player(player, Languages.VALUES.guiNotFound.getValue().toString());
T2C_Send.error(Main.getPlugin(), "");
T2C_Send.console(Util.getPrefix()+ " <red>The gui <gold>[gui]</gold> that the player <gold>[player]</gold> wanted to open does not exist!".replace("[gui]", arg).replace("[player]", player.getName())); //todo in lang
T2C_Send.error(Main.getPlugin(), "");
return;
}
if (gui.guiEnable || player.hasPermission("commandgui.bypass")) {
if (!gui.commandPermissionEnable || player.hasPermission("commandgui.command." + gui.key) || player.hasPermission("commandgui.bypass")) {
OpenGUI.openGUI(player, arg, true);
} else T2C_Send.player(player, Languages.VALUES.NoPermissionForCommand.getValue().toString().replace("[cmd]", "/commandgui " + gui.key)
.replace("[perm]", "commandgui.command." + arg.toLowerCase()));
} else T2C_Send.player(player, Languages.VALUES.GUIIsDisabled.getValue().toString().replace("[gui]", gui.key));
}
}

View File

@ -0,0 +1,112 @@
package net.t2code.commandguiv2.Spigot.cmdManagement;
import net.t2code.commandguiv2.Spigot.config.config.Config;
import net.t2code.commandguiv2.Spigot.Main;
import net.t2code.commandguiv2.Spigot.config.languages.Languages;
import net.t2code.commandguiv2.Spigot.objects.Gui;
import net.t2code.commandguiv2.Util;
import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Replace;
import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Send;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class Help {
private static final String prefix = Util.getPrefix();
public static void sendHelp(CommandSender sender, String Prefix) {
Gui gui = Main.guiHashMap.get(Config.VALUES.defaultGUI.getValue().toString());
T2C_Send.sender(sender, Prefix + " §8----- §4Command§9GUI §chelp §8-----");
cgui(sender, gui);
open(sender);
help(sender);
gUIItemHelp(sender);
info(sender);
give(sender);
createDefaultGUI(sender);
reload(sender);
T2C_Send.sender(sender, Prefix + " §8-------------------------");
}
private static void cgui(CommandSender sender, Gui gui) {
if (!sender.hasPermission("commandgui.command")) return;
if (sender instanceof Player) {
T2C_Send.player((Player) sender, prefix + " " + Languages.VALUES.PlayerHelpCgui.getValue().toString().replace("[gui]", T2C_Replace.replace(prefix, gui.guiName)));
} else T2C_Send.sender(sender, prefix + " " + Languages.VALUES.HelpCgui.getValue().toString().replace("[gui]", T2C_Replace.replace(prefix, gui.guiName)));
}
private static void open(CommandSender sender) {
if (!sender.hasPermission("commandgui.command")) return;
for (String alias : Main.allAliases) {
if (Main.guiHashMap.get(alias).guiEnable || sender.hasPermission("commandgui.bypass")) {
if (sender instanceof Player) {
T2C_Send.player((Player) sender, prefix + " " + Languages.VALUES.PlayerHelpOpen.getValue().toString().replace("[gui]", alias).replace("[guiname]", T2C_Replace.replace(prefix, Main.guiHashMap.get(alias).guiName)));
} else
T2C_Send.sender(sender, prefix + " " + Languages.VALUES.HelpOpen.getValue().toString().replace("[gui]", alias).replace("[guiname]", T2C_Replace.replace(prefix, Main.guiHashMap.get(alias).guiName)));
}
}
}
private static void help(CommandSender sender) {
if (!sender.hasPermission("commandgui.command")) return;
if (sender instanceof Player) {
T2C_Send.player((Player) sender, prefix + " " + Languages.VALUES.PlayerHelpHelp);
} else T2C_Send.sender(sender, prefix + " " + Languages.VALUES.HelpHelp);
}
private static void info(CommandSender sender) {
if (!sender.hasPermission("commandgui.command.info")) return;
if (sender instanceof Player) {
T2C_Send.player((Player) sender, prefix + " " + Languages.VALUES.PlayerHelpInfo);
} else T2C_Send.sender(sender, prefix + " " + Languages.VALUES.HelpInfo);
}
private static void give(CommandSender sender) {
if (!sender.hasPermission("commandgui.admin")) return;
if (sender instanceof Player) {
T2C_Send.player((Player) sender, prefix + " " + Languages.VALUES.PlayerHelpGive);
} else T2C_Send.sender(sender, prefix + " " + Languages.VALUES.HelpGive);
}
private static void createDefaultGUI(CommandSender sender) {
if (!sender.hasPermission("commandgui.admin")) return;
if (sender instanceof Player) {
T2C_Send.player((Player) sender, prefix + " " + Languages.VALUES.PlayerHelpCreateDefaultGUI.getValue().toString().replace("[directory]", Main.getPath() + "\\GUIs\\default.yml"));
} else T2C_Send.sender(sender, prefix + " " + Languages.VALUES.HelpCreateDefaultGUI.getValue().toString().replace("[directory]", Main.getPath() + "\\GUIs\\default.yml"));
}
private static void reload(CommandSender sender) {
if (!sender.hasPermission("commandgui.admin")) return;
if (sender instanceof Player) {
T2C_Send.player((Player) sender, prefix + " " + Languages.VALUES.PlayerHelpReload);
} else T2C_Send.sender(sender, prefix + " " + Languages.VALUES.HelpReload);
}
public static void gUIItemHelp(CommandSender sender) {
if (sender instanceof Player) {
T2C_Send.player((Player) sender, prefix + " " + Languages.VALUES.PlayerGUIItemHelp_on);
} else T2C_Send.sender(sender, prefix + " " + Languages.VALUES.GUIItemHelp_on);
if (sender instanceof Player) {
T2C_Send.player((Player) sender, prefix + " " + Languages.VALUES.PlayerGUIItemHelp_off);
} else T2C_Send.sender(sender, prefix + " " + Languages.VALUES.GUIItemHelp_off);
if (sender instanceof Player) {
T2C_Send.player((Player) sender, prefix + " " + Languages.VALUES.PlayerGUIItemHelp_Slot);
} else T2C_Send.sender(sender, prefix + " " + Languages.VALUES.GUIItemHelp_Slot);
}
public static void sendGUIItemHelp(CommandSender sender) {
if (sender.hasPermission("commandgui.useitem.toggle")) {
T2C_Send.sender(sender, prefix + " §8------ §4Command§9GUI§2Item §chelp §8------");
gUIItemHelp(sender);
T2C_Send.sender(sender, prefix + " §8------------------------------");
}
}
}

View File

@ -1,24 +1,23 @@
package de.jatitv.commandguiv2.Spigot.cmdManagement.register;
package net.t2code.commandguiv2.Spigot.cmdManagement.register;
import de.jatitv.commandguiv2.Spigot.Main;
import de.jatitv.commandguiv2.Util;
import net.t2code.lib.Spigot.Lib.messages.send;
import net.t2code.commandguiv2.Spigot.Main;
import net.t2code.commandguiv2.Util;
import net.t2code.t2codelib.SPIGOT.api.debug.T2C_Debug;
import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Send;
import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Template;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandMap;
import org.bukkit.plugin.Plugin;
import java.io.File;
import java.lang.reflect.Field;
public class AliasRegister {
public static void onRegister() {
Plugin plugin = Main.plugin;
send.debug(plugin, Bukkit.getServer().getClass().getPackage().getName());
File f = new File(Main.getPath() + "/GUIs/");
File[] fileArray = f.listFiles();
public static void onRegister(boolean isReload) {
Plugin plugin = Main.getPlugin();
T2C_Debug.debug(plugin, Bukkit.getServer().getClass().getPackage().getName());
if (Main.allAliases.toString().equals("[]")) {
send.console(Util.getSpigot() + " §4No GUI files available");
T2C_Send.sendStartTextCenter(Util.getPrefix(),"§4No GUI files available",isReload);
return;
}
for (String alias : Main.allAliases) {
@ -26,15 +25,12 @@ public class AliasRegister {
if (Main.guiHashMap.get(alias).commandAliasEnable) {
try {
final Field bukkitCommandMap = Bukkit.getServer().getClass().getDeclaredField("commandMap");
bukkitCommandMap.setAccessible(true);
CommandMap commandMap = (CommandMap) bukkitCommandMap.get(Bukkit.getServer());
commandMap.register(alias, new RegisterCommand(alias));
commandMap.register(Main.getPlugin().getName(), new RegisterCommand(alias));
} catch(Exception e) {
e.printStackTrace();
}
//Register.register(alias, plugin);
}
}
}

View File

@ -1,16 +1,18 @@
package de.jatitv.commandguiv2.Spigot.cmdManagement.register;
package net.t2code.commandguiv2.Spigot.cmdManagement.register;
import de.jatitv.commandguiv2.Spigot.Main;
import de.jatitv.commandguiv2.Spigot.objects.guis.Gui;
import de.jatitv.commandguiv2.Spigot.gui.OpenGUI;
import de.jatitv.commandguiv2.Spigot.config.languages.SelectMessages;
import net.t2code.commandguiv2.Spigot.Main;
import net.t2code.commandguiv2.Spigot.config.languages.Languages;
import net.t2code.commandguiv2.Spigot.objects.Gui;
import net.t2code.commandguiv2.Spigot.gui.OpenGUI;
import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Send;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
public class RegisterCommand extends Command {
private String alias;
private final String alias;
public RegisterCommand(String alias) {
super(alias);
@ -18,7 +20,7 @@ public class RegisterCommand extends Command {
}
@Override
public boolean execute(CommandSender sender, String commandLabel, String[] args) {
public boolean execute(@NotNull CommandSender sender, @NotNull String commandLabel, String[] args) {
if (sender instanceof Player) {
Player player = (Player) sender;
@ -26,9 +28,9 @@ public class RegisterCommand extends Command {
if (gui.guiEnable || player.hasPermission("commandgui.bypass")) {
if (!gui.commandPermissionEnable || player.hasPermission("commandgui.command." + alias) || player.hasPermission("commandgui.bypass")) {
OpenGUI.openGUI(player, alias, true);
} else player.sendMessage(SelectMessages.NoPermissionForCommand.replace("[cmd]", "/commandgui " + alias)
} else T2C_Send.player(player, Languages.VALUES.NoPermissionForCommand.getValue().toString().replace("[cmd]", "/commandgui " + alias)
.replace("[perm]", "commandgui.command." + alias));
} else player.sendMessage(SelectMessages.GUIIsDisabled.replace("[gui]", gui.guiName));
} else T2C_Send.player(player,Languages.VALUES.GUIIsDisabled.getValue().toString().replace("[gui]", gui.guiName));
} else sender.sendMessage("§8[§6Command§9GUI§8] §cThis command is only for players!");
return true;
}

View File

@ -0,0 +1,676 @@
package net.t2code.commandguiv2.Spigot.config.config;
import net.t2code.commandguiv2.Spigot.Main;
import net.t2code.commandguiv2.Spigot.config.languages.Languages;
import net.t2code.commandguiv2.Util;
import net.t2code.t2codelib.SPIGOT.api.items.T2C_ItemVersion;
import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Send;
import net.t2code.t2codelib.SPIGOT.api.minecraftVersion.T2C_McVersion;
import net.t2code.t2codelib.SPIGOT.api.yaml.T2C_ConfigWriter;
import net.t2code.t2codelib.util.T2C_ConfigItem;
import net.t2code.t2codelib.util.T2C_LanguageEnum;
import org.bukkit.Material;
import org.bukkit.Sound;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
public class Config {
public static enum VALUES implements T2C_ConfigItem {
debug("plugin.debug", false, true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
updateCheckOnJoin("plugin.updateCheck.onJoin", true, true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
updateCheckSeePreReleaseUpdates("plugin.updateCheck.seePreReleaseUpdates", true, true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
updateCheckTimeInterval("plugin.updateCheck.timeInterval", 60, true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
helpAlias("plugin.helpAlias", true, true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
adminSubCommand("plugin.adminSubCommand", "admin", true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
language("plugin.language", T2C_LanguageEnum.english, true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
currency("plugin.currency", "$", true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
defaultGUI("plugin.defaultGUI", "default", true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
prefix("plugin.prefix", "&8[&4C&9GUI&8]", true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
storage("storage.type", Main.legacy ? "YML" : "SQLITE", true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("Speichermöglichkeiten: YML, SQLITE, MYSQL"));
put(T2C_LanguageEnum.english, List.of());
}}),
mysqlIp("storage.mysql.ip", "localhost", true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
mysqlPort("storage.mysql.port", 3306, true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
mysqlDatabase("storage.mysql.database", "database", true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
mysqlUser("storage.mysql.user", "user", true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
mysqlPassword("storage.mysql.password", "password", true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
mysqlSSL("storage.mysql.ssl", false, true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
useItemEnable("useItem.enable", true, true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
useItemAllowToggle("useItem.allowToggle", true, true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
useItemAllowSetSlot("useItem.allowSetSlot", true, true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
useItemBlockMoveAndDrop("useItem.blockMoveAndDrop", true, true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
useItemOpenGUI("useItem.openGUI", "default", true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
useItemPermissionNeeded("useItem.permission.neededToUse", true, true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
useItemKeepAtCommandClear("useItem.keepAtCommandClear", true, true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
useItemInventorySlot("useItem.inventorySlot.slot", 1, true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
useItemInventorySlotEnforce("useItem.inventorySlot.slotEnforce", false, true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
useItemInventorySlotFreeSlot("useItem.inventorySlot.freeSlot", false, true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
useItemMaterial("useItem.item.material", "paper", true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
useItemPlayerHeadEnable(isHead() ? "useItem.item.playerHead.enable" : null, false, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
useItemBase64Enable(isHead() ? "useItem.item.playerHead.base64.enable" : null, false, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
useItemBase64value(isHead() ? "useItem.item.playerHead.base64.base64value" : null, "", true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
useItemPlayerWhoHasOpenedTheGUI(isHead() ? "useItem.item.playerHead.playerWhoHasOpenedTheGUI" : null, false, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
useItemPlayerName(isHead() ? "useItem.item.playerHead.playerName" : null, "", true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
useItemName("useItem.item.name", "&bDefault &6GUI", true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
useItemLore("useItem.item.lore", List.of("&eThis is an example GUI"), true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
useItemGiveOnEveryJoin("useItem.Join.GiveOnEveryJoin", true, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
useItemGiveOnlyOnFirstJoin("useItem.join.giveOnlyOnFirstJoin", false, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
cursorToGUIItemOnLogin("useItem.join.cursor.toGUIItem.onLogin.enable", true, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
cursorToGUIItemOnlyOnFirstLogin("useItem.join.cursor.toGUIItem.onlyOnFirstLogin", true, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
cursorUseItemServerChange("useItem.join.cursor.toGUIItem.onServerChange", false, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
toggleItemOnOrYesBase64("toggle.items.onOrYes.item.base64.enable", false, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
toggleItemOnOrYesBase64Value("toggle.items.onOrYes.item.base64.base64value", "", true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
toggleItemOnOrYesMaterial("toggle.items.onOrYes.item.material", Main.legacy ? "WOOL,5" : T2C_ItemVersion.getGreenWool().getType().toString(), true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
toggleItemOffOrNoBase64("toggle.items.offOrNo.item.base64.enable", false, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
toggleItemOffOrNoBase64Value("toggle.items.offOrNo.item.base64.base64value", "", true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
toggleItemOffOrNoMaterial("toggle.items.offOrNo.item.material", Main.legacy ? "WOOL,14" : T2C_ItemVersion.getRedWool().getType().toString(), true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
togglePermTrue("toggle.permission.commands.true", "luckperms user [player] permission set [perm] true", true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
togglePermFalse("toggle.permission.commands.false", "luckperms user [player] permission set [perm] false", true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
placeholderTrue("placeholder.true", "&2true", true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
placeholderFalse("placeholder.false", "&4false", true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
soundEnable("sound.enable", true, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
soundOpenInventoryEnable("sound.openInventory.enable", true, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
soundOpenInventory("sound.openInventory.sound", getSoundOpenInventory(), true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
soundClickEnable("sound.click.enable", true, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
soundClick("sound.click.sound", getSoundClick(), true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
soundNoMoneyEnable("sound.noMoney.enable", true, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
soundNoMoney("sound.noMoney.sound", getSoundNoMoney(), true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
soundNoInventorySpaceEnable("sound.noInventorySpace.enable", true, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
soundNoInventorySpace("sound.noInventorySpace.sound", getSoundNoInventorySpace(), true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
soundGiveEnable("sound.give.enable", true, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
soundGive("sound.give.sound", getSoundGive(), true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
soundPlayerNotFoundEnable("sound.playerNotFound.enable", true, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
soundPlayerNotFound("sound.playerNotFound.sound", getSoundPlayerNotFound(), true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
useItemGameModeChangeEnable("advanced.useItem.gameMode.change.enable", true, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
useItemGameModeChangeDelayInTicks("advanced.useItem.gameMode.change.delayInTicks", 1, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
useItemGameModeProtection("advanced.useItem.gameMode.protection.enable", false, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
useItemGameModeRemoveItemWhenItIsDisabled("advanced.useItem.gameMode.protection.removeItemWhenItIsDisabled", false, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
useItemGameModeMode("advanced.useItem.gameMode.protection.mode", "blacklist", true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
useItemGameModeList("advanced.useItem.gameMode.protection.list", List.of("CREATIVE", "SPECTATOR"), true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
useItemWorldChangeEnable("advanced.useItem.world.change.enable", true, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
useItemWorldChangeDelayInTicks("advanced.useItem.world.change.delayInTicks", 1, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
useItemWorldProtection("advanced.useItem.world.protection.enable", false, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
useItemWorldRemoveItemWhenItIsDisabled("advanced.useItem.world.protection.removeItemWhenItIsDisabled", false, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
useItemWorldMode("advanced.useItem.world.protection.mode", List.of("CREATIVE", "Spectator"), true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
useItemWorldList("advanced.useItem.world.protection.list", List.of("World1", "World2"), true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
// if (yamlConfiguration.get("advanced.UseItem.DisableInfoBySneak") != null) {
// disableInfoBySneak = yamlConfiguration.getBoolean("advanced.UseItem.DisableInfoBySneak");
// }
disableInfoBySneak("advanced.useItem.disableInfoBySneak", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
useItemItemBlockBlacklist("advanced.useItem.itemBlockBlacklist", getItemBlockBlacklist(), true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
;
private final String path;
private Object value;
private final boolean forceSet;
private final HashMap<T2C_LanguageEnum, List<String>> comments;
VALUES(String path, Object value, boolean forceSet, HashMap<T2C_LanguageEnum, List<String>> comments) {
this.path = path;
this.value = value;
this.forceSet = forceSet;
this.comments = comments;
}
@Override
public String getPath() {
return path;
}
@Override
public Object getValue() {
return value;
}
@Override
public boolean getForceSet() {
return forceSet;
}
@Override
public HashMap<T2C_LanguageEnum, List<String>> getComments() {
return comments;
}
@Override
public String getLanguagePath() {
return language.path;
}
@Override
public void setValue(Object newValue) {
value = newValue;
}
}
public static void set(boolean isReload) {
T2C_ConfigWriter.createConfig(Util.getPrefix(), new File(Main.getPath(), "config.yml"), VALUES.values(), isReload, Util.getConfigLogo());
Util.replace(VALUES.prefix);
Util.replace(VALUES.useItemName);
Util.replace(VALUES.useItemLore);
Util.replace(VALUES.placeholderFalse);
Util.replace(VALUES.placeholderTrue);
}
private static boolean isHead() {
if (!(T2C_McVersion.isMc1_8() || T2C_McVersion.isMc1_9() || T2C_McVersion.isMc1_10() || T2C_McVersion.isMc1_11() || T2C_McVersion.isMc1_12())) {
return true;
} else return false;
}
private static String getSoundOpenInventory() {
if (T2C_McVersion.isMc1_8()) {
return "CHEST_OPEN";
}
return "BLOCK_CHEST_OPEN";
}
private static String getSoundClick() {
if (T2C_McVersion.isMc1_8()) {
return "NOTE_STICKS";
} else if (T2C_McVersion.isMc1_9() || T2C_McVersion.isMc1_10() || T2C_McVersion.isMc1_11() || T2C_McVersion.isMc1_12()) {
return "BLOCK_NOTE_HAT";
}
return "BLOCK_NOTE_BLOCK_HAT";
}
private static String getSoundNoMoney() {
if (T2C_McVersion.isMc1_8()) {
return "NOTE_PIANO";
} else if (T2C_McVersion.isMc1_9() || T2C_McVersion.isMc1_10() || T2C_McVersion.isMc1_11() || T2C_McVersion.isMc1_12()) {
return "BLOCK_NOTE_HARP";
}
return "BLOCK_NOTE_BLOCK_HARP";
}
private static String getSoundNoInventorySpace() {
if (T2C_McVersion.isMc1_8()) {
return "NOTE_PIANO";
} else if (T2C_McVersion.isMc1_9() || T2C_McVersion.isMc1_10() || T2C_McVersion.isMc1_11() || T2C_McVersion.isMc1_12()) {
return "BLOCK_NOTE_BASS";
}
return "BLOCK_NOTE_BLOCK_GUITAR";
}
private static String getSoundGive() {
if (T2C_McVersion.isMc1_8()) {
return "LEVEL_UP";
}
return "ENTITY_PLAYER_LEVELUP";
}
private static String getSoundPlayerNotFound() {
if (T2C_McVersion.isMc1_8()) {
return "NOTE_PIANO";
} else if (T2C_McVersion.isMc1_9() || T2C_McVersion.isMc1_10() || T2C_McVersion.isMc1_11() || T2C_McVersion.isMc1_12()) {
return "BLOCK_NOTE_HARP";
} else {
return "BLOCK_NOTE_BLOCK_HARP";
}
}
private static List<String> getItemBlockBlacklist() {
List<String> materialList = Arrays.asList("BUTTON", "DOOR", "FENCE", "CHEST", "FURNACE", "NOTE_BLOCK", "CRAFTING_TABLE", "WORKBENCH",
"ANVIL", "LOOM", "COMPOSTER", "BARREL", "SMOKER", "BLAST_FURNACE", "CARTOGRAPHY_TABLE", "FLETCHING_TABLE", "GRINDSTONE",
"SMITHING_TABLE", "STONECUTTER", "HOPPER", "DISPENSER", "DROPPER", "REPEATER", "COMPARATOR", "LEVER", "DAYLIGHT_DETECTOR", "BREWING_STAND", "TRAPDOOR", "BEACON"
);
List<String> materialBlacklist = new ArrayList<>();
for (Material material : Material.values()) {
for (String target : materialList) {
if (material.toString().contains(target)) {
materialBlacklist.add(material.toString());
}
}
}
return materialBlacklist;
}
public static void checkSounds() {
checkSound(VALUES.soundOpenInventory, getSoundOpenInventory());
checkSound(VALUES.soundClick, getSoundOpenInventory());
checkSound(VALUES.soundNoMoney, getSoundOpenInventory());
checkSound(VALUES.soundNoInventorySpace, getSoundOpenInventory());
checkSound(VALUES.soundGive, getSoundOpenInventory());
checkSound(VALUES.soundPlayerNotFound, getSoundOpenInventory());
}
public static void checkSound(VALUES item, String defaultSound) {
try {
item.setValue(Sound.valueOf(item.value.toString()).toString());
} catch (Exception e) {
T2C_Send.console("§4\n§4\n§4\n" + Languages.VALUES.SoundNotFound.getValue().toString().replace("[prefix]", Util.getPrefix())
.replace("[sound]", "§8" + item.getPath() + item.value.toString()) + "§4\n§4\n§4\n");
item.setValue(Sound.valueOf(defaultSound).toString());
}
}
}

View File

@ -0,0 +1,676 @@
// This class was created by JaTiTV.
package net.t2code.commandguiv2.Spigot.config.functions;
import net.t2code.commandguiv2.Spigot.Main;
import net.t2code.commandguiv2.Spigot.config.config.Config;
import net.t2code.commandguiv2.Spigot.enums.EcoEnum;
import net.t2code.commandguiv2.Spigot.enums.FunctionItemEnum;
import net.t2code.commandguiv2.Spigot.enums.FunctionVoteEnum;
import net.t2code.commandguiv2.Spigot.objects.Function;
import net.t2code.commandguiv2.Util;
import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Send;
import net.t2code.t2codelib.SPIGOT.api.yaml.T2C_ConfigWriter;
import net.t2code.t2codelib.SPIGOT.system.T2C_Main;
import net.t2code.t2codelib.util.T2C_ConfigItem;
import net.t2code.t2codelib.util.T2C_LanguageEnum;
import java.io.File;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
public class FunctionsFile {
public enum VALUES implements T2C_ConfigItem {
empty("Slots.Function.Item.Empty", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
itemAmount("Slots.Function.Item.Amount", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
playerHeadEnable("Slots.Function.Item.PlayerHead.Enable", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
base64Enable("Slots.Function.Item.PlayerHead.Base64.Enable", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
base64Value("Slots.Function.Item.PlayerHead.Base64.Base64Value", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
playerWhoHasOpenedTheGUI("Slots.Function.Item.PlayerHead.PlayerWhoHasOpenedTheGUI", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
playerName("Slots.Function.Item.PlayerHead.PlayerName", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
itemMaterial("Slots.Function.Item.Material", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
name("Slots.Function.Item.Name", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
lore("Slots.Function.Item.Lore", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
noPermMessageEnable("Slots.Function.NoPermission.Message.Enable", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
customNoPermMessage("Slots.Function.NoPermission.Message.CustomNoPermMessage", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
noPermLoreEnable("Slots.Function.NoPermission.Item.Lore.Enable", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
noPermLore("Slots.Function.NoPermission.Item.Lore.Lore", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
customSoundEnable("Slots.Function.CustomSound.Enable", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
customSoundNoSound("Slots.Function.CustomSound.NoSound", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
customSoundSound("Slots.Function.CustomSound.Sound", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
costEnable("Slots.Function.Cost.Enable", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
ecoModule("Slots.Function.Cost.EcoModule", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
ecoItem("Slots.Function.Cost.Item", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
ecoVotePoints("Slots.Function.Cost.VotePoints", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
ecoPrice("Slots.Function.Cost.Price", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
commandEnable("Slots.Function.Command.Enable", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
commandBungeeCommand("Slots.Function.Command.BungeeCommand", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
commandAsConsole("Slots.Function.Command.CommandAsConsole", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
command("Slots.Function.Command.Command", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
serverChange("Slots.Function.ServerChange.Enable", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
serverChangeServer("Slots.Function.ServerChange.Server", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
openGUIEnable("Slots.Function.OpenGUI.Enable", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
openGUI("Slots.Function.OpenGUI.GUI", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
closeGUI("Slots.Function.CloseGUI.Enable", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
togglePermission("Slots.Function.Toggle.Permission.Enable", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
togglePermissionPerm("Slots.Function.Toggle.Permission.Permission", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
toggleUseItem("Slots.Function.Toggle.UseItem.Enable", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
messageEnable("Slots.Function.Message.Enable", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
message("Slots.Function.Message.Message", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
setConfigEnable("Slots.Function.SetConfig.Enable", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
configFilePath("Slots.Function.SetConfig.File.Path", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
configOptionPath("Slots.Function.SetConfig.Option.Path", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
configOptionPremat("Slots.Function.SetConfig.Option.Premat", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
configStringValueLeft("Slots.Function.SetConfig.Value.LeftClick.String", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
configBooleanValueLeft("Slots.Function.SetConfig.Value.LeftClick.Boolean", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
configIntegerValueLeft("Slots.Function.SetConfig.Value.LeftClick.Integer", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
configDoubleValueLeft("Slots.Function.SetConfig.Value.LeftClick.Double", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
configListValueLeft("Slots.Function.SetConfig.Value.LeftClick.List", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
configStringValueRight("Slots.Function.SetConfig.Value.RightClick.String", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
configBooleanValueRight("Slots.Function.SetConfig.Value.RightClick.Boolean", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
configIntegerValueRight("Slots.Function.SetConfig.Value.RightClick.Integer", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
configDoubleValueRight("Slots.Function.SetConfig.Value.RightClick.Double", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
configListValueRight("Slots.Function.SetConfig.Value.RightClick.List", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
pluginReloadEnable("Slots.Function.SetConfig.PluginReload.Enable", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
pluginReloadCommand("Slots.Function.SetConfig.PluginReload.Command", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
functionVotePoints("Slots.Function.FunctionVotePoints.Enable", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
functionVotePointsMode("Slots.Function.FunctionVotePoints.Mode", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
functionVotePointsAmount("Slots.Function.FunctionVotePoints.Amount", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
functionItem("Slots.Function.FunctionItem.Enable", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
functionItemMode("Slots.Function.FunctionItem.Mode", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
functionItemItem("Slots.Function.FunctionItem.Item", null, true,
new HashMap<>() {
{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}
}),
;
private final String path;
private Object value;
private final boolean forceSet;
private final HashMap<T2C_LanguageEnum, List<String>> comments;
VALUES(String path, Object value, boolean forceSet, HashMap<T2C_LanguageEnum, List<String>> comments) {
this.path = path;
this.value = value;
this.forceSet = forceSet;
this.comments = comments;
}
@Override
public String getPath() {
return path;
}
@Override
public Object getValue() {
return value;
}
@Override
public boolean getForceSet() {
return forceSet;
}
@Override
public HashMap<T2C_LanguageEnum, List<String>> getComments() {
return comments;
}
@Override
public String getLanguagePath() {
return Config.VALUES.language.getValue().toString();
}
@Override
public void setValue(Object newValue) {
value = newValue;
}
}
public static void select(boolean isReload) {
Main.functionHashMap.clear();
File f = new File(Main.getPath() + "/Functions/");
File[] fileArray = f.listFiles();
assert fileArray != null;
for (File file : fileArray) {
String sub = file.getName().substring(file.getName().length() - 4);
if (sub.equals(".yml")) {
T2C_ConfigWriter.createConfig(Util.getPrefix(), file, VALUES.values(), isReload, Util.getConfigLogo());
EcoEnum ecoModule = null;
if (VALUES.ecoModule.value != null) {
try {
ecoModule = EcoEnum.valueOf(VALUES.ecoModule.value.toString().toUpperCase());
} catch (Exception ex) {
T2C_Send.error(Main.getPlugin(), "The EcoModule " + VALUES.ecoModule.value.toString().toUpperCase() + " in the function file "
+ file.getName() + " does not exist. Please use one of the supported modules. (VAULT, ITEM, VOTEPOINTS)");
}
} else ecoModule = EcoEnum.VAULT;
FunctionVoteEnum functionVotePointsMode = null;
if (VALUES.functionVotePointsMode.value != null) {
try {
functionVotePointsMode = FunctionVoteEnum.valueOf(VALUES.functionVotePointsMode.value.toString().toUpperCase());
} catch (Exception ex) {
T2C_Send.error(Main.getPlugin(), "The VotePoints Mode " + VALUES.functionVotePointsMode.value.toString().toUpperCase() + " in the function file "
+ file.getName() + " does not exist. Please use one of the supported modules. (ADD, REMOVE)");
}
}
FunctionItemEnum functionItemMode = null;
if (VALUES.functionItemMode.value != null) {
try {
functionItemMode = FunctionItemEnum.valueOf(VALUES.functionItemMode.value.toString().toUpperCase());
} catch (Exception ex) {
T2C_Send.error(Main.getPlugin(), "The Item Mode " + VALUES.functionItemMode.value.toString().toUpperCase() + " in the function file "
+ f.getName() + " does not exist. Please use one of the supported modules. (ADD, REMOVE)");
}
}
Util.replace(VALUES.name);
Util.replace(VALUES.lore);
Util.replace(VALUES.noPermLore);
Util.replace(VALUES.message);
String key = file.getName().replace(".yml", "");
Function function = new Function(key, (boolean) VALUES.empty.value, (int) VALUES.itemAmount.value, (boolean) VALUES.playerHeadEnable.value, (boolean) VALUES.base64Enable.value,
VALUES.base64Value.value.toString(), (boolean) VALUES.playerWhoHasOpenedTheGUI.value, VALUES.playerName.value.toString(), VALUES.itemMaterial.value.toString(),
VALUES.name.value.toString(), (List<String>) VALUES.lore.value, (boolean) VALUES.noPermMessageEnable.value, VALUES.customNoPermMessage.value.toString(),
(boolean) VALUES.noPermLoreEnable.value, (List<String>) VALUES.noPermLore.value, (boolean) VALUES.customSoundEnable.value, (boolean) VALUES.customSoundNoSound.value,
VALUES.customSoundSound.value.toString(), (boolean) VALUES.costEnable.value, ecoModule, VALUES.ecoItem.value.toString(),
(int) VALUES.ecoVotePoints.value, (double) VALUES.ecoPrice.value, (boolean) VALUES.commandEnable.value, (boolean) VALUES.commandBungeeCommand.value,
(boolean) VALUES.commandAsConsole.value, (List<String>) VALUES.command.value, (boolean) VALUES.serverChange.value, VALUES.serverChangeServer.value.toString(),
(boolean) VALUES.openGUIEnable.value, VALUES.openGUI.value.toString(), (boolean) VALUES.closeGUI.value, (boolean) VALUES.togglePermission.value,
VALUES.togglePermissionPerm.value.toString(), (boolean) VALUES.toggleUseItem.value, (boolean) VALUES.messageEnable.value, (List<String>) VALUES.message.value,
(boolean) VALUES.setConfigEnable.value, VALUES.configFilePath.value.toString(), VALUES.configOptionPath.value.toString(), VALUES.configOptionPremat.value.toString(),
VALUES.configStringValueLeft.value.toString(), (boolean) VALUES.configBooleanValueLeft.value, (int) VALUES.configIntegerValueLeft.value, (double) VALUES.configDoubleValueLeft.value,
(List<String>) VALUES.configListValueLeft.value, VALUES.configStringValueRight.value.toString(), (boolean) VALUES.configBooleanValueRight.value, (int) VALUES.configIntegerValueRight.value,
(double) VALUES.configDoubleValueRight.value, (List<String>) VALUES.configListValueRight.value, (boolean) VALUES.pluginReloadEnable.value, VALUES.pluginReloadCommand.value.toString(),
(boolean) VALUES.functionVotePoints.value, functionVotePointsMode, (int) VALUES.functionVotePointsAmount.value, (boolean) VALUES.functionItem.value,
functionItemMode, VALUES.functionItemItem.value.toString());
Main.functionHashMap.put(key, function);
}
}
}
public static void createDefault(boolean isReload) {
createFunction("useItem", isReload,false, 1, false, false, "", false, "", "",
"&6Toggle UseItem", List.of("&bYou currently have the UseItem set to: %commandgui_useitem%"), true, "", true,
List.of("&8-----------------", "&4No Permission for this Function", "&8-----------------"), false, false,
"", false, "VAULT", "DIRT;5", 0, 0.0, false, false, false, List.of(), false,
"", false, "", false, false, "", true, true,
List.of("&bYour UseItem was set to: %commandgui_useitem%&b."), false, "", "", "String",
"", false, 0, 0.0, List.of(), "", false,
0, 0.0, List.of(), false, "",
false, FunctionVoteEnum.ADD, 0, false, FunctionItemEnum.REMOVE, "DIRT;5");
List<String> dclist;
if (T2C_Main.getMmIsLoad()) {
dclist = List.of("<dark_gray>[<dark_red>T<gray>2</gray>Code</dark_red>]</dark_gray> <gold><hover:show_text:'<color:#7289da>http://dc.t2code.net</color>'><click:open_url:'http://dc.t2code.net'>You can find more information on Discord</click></hover></gold>");
} else dclist = List.of("&6You can find more information on Discord: &ehttp://dc.t2code.net");
createFunction("supportDiscord",isReload, false, 1, true, true, "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzg3M2MxMmJmZmI1MjUxYTBiODhkNWFlNzVjNzI0N2NiMzlhNzVmZjFhODFjYmU0YzhhMzliMzExZGRlZGEifX19",
false, "", "",
"&3Support Discord", List.of("&8-----------------", "&bIf you need help setting up the plugin,", "&bfeel free to contact me on the Suport Discord.",
"&8-----------------", "&eIf you find any errors or bugs,", "&eplease contact me so I can fix them.", "&8-----------------", "&5Discord: §7http://dc.t2code.net"),
true, "", true, Arrays.asList("&8-----------------", "&4No Permission for this Function", "&8-----------------"),
false, false, "", false, "VAULT", "DIRT;5", 0, 0.0, false, false,
false, List.of(), false, "", false, "", false, false, "",
false, true, dclist, false, "",
"", "String", "", false, 0, 0.0, List.of(),
"", false, 0, 0.0, List.of(), false, "",
false, FunctionVoteEnum.ADD, 0, false, FunctionItemEnum.REMOVE, "DIRT;5");
}
private static void createFunction(String fileName, boolean isReload,Boolean empty, Integer itemAmount, Boolean playerHeadEnable, Boolean base64Enable, String base64Value, Boolean playerWhoHasOpenedTheGUI,
String playerName, String itemMaterial, String name, List<String> lore, Boolean noPermMessageEnable, String customNoPermMessage, Boolean noPermLoreEnable, List<String> noPermLore, Boolean customSoundEnable, Boolean customSoundNoSound, String customSoundSound,
Boolean costEnable, String ecoModule, String ecoItem, Integer ecoVotePoints, Double ecoPrice, Boolean commandEnable, Boolean commandBungeeCommand,
Boolean commandAsConsole, List<String> command, Boolean serverChange, String serverChangeServer, Boolean openGUIEnable, String openGUI, Boolean closeGUI,
Boolean togglePermission, String togglePermissionPerm, Boolean toggleUseItem, Boolean messageEnable, List<String> message, Boolean setConfigEnable,
String configFilePath, String configOptionPath, String configOptionPremat, String configStringValueLeft, Boolean configBooleanValueLeft,
Integer configIntegerValueLeft, Double configDoubleValueLeft, List<String> configListValueLeft, String configStringValueRight,
Boolean configBooleanValueRight, Integer configIntegerValueRight, Double configDoubleValueRight, List<String> configListValueRight,
Boolean pluginReloadEnable, String pluginReloadCommand, Boolean functionVotePoints, FunctionVoteEnum functionVotePointsMode,
Integer functionVotePointsAmount, Boolean functionItem, FunctionItemEnum functionItemMode, String functionItemItem) {
VALUES.empty.setValue(empty);
VALUES.itemAmount.setValue(itemAmount);
VALUES.playerHeadEnable.setValue(playerHeadEnable);
VALUES.base64Enable.setValue(base64Enable);
VALUES.base64Value.setValue(base64Value);
VALUES.playerWhoHasOpenedTheGUI.setValue(playerWhoHasOpenedTheGUI);
VALUES.playerName.setValue(playerName);
// }
VALUES.itemMaterial.setValue(itemMaterial == null ? "" : itemMaterial);
VALUES.name.setValue(name == null ? "" : name);
VALUES.lore.setValue(lore);
VALUES.noPermMessageEnable.setValue(noPermMessageEnable);
VALUES.customNoPermMessage.setValue(customNoPermMessage);
VALUES.noPermLoreEnable.setValue(noPermLoreEnable);
VALUES.noPermLore.setValue(noPermLore);
VALUES.customSoundEnable.setValue(customSoundEnable);
VALUES.customSoundNoSound.setValue(customSoundNoSound);
VALUES.customSoundSound.setValue(customSoundSound == null ? "" : customSoundSound);
VALUES.costEnable.setValue(costEnable);
VALUES.ecoModule.setValue(ecoModule);
VALUES.ecoItem.setValue(ecoItem);
VALUES.ecoVotePoints.setValue(ecoVotePoints);
VALUES.ecoPrice.setValue(ecoPrice);
VALUES.commandEnable.setValue(commandEnable);
VALUES.commandBungeeCommand.setValue(commandBungeeCommand);
VALUES.commandAsConsole.setValue(commandAsConsole);
VALUES.command.setValue(command);
VALUES.serverChange.setValue(serverChange);
VALUES.serverChangeServer.setValue(serverChangeServer == null ? "" : serverChangeServer);
VALUES.openGUIEnable.setValue(openGUIEnable);
VALUES.openGUI.setValue(openGUI == null ? "" : openGUI);
VALUES.closeGUI.setValue(closeGUI);
VALUES.togglePermission.setValue(togglePermission);
VALUES.togglePermissionPerm.setValue(togglePermissionPerm == null ? "" : togglePermissionPerm);
VALUES.toggleUseItem.setValue(toggleUseItem);
VALUES.messageEnable.setValue(messageEnable);
VALUES.message.setValue(message);
VALUES.setConfigEnable.setValue(setConfigEnable);
VALUES.configFilePath.setValue(configFilePath == null ? "" : configFilePath);
VALUES.configOptionPath.setValue(configOptionPath == null ? "" : configOptionPath);
VALUES.configOptionPremat.setValue(configOptionPremat == null ? "" : configOptionPremat);
VALUES.configStringValueLeft.setValue(configStringValueLeft == null ? "" : configStringValueLeft);
VALUES.configBooleanValueLeft.setValue(configBooleanValueLeft);
VALUES.configIntegerValueLeft.setValue(configIntegerValueLeft);
VALUES.configDoubleValueLeft.setValue(configDoubleValueLeft);
VALUES.configListValueLeft.setValue(configListValueLeft);
VALUES.configStringValueRight.setValue(configStringValueRight == null ? "" : configStringValueRight);
VALUES.configBooleanValueRight.setValue(configBooleanValueRight);
VALUES.configIntegerValueRight.setValue(configIntegerValueRight);
VALUES.configDoubleValueRight.setValue(configDoubleValueRight);
VALUES.configListValueRight.setValue(configListValueRight);
VALUES.pluginReloadEnable.setValue(pluginReloadEnable);
VALUES.pluginReloadCommand.setValue(pluginReloadCommand == null ? "" : pluginReloadCommand);
VALUES.functionVotePoints.setValue(functionVotePoints);
VALUES.functionVotePointsMode.setValue(functionVotePointsMode.toString());
VALUES.functionVotePointsAmount.setValue(functionVotePointsAmount);
VALUES.functionItem.setValue(functionItem);
VALUES.functionItemMode.setValue(functionItemMode.toString());
VALUES.functionItemItem.setValue(functionItemItem);
File file = new File(Main.getPath(), "Functions/" + fileName + ".yml");
int i = 1;
while (file.exists()) {
file = new File(Main.getPath(), "Functions/" + fileName + "-" + i + ".yml");
i++;
}
T2C_ConfigWriter.createConfig(Util.getPrefix(), file, VALUES.values(), isReload, Util.getConfigLogo());
}
}

View File

@ -0,0 +1,245 @@
// This class was created by JaTiTV.
package net.t2code.commandguiv2.Spigot.config.gui;
import net.t2code.commandguiv2.Spigot.Main;
import net.t2code.commandguiv2.Spigot.cmdManagement.CmdExecuter_GUI;
import net.t2code.commandguiv2.Spigot.config.config.Config;
import net.t2code.commandguiv2.Spigot.objects.Function;
import net.t2code.commandguiv2.Spigot.objects.Gui;
import net.t2code.commandguiv2.Spigot.objects.Slot;
import net.t2code.commandguiv2.Util;
import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Send;
import net.t2code.t2codelib.SPIGOT.api.minecraftVersion.T2C_McVersion;
import net.t2code.t2codelib.SPIGOT.api.yaml.T2C_ConfigWriter;
import net.t2code.t2codelib.util.T2C_ConfigItem;
import net.t2code.t2codelib.util.T2C_LanguageEnum;
import org.bukkit.configuration.file.YamlConfiguration;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class GuiFile {
public enum VALUES implements T2C_ConfigItem {
guiEnable("GUI.Enable", true, true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
guiLines("GUI.Lines", 1, true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
guiName("GUI.Name", "&5default &9GUI", true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
guiFillItemEnable("GUI.FillItem.Enable", true, true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
guiFillItemItem(isGlassColor() ? "GUI.FillItem.GlassPaneColor" : "GUI.FillItem.Item", isGlassColor() ? 15 : "BLACK_STAINED_GLASS_PANE", true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
commandAliasEnable("Command.Alias", true, true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
commandPermission("Command.Permission.Required", true, true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
slotSection("Slots", null, true,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
slotDiscordNumber("Slots.SupportDiscord.Slot", 4, false,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
slotDiscordEnable("Slots.SupportDiscord.Enable", true, false,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
slotDiscordFunction("Slots.SupportDiscord.Function", "supportDiscord", false,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
slotDiscordPermRequired("Slots.SupportDiscord.Permission.Required", false, false,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
slotDiscordPermSee("Slots.SupportDiscord.Permission.See", "commandgui.gui.[function].slot.[slot].see", false,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
slotDiscordPermUse("Slots.SupportDiscord.Permission.Use", "commandgui.gui.[function].slot.[slot].use", false,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
slotUseItemNumber("Slots.UseItem.Slot", 6, false,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
slotUseItemEnable("Slots.UseItem.Enable", true, false,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
slotUseItemFunction("Slots.UseItem.Function", "useItem", false,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
slotUseItemPermRequired("Slots.UseItem.Permission.Required", false, false,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
slotUseItemPermSee("Slots.UseItem.Permission.See", "commandgui.gui.[function].slot.[slot].see", false,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
slotUseItemPermUse("Slots.UseItem.Permission.Use", "commandgui.gui.[function].slot.[slot].use", false,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
;
private final String path;
private Object value;
private final boolean forceSet;
private final HashMap<T2C_LanguageEnum, List<String>> comments;
VALUES(String path, Object value, boolean forceSet, HashMap<T2C_LanguageEnum, List<String>> comments) {
this.path = path;
this.value = value;
this.forceSet = forceSet;
this.comments = comments;
}
@Override
public String getPath() {
return path;
}
@Override
public Object getValue() {
return value;
}
@Override
public boolean getForceSet() {
return forceSet;
}
@Override
public HashMap<T2C_LanguageEnum, List<String>> getComments() {
return comments;
}
@Override
public String getLanguagePath() {
return Config.VALUES.language.getValue().toString();
}
@Override
public void setValue(Object newValue) {
value = newValue;
}
}
private static boolean isGlassColor() {
if (T2C_McVersion.isMc1_8() || T2C_McVersion.isMc1_9() || T2C_McVersion.isMc1_10() || T2C_McVersion.isMc1_11() || T2C_McVersion.isMc1_12()) {
return true;
}
return false;
}
public static void createDefault(boolean isReload) {
File file = new File(Main.getPath(), "GUIs/default.yml");
T2C_ConfigWriter.createConfig(Util.getPrefix(), file, VALUES.values(), isReload, Util.getConfigLogo());
}
public static void set(boolean isReload) {
Main.guiHashMap.clear();
Main.allAliases.clear();
File f = new File(Main.getPath() + "/GUIs/");
f.mkdirs();
File[] fileArray = f.listFiles();
for (File file : fileArray) {
String sub = file.getName().substring(file.getName().length() - 4);
if (sub.equals(".yml")) {
T2C_ConfigWriter.createConfig(Util.getPrefix(), file, VALUES.values(), isReload, Util.getConfigLogo());
String guiName = file.getName().replace(".yml", "");
Main.allAliases.add(guiName);
Util.replace(VALUES.guiName);
Gui gui = new Gui(
(boolean) VALUES.guiEnable.value,
(int) VALUES.guiLines.value,
VALUES.guiName.value.toString(),
(boolean) VALUES.guiFillItemEnable.value,
VALUES.guiFillItemItem.value.toString(),
guiName,
(boolean) VALUES.commandAliasEnable.value,
(boolean) VALUES.commandPermission.value,
getSlots(file, guiName));
Main.guiHashMap.put(guiName, gui);
CmdExecuter_GUI.arg1.put(file.getName()
.replace(".yml", ""), "commandgui.gui." + guiName);
}
}
}
private static ArrayList<Slot> getSlots(File file, String guiName) {
YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(file);
ArrayList<Slot> slots = new ArrayList<>();
for (String key : yamlConfiguration.getConfigurationSection(VALUES.slotSection.getPath()).getKeys(false)) {
int slotNumber = yamlConfiguration.getInt("Slots." + key + ".Slot") - 1;
Boolean enable = yamlConfiguration.getBoolean("Slots." + key + ".Enable");
String function = yamlConfiguration.getString("Slots." + key + ".Function");
Function functionCheck = Main.functionHashMap.get(function);
if (functionCheck == null) {
T2C_Send.error(Main.getPlugin(), "The Function " + function + " in the GUI " + guiName + " does not exist!");
}
Boolean permRequired = yamlConfiguration.getBoolean("Slots." + key + ".Permission.Required");
String permSee = yamlConfiguration.getString("Slots." + key + ".Permission.See");
String permUse = yamlConfiguration.getString("Slots." + key + ".Permission.Use");
Slot slot = new Slot(slotNumber, enable, function, permRequired,
permSee.replace("[function]", guiName).replace("[slot]", String.valueOf(slotNumber + 1))
.replace("[slotname]", key.toLowerCase()),
permUse.replace("[function]", guiName).replace("[slot]", String.valueOf(slotNumber + 1))
.replace("[slotname]", key.toLowerCase()));
slots.add(slot);
}
return slots;
}
}

View File

@ -0,0 +1,624 @@
// This class was created by JaTiTV.
package net.t2code.commandguiv2.Spigot.config.languages;
import net.t2code.commandguiv2.Spigot.Main;
import net.t2code.commandguiv2.Spigot.config.config.Config;
import net.t2code.commandguiv2.Util;
import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Replace;
import net.t2code.t2codelib.SPIGOT.api.yaml.T2C_LanguageWriter;
import net.t2code.t2codelib.util.T2C_ConfigItemLanguages;
import net.t2code.t2codelib.util.T2C_LanguageEnum;
import java.util.HashMap;
import java.util.List;
import java.util.logging.Level;
public class Languages {
public enum VALUES implements T2C_ConfigItemLanguages {
VaultNotSetUp("Plugin.VaultNotSetUp", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("[prefix] <dark_red>Vault / Economy nicht eingerichtet!"));
put(T2C_LanguageEnum.english, List.of("[prefix] <dark_red>Vault / Economy not set up!"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
SoundNotFound("Plugin.SoundNotFound", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("[prefix] <dark_red>Der Sound <gold>[sound] <dark_red>wurde nicht gefunden! Bitte überprüfe die Einstellungen."));
put(T2C_LanguageEnum.english, List.of("[prefix] <dark_red>The sound <gold>[sound] <dark_red>was not found! Please check the settings."));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
OnlyForPlayer("Plugin.OnlyForPlayer", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("[prefix] <red>Dieser Command ist nur für Spieler!"));
put(T2C_LanguageEnum.english, List.of("[prefix] <red>This command is for players only!"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
DefaultGUIcreate("Plugin.DefaultGUI.create", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("[prefix] <dark_green>DefaultGUI wurde erstellt. Du findest sie im Verzeichnis: <yellow>[directory]<dark_green>!"));
put(T2C_LanguageEnum.english, List.of("[prefix] <dark_green>DefaultGUI was created. You can find it in the directory: <yellow>[directory]<dark_green>!"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
ReloadStart("Plugin.Reload.Start", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("[prefix] <gold>Plugin wird neu geladen..."));
put(T2C_LanguageEnum.english, List.of("[prefix] <gold>Plugin is reloaded..."));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
ReloadEnd("Plugin.Reload.End", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("[prefix] <red>Du hast keine Permission für <dark_red>Command<blue>GUI<red>!"));
put(T2C_LanguageEnum.english, List.of("[prefix] <dark_green>Plugin was successfully reloaded."));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
NoPermission("NoPermission.ForCommandGUI", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("[prefix] <red>Du hast keine Permission für <dark_red>Command<blue>GUI<red>!"));
put(T2C_LanguageEnum.english, List.of("[prefix] <red>You do not have permission for <dark_red>Command<blue>GUI<red>!"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
NoPermissionForCommand("NoPermission.ForCommand", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("[prefix] <red>Für <aqua>[cmd] <red>fehlt dir die Permission <gold>[perm]<red>!"));
put(T2C_LanguageEnum.english, List.of("[prefix] <red>For <aqua>[cmd] <red>you lack the permission <gold>[perm]<red>!"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
NoPermissionForUseItem("NoPermission.ForUseItem", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("[prefix] <red>Dir fehlt die Permission <gold>[perm] <red>um das Item für die GUI: <gold>[gui] <red>nutzen zu können."));
put(T2C_LanguageEnum.english, List.of("[prefix] <red>You lack the permission <gold>[perm] <red>to use the item for the GUI: <gold>[gui]."));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
NoPermissionForItem("NoPermission.ForItem", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("[prefix] <red>Für <aqua>[item] <red>fehlt dir die Permission <gold>[perm]<red>!"));
put(T2C_LanguageEnum.english, List.of("[prefix] <red>For <aqua>[item] <red>you lack the permission <gold>[perm]<red>!"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
ItemON("UseItem.UseItem_ON", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("[prefix] <dark_green>Du hast das GUI-Item aktiviert."));
put(T2C_LanguageEnum.english, List.of("[prefix] <dark_green>You have activated the GUI item."));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
ItemOFF("UseItem.UseItem_OFF", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("[prefix] <dark_green>Du hast das GUI-Item deaktiviert."));
put(T2C_LanguageEnum.english, List.of("[prefix] <dark_green>You have disabled the GUI item."));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
ItemSlot("UseItem.Change_Slot", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("[prefix] <dark_green>Du hast das GUI-Item auf Slot <gold>[slot] <dark_green>umgestellt."));
put(T2C_LanguageEnum.english, List.of("[prefix] <dark_green>You have changed the GUI item to slot: <gold>[slot]<dark_green>."));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
ItemSlotNotEmpty("UseItem.SlotNotEmpty", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("[prefix] <gold>Der Slot §e[slot] §6ist derzeit belegt!."));
put(T2C_LanguageEnum.english, List.of("[prefix] <gold>The slot <yellow>[slot] <gold>is currently occupied!"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
ItemSlotAlreadySet("UseItem.SlotAlreadySet", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("[prefix] <gold>Der Slot §e[slot] §6ist bereits eingestellt!"));
put(T2C_LanguageEnum.english, List.of("[prefix] <gold>The slot §e[slot] §6is already set!"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
ItemSlot_wrongValue("UseItem.ItemSlot_wrongValue", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("[prefix] <red>Der angegebene Slot muss sich zwischen 1 und 9 befinden!"));
put(T2C_LanguageEnum.english, List.of("[prefix] <red>The specified slot must be between 1 and 9!"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
UseItemDisabledInGameMode("UseItem.DisabledInGameMode", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("[prefix] <red>Das UseItem ist in diesem GameMode deaktiviert!"));
put(T2C_LanguageEnum.english, List.of("[prefix] <red>The UseItem is disabled in this GameMode!"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
UseItemDisabledInWorld("UseItem.DisabledInWorld", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("[prefix] <red>Das UseItem ist in dieser Welt deaktiviert!"));
put(T2C_LanguageEnum.english, List.of("[prefix] <red>The UseItem is disabled in this World!"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
Buy_msg("Cost.Buy_msg", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("[prefix] <dark_green>Du hast dir [itemname] <dark_green>für <gold>[price] <dark_green>gekauft."));
put(T2C_LanguageEnum.english, List.of("[prefix] <dark_green>You bought [itemname] <dark_green>for <gold>[price]<dark_green>."));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
noMoney("Cost.noMoney", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("<hover:show_text:'<red>Du benötigst [price].'>[prefix] <red>Du hast nicht genügend Geld!</hover>"));
put(T2C_LanguageEnum.english, List.of("<hover:show_text:'<red>You need: <gold>[price]<red>.'>[prefix] <red>You don't have enough money!</hover>"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
noMoneyItem("Cost.noItem", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("<hover:show_text:'<red>Du benötigst: <gold>[amount]<red>.'>[prefix] <red>Du hast nicht genügend Items von <gold>[item] <red>im Inventar!</hover>"));
put(T2C_LanguageEnum.english, List.of("<hover:show_text:'<red>You need: <gold>[amount]<red>.'>[prefix] <red>You don't have enough items of <gold>[item] <red>in your inventory!</hover>"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
noMoneyVote("Cost.noVote", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("<hover:show_text:'<red>Du benötigst: <gold>[amount]<red>.'>[prefix] <red>Du hast nicht genügend Vote Punkte!</hover>"));
put(T2C_LanguageEnum.english, List.of("<hover:show_text:'<red>You need: <gold>[amount]<red>.'>[prefix] <red>You do not have enough vote points!</hover>"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
NoInventorySpace("Cost.NoInventorySpace", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("[prefix] <red>Du hast keinen Platz in deinem Inventar!"));
put(T2C_LanguageEnum.english, List.of("[prefix] <red>You have no room in your inventory!"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
onServerChange("ServerChange.onServerChange", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("[prefix] <dark_green>Du wirst auf den Server §e[server] §2verbunden."));
put(T2C_LanguageEnum.english, List.of("[prefix] <dark_green>You will be connected to the server <yellow>[server]§2."));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
guiNotFound("GUI.GUInotFound", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("[prefix] <red>Die von die gew[ae]hlte GUI gibt es nicht."));
put(T2C_LanguageEnum.english, List.of("[prefix] <red>The GUI chosen by the does not exist."));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
GUIIsDisabled("GUI.GUIisDisabled", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("[prefix] <red>Die GUI [gui] <red>ist derzeit Deaktiviert!"));
put(T2C_LanguageEnum.english, List.of("[prefix] <red>The GUI [gui] <red>is currently Disabled!"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
Give_Sender("Give.Sender", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("[prefix] <dark_green>Du hast <gold>[player] <dark_green>ein [item] <dark_green>gegeben!"));
put(T2C_LanguageEnum.english, List.of("[prefix] <dark_green>You have given <gold>[player] <dark_green>an [item] <dark_green>!"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
Give_Receiver("Give.Receiver", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("[prefix] <dark_green>Du hast von <gold>[sender] <dark_green>, [item] <dark_green>bekommen!"));
put(T2C_LanguageEnum.english, List.of("[prefix] <dark_green>You got <dark_green>, [item] <dark_green>from <gold>[sender]!"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
PlayerNotFond("Player.PlayerNotFond", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("[prefix] <red>Der Spieler <gold>[player] <red>wurde nicht gefunden oder ist nicht Online!"));
put(T2C_LanguageEnum.english, List.of("[prefix] <red>The player <gold>[player] <red>was not found or is not online!"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
PlayerNoInventorySpace("Player.PlayerNoInventorySpace", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("[prefix] <gold>[player] <red>hat keinen freien Platz in seinem Inventar!"));
put(T2C_LanguageEnum.english, List.of("[prefix] <gold>[player] <red>has no free space in his inventory!"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
functionItemAdd("FunctionItem.Add", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("[prefix] <dark_green>Dir wurden <gold>[amount] [item] <dark_green>in dein Inventar gelegt."));
put(T2C_LanguageEnum.english, List.of("[prefix] <dark_green>You have <gold>[amount] [item] <dark_green>placed in your inventory."));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
functionItemRemove("FunctionItem.Remove", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("[prefix] <dark_green>Dir wurden <gold>[amount] [item] <dark_green>entfernt."));
put(T2C_LanguageEnum.english, List.of("[prefix] <dark_green>You have been <gold>[amount] [item] <dark_green>removed."));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
functionItemRemoveError("FunctionItem.RemoveError", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("<hover:show_text:'<red>Du benötigst <gold>[amount] [item]<red>!'>[prefix] <red>Du hast nicht so viele Items!</hover>"));
put(T2C_LanguageEnum.english, List.of("<hover:show_text:'<red>You need <gold>[amount] [item]<red>!'>[prefix] <red>You don't have so many items!</hover>"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
functionVoteAdd("FunctionVote.Add", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("[prefix] <dark_green>Dir wurden <gold>[amount] <dark_green>Vote Punkte gegeben."));
put(T2C_LanguageEnum.english, List.of("[prefix] <dark_green>You were given <gold>[amount] <dark_green>Vote points."));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
functionVoteRemove("FunctionVote.Remove", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("[prefix] <dark_green>Dir wurden <gold>[amount] <dark_green>Vote Punkte entfernt."));
put(T2C_LanguageEnum.english, List.of("[prefix] <dark_green>You have been removed <gold>[amount] <dark_green>Vote points."));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
functionVoteRemoveError("FunctionVote.RemoveError", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("<hover:show_text:'<red>Du benötigst <gold>[amount]<red>!'>[prefix] <red>Du hast nicht so viele VotePunkte!</hover>"));
put(T2C_LanguageEnum.english, List.of("<hover:show_text:'<red>You need <gold>[amount]<red>!'>[prefix] <red>You don't have so many VotePoints!</hover>"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
HelpCgui("Help.CGUI", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("<dark_gray>''<aqua>/commandgui <dark_gray>| <aqua>/cgui<dark_gray>'' <yellow>Öffne die default GUI <gray>(<yellow>[gui]<gray>)<yellow>."));
put(T2C_LanguageEnum.english, List.of("<dark_gray>''<aqua>/commandgui <dark_gray>| <aqua>/cgui<dark_gray>'' <yellow>Open the default GUI <gray>(<yellow>[gui]<gray>)<yellow>."));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
HelpHelp("Help.Help", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("<dark_gray>''<aqua>/commandguihelp<dark_gray>'' <yellow>Öffne diese help."));
put(T2C_LanguageEnum.english, List.of("<dark_gray>''<aqua>/commandguihelp<dark_gray>'' <yellow>Open this help."));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
HelpInfo("Help.Info", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("<dark_gray>''<aqua>/commandgui admin info<dark_gray>'' <yellow>Rufe die Infos von <dark_red>Command<blue>GUI <yellow>auf."));
put(T2C_LanguageEnum.english, List.of("<dark_gray>''<aqua>/commandgui admin info<dark_gray>'' <yellow>Call the info from <dark_red>Command<blue>GUI <yellow>."));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
HelpOpen("Help.Open", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("<dark_gray>''<aqua>/commandgui [gui]<dark_gray>'' <yellow>Öffne die GUI: <gold>[guiname]<yellow>."));
put(T2C_LanguageEnum.english, List.of("<dark_gray>''<aqua>/commandgui [gui]<dark_gray>'' <yellow>Open the GUI: <gold>[guiname]<yellow>."));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
HelpGive("Help.Give", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("<dark_gray>''<aqua>/commandgui admin give <gray><player><dark_gray>'' <yellow>Gebe einem Spieler das GUI-Item."));
put(T2C_LanguageEnum.english, List.of("<dark_gray>''<aqua>/commandgui admin give <gray><player><dark_gray>'' <yellow>Give a player the GUI item."));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
HelpCreateDefaultGUI("Help.CreateDefaultGUI", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("<dark_gray>''<aqua>/commandgui admin createdefaultgui<dark_gray>'' <yellow>Lasse eine default GUI erstellen <gray>([directory])<yellow>."));
put(T2C_LanguageEnum.english, List.of("<dark_gray>''<aqua>/commandgui admin createdefaultgui<dark_gray>'' <yellow>Create a default GUI <gray>([directory])<yellow>."));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
HelpReload("Help.Reload", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("<dark_gray>''<aqua>/commandgui admin reload<dark_gray>'' <yellow>Lade das Plugin neu."));
put(T2C_LanguageEnum.english, List.of("<dark_gray>''<aqua>/commandgui admin reload<dark_gray>'' <yellow>Reload the plugin."));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
GUIItemHelp_on("Help.UseItem_On", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("<dark_gray>''<aqua>/gui-item on<dark_gray>'' <yellow>Aktiviere für dich das GUIItem."));
put(T2C_LanguageEnum.english, List.of("<dark_gray>''<aqua>/gui-item on<dark_gray>'' <yellow>Activate the GUIItem for you."));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
GUIItemHelp_off("Help.UseItem_Off", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("<dark_gray>''<aqua>/gui-item off<dark_gray>'' <yellow>Deaktiviere für dich das GUIItem."));
put(T2C_LanguageEnum.english, List.of("<dark_gray>''<aqua>/gui-item off<dark_gray>'' <yellow>Disable the GUIItem for yourself."));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
GUIItemHelp_Slot("Help.UseItem_Slot", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("<dark_gray>''<aqua>/gui-item slot <gray><slot><dark_gray>'' <yellow>Stelle den Slot ein, auf den du das GUIItem haben möchtest."));
put(T2C_LanguageEnum.english, List.of("<dark_gray>''<aqua>/gui-item slot <gray><slot><dark_gray>'' <yellow>Set the slot where you want to have the GUIItem."));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
PlayerHelpCgui("Help.Player.CGUI", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("<hover:show_text:'<yellow>Öffne die default GUI <gray>(<yellow>[gui]<gray>)<yellow>.'><click:suggest_command:'/commandgui'><aqua>/commandgui <dark_gray>| <aqua>/cgui</click></hover>"));
put(T2C_LanguageEnum.english, List.of("<hover:show_text:'<yellow>Open the default GUI <gray>(<yellow>[gui]<gray>)<yellow>.'><click:suggest_command:'/commandgui'><aqua>/commandgui <dark_gray>| <aqua>/cgui</click></hover>"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
PlayerHelpHelp("Help.Player.Help", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("<hover:show_text:'<yellow>Öffne die GUI: <gold>[guiname]<yellow>.'><click:suggest_command:'/commandgui'><aqua>/commandgui [gui]</click></hover>"));
put(T2C_LanguageEnum.english, List.of("<hover:show_text:'<yellow>Open the GUI: <gold>[guiname]<yellow>.'><click:suggest_command:'/commandgui'><aqua>/commandgui [gui]</click></hover>"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
PlayerHelpInfo("Help.Player.Info", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("<hover:show_text:'<yellow>Öffne diese help.'><click:suggest_command:'/commandguihelp'><aqua>/commandguihelp</click></hover>"));
put(T2C_LanguageEnum.english, List.of("<hover:show_text:'<yellow>Open this help.'><click:suggest_command:'/commandguihelp'><aqua>/commandguihelp</click></hover>"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
PlayerHelpOpen("Help.Player.Open", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("<hover:show_text:'<yellow>Rufe die Infos von <dark_red>Command<blue>GUI <yellow>auf.'><click:suggest_command:'/commandgui admin info'><aqua>/commandgui admin info</click></hover>"));
put(T2C_LanguageEnum.english, List.of("<hover:show_text:'<yellow>Call the info from <dark_red>Command<blue>GUI <yellow>'><click:suggest_command:'/commandgui admin info'><aqua>/commandgui admin info</click></hover>"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
PlayerHelpGive("Help.Player.Give", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("<hover:show_text:'<yellow>Gebe einem Spieler das GUI-Item.'><click:suggest_command:'/commandgui admin give'><aqua>/commandgui admin give <gray><player></click></hover>"));
put(T2C_LanguageEnum.english, List.of("<hover:show_text:'<yellow>Give a player the GUI item.'><click:suggest_command:'/commandgui admin give'><aqua>/commandgui admin give <gray><player></click></hover>"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
PlayerHelpCreateDefaultGUI("Help.Player.CreateDefaultGUI", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("<hover:show_text:'<yellow>Lasse eine default GUI erstellen <gray>([directory])<yellow>.'><click:suggest_command:'/commandgui admin createdefaultgui'><aqua>/commandgui admin createdefaultgui</click></hover>"));
put(T2C_LanguageEnum.english, List.of("<hover:show_text:'<yellow>Create a default GUI <gray>([directory])<yellow>.'><click:suggest_command:'/commandgui admin createdefaultgui'><aqua>/commandgui admin createdefaultgui</click></hover>"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
PlayerHelpReload("Help.Player.Reload", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("<hover:show_text:'<yellow>Lade das Plugin neu.'><click:suggest_command:'/commandgui admin reload'><aqua>/commandgui admin reload</click></hover>"));
put(T2C_LanguageEnum.english, List.of("<hover:show_text:'<yellow>Reload the plugin.'><click:suggest_command:'/commandgui admin reload'><aqua>/commandgui admin reload</click></hover>"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
PlayerGUIItemHelp_on("Help.Player.UseItem_On", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("<hover:show_text:'<yellow>Aktiviere für dich das GUIItem.'><click:suggest_command:'/gui-item on'><aqua>/gui-item on</click></hover>"));
put(T2C_LanguageEnum.english, List.of("<hover:show_text:'<yellow>Activate the GUIItem for you.'><click:suggest_command:'/gui-item on'><aqua>/gui-item on</click></hover>"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
PlayerGUIItemHelp_off("Help.Player.UseItem_Off", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("<hover:show_text:'<yellow>Deaktiviere für dich das GUIItem.'><click:suggest_command:'/gui-item off'><aqua>/gui-item off</click></hover>"));
put(T2C_LanguageEnum.english, List.of("<hover:show_text:'<yellow>Disable the GUIItem for yourself.'><click:suggest_command:'/gui-item off'><aqua>/gui-item off</click></hover>"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
PlayerGUIItemHelp_Slot("Help.Player.UseItem_Slot", null,
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of("<hover:show_text:'<yellow>Stelle den Slot ein, auf den du das GUIItem haben möchtest.'><click:suggest_command:'/gui-item slot'><aqua>/gui-item slot <gray><slot></click></hover>"));
put(T2C_LanguageEnum.english, List.of("<hover:show_text:'<yellow>Set the slot where you want to have the GUIItem.'><click:suggest_command:'/gui-item slot'><aqua>/gui-item slot <gray><slot></click></hover>"));
}},
new HashMap<>() {{
put(T2C_LanguageEnum.german, List.of());
put(T2C_LanguageEnum.english, List.of());
}}),
;
private final String path;
private Object value;
private final HashMap<T2C_LanguageEnum, List<String>> lang;
private final HashMap<T2C_LanguageEnum, List<String>> comments;
VALUES(String path, Object value, HashMap<T2C_LanguageEnum, List<String>> lang, HashMap<T2C_LanguageEnum, List<String>> comments) {
this.path = path;
this.value = value;
this.lang = lang;
this.comments = comments;
}
@Override
public String getPath() {
return path;
}
@Override
public Object getValue() {
if (value == null) {
return lang.get(T2C_LanguageEnum.english);
}
return value;
}
@Override
public HashMap<T2C_LanguageEnum, List<String>> getLanguage() {
return lang;
}
@Override
public HashMap<T2C_LanguageEnum, List<String>> getComments() {
return comments;
}
@Override
public void setValue(Object newValue) {
value = T2C_Replace.replace(Config.VALUES.prefix.getValue().toString(), newValue.toString());
}
}
public static void set(boolean isReload) {
T2C_LanguageWriter.createConfig(Util.getPrefix(), Main.getPath(), VALUES.values(), Config.VALUES.language.getValue().toString(), isReload, Util.getConfigLogo());
}
}

View File

@ -1,9 +1,12 @@
package de.jatitv.commandguiv2.Spigot.system.database;
package net.t2code.commandguiv2.Spigot.database;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import de.jatitv.commandguiv2.Spigot.Main;
import net.t2code.lib.Spigot.Lib.messages.send;
import net.t2code.commandguiv2.Spigot.Main;
import net.t2code.commandguiv2.Spigot.config.config.Config;
import net.t2code.commandguiv2.Util;
import net.t2code.t2codelib.SPIGOT.api.debug.T2C_Debug;
import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Send;
import java.sql.*;
import java.time.ZoneId;
@ -12,13 +15,7 @@ import java.util.Calendar;
import java.util.HashMap;
public class MySQL {
public static String ip = "localhost";
public static Integer port = 3306;
public static String database;
public static String user = "root";
public static String password = "";
protected static String url;
public static Boolean SSL;
private static final HikariConfig config = new HikariConfig();
private static HikariDataSource ds;
@ -26,56 +23,60 @@ public class MySQL {
long long_ = System.currentTimeMillis();
Calendar now = Calendar.getInstance();
ZoneId timeZone = now.getTimeZone().toZoneId();
send.debug(Main.plugin, "Server TimeZone is : " + timeZone);
T2C_Debug.debug(Main.getPlugin(), "Server TimeZone is : " + timeZone);
try {
config.setJdbcUrl("jdbc:mysql://" + ip + ":" + port + "/" + database + "?useJDBCCompliantTimezoneShift=true&allowMultiQueries=true&useLegacyDatetimeCode=false&autoReconnect=true&serverTimezone=" + timeZone + "&useSSL=" + SSL);
config.setUsername(user);
config.setPassword(password);
config.setJdbcUrl("jdbc:mysql://" + Config.VALUES.mysqlIp.getValue().toString() + ":" + Config.VALUES.mysqlPort.getValue().toString() + "/" + Config.VALUES.mysqlDatabase.getValue().toString()
+ "?useJDBCCompliantTimezoneShift=true&allowMultiQueries=true&useLegacyDatetimeCode=false&autoReconnect=true&serverTimezone=" + timeZone
+ "&useSSL=" + Config.VALUES.mysqlSSL.getValue().toString());
config.setUsername(Config.VALUES.mysqlUser.getValue().toString());
config.setPassword(Config.VALUES.mysqlPassword.getValue().toString());
config.addDataSourceProperty("cachePrepStmts", "true");
config.addDataSourceProperty("prepStmtCacheSize", "250");
config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
ds = new HikariDataSource(config);
send.console(Main.prefix + " §2MYSQL successfully connected." + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
T2C_Send.sendStartTextCenter(Util.getPrefix(),"§2MYSQL successfully connected." + " §7- §e" + (System.currentTimeMillis() - long_) + "ms",false);
} catch (Exception ex) {
send.console(Main.prefix + " §4MYSQL not connected." + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
send.error(Main.plugin, ex.getMessage() + " --- " + (System.currentTimeMillis() - long_) + "ms");
T2C_Send.sendStartTextCenter(Util.getPrefix(),"§4MYSQL not connected." + " §7- §e" + (System.currentTimeMillis() - long_) + "ms",false);
T2C_Send.error(Main.getPlugin(), ex.getMessage() + " --- " + (System.currentTimeMillis() - long_) + "ms");
}
if ((boolean) Config.VALUES.debug.getValue() || Main.version.toLowerCase().contains("dev") || Main.version.toLowerCase().contains("beta") || Main.version.toLowerCase().contains("snapshot")) {
try {
T2C_Send.error(Main.getPlugin(), "MySQL DEBUG:");
Connection con = ds.getConnection();
DatabaseMetaData dbmd = con.getMetaData();
T2C_Debug.debugmsg(Main.getPlugin(), "§6Metadata of the database:");
T2C_Debug.debugmsg(Main.getPlugin(), "§6DB: §e" + dbmd.getDatabaseProductName());
T2C_Debug.debugmsg(Main.getPlugin(), "§6Version: §e" + dbmd.getDatabaseProductVersion());
T2C_Debug.debugmsg(Main.getPlugin(), "§6Driver: §e" + dbmd.getDriverName());
T2C_Debug.debugmsg(Main.getPlugin(), "§6Driver MajorVersion: §e" + dbmd.getDriverMajorVersion() + "." + dbmd.getDriverMinorVersion());
T2C_Debug.debugmsg(Main.getPlugin(), "§6Driver Version: §e" + dbmd.getDriverVersion());
con.close();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
//Bukkit.getConsoleSender().sendMessage((System.currentTimeMillis() - long_) + "ms");
}
public static void query(String query) {
public static void query(String query) throws SQLException {
if (ds == null) {
return;
}
send.debug(Main.plugin, query);
try (Connection con = ds.getConnection()) {
T2C_Debug.debug(Main.getPlugin(), query);
Connection con = ds.getConnection();
Statement stmt = con.createStatement();
stmt.execute(query);
stmt.close();
} catch (SQLException e) {
System.err.println(e.getMessage());
}
}
public static void query(ArrayList<String> queryList) {
try (Connection con = ds.getConnection()) {
Statement stmt = con.createStatement();
for (String query : queryList) {
send.debug(Main.plugin, query);
stmt.addBatch(query);
}
stmt.executeBatch();
stmt.close();
} catch (SQLException e) {
System.err.println(e.getMessage());
}
con.close();
}
public static HashMap<String, ArrayList<String>> selectAll(String query) {
send.debug(Main.plugin, query);
T2C_Debug.debug(Main.getPlugin(), query);
HashMap<String, ArrayList<String>> Result = new HashMap<>();
try (Connection con = ds.getConnection()) {
Statement stmt = con.createStatement();
@ -97,7 +98,7 @@ public class MySQL {
}
public static String select(String query) {
send.debug(Main.plugin, query);
T2C_Debug.debug(Main.getPlugin(), query);
String Ausgabe = "";
try (Connection con = ds.getConnection()) {
Statement stmt = con.createStatement();
@ -114,7 +115,7 @@ public class MySQL {
}
public static int count(String query) {
send.debug(Main.plugin, query);
T2C_Debug.debug(Main.getPlugin(), query);
int count = 0;
try (Connection con = ds.getConnection()) {
Statement stmt = con.createStatement();
@ -131,7 +132,7 @@ public class MySQL {
}
public static ArrayList<String> selectRow(String query) {
send.debug(Main.plugin, query);
T2C_Debug.debug(Main.getPlugin(), query);
ArrayList<String> Result = new ArrayList<>();
try (Connection con = ds.getConnection()) {
Statement stmt = con.createStatement();

View File

@ -1,8 +1,9 @@
package de.jatitv.commandguiv2.Spigot.system.database;
package net.t2code.commandguiv2.Spigot.database;
import de.jatitv.commandguiv2.Spigot.Main;
import de.jatitv.commandguiv2.Util;
import net.t2code.lib.Spigot.Lib.messages.send;
import net.t2code.commandguiv2.Spigot.Main;
import net.t2code.commandguiv2.Util;
import net.t2code.t2codelib.SPIGOT.api.debug.T2C_Debug;
import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Send;
import org.bukkit.Bukkit;
import java.io.File;
@ -20,15 +21,15 @@ public class SQLITE {
if (!directory.exists()) {
directory.mkdir();
}
url = "jdbc:sqlite:" + Main.plugin.getDataFolder() + "/Storage/data.db";
url = "jdbc:sqlite:" + Main.getPlugin().getDataFolder() + "/Storage/data.db";
con = DriverManager.getConnection(url);
Bukkit.getConsoleSender().sendMessage(Util.getPrefix() + " §2SQLITE successfully connected." + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
T2C_Send.sendStartTextCenter(Util.getPrefix(),"§2SQLITE successfully connected." + " §7- §e" + (System.currentTimeMillis() - long_) + "ms",false);
DatabaseMetaData dbmd = con.getMetaData();
}
public static void query(String query) {
send.debug(Main.plugin, query);
T2C_Debug.debug(Main.getPlugin(), query);
try {
Statement stmt = con.createStatement();
stmt.execute(query);
@ -42,7 +43,7 @@ public class SQLITE {
try {
Statement stmt = con.createStatement();
for (String query : queryList) {
send.debug(Main.plugin, query);
T2C_Debug.debug(Main.getPlugin(), query);
stmt.addBatch(query);
}
stmt.executeBatch();
@ -54,7 +55,7 @@ public class SQLITE {
public static HashMap<String, ArrayList<String>> selectAll(String query) {
send.debug(Main.plugin, query);
T2C_Debug.debug(Main.getPlugin(), query);
HashMap<String, ArrayList<String>> Result = new HashMap<>();
try {
Statement stmt = con.createStatement();
@ -76,7 +77,7 @@ public class SQLITE {
}
public static String select(String query) {
send.debug(Main.plugin, query);
T2C_Debug.debug(Main.getPlugin(), query);
String Ausgabe = "";
try {
Statement stmt = con.createStatement();
@ -93,7 +94,7 @@ public class SQLITE {
}
public static int count(String query) {
send.debug(Main.plugin, query);
T2C_Debug.debug(Main.getPlugin(), query);
int count = 0;
try {
Statement stmt = con.createStatement();
@ -110,7 +111,7 @@ public class SQLITE {
}
public static ArrayList<String> selectRow(String query) {
send.debug(Main.plugin, query);
T2C_Debug.debug(Main.getPlugin(), query);
ArrayList<String> Result = new ArrayList<>();
try {
Statement stmt = con.createStatement();

View File

@ -1,25 +1,33 @@
package de.jatitv.commandguiv2.Spigot.system.database;
package net.t2code.commandguiv2.Spigot.database;
import de.jatitv.commandguiv2.Spigot.Listener.UseItem_Listener.Events;
import de.jatitv.commandguiv2.Spigot.config.config.SelectConfig;
import net.t2code.commandguiv2.Spigot.useItem.Events;
import net.t2code.commandguiv2.Spigot.Main;
import net.t2code.commandguiv2.Spigot.enums.StorageEnum;
import org.bukkit.entity.Player;
import java.sql.SQLException;
public class SelectDatabase {
private static StorageType Storage;
private static StorageEnum Storage;
public static StorageType getStorage() {
public static StorageEnum getStorage() {
return Storage;
}
public static void setStorage(StorageType storage) {
public static void setStorage(StorageEnum storage) {
Storage = storage;
}
public static void nameCheck(Player player) {
switch (Storage) {
case MYSQL:
try {
MySQL.query("UPDATE `gui-item` SET Name='" + player.getName() + "' WHERE UUID='" + player.getUniqueId() + "';");
} catch (SQLException e) {
Main.sendTryCatch(SelectDatabase.class, e.getStackTrace()[0]);
e.printStackTrace();
}
break;
case YML:
@ -34,8 +42,13 @@ public class SelectDatabase {
public static void setSlot(Player player, Integer slot) {
switch (Storage) {
case MYSQL:
try {
MySQL.query("INSERT INTO `gui-item` (`UUID`, `Name`, `Slot`) VALUES ('" + player.getUniqueId() + "', '" + player.getName()
+ "','" + slot + "') ON DUPLICATE KEY UPDATE `Name` = '" + player.getName() + "', `Slot` = '" + slot + "';");
} catch (SQLException e) {
Main.sendTryCatch(SelectDatabase.class, e.getStackTrace()[0]);
e.printStackTrace();
}
break;
case YML:
YML.setGuiitemSlot(player, slot);
@ -49,11 +62,16 @@ public class SelectDatabase {
}
public static void setItemStatusTrue(Player player) {
Events.useItemHashMap.replace(player, true);
Events.useItemHashMap.replace(player.getName(), true);
switch (Storage) {
case MYSQL:
try {
MySQL.query("INSERT INTO `gui-item` (`UUID`, `Name`) VALUES ('" + player.getUniqueId() + "', '" + player.getName()
+ "') ON DUPLICATE KEY UPDATE `Name` = '" + player.getName() + "', `Status` = '1';");
} catch (SQLException e) {
Main.sendTryCatch(SelectDatabase.class, e.getStackTrace()[0]);
e.printStackTrace();
}
break;
case YML:
YML.setGuiitemOn(player);
@ -67,11 +85,16 @@ public class SelectDatabase {
}
public static void setItemStatusFalse(Player player) {
Events.useItemHashMap.replace(player, false);
Events.useItemHashMap.replace(player.getName(), false);
switch (Storage) {
case MYSQL:
try {
MySQL.query("INSERT INTO `gui-item` (`UUID`, `Name`, `Status`) VALUES ('" + player.getUniqueId() + "', '" + player.getName()
+ "', '0') ON DUPLICATE KEY UPDATE `Name` = '" + player.getName() + "', `Status` = '0';");
} catch (SQLException e) {
Main.sendTryCatch(SelectDatabase.class, e.getStackTrace()[0]);
e.printStackTrace();
}
break;
case YML:
YML.setGuiitemOff(player);

View File

@ -1,7 +1,7 @@
package de.jatitv.commandguiv2.Spigot.system.database;
package net.t2code.commandguiv2.Spigot.database;
import de.jatitv.commandguiv2.Spigot.Main;
import net.t2code.lib.Spigot.Lib.messages.send;
import net.t2code.commandguiv2.Spigot.Main;
import net.t2code.t2codelib.SPIGOT.api.debug.T2C_Debug;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
@ -11,7 +11,7 @@ import java.io.IOException;
public class YML {
private static final Plugin plugin = Main.plugin;
private static final Plugin plugin = Main.getPlugin();
public static File storage = new File(Main.getPath(), "Storage/gui-item.yml");
public static YamlConfiguration yamlConfigurationStorage = YamlConfiguration.loadConfiguration(storage);
@ -56,11 +56,11 @@ public class YML {
public static Integer selectSlot(Player player) {
send.debug(plugin, "yml-1");
T2C_Debug.debug(plugin, "yml-1");
if (!yamlConfigurationStorage.contains(String.valueOf(player.getUniqueId()))) return null;
if (yamlConfigurationStorage.getString(player.getUniqueId() + ".Slot") == null) return null;
send.debug(plugin, "yml-2");
send.debug(plugin, String.valueOf(yamlConfigurationStorage.getInt(player.getUniqueId() + ".Slot")));
T2C_Debug.debug(plugin, "yml-2");
T2C_Debug.debug(plugin, String.valueOf(yamlConfigurationStorage.getInt(player.getUniqueId() + ".Slot")));
return yamlConfigurationStorage.getInt(player.getUniqueId() + ".Slot");
}
}

View File

@ -0,0 +1,7 @@
package net.t2code.commandguiv2.Spigot.enums;
public enum EcoEnum {
VAULT, MONEY,
ITEM,
VOTEPOINTS
}

View File

@ -0,0 +1,6 @@
package net.t2code.commandguiv2.Spigot.enums;
public enum FunctionItemEnum {
REMOVE, ADD
}

View File

@ -0,0 +1,5 @@
package net.t2code.commandguiv2.Spigot.enums;
public enum FunctionVoteEnum {
REMOVE, ADD
}

View File

@ -0,0 +1,10 @@
package net.t2code.commandguiv2.Spigot.enums;
public enum SoundEnum {
OpenInventory,
Click,
NoMoney,
NoInventorySpace,
Give,
PlayerNotFound
}

View File

@ -0,0 +1,7 @@
package net.t2code.commandguiv2.Spigot.enums;
public enum StorageEnum {
MYSQL,
SQLITE,
YML
}

View File

@ -0,0 +1,384 @@
package net.t2code.commandguiv2.Spigot.gui;
import net.t2code.commandguiv2.Spigot.config.config.Config;
import net.t2code.commandguiv2.Spigot.config.languages.Languages;
import net.t2code.commandguiv2.Spigot.listener.ServerChange;
import net.t2code.commandguiv2.Spigot.useItem.Events;
import net.t2code.commandguiv2.Spigot.objects.Function;
import net.t2code.commandguiv2.Spigot.cmdManagement.Commands;
import net.t2code.commandguiv2.Spigot.objects.Slot;
import net.t2code.commandguiv2.Spigot.listener.Bungee_Sender_Reciver;
import net.t2code.commandguiv2.Spigot.objects.Gui;
import net.t2code.commandguiv2.Spigot.Main;
import net.t2code.commandguiv2.Spigot.system.Placeholder;
import net.t2code.commandguiv2.Spigot.sound.Sound;
import net.t2code.commandguiv2.Spigot.enums.SoundEnum;
import net.t2code.commandguiv2.Util;
import net.t2code.t2codelib.SPIGOT.api.eco.T2C_Eco;
import net.t2code.t2codelib.SPIGOT.api.items.T2C_ItemVersion;
import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Replace;
import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Send;
import net.t2code.t2codelib.SPIGOT.system.config.config.T2C_LibConfig;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.Plugin;
import org.bukkit.scheduler.BukkitRunnable;
import java.io.File;
import java.io.IOException;
public class GUIListener implements Listener {
private static String prefix = Util.getPrefix();
public static String GUICode;
private static Plugin plugin = Main.getPlugin();
@EventHandler
public void onInventoryClick(InventoryClickEvent e) {
Player player = (Player) e.getWhoClicked();
if (e.getInventory() == null) return;
if (e.getCurrentItem() == null) return;
for (Gui gui : Main.guiHashMap.values()) {
if (player.getOpenInventory().getTitle().equals(T2C_Replace.replace(prefix, GUICode + gui.guiName))
|| (Main.PaPi && player.getOpenInventory().getTitle().equals(T2C_Replace.replace(prefix, player, GUICode + gui.guiName)))) {
e.setCancelled(true);
if (player.getOpenInventory().getTopInventory() != e.getClickedInventory()) {
continue;
}
for (Slot slot : gui.slots) {
execute(e, slot, player, gui);
}
}
}
}
private static void execute(InventoryClickEvent e, Slot slot, Player player, Gui gui) {
if (e.getSlot() != slot.slot) return;
Function function = Main.functionHashMap.get(slot.function);
if (slot.permission && !player.hasPermission(slot.permissionToSee)) return;
if (function.closeGUI_Enable) closeGUI(player);
if (slot.permission && !player.hasPermission(slot.permissionToUse)) {
if (function.noPermMessageEnable) {
if (function.customNoPermMessage == null || function.customNoPermMessage.equals("")) {
T2C_Send.player(player, Languages.VALUES.NoPermissionForItem.getValue().toString().replace("[item]", T2C_Replace.replace(prefix, function.name))
.replace("[perm]", slot.permissionToUse));
} else T2C_Send.player(player, function.customNoPermMessage.replace("[item]", T2C_Replace.replace(prefix, function.name))
.replace("[perm]", slot.permissionToUse));
}
return;
}
if (e.getCurrentItem().getType() == T2C_ItemVersion.getHead() || e.getCurrentItem().getType() == T2C_ItemVersion.getGreenWool().getType() ||
e.getCurrentItem().getType() == T2C_ItemVersion.getRedWool().getType() ||
e.getCurrentItem().getType() == Material.valueOf(function.item.toUpperCase().replace(".", "_"))) {
if (!slot.enable) return;
if (function.cost_Enable) {
if (functions(function)) {
eco(e, slot, player, gui, function);
}
} else {
execute(function, slot, player, e, gui);
}
}
}
private static boolean functions(Function function) {
if (function.togglePermission) return true;
if (function.toggleUseItem) return true;
if (function.command_Enable) return true;
if (function.openGUI_Enable) return true;
if (function.closeGUI_Enable) return true;
if (function.message_Enable) return true;
if (function.serverChange) return true;
if (function.setConfigEnable) return true;
if (function.functionVotePoints) return true;
return function.functionItem;
}
private static void execute(Function function, Slot slot, Player player, InventoryClickEvent e, Gui gui) {
if (function.togglePermission) togglePerm(function, gui, player);
if (function.toggleUseItem) toggleUseItem(player, gui);
if (function.command_Enable) command(function, player);
if (function.openGUI_Enable) openGUI(function, player);
if (function.message_Enable) message(function, player);
if (function.serverChange) serverChange(function, player);
if (function.setConfigEnable) setConfig(function, player, e);
if (function.functionVotePoints) votePoints(e, function, player);
if (function.functionItem) item(function, player);
try {
Sound.play(player, SoundEnum.Click, function, slot, gui);
} catch (Exception ex) {
throw new RuntimeException(ex);
}
}
private static void command(Function slot, Player player) {
player.closeInventory();
new BukkitRunnable() {
@Override
public void run() {
if (slot.command_BungeeCommand) {
if ((boolean) T2C_LibConfig.VALUES.proxy.getValue()) {
for (String cmd : slot.command) {
Bungee_Sender_Reciver.sendToBungee(player, cmd.replace("[player]", player.getName()), slot.commandAsConsole);
}
} else {
T2C_Send.console(prefix + " §4To use bungee commands, enable the Bungee option in the config.");
T2C_Send.player(player, prefix + " §4To use bungee commands, enable the Bungee option in the config.");
}
} else {
for (String cmd : slot.command) {
if (slot.commandAsConsole) {
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), cmd.replace("[player]", player.getName()));
} else player.chat("/" + cmd.replace("[player]", player.getName()));
}
}
}
}.runTaskLater(plugin, 2L);
}
private static void openGUI(Function slot, Player player) {
player.closeInventory();
new BukkitRunnable() {
@Override
public void run() {
OpenGUI.openGUI(player, slot.openGUI, true);
}
}.runTaskLater(plugin, 1L);
}
private static void closeGUI(Player player){
player.closeInventory();
}
private static void message(Function slot, Player player) {
player.closeInventory();
for (String msg : slot.message) {
if (Main.PaPi) {
if (slot.cost_Enable) {
T2C_Send.player(player, T2C_Replace.replacePrice(prefix, player, Placeholder.replace(msg, player), slot.price + " " + Config.VALUES.currency.getValue().toString()));
} else T2C_Send.player(player, T2C_Replace.replace(prefix, player, Placeholder.replace(msg, player)));
} else {
if (slot.cost_Enable) {
T2C_Send.player(player, T2C_Replace.replacePrice(prefix, Placeholder.replace(msg, player), slot.price + " " + Config.VALUES.currency.getValue().toString()));
} else T2C_Send.player(player, T2C_Replace.replace(prefix, Placeholder.replace(msg, player)));
}
}
}
private static void serverChange(Function slot, Player player) {
new BukkitRunnable() {
@Override
public void run() {
player.closeInventory();
}
}.runTaskLater(plugin, 1L);
T2C_Send.player(player, Languages.VALUES.onServerChange.getValue().toString().replace("[server]", slot.serverChangeServer));
new BukkitRunnable() {
@Override
public void run() {
ServerChange.send(player, slot.serverChangeServer);
}
}.runTaskLater(Main.getPlugin(), 20L);
}
private static void setConfig(Function slot, Player player, InventoryClickEvent e) {
File config = new File(slot.configFilePath);
YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config);
if (e.getClick() == ClickType.LEFT) {
switch (slot.configOptionPremat) {
case "String":
yamlConfiguration.set(slot.configOptionPath.replace("/", "."), slot.configStringValueLeft);
break;
case "Boolean":
yamlConfiguration.set(slot.configOptionPath.replace("/", "."), slot.configBooleanValueLeft);
break;
case "Integer":
yamlConfiguration.set(slot.configOptionPath.replace("/", "."), slot.configIntegerValueLeft);
break;
case "Double":
yamlConfiguration.set(slot.configOptionPath.replace("/", "."), slot.configDoubleValueLeft);
break;
case "List":
yamlConfiguration.set(slot.configOptionPath.replace("/", "."), slot.configListValueLeft);
break;
default:
T2C_Send.player(player, "§cCheck the Option §6SetConfig/Option/Premat"); //todo
break;
}
}
if (e.getClick() == ClickType.RIGHT) {
switch (slot.configOptionPremat) {
case "String":
yamlConfiguration.set(slot.configOptionPath.replace("/", "."), slot.configStringValueRight);
break;
case "Boolean":
yamlConfiguration.set(slot.configOptionPath.replace("/", "."), slot.configBooleanValueRight);
break;
case "Integer":
yamlConfiguration.set(slot.configOptionPath.replace("/", "."), slot.configIntegerValueRight);
break;
case "Double":
yamlConfiguration.set(slot.configOptionPath.replace("/", "."), slot.configDoubleValueRight);
break;
case "List":
yamlConfiguration.set(slot.configOptionPath.replace("/", "."), slot.configListValueRight);
break;
default:
T2C_Send.player(player, "§cCheck the Option §6SetConfig/Option/Premat"); //todo
break;
}
}
try {
yamlConfiguration.save(config);
} catch (IOException tac) {
tac.printStackTrace();
}
if (slot.pluginReloadEnable) {
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), slot.pluginReloadCommand);
}
new BukkitRunnable() {
@Override
public void run() {
player.closeInventory();
}
}.runTaskLater(plugin, 1L);
}
private static void togglePerm(Function function, Gui gui, Player player) {
if (player.hasPermission(function.togglePermissionPerm)) {
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), Config.VALUES.togglePermFalse.getValue().toString().replace("[player]", player.getName()).replace("[perm]", function.togglePermissionPerm));
new BukkitRunnable() {
@Override
public void run() {
player.closeInventory();
OpenGUI.openGUI(player, gui.key, false);
}
}.runTaskLater(plugin, 4L);
} else
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), Config.VALUES.togglePermTrue.getValue().toString().replace("[player]", player.getName()).replace("[perm]", function.togglePermissionPerm));
new BukkitRunnable() {
@Override
public void run() {
player.closeInventory();
OpenGUI.openGUI(player, gui.key, false);
}
}.runTaskLater(plugin, 4L);
}
private static void toggleUseItem(Player player, Gui gui) {
if (!(boolean)Config.VALUES.useItemAllowToggle.getValue()) {
T2C_Send.sender(player, "§4UseItem toggle is disabled!");
return;
}
if (Events.useItemHashMap.get(player.getName())) {
Commands.itemOff(player);
} else {
Commands.itemOn(player);
}
new BukkitRunnable() {
@Override
public void run() {
player.closeInventory();
OpenGUI.openGUI(player, gui.key, false);
}
}.runTaskLater(plugin, 2L);
}
private static void votePoints(InventoryClickEvent e, Function function, Player player) {
player.closeInventory();
switch (function.functionVotePointsMode) {
case ADD:
T2C_Eco.votePointsAdd(prefix, player, function.functionVotePointsAmount);
T2C_Send.player(player, Languages.VALUES.functionVoteAdd.getValue().toString().replace("[amount]", function.functionVotePointsAmount.toString()));
break;
case REMOVE:
if (T2C_Eco.votePointsRemove(prefix, player, function.functionVotePointsAmount)) {
T2C_Send.player(player, Languages.VALUES.functionVoteRemove.getValue().toString().replace("[amount]", function.functionVotePointsAmount.toString()));
} else T2C_Send.player(player, Languages.VALUES.functionVoteRemoveError.getValue().toString().replace("[amount]", function.functionVotePointsAmount.toString()));
break;
}
}
private static void item(Function function, Player player) {
String[] item = function.functionItemItem.split(";");
player.closeInventory();
switch (function.functionItemMode) {
case ADD:
T2C_Eco.itemAdd(player, new ItemStack(Material.valueOf(item[0])), Integer.parseInt(item[1]));
T2C_Send.player(player, Languages.VALUES.functionItemAdd.getValue().toString().replace("[amount]", item[1]).replace("[item]", item[0]));
break;
case REMOVE:
if (T2C_Eco.itemRemove(player, item[0], Integer.parseInt(item[1]))) {
T2C_Send.player(player, Languages.VALUES.functionItemRemove.getValue().toString().replace("[amount]", item[1]).replace("[item]", item[0]));
} else T2C_Send.player(player, Languages.VALUES.functionItemRemoveError.getValue().toString().replace("[amount]", item[1]));
break;
}
}
private static void eco(InventoryClickEvent e, Slot slot, Player player, Gui gui, Function function) {
switch (function.ecoModule) {
case ITEM:
String[] item = function.ecoItem.split(";");
if (!T2C_Eco.itemRemove(player, item[0], Integer.parseInt(item[1]))) {
new BukkitRunnable() {
@Override
public void run() {
player.closeInventory();
}
}.runTaskLater(plugin, 1L);
T2C_Send.player(player, Languages.VALUES.noMoneyItem.getValue().toString().replace("[item]", item[0]).replace("[amount]", item[1]));
Sound.play(player, SoundEnum.NoMoney);
} else {
T2C_Send.player(player, Languages.VALUES.Buy_msg.getValue().toString().replace("[itemname]", T2C_Replace.replace(prefix, function.name))
.replace("[price]", item[1] + " " + item[0]));
execute(function, slot, player, e, gui);
}
break;
case VOTEPOINTS:
if (T2C_Eco.votePointsRemove(prefix, player, function.votePoints)) {
T2C_Send.player(player, Languages.VALUES.Buy_msg.getValue().toString().replace("[itemname]", T2C_Replace.replace(prefix, function.name))
.replace("[price]", function.votePoints + " VotePoints"));
execute(function, slot, player, e, gui);
} else {
new BukkitRunnable() {
@Override
public void run() {
player.closeInventory();
}
}.runTaskLater(plugin, 1L);
T2C_Send.player(player, Languages.VALUES.noMoneyVote.getValue().toString().replace("[amount]", function.votePoints.toString()));
Sound.play(player, SoundEnum.NoMoney);
}
break;
case VAULT:
case MONEY:
if (T2C_Eco.moneyRemove(prefix, player, function.price)) {
T2C_Send.player(player, Languages.VALUES.Buy_msg.getValue().toString().replace("[itemname]", T2C_Replace.replace(prefix, function.name))
.replace("[price]", function.price + " " + Config.VALUES.currency.getValue().toString()));
execute(function, slot, player, e, gui);
} else {
new BukkitRunnable() {
@Override
public void run() {
player.closeInventory();
}
}.runTaskLater(plugin, 1L);
T2C_Send.player(player, T2C_Replace.replacePrice(prefix, Languages.VALUES.noMoney.getValue().toString(), String.valueOf(function.price)));
Sound.play(player, SoundEnum.NoMoney);
}
break;
}
}
}

View File

@ -0,0 +1,126 @@
package net.t2code.commandguiv2.Spigot.gui;
import net.t2code.commandguiv2.Spigot.Main;
import net.t2code.commandguiv2.Spigot.config.config.Config;
import net.t2code.commandguiv2.Spigot.objects.Gui;
import net.t2code.commandguiv2.Spigot.objects.Function;
import net.t2code.commandguiv2.Spigot.objects.Slot;
import net.t2code.commandguiv2.Spigot.system.Placeholder;
import net.t2code.commandguiv2.Util;
import net.t2code.t2codelib.SPIGOT.api.items.T2C_ItemBuilder;
import net.t2code.t2codelib.SPIGOT.api.items.T2C_ItemVersion;
import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Replace;
import net.t2code.t2codelib.SPIGOT.api.minecraftVersion.T2C_McVersion;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.inventory.meta.SkullMeta;
public class GuiBuilder {
private static String prefix = Util.getPrefix();
protected static void item(Slot slot, Player player, Inventory inventory) {
Function function = Main.functionHashMap.get(slot.function);
ItemStack item;
if (Main.legacy && function.item.toUpperCase().contains(",")) {
String[] split = function.item.toUpperCase().split(",");
item = new ItemStack(Material.valueOf(split[0]), 1, Short.parseShort(split[1]));
} else item = new ItemStack(Material.valueOf(function.item.toUpperCase().replace(".", "_")));
ItemMeta itemMeta = item.getItemMeta();
setDisplayNameAndLore(itemMeta, player, slot);
item.setItemMeta(itemMeta);
Integer am;
if (function.itemAmount == 0) {
am = 1;
} else am = function.itemAmount;
item.setAmount(am);
inventory.setItem(slot.slot, item);
}
protected static void item(String material, Slot slot, Player player, Inventory inventory) {
Function function = Main.functionHashMap.get(slot.function);
ItemStack item;
if (Main.legacy && material.contains(",")) {
String[] split = material.split(",");
item = new ItemStack(Material.valueOf(split[0]), 1, Short.parseShort(split[1]));
} else item = new ItemStack(Material.valueOf(material));
ItemMeta itemMeta = item.getItemMeta();
setDisplayNameAndLore(itemMeta, player, slot);
item.setItemMeta(itemMeta);
Integer am;
if (function.itemAmount == 0) {
am = 1;
} else am = function.itemAmount;
item.setAmount(am);
inventory.setItem(slot.slot, item);
}
private static void setDisplayNameAndLore(ItemMeta itemMeta, Player player, Slot slot) {
Function function = Main.functionHashMap.get(slot.function);
if (Main.PaPi) {
itemMeta.setDisplayName(T2C_Replace.replace(prefix, player, Placeholder.replace(function.name, player)));
if (slot.permission && !player.hasPermission(slot.permissionToUse) && function.noPermLoreEnable) {
itemMeta.setLore(T2C_Replace.replacePrice(prefix, player, Placeholder.replace(function.noPermLore, player), function.price + " " + Config.VALUES.currency.getValue().toString()));
} else itemMeta.setLore(T2C_Replace.replacePrice(prefix, player, Placeholder.replace(function.lore, player), function.price + " " + Config.VALUES.currency.getValue().toString()));
} else {
itemMeta.setDisplayName(T2C_Replace.replace(prefix, Placeholder.replace(function.name, player)));
if (slot.permission && !player.hasPermission(slot.permissionToUse) && function.noPermLoreEnable) {
itemMeta.setLore(T2C_Replace.replacePrice(prefix, Placeholder.replace(function.noPermLore, player), function.price + " " + Config.VALUES.currency.getValue().toString()));
} else itemMeta.setLore(T2C_Replace.replacePrice(prefix, Placeholder.replace(function.lore, player), function.price + " " + Config.VALUES.currency.getValue().toString()));
}
}
protected static void base64(String base64Value, Slot slot, Player player, Inventory inventory) {
Function function = Main.functionHashMap.get(slot.function);
ItemStack item = T2C_ItemBuilder.base64(base64Value);
SkullMeta itemMeta = (SkullMeta) item.getItemMeta();
setDisplayNameAndLore(itemMeta, player, slot);
item.setItemMeta(itemMeta);
Integer am;
if (function.itemAmount == 0) {
am = 1;
} else am = function.itemAmount;
item.setAmount(am);
inventory.setItem(slot.slot, item);
}
protected static void base64(Slot slot, Player player, Inventory inventory) {
Function function = Main.functionHashMap.get(slot.function);
base64(function.base64Value, slot, player, inventory);
}
protected static void playerHead(Slot slot, Player player, Inventory inventory, String skullName) {
Function function = Main.functionHashMap.get(slot.function);
ItemStack item = T2C_ItemVersion.getHeadIS();
SkullMeta itemMeta = (SkullMeta) item.getItemMeta();
setDisplayNameAndLore(itemMeta, player, slot);
itemMeta.setOwner(skullName);
item.setItemMeta(itemMeta);
Integer am;
if (function.itemAmount == 0) {
am = 1;
} else am = function.itemAmount;
item.setAmount(am);
inventory.setItem(slot.slot, item);
}
public static void fillItem(Inventory inventory, Gui gui) {
ItemStack glass;
if (T2C_McVersion.isMc1_8() || T2C_McVersion.isMc1_9() || T2C_McVersion.isMc1_10() || T2C_McVersion.isMc1_11() || T2C_McVersion.isMc1_12()) {
glass = new ItemStack(Material.valueOf("STAINED_GLASS_PANE"), 1, Short.parseShort(gui.guiFillItemItem));
} else glass = new ItemStack(Material.valueOf(gui.guiFillItemItem.toUpperCase().replace(".", "_")));
ItemMeta itemMetaglass = glass.getItemMeta();
itemMetaglass.setDisplayName(" ");
glass.setItemMeta(itemMetaglass);
glass.setAmount(1);
for (int i = 0; i < 9 * gui.guiLines; i++) {
inventory.setItem(i, glass);
}
}
}

View File

@ -0,0 +1,158 @@
package net.t2code.commandguiv2.Spigot.gui;
import net.t2code.commandguiv2.Spigot.config.config.Config;
import net.t2code.commandguiv2.Spigot.config.languages.Languages;
import net.t2code.commandguiv2.Spigot.system.Permissions;
import net.t2code.commandguiv2.Spigot.useItem.Events;
import net.t2code.commandguiv2.Spigot.Main;
import net.t2code.commandguiv2.Spigot.objects.Function;
import net.t2code.commandguiv2.Spigot.objects.Gui;
import net.t2code.commandguiv2.Spigot.objects.Slot;
import net.t2code.commandguiv2.Spigot.sound.Sound;
import net.t2code.commandguiv2.Spigot.enums.SoundEnum;
import net.t2code.commandguiv2.Util;
import io.github.solyze.plugmangui.inventories.PluginListGUI;
import net.t2code.luckyBox.api.LuckyBoxAPI;
import net.t2code.t2codelib.SPIGOT.api.debug.T2C_Debug;
import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Replace;
import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Send;
import net.t2code.t2codelib.SPIGOT.api.minecraftVersion.T2C_McVersion;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.Plugin;
public class OpenGUI {
private static final Plugin plugin = Main.getPlugin();
private static final String prefix = Util.getPrefix();
public static void openGUI(Player player, String guiString, Boolean sound) {
if (!Main.guiHashMap.containsKey(guiString)) {
T2C_Send.player(player, Languages.VALUES.guiNotFound.getValue().toString());
T2C_Send.error(Main.getPlugin(), "");
T2C_Send.console(Util.getPrefix() + " <red>The gui <gold>[gui]</gold> that the player <gold>[player]</gold> wanted to open does not exist!".replace("[gui]", guiString).replace("[player]", player.getName()));
T2C_Send.error(Main.getPlugin(), "");
return;
}
Gui gui = Main.guiHashMap.get(guiString);
long long_ = System.currentTimeMillis();
switch (guiString) {
//case "plugin.PlotSquaredGUI":
// if (Main.PlotSquaredGUI) {
// PlotSquaredGUIapi.openMainGUI(player);
// } else {
// if (player.hasPermission("commandgui.admin")) {
// send.player(player, prefix + " §4PlotSquaredGUI could not be found! §9Please download it here: " +
// "§6https://spigotmc.org/resources/plotsquaredgui.77506/");
// }
// }
// return; todo
case "plugin.PlugManGUI":
if (Main.PlugManGUI) {
player.openInventory((new PluginListGUI(54, 1)).getInventory());
} else {
if (player.hasPermission(Permissions.admin)) {
T2C_Send.player(player, prefix + " §4PlugManGUI could not be found! §9Please download it here: " +
"§6https://spigotmc.org/resources/plugmangui.87599/");
}
}
return;
case "plugin.T2C-LuckyBox":
if (Main.LuckyBox) {
LuckyBoxAPI.openShop(player);
} else {
if (player.hasPermission(Permissions.admin)) {
T2C_Send.player(player, prefix + " §4T2C-LuckyBox could not be found! §9Please download it here: " +
"§6https://www.spigotmc.org/resources/luckybox.98154/");
}
}
return;
}
if (T2C_McVersion.isMc1_13()) {
GUIListener.GUICode = "";
} else GUIListener.GUICode = "§6§8§9§r";
if (gui.guiEnable || player.hasPermission(Permissions.updatemsg)) {
Inventory inventory;
if (Main.PaPi) {
inventory = Bukkit.createInventory((InventoryHolder) null, 9 * gui.guiLines, (T2C_Replace.replace(prefix, player, GUIListener.GUICode + gui.guiName)));
} else inventory = Bukkit.createInventory((InventoryHolder) null, 9 * gui.guiLines, (T2C_Replace.replace(prefix, GUIListener.GUICode + gui.guiName)));
if (gui.guiFillItemEnable) {
GuiBuilder.fillItem(inventory, gui);
}
for (Slot slot : gui.slots) {
try {
Function function = Main.functionHashMap.get(slot.function);
if (function == null) {
T2C_Send.error(Main.getPlugin(), "The Function " + slot.function + " in the GUI " + gui.key + " does not exist!");
continue;
}
if (slot.permission && !player.hasPermission(slot.permissionToSee)) continue;
if (slot.slot < 0 || slot.slot > gui.guiLines * 9) continue;
if (slot.enable) {
if (function.empty) {
ItemStack air = new ItemStack(Material.AIR);
inventory.setItem(slot.slot, air);
} else {
if (function.togglePermission) {
if (player.hasPermission(function.togglePermissionPerm)) {
toggleOn(function, slot, player, inventory);
} else {
toggleOff(function, slot, player, inventory);
}
} else if (function.toggleUseItem) {
if (Events.useItemHashMap.get(player.getName())) {
toggleOn(function, slot, player, inventory);
} else {
toggleOff(function, slot, player, inventory);
}
} else {
if (function.playerHead_Enable) {
if (function.base64_Enable) {
GuiBuilder.base64(slot, player, inventory);
} else {
if (function.playerWhoHasOpenedTheGUI) {
GuiBuilder.playerHead(slot, player, inventory, player.getName());
} else {
GuiBuilder.playerHead(slot, player, inventory, function.playerName);
}
}
} else {
GuiBuilder.item(slot, player, inventory);
}
}
}
}
} catch (Exception ex) {
ex.printStackTrace();
ItemStack air = new ItemStack(Material.AIR);
inventory.setItem(slot.slot, air);
}
}
if (sound) {
Sound.play(player, SoundEnum.OpenInventory);
}
player.openInventory(inventory);
T2C_Debug.debug(plugin, "§6" + player.getName() + " §5Open §6" + T2C_Replace.replace(prefix, gui.guiName) + " §5" + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
} else T2C_Send.player(player, Languages.VALUES.GUIIsDisabled.getValue().toString().replace("[gui]", T2C_Replace.replace(prefix, gui.guiName)));
}
private static void toggleOn(Function function, Slot slot, Player player, Inventory inventory) {
if ((boolean) Config.VALUES.toggleItemOnOrYesBase64.getValue()) {
GuiBuilder.base64(Config.VALUES.toggleItemOnOrYesBase64Value.getValue().toString(), slot, player, inventory);
} else GuiBuilder.item(Config.VALUES.toggleItemOnOrYesMaterial.getValue().toString(), slot, player, inventory);
}
private static void toggleOff(Function function, Slot slot, Player player, Inventory inventory) {
if ((boolean) Config.VALUES.toggleItemOffOrNoBase64.getValue()) {
GuiBuilder.base64(Config.VALUES.toggleItemOffOrNoBase64Value.getValue().toString(), slot, player, inventory);
} else GuiBuilder.item(Config.VALUES.toggleItemOffOrNoMaterial.getValue().toString(), slot, player, inventory);
}
}

View File

@ -1,7 +1,8 @@
package de.jatitv.commandguiv2.Spigot.system;
package net.t2code.commandguiv2.Spigot.listener;
import de.jatitv.commandguiv2.Spigot.Main;
import net.t2code.lib.Spigot.Lib.messages.send;
import net.t2code.commandguiv2.Spigot.Main;
import net.t2code.t2codelib.SPIGOT.api.debug.T2C_Debug;
import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Send;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@ -16,12 +17,12 @@ public class Bungee_Sender_Reciver implements PluginMessageListener {
DataOutputStream output = new DataOutputStream(stream);
try {
if (console) {
output.writeUTF("cgui-Console");
output.writeUTF("T2Code-Console");
} else {
if (sender instanceof Player) {
output.writeUTF(sender.getName());
} else {
output.writeUTF("cgui-Console");
output.writeUTF("T2Code-Console");
}
}
output.writeUTF(information);
@ -30,10 +31,10 @@ public class Bungee_Sender_Reciver implements PluginMessageListener {
}
if (sender instanceof Player) {
Player player = (Player) sender;
player.sendPluginMessage(Main.plugin, "cgui:bungee", stream.toByteArray());
player.sendPluginMessage(Main.getPlugin(), "t2c:bcmd", stream.toByteArray());
}else {
for(Player player : Bukkit.getOnlinePlayers()){
player.sendPluginMessage(Main.plugin, "cgui:bungee", stream.toByteArray());
player.sendPluginMessage(Main.getPlugin(), "t2c:bcmd", stream.toByteArray());
return;
}
}
@ -42,21 +43,21 @@ public class Bungee_Sender_Reciver implements PluginMessageListener {
@Override
public void onPluginMessageReceived(String channel, Player player, byte[] message) {
DataInputStream stream = new DataInputStream(new ByteArrayInputStream(message));
send.debug(Main.plugin,"stream: "+stream.toString());
T2C_Debug.debug(Main.getPlugin(),"stream: "+stream.toString());
try {
String subChannel = stream.readUTF();
String input = stream.readUTF();
send.debug(Main.plugin,"subChannel: " +subChannel);
send.debug(Main.plugin,"input: " +input);
T2C_Debug.debug(Main.getPlugin(),"subChannel: " +subChannel);
T2C_Debug.debug(Main.getPlugin(),"input: " +input);
switch (subChannel) {
case "join":
Main.bungeejoinplayers.add(input);
Main.proxyJoinPlayers.add(input);
break;
case "left":
Main.bungeejoinplayers.remove(input);
Main.proxyJoinPlayers.remove(input);
break;
case "clear":
Main.bungeejoinplayers.clear();
Main.proxyJoinPlayers.clear();
break;
}
} catch (IOException e) {

View File

@ -0,0 +1,24 @@
// This claas was created by JaTiTV
package net.t2code.commandguiv2.Spigot.listener;
import net.t2code.commandguiv2.Spigot.Main;
import net.t2code.commandguiv2.Spigot.database.SelectDatabase;
import net.t2code.commandguiv2.Spigot.system.Permissions;
import net.t2code.commandguiv2.Util;
import net.t2code.t2codelib.SPIGOT.api.update.T2C_UpdateAPI;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerLoginEvent;
public class PluginEvent implements Listener {
private static String prefix = Util.getPrefix();
@EventHandler
public void onJoinEvent(PlayerLoginEvent event) {
Player player = event.getPlayer();
SelectDatabase.nameCheck(player);
T2C_UpdateAPI.join(Main.getPlugin(),prefix, Permissions.updatemsg, event.getPlayer(), Util.getSpigotID(), Util.getDiscord());
}
}

View File

@ -1,6 +1,6 @@
package de.jatitv.commandguiv2.Spigot.Listener;
package net.t2code.commandguiv2.Spigot.listener;
import de.jatitv.commandguiv2.Spigot.Main;
import net.t2code.commandguiv2.Spigot.Main;
import org.bukkit.entity.Player;
import java.io.ByteArrayOutputStream;
@ -8,7 +8,6 @@ import java.io.DataOutputStream;
import java.io.IOException;
public class ServerChange {
public static void send(Player player, String server){
ByteArrayOutputStream b = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(b);
@ -18,6 +17,6 @@ public class ServerChange {
} catch (IOException i) {
i.printStackTrace();
}
player.sendPluginMessage(Main.plugin, "BungeeCord", b.toByteArray());
player.sendPluginMessage(Main.getPlugin(), "BungeeCord", b.toByteArray());
}
}

View File

@ -1,4 +1,8 @@
package de.jatitv.commandguiv2.Spigot.objects.functions;
package net.t2code.commandguiv2.Spigot.objects;
import net.t2code.commandguiv2.Spigot.enums.EcoEnum;
import net.t2code.commandguiv2.Spigot.enums.FunctionItemEnum;
import net.t2code.commandguiv2.Spigot.enums.FunctionVoteEnum;
import java.util.List;
@ -14,11 +18,18 @@ public class Function {
public String playerName;
public String item;
public String name;
public List lore;
public List<String> lore;
public Boolean noPermMessageEnable;
public String customNoPermMessage;
public Boolean noPermLoreEnable;
public List<String> noPermLore;
public Boolean customSound_Enable;
public Boolean customSound_NoSound;
public String customSound_Sound;
public Boolean cost_Enable;
public EcoEnum ecoModule;
public String ecoItem;
public Integer votePoints;
public Double price;
public Boolean command_Enable;
public Boolean command_BungeeCommand;
@ -28,6 +39,7 @@ public class Function {
public List<String> command;
public Boolean openGUI_Enable;
public String openGUI;
public Boolean closeGUI_Enable;
public Boolean togglePermission;
public String togglePermissionPerm;
public Boolean toggleUseItem;
@ -37,7 +49,6 @@ public class Function {
public String configFilePath;
public String configOptionPath;
public String configOptionPremat;
// public Boolean ConfigChatInput;
public String configStringValueLeft;
public Boolean configBooleanValueLeft;
@ -54,6 +65,12 @@ public class Function {
public Boolean pluginReloadEnable;
public String pluginReloadCommand;
public Boolean functionVotePoints;
public FunctionVoteEnum functionVotePointsMode;
public Integer functionVotePointsAmount;
public Boolean functionItem;
public FunctionItemEnum functionItemMode;
public String functionItemItem;
public Function(String key,
Boolean empty,
@ -66,10 +83,17 @@ public class Function {
String item,
String name,
List<String> lore,
Boolean noPermMessageEnable,
String customNoPermMessage,
Boolean noPermLoreEnable,
List<String> noPermLore,
Boolean customSound_Enable,
Boolean customSound_NoSound,
String customSound_Sound,
Boolean cost_Enable,
EcoEnum ecoModule,
String ecoItem,
Integer votePoints,
Double price,
Boolean command_Enable,
Boolean command_BungeeCommand,
@ -79,6 +103,7 @@ public class Function {
String serverChangeServer,
Boolean openGUI_Enable,
String openGUI,
Boolean closeGUI,
Boolean togglePermission,
String togglePermissionPerm,
Boolean toggleUseItem,
@ -102,7 +127,13 @@ public class Function {
List<String> configListValueRight,
Boolean pluginReloadEnable,
String pluginReloadCommand) {
String pluginReloadCommand,
Boolean functionVotePoints,
FunctionVoteEnum functionVotePointsMode,
Integer functionVotePointsAmount,
Boolean functionItem,
FunctionItemEnum functionItemMode,
String functionItemItem) {
this.key = key;
this.empty = empty;
this.itemAmount = itemAmount;
@ -114,10 +145,17 @@ public class Function {
this.item = item;
this.name = name;
this.lore = lore;
this.noPermMessageEnable = noPermMessageEnable;
this.customNoPermMessage = customNoPermMessage;
this.noPermLoreEnable = noPermLoreEnable;
this.noPermLore = noPermLore;
this.customSound_Enable = customSound_Enable;
this.customSound_NoSound = customSound_NoSound;
this.customSound_Sound = customSound_Sound;
this.cost_Enable = cost_Enable;
this.ecoModule = ecoModule;
this.ecoItem = ecoItem;
this.votePoints = votePoints;
this.price = price;
this.command_Enable = command_Enable;
this.command_BungeeCommand = command_BungeeCommand;
@ -127,6 +165,7 @@ public class Function {
this.serverChangeServer = serverChangeServer;
this.openGUI_Enable = openGUI_Enable;
this.openGUI = openGUI;
this.closeGUI_Enable =closeGUI;
this.togglePermission = togglePermission;
this.togglePermissionPerm = togglePermissionPerm;
this.toggleUseItem = toggleUseItem;
@ -154,6 +193,13 @@ public class Function {
this.pluginReloadEnable = pluginReloadEnable;
this.pluginReloadCommand = pluginReloadCommand;
this.functionVotePoints = functionVotePoints;
this.functionVotePointsMode = functionVotePointsMode;
this.functionVotePointsAmount = functionVotePointsAmount;
this.functionItem = functionItem;
this.functionItemMode = functionItemMode;
this.functionItemItem = functionItemItem;
}
}

View File

@ -1,6 +1,4 @@
package de.jatitv.commandguiv2.Spigot.objects.guis;
import de.jatitv.commandguiv2.Spigot.objects.slots.Slot;
package net.t2code.commandguiv2.Spigot.objects;
import java.util.ArrayList;
@ -11,7 +9,6 @@ public class Gui {
public Boolean guiFillItemEnable;
public String guiFillItemItem;
public String key;
public Boolean commandAliasEnable;
public Boolean commandPermissionEnable;

View File

@ -1,4 +1,4 @@
package de.jatitv.commandguiv2.Spigot.objects.slots;
package net.t2code.commandguiv2.Spigot.objects;
public class Slot {

View File

@ -0,0 +1,66 @@
package net.t2code.commandguiv2.Spigot.sound;
import net.t2code.commandguiv2.Spigot.config.config.Config;
import net.t2code.commandguiv2.Spigot.config.languages.Languages;
import net.t2code.commandguiv2.Spigot.objects.Function;
import net.t2code.commandguiv2.Spigot.objects.Gui;
import net.t2code.commandguiv2.Spigot.objects.Slot;
import net.t2code.commandguiv2.Spigot.enums.SoundEnum;
import net.t2code.commandguiv2.Util;
import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Send;
import org.bukkit.entity.Player;
public class Sound {
private static String prefix = Util.getPrefix();
public static void play(Player player, SoundEnum soundEnum) {
if (!(boolean) Config.VALUES.soundEnable.getValue()) return;
try {
play(player, soundEnum, null, null, null);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public static void play(Player player, SoundEnum soundEnum, Function function, Slot slot, Gui gui) throws Exception {
if (!(boolean) Config.VALUES.soundEnable.getValue()) return;
switch (soundEnum) {
case OpenInventory:
if (!(boolean)Config.VALUES.soundOpenInventoryEnable.getValue()) return;
player.playSound(player.getLocation(), org.bukkit.Sound.valueOf( Config.VALUES.soundOpenInventory.getValue().toString().replace(".", "_")), 3, 1);
break;
case Click:
if (!(boolean)Config.VALUES.soundClickEnable.getValue()) return;
if (!function.customSound_Enable) {
player.playSound(player.getLocation(),org.bukkit.Sound.valueOf( Config.VALUES.soundClick.getValue().toString().replace(".", "_")), 3, 1);
return;
}
if (function.customSound_NoSound) return;
try {
player.playSound(player.getLocation(), org.bukkit.Sound.valueOf(function.customSound_Sound.toUpperCase().replace(".", "_")), 3, 1);
} catch (Exception e1) {
T2C_Send.console("§4\n§4\n§4\n" + Languages.VALUES.SoundNotFound.getValue().toString().replace("[prefix]", prefix)
.replace("[sound]", "§6GUI: §e" + gui.key + " §6Function: §e" + function.key + "§r §6Slot: §e" + (slot.slot + 1) + " §6CustomSound: §9" + function.customSound_Sound));
player.playSound(player.getLocation(), Config.VALUES.soundClick.getValue().toString(), 3, 1);
}
break;
case NoMoney:
if (!(boolean)Config.VALUES.soundNoMoneyEnable.getValue()) return;
player.playSound(player.getLocation(), org.bukkit.Sound.valueOf(Config.VALUES.soundNoMoney.getValue().toString().replace(".", "_")), 3, 1);
break;
case NoInventorySpace:
if (!(boolean)Config.VALUES.soundNoInventorySpaceEnable.getValue()) return;
player.playSound(player.getLocation(),org.bukkit.Sound.valueOf( Config.VALUES.soundNoInventorySpace.getValue().toString().replace(".", "_")), 3, 1);
break;
case Give:
if (!(boolean)Config.VALUES.soundGiveEnable.getValue()) return;
player.playSound(player.getLocation(), org.bukkit.Sound.valueOf(Config.VALUES.soundGive.getValue().toString().replace(".", "_")), 3, 1);
break;
case PlayerNotFound:
if (!(boolean)Config.VALUES.soundPlayerNotFoundEnable.getValue()) return;
player.playSound(player.getLocation(),org.bukkit.Sound.valueOf( Config.VALUES.soundPlayerNotFound.getValue().toString().replace(".", "_")), 3, 1);
break;
}
}
}

View File

@ -0,0 +1,51 @@
package net.t2code.commandguiv2.Spigot.system;
import net.t2code.commandguiv2.Spigot.Main;
import net.t2code.t2codelib.SPIGOT.api.debug.T2C_Debug;
import org.bukkit.Bukkit;
import org.bukkit.plugin.Plugin;
import java.io.File;
import java.util.Arrays;
public class Debug {
private static final Plugin plugin = Main.getPlugin();
public static void debugmsg() {
T2C_Debug.debug(plugin, "§5!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
T2C_Debug.debug(plugin, "§3Bukkit Version: §e" + Bukkit.getBukkitVersion());
T2C_Debug.debug(plugin, "§3NMS Version: §e" + Bukkit.getServer().getClass().getPackage().getName().replace("org.bukkit.craftbukkit.", ""));
T2C_Debug.debug(plugin, "§3Version: §e" + Bukkit.getVersion());
T2C_Debug.debug(plugin, "§3Java: §e" + System.getProperty("java.version"));
T2C_Debug.debug(plugin, "§3Worlds: §e" + String.valueOf(Bukkit.getServer().getWorlds()));
T2C_Debug.debug(plugin, String.valueOf(Arrays.asList(Main.getPlugin().getServer().getPluginManager().getPlugins())));
T2C_Debug.debug(plugin, "§5----------------------------------");
if (new File(Main.getPath(), "config.yml").exists()) {
File f = new File(String.valueOf(Main.getPath()));
File f2 = new File(String.valueOf(Main.getPath() + "/GUIs/"));
File f3 = new File(String.valueOf(Main.getPath() + "/languages/"));
File[] fileArray = f.listFiles();
File[] fileArray2 = f2.listFiles();
File[] fileArray3 = f3.listFiles();
if (fileArray != null) {
for (File config : fileArray) {
T2C_Debug.debug(plugin, String.valueOf(config).replace("plugins/CommandGUI/", ""));
}
}
if (fileArray2 != null) {
for (File config2 : fileArray2) {
T2C_Debug.debug(plugin, String.valueOf(config2).replace("plugins/CommandGUI/", ""));
}
} else T2C_Debug.debug(plugin, "No GUI files available");
if (fileArray3 != null) {
for (File config3 : fileArray3) {
T2C_Debug.debug(plugin, String.valueOf(config3).replace("plugins/CommandGUI/", ""));
}
} else T2C_Debug.debug(plugin, "No language files available");
}
T2C_Debug.debug(plugin, "§5!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
}
}

View File

@ -0,0 +1,169 @@
package net.t2code.commandguiv2.Spigot.system;
import net.t2code.commandguiv2.Spigot.config.config.Config;
import net.t2code.commandguiv2.Spigot.config.functions.FunctionsFile;
import net.t2code.commandguiv2.Spigot.config.gui.GuiFile;
import net.t2code.commandguiv2.Spigot.config.languages.Languages;
import net.t2code.commandguiv2.Spigot.gui.GUIListener;
import net.t2code.commandguiv2.Spigot.listener.Bungee_Sender_Reciver;
import net.t2code.commandguiv2.Spigot.useItem.EventsFrom110;
import net.t2code.commandguiv2.Spigot.cmdManagement.CmdExecuter_GUI;
import net.t2code.commandguiv2.Spigot.cmdManagement.CmdExecuter_GUIItem;
import net.t2code.commandguiv2.Spigot.cmdManagement.CmdExecuter_Help;
import net.t2code.commandguiv2.Spigot.cmdManagement.register.AliasRegister;
import net.t2code.commandguiv2.Spigot.database.MySQL;
import net.t2code.commandguiv2.Spigot.listener.PluginEvent;
import net.t2code.commandguiv2.Spigot.useItem.Events;
import net.t2code.commandguiv2.Spigot.Main;
import net.t2code.commandguiv2.Spigot.database.SQLITE;
import net.t2code.commandguiv2.Spigot.database.SelectDatabase;
import net.t2code.commandguiv2.Spigot.enums.StorageEnum;
import net.t2code.commandguiv2.Util;
import net.t2code.t2codelib.SPIGOT.api.debug.T2C_Debug;
import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Send;
import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Template;
import net.t2code.t2codelib.SPIGOT.api.minecraftVersion.T2C_McVersion;
import net.t2code.t2codelib.SPIGOT.api.plugins.T2C_PluginCheck;
import net.t2code.t2codelib.SPIGOT.api.update.T2C_UpdateAPI;
import net.t2code.t2codelib.SPIGOT.system.config.config.T2C_LibConfig;
import net.t2code.t2codelib.util.T2C_Util;
import org.bukkit.Bukkit;
import org.bukkit.plugin.Plugin;
import java.io.*;
import java.sql.SQLException;
import java.util.List;
public class Load {
static Plugin plugin = Main.getPlugin();
public static void onLoad(String prefix, List<String> autor, String version, String spigot, int spigotID, String discord, int bstatsID) {
long long_ = T2C_Template.onLoadHeader(prefix, autor, version, spigot, discord);
Debug.debugmsg();
if (!new File(Main.getPath(), "config.yml").exists()) {
GuiFile.createDefault(false);
FunctionsFile.createDefault(false);
}
Config.set(false);
if ((boolean) T2C_LibConfig.VALUES.proxy.getValue()) {
if (!Bukkit.getMessenger().isOutgoingChannelRegistered(plugin, T2C_Util.getPluginChannel_ProxyCommand())) {
T2C_Debug.debug(plugin, "registerOutgoingPluginChannel §e" + T2C_Util.getPluginChannel_ProxyCommand());
Bukkit.getMessenger().registerOutgoingPluginChannel(plugin, T2C_Util.getPluginChannel_ProxyCommand());
}
if (!Bukkit.getMessenger().isIncomingChannelRegistered(plugin, T2C_Util.getPluginChannel_CGUIOnlinePlayers())) {
T2C_Debug.debug(plugin, "registerIncomingPluginChannel §e" + T2C_Util.getPluginChannel_CGUIOnlinePlayers());
Bukkit.getMessenger().registerIncomingPluginChannel(plugin, T2C_Util.getPluginChannel_CGUIOnlinePlayers(), new Bungee_Sender_Reciver());
}
}
if (T2C_PluginCheck.papi()) {
new Papi().register();
}
FunctionsFile.select(false);
GuiFile.set(false);
Languages.set(false);
Config.checkSounds();
CmdExecuter_GUI.arg1.put(Config.VALUES.adminSubCommand.getValue().toString(), Permissions.admin + ";" + Permissions.giveItemOther + ";" + Permissions.info);
T2C_Template.onLoadSeparateStroke(Util.getPrefix());
loadStorage(prefix);
T2C_Template.onLoadSeparateStroke(Util.getPrefix());
if (Main.PaPi) {
T2C_Send.sendStartTextCenter(Util.getPrefix(),"§2PlaceholderAPI successfully connected!",false);
} else {
T2C_Send.sendStartTextCenter(Util.getPrefix(),"§4PlaceholderAPI could not be connected / found!",false);
}
Permissions.onPermRegister();
if ((boolean) Config.VALUES.helpAlias.getValue()) {
Main.getPlugin().getCommand("commandguihelp").setExecutor(new CmdExecuter_Help());
T2C_Debug.debug(plugin, "CommandRegister: commandguihelp");
}
Main.getPlugin().getCommand("commandgui").setExecutor(new CmdExecuter_GUI());
T2C_Debug.debug(plugin, "CommandRegister: commandgui");
Main.getPlugin().getCommand("commandgui-item").setExecutor(new CmdExecuter_GUIItem());
T2C_Debug.debug(plugin, "CommandRegister: commandgui-item");
AliasRegister.onRegister(false);
Bukkit.getServer().getPluginManager().registerEvents(new GUIListener(), plugin);
Bukkit.getServer().getPluginManager().registerEvents(new PluginEvent(), plugin);
Bukkit.getServer().getPluginManager().registerEvents(new Events(), Main.getPlugin());
if (!T2C_McVersion.isMc1_8() && !T2C_McVersion.isMc1_9()) {
Bukkit.getServer().getPluginManager().registerEvents(new EventsFrom110(), plugin);
}
T2C_UpdateAPI.onUpdateCheck(plugin, prefix, Util.getGit(), spigotID, discord
, (boolean) Config.VALUES.updateCheckOnJoin.getValue(), (boolean) Config.VALUES.updateCheckSeePreReleaseUpdates.getValue(), (int) Config.VALUES.updateCheckTimeInterval.getValue());
Metrics.Bstats();
Main.addonLoad();
T2C_Template.onLoadFooter(prefix, long_);
Plugman.load();
}
private static void loadStorage(String prefix) {
try {
SelectDatabase.setStorage(StorageEnum.valueOf(Config.VALUES.storage.getValue().toString()));
} catch (Exception ignored) {
T2C_Send.error(plugin, "The storage medium " + Config.VALUES.storage.getValue().toString() + " is not supported!");
T2C_Send.error(plugin, "Storage medium " + StorageEnum.SQLITE + " is used.");
SelectDatabase.setStorage(StorageEnum.SQLITE);
}
switch (SelectDatabase.getStorage()) {
case MYSQL:
T2C_Send.sendStartTextCenter(prefix,"§2Storage medium §6" + SelectDatabase.getStorage() + " §2is used.",false);
MySQL.main();
try {
MySQL.query("CREATE TABLE IF NOT EXISTS `gui-item` (" +
" `UUID` VARCHAR(191) NOT NULL COLLATE 'utf8mb4_general_ci'," +
" `Name` TINYTEXT NOT NULL COLLATE 'utf8mb4_general_ci'," +
" `Status` INT(1) NOT NULL DEFAULT '1'," +
" `Slot` INT(1) NULL DEFAULT NULL," +
" UNIQUE INDEX `UUID` (`UUID`)" +
")" +
"COLLATE='utf8mb4_general_ci'" +
"ENGINE=InnoDB" +
";");
} catch (Exception e) {
Main.sendTryCatch(Load.class, e.getStackTrace()[0]);
e.printStackTrace();
}
try {
MySQL.query("ALTER TABLE `gui-item` ADD COLUMN `Slot` INT(1) NULL DEFAULT NULL AFTER `Status`;");
} catch (SQLException e) {
}
break;
case YML:
T2C_Send.sendStartTextCenter(prefix,"§2Storage medium §6" + SelectDatabase.getStorage() + " §2is used.",false);
break;
default:
case SQLITE:
T2C_Send.sendStartTextCenter(prefix,"§2Storage medium §6" + SelectDatabase.getStorage() + " §2is used.",false);
try {
SQLITE.main();
SQLITE.query("CREATE TABLE IF NOT EXISTS `gui-item` (" +
"UUID TEXT NOT NULL," +
"Name TEXT NOT NULL," +
"Status INTEGER NOT NULL DEFAULT 1," +
"Slot INTEGER," +
"PRIMARY KEY(UUID)" +
");");
} catch (SQLException e) {
e.printStackTrace();
}
break;
}
}
}

View File

@ -1,13 +1,11 @@
// This claas was created by JaTiTV
package de.jatitv.commandguiv2.Spigot.system;
package net.t2code.commandguiv2.Spigot.system;
import de.jatitv.commandguiv2.Spigot.Main;
import de.jatitv.commandguiv2.Spigot.config.config.SelectConfig;
import de.jatitv.commandguiv2.Spigot.system.database.SelectDatabase;
import de.jatitv.commandguiv2.Spigot.system.database.StorageType;
import de.jatitv.commandguiv2.Util;
import net.t2code.commandguiv2.Spigot.Main;
import net.t2code.commandguiv2.Spigot.database.SelectDatabase;
import net.t2code.commandguiv2.Util;
import org.bukkit.Bukkit;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
@ -35,7 +33,7 @@ public class Metrics {
public static void Bstats() {
int pluginId = Util.getBstatsID(); // <-- Replace with the id of your plugin!
Metrics metrics = new Metrics(Main.plugin, pluginId);
Metrics metrics = new Metrics(Main.getPlugin(), pluginId);
metrics.addCustomChart(new DrilldownPie("storage_type_mysql", () -> {
Map<String, Map<String, Integer>> map = new HashMap<>();
String storage = SelectDatabase.getStorage().toString();

View File

@ -0,0 +1,51 @@
// This claas was created by JaTiTV
package net.t2code.commandguiv2.Spigot.system;
import net.t2code.commandguiv2.Spigot.Main;
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import org.bukkit.entity.Player;
public class Papi extends PlaceholderExpansion {
@Override
public String getIdentifier() {
return "commandgui";
}
@Override
public String getAuthor() {
return Main.getPlugin().getDescription().getAuthors().toString();
}
@Override
public String getVersion() {
return Main.getPlugin().getDescription().getVersion();
}
@Override
public boolean canRegister() {
return true;
}
@Override
public boolean persist() {
return true;
}
@Override
public String onPlaceholderRequest(Player p, String params) {
if (params.contains("useitem_boolean")) {
Placeholder.useitem_boolean(p);
}
if (params.contains("useitem")) {
Placeholder.useitem(p);
}
if (params.contains("slot")) {
Placeholder.slot(p);
}
return null;
}
}

View File

@ -0,0 +1,80 @@
package net.t2code.commandguiv2.Spigot.system;
import net.t2code.commandguiv2.Spigot.Main;
import net.t2code.commandguiv2.Spigot.objects.Gui;
import net.t2code.commandguiv2.Spigot.objects.Slot;
import net.t2code.t2codelib.SPIGOT.api.register.T2C_Register;
import org.bukkit.permissions.PermissionDefault;
import org.bukkit.plugin.Plugin;
public class Permissions {
private static final Plugin plugin = Main.getPlugin();
public static final String key = "commandgui.";
public static final String command = key + "command";
public static final String info = key + "command.info";
public static final String bypass = key + "bypass";
public static final String useitemToggle = key + "useitem.toggle";
public static final String useitem = key + "useitem";
public static final String getGuiItemAtLogin = key + "get.guiitem.at.login";
public static final String giveItemOther = key + "giveitem.other";
public static final String updatemsg = key + "updatemsg";
public static final String player = key + "player";
public static final String admin = key + "admin";
public static final PermissionDefault op = PermissionDefault.OP;
public static final PermissionDefault notOp = PermissionDefault.NOT_OP;
public static void onPermRegister() {
T2C_Register.permission(command, op, plugin);
T2C_Register.permissionDescription(command, "Required permission to open GUIs via command", plugin);
T2C_Register.permission(getGuiItemAtLogin, op, plugin);
T2C_Register.permission(giveItemOther, op, plugin);
T2C_Register.permissionDescription(getGuiItemAtLogin, "Only players with this permission will receive the GUI item", plugin);
T2C_Register.permission(useitem, op, plugin);
T2C_Register.permissionDescription(useitem, "Required permission to use the GUI Item", plugin);
T2C_Register.permission(useitemToggle, op, plugin);
T2C_Register.permissionDescription(useitemToggle, "Required permission to enable/disable the GUI Item for itself (if the function UseItem/AllowToggle is set to true)", plugin);
T2C_Register.permission(updatemsg, op, plugin);
T2C_Register.permissionDescription(updatemsg, "Players with this permission get the update message when joining if an update is available", plugin);
T2C_Register.permission(bypass, op, plugin);
T2C_Register.permissionDescription(bypass, "Bypass to open disabled GUIs", plugin);
T2C_Register.permission(info, notOp, plugin);
T2C_Register.permissionDescription(info, "Permission to view T2C-CommandGUI info", plugin);
T2C_Register.permission(player, op, command, true, plugin);
T2C_Register.permission(player, op, getGuiItemAtLogin, true, plugin);
T2C_Register.permission(player, op, useitem, true, plugin);
T2C_Register.permission(player, op, useitemToggle, true, plugin);
T2C_Register.permissionDescription(player, "All permissions from T2C-CommandGUI for Player", plugin);
T2C_Register.permission(admin, op, command, true, plugin);
T2C_Register.permission(admin, op, getGuiItemAtLogin, true, plugin);
T2C_Register.permission(admin, op, giveItemOther, true, plugin);
T2C_Register.permission(admin, op, useitem, true, plugin);
T2C_Register.permission(admin, op, useitemToggle, true, plugin);
T2C_Register.permission(admin, op, updatemsg, true, plugin);
T2C_Register.permission(admin, op, bypass, true, plugin);
T2C_Register.permission(admin, op, info, true, plugin);
T2C_Register.permissionDescription(admin, "All permissions from T2C-CommandGUI", plugin);
for (Gui gui : Main.guiHashMap.values()) {
T2C_Register.permission(command + "." + gui.key, op, plugin);
T2C_Register.permission(admin, op, command + "." + gui.key, true, plugin);
for (Slot slot : gui.slots) {
T2C_Register.permission(slot.permissionToUse, op, plugin);
T2C_Register.permission(admin, op, slot.permissionToUse, true, plugin);
T2C_Register.permission(slot.permissionToSee, op, plugin);
T2C_Register.permission(admin, op, slot.permissionToSee, true, plugin);
}
}
}
}

View File

@ -0,0 +1,38 @@
package net.t2code.commandguiv2.Spigot.system;
import net.t2code.commandguiv2.Spigot.config.config.Config;
import net.t2code.commandguiv2.Spigot.useItem.Events;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.List;
public class Placeholder {
public static String useitem(Player p) {
if (Events.useItemHashMap.get(p.getName())) {
return Config.VALUES.placeholderTrue.getValue().toString();
} else return Config.VALUES.placeholderFalse.getValue().toString();
}
public static String useitem_boolean(Player p) {
return Events.useItemHashMap.get(p.getName()).toString();
}
public static String slot(Player p) {
return Events.useItemSlotHashMap.get(p.getName()).toString();
}
public static String replace(String input, Player player) {
return input.replace("[player]", player.getName()).replace("%commandgui_useitem%", useitem(player))
.replace("%commandgui_useitem_boolean%", useitem_boolean(player)).replace("%commandgui_useitem_slot%", slot(player));
}
public static List<String> replace(List<String> input, Player player) {
ArrayList<String> rp = new ArrayList<String>();
for (String s : input) {
rp.add(s.replace("[player]", player.getName()).replace("%commandgui_useitem%", useitem(player))
.replace("%commandgui_useitem_boolean%", useitem_boolean(player)).replace("%commandgui_useitem_slot%", slot(player)));
}
return rp;
}
}

View File

@ -0,0 +1,25 @@
// This class was created by JaTiTV.
package net.t2code.commandguiv2.Spigot.system;
import net.t2code.commandguiv2.Spigot.cmdManagement.Commands;
import net.t2code.commandguiv2.Spigot.useItem.Events;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
public class Plugman {
public static void load(){
for (Player player : Bukkit.getOnlinePlayers()){
Events.joinPlayer(player);
Commands.itemOn(player);
}
}
public static void unLoad(){
for (Player player : Bukkit.getOnlinePlayers()){
Commands.itemOff(player);
}
}
}

View File

@ -0,0 +1,366 @@
package net.t2code.commandguiv2.Spigot.useItem;
import net.t2code.commandguiv2.Spigot.Main;
import net.t2code.commandguiv2.Spigot.cmdManagement.Commands;
import net.t2code.commandguiv2.Spigot.config.config.Config;
import net.t2code.commandguiv2.Spigot.config.languages.Languages;
import net.t2code.commandguiv2.Spigot.gui.OpenGUI;
import net.t2code.commandguiv2.Spigot.database.SelectDatabase;
import net.t2code.commandguiv2.api.CGuiAPI;
import net.t2code.t2codelib.SPIGOT.api.debug.T2C_Debug;
import net.t2code.t2codelib.SPIGOT.api.items.T2C_ItemVersion;
import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Send;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryDragEvent;
import org.bukkit.event.inventory.InventoryMoveItemEvent;
import org.bukkit.event.inventory.InventoryPickupItemEvent;
import org.bukkit.event.player.*;
import org.bukkit.event.server.ServerCommandEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.scheduler.BukkitRunnable;
import java.util.*;
public class Events implements Listener {
public static HashMap<String, Boolean> useItemHashMap = new HashMap<>();
public static HashMap<String, Integer> useItemSlotHashMap = new HashMap<>();
@EventHandler
public void onJoin(PlayerJoinEvent e) {
joinPlayer(e.getPlayer());
}
public static void joinPlayer(Player player) {
useItemHashMap.put(player.getName(), SelectDatabase.selectItemStatus(player));
Integer i = SelectDatabase.selectSlot(player);
useItemSlotHashMap.put(player.getName(), Objects.requireNonNullElseGet(i, () -> (int) Config.VALUES.useItemInventorySlot.getValue()));
if (CGuiAPI.JoinDisable) {
T2C_Debug.debug(Main.getPlugin(), "JoinDisable");
return;
}
if (player.hasPermission("commandgui.get.guiitem.at.login")) {
new BukkitRunnable() {
@Override
public void run() {
T2C_Debug.debug(Main.getPlugin(), "itemChange: " + player.getName());
ItemChange.itemChange(player, true);
}
}.runTaskLater(Main.getPlugin(), 20L);
}
}
@EventHandler
public void onQuit(PlayerQuitEvent e) {
useItemHashMap.remove(e.getPlayer().getName());
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onDeathDrop(PlayerDeathEvent e) {
Player player = e.getEntity().getPlayer();
assert player != null;
UseItem.removeItem(player);
if (!e.getDrops().isEmpty()) {
Iterator var3 = (new ArrayList(e.getDrops())).iterator();
while (var3.hasNext()) {
ItemStack items = (ItemStack) var3.next();
if (items != null && items.hasItemMeta() && Objects.requireNonNull(items.getItemMeta()).hasDisplayName()
&& items.getItemMeta().getDisplayName().equals(Config.VALUES.useItemName.getValue().toString())) {
e.getDrops().remove(items);
}
}
}
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onRespawn(PlayerRespawnEvent e) {
Player player = e.getPlayer();
if ((boolean) Config.VALUES.useItemEnable.getValue()) {
ItemChange.itemChange(player, false);
//if (!(boolean)Config.VALUES.useItem_AllowToggle || Select_Database.selectItemStatus(player)) {
// if ((boolean)Config.VALUES.useItem_GiveOnlyOnFirstJoin) {
// if (!player.hasPlayedBefore()) {
// new BukkitRunnable() {
// @Override
// public void run() {
// Give_UseItem.onGive(player);
// }
// }.runTaskLater(Main.getPlugin(), 20L * 1);
// }
// } else {
// new BukkitRunnable() {
// @Override
// public void run() {
// Give_UseItem.onGive(player);
// }
// }.runTaskLater(Main.getPlugin(), 20L * 1);
// }
//}
}
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onGameModeChange(PlayerGameModeChangeEvent e) {
Player player = e.getPlayer();
if (!(boolean) Config.VALUES.useItemGameModeChangeEnable.getValue()) {
return;
}
new BukkitRunnable() {
@Override
public void run() {
ItemChange.itemChange(player, false);
}
}.runTaskLater(Main.getPlugin(), (int) Config.VALUES.useItemGameModeChangeDelayInTicks.getValue());
}
@EventHandler
public void onWorldChange(PlayerChangedWorldEvent e) {
Player player = e.getPlayer();
if (!(boolean) Config.VALUES.useItemWorldChangeEnable.getValue()) {
return;
}
new BukkitRunnable() {
@Override
public void run() {
ItemChange.itemChange(player, false);
}
}.runTaskLater(Main.getPlugin(), (int) Config.VALUES.useItemWorldChangeDelayInTicks.getValue());
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onInteract(PlayerInteractEvent e) {
Player p = e.getPlayer();
if (!p.isSneaking()) {
for (String material : (List<String>) Config.VALUES.useItemItemBlockBlacklist.getValue()) {
if (e.getClickedBlock() != null) {
if (e.getClickedBlock().getType() == Material.valueOf(material)) return;
}
}
}
if ((boolean) Config.VALUES.useItemEnable.getValue()) {
if ((boolean) Config.VALUES.useItemPlayerHeadEnable.getValue()) {
if (e.getItem() != null && p.getItemInHand().getType() == T2C_ItemVersion.getHead()) {
if (e.getItem().getItemMeta().getDisplayName().equals(Config.VALUES.useItemName.getValue().toString())) {
openGUI(e, p);
}
}
} else {
if (e.getItem() != null && p.getItemInHand().getType() == Material.valueOf(Config.VALUES.useItemMaterial.getValue().toString().toUpperCase())) {
if (e.getItem().getItemMeta().getDisplayName().equals(Config.VALUES.useItemName.getValue().toString())) {
openGUI(e, p);
}
}
}
}
}
private static void openGUI(PlayerInteractEvent e, Player player) {
e.setCancelled(true);
if (Config.VALUES.disableInfoBySneak.getValue() != null && (!(boolean) Config.VALUES.disableInfoBySneak.getValue()) && player.isSneaking()) {
Commands.info(player);
return;
}
if (!Main.legacy) {
if (!topInventoryIsEmpty(player)) return;
}
if (UseItem.protection(player, true)) return;
if ((boolean) Config.VALUES.useItemGameModeProtection.getValue()) {
if (Config.VALUES.useItemGameModeMode.getValue().toString().equalsIgnoreCase("blacklist") && ((List<String>) Config.VALUES.useItemGameModeList.getValue()).contains(player.getGameMode().toString())) {
e.setCancelled(true);
T2C_Send.player(player, Languages.VALUES.UseItemDisabledInGameMode);
return;
}
if (Config.VALUES.useItemGameModeMode.getValue().toString().equalsIgnoreCase("whitelist") && !((List<String>) Config.VALUES.useItemGameModeList.getValue()).contains(player.getGameMode().toString())) {
e.setCancelled(true);
T2C_Send.player(player, Languages.VALUES.UseItemDisabledInGameMode);
return;
}
}
if ((boolean) Config.VALUES.useItemWorldProtection.getValue()) {
if (Config.VALUES.useItemWorldMode.getValue().toString().equalsIgnoreCase("blacklist") && ((List<String>) Config.VALUES.useItemWorldList.getValue()).contains(player.getWorld().getName())) {
e.setCancelled(true);
T2C_Send.player(player, Languages.VALUES.UseItemDisabledInWorld);
return;
}
if (Config.VALUES.useItemWorldMode.getValue().toString().equalsIgnoreCase("whitelist") && !((List<String>) Config.VALUES.useItemWorldList.getValue()).contains(player.getWorld().getName())) {
e.setCancelled(true);
T2C_Send.player(player, Languages.VALUES.UseItemDisabledInWorld);
return;
}
}
if (!(boolean) Config.VALUES.useItemPermissionNeeded.getValue() || player.hasPermission("commandgui.useitem")) {
OpenGUI.openGUI(player, Config.VALUES.useItemOpenGUI.getValue().toString(), true);
} else {
T2C_Send.player(player, Languages.VALUES.NoPermissionForUseItem.getValue().toString().replace("[perm]", "commandgui.useitem")
.replace("[gui]", Config.VALUES.useItemOpenGUI.getValue().toString()));
}
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onItemMoveEvent(InventoryMoveItemEvent e) {
if (!(boolean) Config.VALUES.useItemBlockMoveAndDrop.getValue() || !(boolean) Config.VALUES.useItemEnable.getValue()) return;
if (e.getItem() != null && e.getItem().hasItemMeta() && e.getItem().getItemMeta().hasDisplayName()
&& e.getItem().getItemMeta().getDisplayName().equals(Config.VALUES.useItemName.getValue().toString())) {
e.setCancelled(true);
}
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onItemMove(InventoryDragEvent e) {
if (!(boolean) Config.VALUES.useItemBlockMoveAndDrop.getValue() || !(boolean) Config.VALUES.useItemEnable.getValue()) return;
if (e.getWhoClicked() instanceof Player) {
Player p = (Player) e.getWhoClicked();
if (e.getCursor() != null && e.getCursor().hasItemMeta() && e.getCursor().getItemMeta().hasDisplayName()
&& e.getCursor().getItemMeta().getDisplayName().equals(Config.VALUES.useItemName.getValue().toString())) {
p.closeInventory();
e.setCancelled(true);
ItemChange.itemChange(p, false);
}
if (e.getOldCursor() != null && e.getOldCursor().hasItemMeta() && e.getOldCursor().getItemMeta().hasDisplayName()
&& e.getOldCursor().getItemMeta().getDisplayName().equals(Config.VALUES.useItemName.getValue().toString())) {
p.closeInventory();
e.setCancelled(true);
ItemChange.itemChange(p, false);
}
}
}
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onItemMove(InventoryClickEvent e) {
if (!(boolean) Config.VALUES.useItemBlockMoveAndDrop.getValue() || !(boolean) Config.VALUES.useItemEnable.getValue()) return;
if (e.getCursor() != null && e.getCursor().hasItemMeta() && e.getCursor().getItemMeta().hasDisplayName()
&& e.getCursor().getItemMeta().getDisplayName().equals(Config.VALUES.useItemName.getValue().toString())) {
e.setCancelled(true);
}
if (e.getCurrentItem() != null && e.getCurrentItem().hasItemMeta() && e.getCurrentItem().getItemMeta().hasDisplayName()
&& e.getCurrentItem().getItemMeta().getDisplayName().equals(Config.VALUES.useItemName.getValue().toString())) {
e.setCancelled(true);
}
}
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
public void onItemMove2(InventoryClickEvent e) {
if (!(boolean) Config.VALUES.useItemBlockMoveAndDrop.getValue() || !(boolean) Config.VALUES.useItemEnable.getValue()) return;
if (e.getCursor() != null && e.getCursor().hasItemMeta() && e.getCursor().getItemMeta().hasDisplayName()
&& e.getCursor().getItemMeta().getDisplayName().equals(Config.VALUES.useItemName.getValue().toString())) {
e.setCancelled(true);
}
if (e.getCurrentItem() != null && e.getCurrentItem().hasItemMeta() && e.getCurrentItem().getItemMeta().hasDisplayName()
&& e.getCurrentItem().getItemMeta().getDisplayName().equals(Config.VALUES.useItemName.getValue().toString())) {
e.setCancelled(true);
}
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onItemMove(InventoryPickupItemEvent e) {
if (!(boolean) Config.VALUES.useItemBlockMoveAndDrop.getValue() || !(boolean) Config.VALUES.useItemEnable.getValue()) return;
if (e.getItem() != null && e.getItem().getItemStack() != null) {
ItemStack item = e.getItem().getItemStack();
if (item.hasItemMeta() && item.getItemMeta().hasDisplayName()
&& item.getItemMeta().getDisplayName().equals(Config.VALUES.useItemName.getValue().toString())) {
e.setCancelled(true);
}
}
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onPlace(BlockPlaceEvent e) {
if (!(boolean) Config.VALUES.useItemBlockMoveAndDrop.getValue() || !(boolean) Config.VALUES.useItemEnable.getValue()) return;
if (e.getItemInHand() != null && e.getItemInHand().hasItemMeta() && e.getItemInHand().getItemMeta().hasDisplayName()
&& e.getItemInHand().getItemMeta().getDisplayName().equals(Config.VALUES.useItemName.getValue().toString())) {
e.setCancelled(true);
}
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onDrop(PlayerDropItemEvent e) {
if (!(boolean) Config.VALUES.useItemBlockMoveAndDrop.getValue() || !(boolean) Config.VALUES.useItemEnable.getValue()) return;
if (e.getItemDrop() != null && e.getItemDrop().getItemStack() != null) {
ItemStack item = e.getItemDrop().getItemStack();
if (item.hasItemMeta() && item.getItemMeta().hasDisplayName()
&& item.getItemMeta().getDisplayName().equals(Config.VALUES.useItemName.getValue().toString())) {
e.setCancelled(true);
}
}
}
private static boolean topInventoryIsEmpty(Player p) {
return p.getOpenInventory().getTopInventory().isEmpty();
}
@EventHandler
public void onClearServer(ServerCommandEvent event) {
if ((boolean) Config.VALUES.useItemKeepAtCommandClear.getValue()) {
if (event.getCommand().contains("clear " + event.getCommand().replace("/", "").replace("clear ", ""))) {
new BukkitRunnable() {
@Override
public void run() {
try {
Player player = Bukkit.getPlayer(event.getCommand().replace("/", "").replace("clear ", ""));
if (player == null) {
return;
}
clearGive(player);
} catch (Exception ex) {
ex.printStackTrace();
return;
}
}
}.runTaskLater(Main.getPlugin(), 1L);
}
}
}
@EventHandler
public void onClearPlayer(PlayerCommandPreprocessEvent event) {
if ((boolean) Config.VALUES.useItemKeepAtCommandClear.getValue()) {
if (event.getMessage().toLowerCase().contains("clear")) {
new BukkitRunnable() {
@Override
public void run() {
clearGive(event.getPlayer());
}
}.runTaskLater(Main.getPlugin(), 1L);
}
if (event.getMessage().toLowerCase().contains("clear " + event.getMessage().toLowerCase().replace("/", "").replace("clear ", ""))) {
new BukkitRunnable() {
@Override
public void run() {
clearGive(Bukkit.getPlayer(event.getMessage().toLowerCase().replace("/", "").replace("clear ", "")));
}
}.runTaskLater(Main.getPlugin(), 1L);
}
}
}
private static void clearGive(Player player) {
ItemChange.itemChange(player, false);
}
}

View File

@ -1,7 +1,6 @@
package de.jatitv.commandguiv2.Spigot.Listener.UseItem_Listener;
package net.t2code.commandguiv2.Spigot.useItem;
import de.jatitv.commandguiv2.Spigot.config.config.SelectConfig;
import net.t2code.lib.Spigot.Lib.minecraftVersion.MCVersion;
import net.t2code.commandguiv2.Spigot.config.config.Config;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
@ -12,29 +11,27 @@ public class EventsFrom110 implements Listener {
@EventHandler(priority = EventPriority.HIGHEST)
public void onHandSwap(PlayerSwapHandItemsEvent e) {
if (MCVersion.minecraft1_8 || MCVersion.minecraft1_9) return;
if (!SelectConfig.UseItem_BlockMoveAndDrop || !SelectConfig.UseItem_Enable) return;
if (!(boolean) Config.VALUES.useItemBlockMoveAndDrop.getValue() || !(boolean)Config.VALUES.useItemEnable.getValue()) return;
if (e.getMainHandItem() != null && e.getMainHandItem().hasItemMeta() && e.getMainHandItem().getItemMeta().hasDisplayName()
&& e.getMainHandItem().getItemMeta().getDisplayName().equals(SelectConfig.UseItem_Name)) {
&& e.getMainHandItem().getItemMeta().getDisplayName().equals(Config.VALUES.useItemName.getValue().toString())) {
}
if (e.getOffHandItem() != null && e.getOffHandItem().hasItemMeta() && e.getOffHandItem().getItemMeta().hasDisplayName()
&& e.getOffHandItem().getItemMeta().getDisplayName().equals(SelectConfig.UseItem_Name)) {
&& e.getOffHandItem().getItemMeta().getDisplayName().equals(Config.VALUES.useItemName.getValue().toString())) {
e.setCancelled(true);
}
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onItemMove(PlayerSwapHandItemsEvent e) {
if (MCVersion.minecraft1_8 || MCVersion.minecraft1_9) return;
if (!SelectConfig.UseItem_BlockMoveAndDrop || !SelectConfig.UseItem_Enable) return;
if (!(boolean)Config.VALUES.useItemBlockMoveAndDrop.getValue() || !(boolean)Config.VALUES.useItemEnable.getValue()) return;
Player p = e.getPlayer();
if (e.getOffHandItem() != null && e.getOffHandItem().hasItemMeta() && e.getOffHandItem().getItemMeta().hasDisplayName()
&& e.getOffHandItem().getItemMeta().getDisplayName().equals(SelectConfig.UseItem_Name)) {
&& e.getOffHandItem().getItemMeta().getDisplayName().equals(Config.VALUES.useItemName.getValue().toString())) {
p.closeInventory();
e.setCancelled(true);
}
if (e.getMainHandItem() != null && e.getMainHandItem().hasItemMeta() && e.getMainHandItem().getItemMeta().hasDisplayName()
&& e.getMainHandItem().getItemMeta().getDisplayName().equals(SelectConfig.UseItem_Name)) {
&& e.getMainHandItem().getItemMeta().getDisplayName().equals(Config.VALUES.useItemName.getValue().toString())) {
p.closeInventory();
e.setCancelled(true);
}

View File

@ -0,0 +1,112 @@
package net.t2code.commandguiv2.Spigot.useItem;
import net.t2code.commandguiv2.Spigot.Main;
import net.t2code.commandguiv2.Spigot.config.config.Config;
import net.t2code.t2codelib.SPIGOT.api.debug.T2C_Debug;
import net.t2code.t2codelib.SPIGOT.system.T2C_Main;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
public class ItemChange {
public static void itemChange(Player player, Boolean setCursor) {
Integer slot;
if ((boolean)Config.VALUES.useItemInventorySlotEnforce.getValue()) {
slot = (int)Config.VALUES.useItemInventorySlot.getValue();
} else {
slot = Events.useItemSlotHashMap.get(player.getName());
}
if (!(boolean)Config.VALUES.useItemEnable.getValue()) {
return;
}
UseItem.removeItem(player);
if (UseItem.protection(player, false)) return;
if ((boolean) Config.VALUES.useItemGiveOnlyOnFirstJoin.getValue()) {
if (!(boolean) Config.VALUES.useItemAllowToggle.getValue() || Events.useItemHashMap.get(player.getName())) {
if (!player.hasPlayedBefore()) {
new BukkitRunnable() {
@Override
public void run() {
UseItem.giveUseItem(player);
if (setCursor) {
setCursor(player, slot);
}
}
}.runTaskLater(Main.getPlugin(), 1L * 1);
if ((boolean)Config.VALUES.cursorToGUIItemOnlyOnFirstLogin.getValue() || (boolean)Config.VALUES.cursorToGUIItemOnLogin.getValue()) {
player.getInventory().setHeldItemSlot(slot - 1);
}
}
}
T2C_Debug.debug(Main.getPlugin(), "GiveOnlyOnFirstJoin: " + player.getName());
return;
}
if (!(boolean)Config.VALUES.useItemGiveOnEveryJoin.getValue()) {
T2C_Debug.debug(Main.getPlugin(), "!GiveOnEveryJoin: " + player.getName());
return;
}
new BukkitRunnable() {
@Override
public void run() {
Boolean pln = Events.useItemHashMap.get(player.getName());
if (pln == null) return;
if (!(boolean) Config.VALUES.useItemAllowToggle.getValue() || pln) {
if ((boolean) Config.VALUES.useItemInventorySlotEnforce.getValue() || player.getInventory().getItem(slot - 1) == null) {
T2C_Debug.debug(Main.getPlugin(), "Give: " + player.getName());
UseItem.giveUseItem(player);
if (setCursor) {
setCursor(player, slot);
}
} else if ((boolean) Config.VALUES.useItemInventorySlotFreeSlot.getValue()) {
boolean empty = false;
for (int i = 0; i < 9; i++) {
if (player.getInventory().getItem(i) == null) {
empty = true;
break;
}
}
if (empty) {
UseItem.addUseItem(player);
}
}
}
}
}.runTaskLater(Main.getPlugin(), 1L * 1);
}
private static void setCursor(Player player, int slot) {
T2C_Debug.debug(Main.getPlugin(), "setCursor 1 Player: " + player.getName());
if (!(boolean)Config.VALUES.cursorToGUIItemOnLogin.getValue()) {
return;
}
T2C_Debug.debug(Main.getPlugin(), "setCursor 2 Player: " + player.getName());
if ((boolean)Config.VALUES.cursorToGUIItemOnlyOnFirstLogin.getValue()) {
if (!player.hasPlayedBefore()) {
player.getInventory().setHeldItemSlot(slot - 1);
T2C_Debug.debug(Main.getPlugin(), "setCursor 3 Player: " + player.getName());
}
return;
}
T2C_Debug.debug(Main.getPlugin(), "setCursor 4 Player: " + player.getName());
if (!T2C_Main.isBungee()) {
player.getInventory().setHeldItemSlot(slot - 1);
T2C_Debug.debug(Main.getPlugin(), "setCursor 5 Player: " + player.getName());
return;
}
T2C_Debug.debug(Main.getPlugin(), "setCursor 6 Player: " + player.getName());
if ((boolean)Config.VALUES.cursorUseItemServerChange.getValue()) {
player.getInventory().setHeldItemSlot(slot - 1);
T2C_Debug.debug(Main.getPlugin(), "setCursor 7 Player: " + player.getName());
return;
}
T2C_Debug.debug(Main.getPlugin(), "setCursor 8 Player: " + player.getName());
T2C_Debug.debug(Main.getPlugin(), "setCursor bungeejoinplayers: " + Main.proxyJoinPlayers);
T2C_Debug.debug(Main.getPlugin(), "setCursor Player: " + player.getName());
if (Main.proxyJoinPlayers.contains(player.getName())) {
player.getInventory().setHeldItemSlot(slot - 1);
T2C_Debug.debug(Main.getPlugin(), "setCursor 9 Player: " + player.getName());
Main.proxyJoinPlayers.remove(player.getName());
}
}
}

View File

@ -0,0 +1,133 @@
package net.t2code.commandguiv2.Spigot.useItem;
import net.t2code.commandguiv2.Spigot.Main;
import net.t2code.commandguiv2.Spigot.config.config.Config;
import net.t2code.commandguiv2.Spigot.config.languages.Languages;
import net.t2code.commandguiv2.Util;
import net.t2code.t2codelib.SPIGOT.api.debug.T2C_Debug;
import net.t2code.t2codelib.SPIGOT.api.items.T2C_ItemBuilder;
import net.t2code.t2codelib.SPIGOT.api.items.T2C_ItemVersion;
import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Replace;
import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Send;
import net.t2code.t2codelib.SPIGOT.api.minecraftVersion.T2C_McVersion;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.inventory.meta.SkullMeta;
import java.util.List;
public class UseItem {
public static void giveUseItem(Player player) {
Integer slot;
if (protection(player, false)) return;
if ((boolean)Config.VALUES.useItemInventorySlotEnforce.getValue()) {
slot = (int)Config.VALUES.useItemInventorySlot.getValue();
} else {
slot = Events.useItemSlotHashMap.get(player.getName());
}
if ((boolean)Config.VALUES.useItemInventorySlotFreeSlot.getValue()) {
player.getInventory().addItem(itemStack(player));
} else {
T2C_Debug.debug(Main.getPlugin(), "setUseItem: " + player.getName() + " Slot: " + Integer.parseInt(String.valueOf(slot - 1)));
player.getInventory().setItem(slot - 1, itemStack(player));
}
}
public static void addUseItem(Player player) {
if (protection(player, false)) return;
if ((boolean)Config.VALUES.useItemInventorySlotFreeSlot.getValue()) {
player.getInventory().addItem(itemStack(player));
} else player.getInventory().addItem(itemStack(player));
}
private static ItemStack itemStack(Player player) {
ItemStack item = null;
if ((boolean)Config.VALUES.useItemPlayerHeadEnable.getValue()) {
if (T2C_McVersion.isMc1_8() || T2C_McVersion.isMc1_9() || T2C_McVersion.isMc1_10() || T2C_McVersion.isMc1_11() || T2C_McVersion.isMc1_12()) {
T2C_Send.player(player, Util.getPrefix() + "§c Playerheads for UseItem are only available from version §61.13§c!");
T2C_Send.error(Main.getPlugin(), "Playerheads for UseItem are only available from version 1.13!");
} else {
SkullMeta playerheadmeta = null;
if ((boolean)Config.VALUES.useItemBase64Enable.getValue()) {
item = T2C_ItemBuilder.base64( Config.VALUES.useItemBase64value.getValue().toString());
playerheadmeta = (SkullMeta) item.getItemMeta();
} else {
item = T2C_ItemVersion.getHeadIS();
playerheadmeta = (SkullMeta) item.getItemMeta();
String p;
if ((boolean)Config.VALUES.useItemPlayerWhoHasOpenedTheGUI.getValue()) {
p = player.getName();
} else p = Config.VALUES.useItemPlayerName.getValue().toString();
playerheadmeta.setOwner(p);
}
if (Main.PaPi) {
playerheadmeta.setLore(T2C_Replace.replace(Util.getPrefix(), player, (List<String>) Config.VALUES.useItemLore.getValue()));
} else playerheadmeta.setLore(T2C_Replace.replace(Util.getPrefix(), (List<String>) Config.VALUES.useItemLore.getValue()));
playerheadmeta.setDisplayName(Config.VALUES.useItemName.getValue().toString());
item.setItemMeta(playerheadmeta);
}
} else {
item = new ItemStack(Material.valueOf(Config.VALUES.useItemMaterial.getValue().toString().toUpperCase()));
ItemMeta itemMeta = item.getItemMeta();
itemMeta.setDisplayName(Config.VALUES.useItemName.getValue().toString());
if (Main.PaPi) {
itemMeta.setLore(T2C_Replace.replace(Util.getPrefix(), player, (List<String>) Config.VALUES.useItemLore.getValue()));
} else itemMeta.setLore(T2C_Replace.replace(Util.getPrefix(), (List<String>) Config.VALUES.useItemLore.getValue()));
item.setItemMeta(itemMeta);
item.setAmount(1);
}
return item;
}
public static boolean protection(Player player, Boolean interact) {
if ((boolean)Config.VALUES.useItemGameModeProtection.getValue()) {
if ((boolean)Config.VALUES.useItemGameModeMode.getValue().toString().equalsIgnoreCase("blacklist") && ((List<String>)Config.VALUES.useItemGameModeList.getValue()).contains(player.getGameMode().toString())) {
if (interact) {
T2C_Send.player(player, Languages.VALUES.UseItemDisabledInGameMode);
} else if (!(boolean)Config.VALUES.useItemGameModeRemoveItemWhenItIsDisabled.getValue()) removeItem(player);
return true;
}
if (Config.VALUES.useItemGameModeMode.getValue().toString().equalsIgnoreCase("whitelist") && !((List<String>)Config.VALUES.useItemGameModeList.getValue()).contains(player.getGameMode().toString())) {
if (interact) {
T2C_Send.player(player, Languages.VALUES.UseItemDisabledInGameMode);
} else if (!(boolean)Config.VALUES.useItemGameModeRemoveItemWhenItIsDisabled.getValue()) removeItem(player);
return true;
}
}
if ((boolean)Config.VALUES.useItemWorldProtection.getValue()) {
if (Config.VALUES.useItemWorldMode.getValue().toString().equalsIgnoreCase("blacklist") && ((List<String>)Config.VALUES.useItemWorldList.getValue()).contains(player.getWorld().getName())) {
if (interact) {
T2C_Send.player(player, Languages.VALUES.UseItemDisabledInWorld);
} else if (!(boolean)Config.VALUES.useItemWorldRemoveItemWhenItIsDisabled.getValue()) removeItem(player);
return true;
}
if (Config.VALUES.useItemWorldMode.getValue().toString().equalsIgnoreCase("whitelist") && !((List<String>)Config.VALUES.useItemWorldList.getValue()).contains(player.getWorld().getName())) {
if (interact) {
T2C_Send.player(player, Languages.VALUES.UseItemDisabledInWorld);
} else if (!(boolean)Config.VALUES.useItemWorldRemoveItemWhenItIsDisabled.getValue()) removeItem(player);
return true;
}
}
return false;
}
public static void removeItem(Player player) {
T2C_Debug.debug(Main.getPlugin(), "World disabled: " + player.getName() + " " + player.getWorld().toString());
for (int iam = 0; iam < player.getInventory().getSize() - 5; iam++) {
ItemStack itm = player.getInventory().getItem(iam);
if (itm != null) {
if (itm.getType() == Material.valueOf(Config.VALUES.useItemMaterial.getValue().toString().toUpperCase()) || itm.getType() == T2C_ItemVersion.getHead()) {
if (itm.getItemMeta().getDisplayName().equals(Config.VALUES.useItemName.getValue().toString())) {
player.getInventory().remove(itm);
player.updateInventory();
break;
}
}
}
}
}
}

View File

@ -0,0 +1,50 @@
package net.t2code.commandguiv2;
import lombok.Getter;
import net.t2code.commandguiv2.Spigot.config.config.Config;
import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Replace;
import net.t2code.t2codelib.util.T2C_ConfigItem;
import net.t2code.t2codelib.util.T2C_Util;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Util {
@Getter
private static final String infoText = "";
@Getter
private static final String requiredT2CodeLibVersion = "16.7";
@Getter
private static final String prefix = "§8[§4C§9GUI§8]";
@Getter
private static final Integer spigotID = 90671;
@Getter
private static final String git = "JaTiTV/T2C-CommandGUI";
@Getter
private static final Integer bstatsID = 10840;
@Getter
private static final String spigot = "https://www.spigotmc.org/resources/" + getSpigotID();
@Getter
private static final String discord = "http://dc.t2code.net";
public static String[] getConfigLogo() {
ArrayList<String> arrayList = new ArrayList<>(T2C_Util.getConfigT2CodeLogo());
arrayList.addAll(Arrays.asList("", "# Spigot: " + spigot));
return arrayList.toArray(new String[0]);
}
public static void replace(T2C_ConfigItem item) {
if (item.getValue() instanceof List) {
item.setValue(T2C_Replace.replace(Config.VALUES.prefix.getValue().toString(), (List<String>) item.getValue()));
} else item.setValue(T2C_Replace.replace(Config.VALUES.prefix.getValue().toString(), item.getValue().toString()));
}
}

View File

@ -0,0 +1,100 @@
package net.t2code.commandguiv2.api;
import net.t2code.commandguiv2.Spigot.config.config.Config;
import net.t2code.commandguiv2.Spigot.config.gui.GuiFile;
import net.t2code.commandguiv2.Spigot.config.languages.Languages;
import net.t2code.commandguiv2.Spigot.useItem.ItemChange;
import net.t2code.commandguiv2.Spigot.useItem.Events;
import net.t2code.commandguiv2.Spigot.Main;
import net.t2code.commandguiv2.Spigot.cmdManagement.Commands;
import net.t2code.commandguiv2.Spigot.cmdManagement.Help;
import net.t2code.commandguiv2.Spigot.system.Permissions;
import net.t2code.commandguiv2.Spigot.database.SelectDatabase;
import net.t2code.commandguiv2.Util;
import net.t2code.t2codelib.SPIGOT.api.debug.T2C_Debug;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import java.util.Objects;
public class CGuiAPI {
public static Boolean JoinDisable = false;
public static void onItemChange(Player player) {
onItemChange(player,false);
}
public static void onItemChange(Player player, Boolean setCursor) {
ItemChange.itemChange(player, setCursor);
}
public static boolean hasUseItemInMainHand(@NotNull Player player) {
ItemStack item = player.getInventory().getItemInMainHand();
return item.hasItemMeta() && Objects.requireNonNull(item.getItemMeta()).hasDisplayName()
&& item.getItemMeta().getDisplayName().equals( Config.VALUES.useItemName.getValue().toString());
}
public static boolean hasUseItemInOffHand(@NotNull Player player) {
ItemStack item = player.getInventory().getItemInOffHand();
return item.hasItemMeta() && Objects.requireNonNull(item.getItemMeta()).hasDisplayName()
&& item.getItemMeta().getDisplayName().equals(Config.VALUES.useItemName.getValue().toString());
}
public static void disableItemGiveOnJoin(Boolean disableItemGiveOnJoin) {
T2C_Debug.debug(Main.getPlugin(), "CGuiAPI: " + disableItemGiveOnJoin);
JoinDisable = disableItemGiveOnJoin;
}
public static Boolean selectPlayerItemEnable(@NotNull Player player) {
return Events.useItemHashMap.get(player.getName());
}
public static Integer selectPlayerItemSlot(@NotNull Player player) {
return Events.useItemSlotHashMap.get(player.getName());
}
public static void setPlayerItemEnable(Player player, @NotNull Boolean value) {
if (value) {
SelectDatabase.setItemStatusTrue(player);
} else SelectDatabase.setItemStatusFalse(player);
}
public static void setPlayerItemSlot(Player player, Integer value) {
SelectDatabase.setSlot(player, value);
}
public static void openDefaultGUI(Player player) {
Commands.gui(player);
}
public static void openGUI(Player player, String GUI_CommandName) {
Commands.gui(player, GUI_CommandName);
}
public static void sendHelp(CommandSender sender) {
Help.sendHelp(sender, Util.getPrefix());
}
public static void sendPluginInfo(@NotNull CommandSender sender) {
if (sender.hasPermission(Permissions.info)) {
Commands.info(sender);
} else sender.sendMessage(Languages.VALUES.NoPermissionForCommand.getValue().toString()
.replace("[cmd]", "/commandgui admin").replace("[perm]", Permissions.info));
}
public static void createDefaultGUI(@NotNull CommandSender sender) {
if (sender.hasPermission(Permissions.admin)) {
GuiFile.createDefault(true);
sender.sendMessage(Languages.VALUES.DefaultGUIcreate.getValue().toString().replace("[directory]", Main.getPath() + "\\GUIs\\default.yml"));
} else sender.sendMessage(Languages.VALUES.NoPermissionForCommand.getValue().toString()
.replace("[cmd]", "/commandgui admin").replace("[perm]", Permissions.admin));
}
public static void reload(@NotNull CommandSender sender) {
if (sender.hasPermission(Permissions.admin)) {
Commands.reload(sender);
} else sender.sendMessage(Languages.VALUES.NoPermissionForCommand.getValue().toString()
.replace("[cmd]", "/commandgui admin").replace("[perm]", Permissions.admin));
}
}

View File

@ -0,0 +1,214 @@
#####################################################
## To add another Function just create a new file. ##
#####################################################
Slots:
Function:
Item:
# Here you can create an empty slot.
# Note: When this is enabled, no functions will work.
Empty: false
# Here you can set the number of items
Amount: 1
PlayerHead:
# Here you can set if the item should be a player head
Enable: false
Base64:
# Here you can specify whether a Base64 player header should be used
Enable: false
# Here you can set the Base64 Value.
# You can find the Base64 Value for example on https://minecraft-heads.com.
Base64Value: ''
# Here you can set whether the player head should be used by the player who has opened the GUI.
PlayerWhoHasOpenedTheGUI: false
# Here you can set a specific player from which the player head should be used
PlayerName: ''
# Here you can set a Minecraft material to be used. This is ignored when PlayerHead is used
Material: 'DIRT'
# Here you set the DisplayName of the item
Name: 'Item Title'
# Here you set the lore of the item
Lore:
- '&8-----------------'
- '&bLine 1'
- '&bLine 2'
- '&8-----------------'
NoPermission:
Message:
# Here you can define if a message should be displayed when clicking on the function but not having a permission
Enable: true
# Here you can set a custom No Permission message for this function. If you want to use the default message, just leave this blank.
#
# You can use Minecraft custom color codes: https://minecraft.fandom.com/de/wiki/Formatierungscodes
# You can use the hover module from T2Code:
# You can add a hover and/or clickable feature to all messages sent to players.
# Use /*/ to separate the message.
# Use [nl] to set a line break in a message or hover.
# Hover message: <message >/*/<hover>
# Message with hover and click function: <message >/*/<hover>/*/<action>/*/<actionValue>
# Message only with click function: <message >/*//*/<action>/*/<actionValue>
# Action:
# - OPEN_URL - Opens a URL under the path specified in ActionValue.
# - OPEN_FILE - Opens a file under the path specified by ActionValue.
# - RUN_COMMAND - Runs the command specified by ActionValue.
# - SUGGEST_COMMAND - Inserts the string specified in ActionValue into the player text box.
# - CHANGE_PAGE - Changes to the page number in a book specified by ActionValue.
# - COPY_TO_CLIPBOARD - Copies the string specified by ActionValue to the player's clipboard.
# You can also use MiniMessage:
# Wiki: https://docs.adventure.kyori.net/minimessage/format.html
# WebUI: https://webui.adventure.kyori.net
CustomNoPermMessage: ''
Item:
Lore:
# Here you can select whether an extra lore should be displayed if you do not have permission for this function.
Enable: true
# Here you can set an extra lore that will be displayed if you do not have permission for this action.
Lore:
- '&8-----------------'
- '&4No Permission for this Function'
- '&8-----------------'
CustomSound:
# Here you can set whether a specific sound or the default sound from the config.yml should be used.
Enable: false
# Here you can deactivate the sound for this item. CustomSound must be activated for this!
NoSound: false
# Here you set the custom sound
Sound: ''
Cost:
# Here you can specify whether the function should cost or not
Enable: false
# Here you set which economy mode should be used.
# Use 'VAULT' / 'MONEY' for money via vault.
# Use 'ITEM' to pay with items.
# Use 'VOTEPOINTS' to pay with vote points from VotingPlugin (https://spigotmc.org/resources/votingplugin.15358/).
EcoModule: VAULT
# Set the item and the quantity for the ITEM mode here. (ITEM;AMOUNT)
Item: DIRT;5
# Set here the VotePoints for the VOTEPOINTS mode.
VotePoints: 0
# Set the money here for the mode VAULT or MONEY
Price: 0.0
Command:
# Here you can enable or disable the Command function
# Placeholder: [player] = PlayerName
Enable: false
# Here you can specify if this command should be executed on the bugee
BungeeCommand: false
# Here you can set if the command should be executed from the console
# Example: You can also create a store with this command.
# /give [player] stone | So all commands can be executed even those for which the player has no permission.
CommandAsConsole: false
# Here you can set commands. Several commands are also possible.
# They are processed from top to bottom and executed one after the other!
Command:
- 'command 1'
- 'command 2'
ServerChange:
# Here you can enable or disable the function ServerChange
# To use this function the function BungeeCord must be activated in the conig.yml and the plugin must be installed on the proxy!
Enable: false
# # Here you can say which server the player should be moved to.
Server: ''
OpenGUI:
# Here you can enable or disable the OpenGUI feature
Enable: false
# Here you can set which GUI should be opened.
# Use the file name of the GUI without .yml
GUI: ''
CloseGUI:
# Here you can set a function to close the GUI.
Enable: false
Toggle:
# Here you can enable a feature that allows players to give or remove permissions to each other
# The commands for the permission plugin can be set in the config (default for LuckPerms)
Permission:
# Activate this function here
Enable: false
# Set the permission here
Permission: ''
UseItem:
# When this function is enabled, players can toggle the UseItem on and off.
# For this function 'UseItem.AllowToggle' must be activated in config.yml!
Enable: false
Message:
# Here you can enable or disable the Message function
Enable: false
# Here you can set the messages to be sent to the player
# Placeholder: [player] = PlayerName | [prefix] = PluginPrefix | [price] = price if function Cost is activated
#
# You can use Minecraft custom color codes: https://minecraft.fandom.com/de/wiki/Formatierungscodes
# You can use the hover module from T2Code:
# You can add a hover and/or clickable feature to all messages sent to players.
# Use /*/ to separate the message.
# Use [nl] to set a line break in a message or hover.
# Hover message: <message >/*/<hover>
# Message with hover and click function: <message >/*/<hover>/*/<action>/*/<actionValue>
# Message only with click function: <message >/*//*/<action>/*/<actionValue>
# Action:
# - OPEN_URL - Opens a URL under the path specified in ActionValue.
# - OPEN_FILE - Opens a file under the path specified by ActionValue.
# - RUN_COMMAND - Runs the command specified by ActionValue.
# - SUGGEST_COMMAND - Inserts the string specified in ActionValue into the player text box.
# - CHANGE_PAGE - Changes to the page number in a book specified by ActionValue.
# - COPY_TO_CLIPBOARD - Copies the string specified by ActionValue to the player's clipboard.
# You can also use MiniMessage:
# Wiki: https://docs.adventure.kyori.net/minimessage/format.html
# WebUI: https://webui.adventure.kyori.net
Message:
- 'Message line 1'
- 'Message line 2'
SetConfig:
# Here you can enable or disable the SetConfig function
Enable: false
File:
# Here you define in which file something should be changed
# Example at this file: 'plugins/CommandGUI/GUIs/default.yml'.
Path: ''
Option:
# Here you set the option to be changed
# Example on the option of this example slots: 'Slots.Example.Slot'
Path: ''
# Here you set which format should be set
# String = text in one line
# Boolean = true / false
# Integer = numbers without comma
# Double = number with comma | Please use . as comma
# List = text with multiple lines (- 'hi')
Premat: String
Value:
# Here you can set which value should be set when you click with the left mouse button.
LeftClick:
String: ''
Boolean: false
Integer: 0
Double: 0.0
List: []
# Here you set which value should be set when clicking with the right mouse button
RightClick:
String: ''
Boolean: false
Integer: 0
Double: 0.0
List: []
PluginReload:
# Here you can set if the plugin to which a file was changed should be reloaded directly
Enable: false
# Here you set the reload command to be used
# The command is executed by the console! No / is needed!
Command: ''
FunctionVotePoints:
# With this function you can give or subtract VotePoints from VotingPlugin to a player.
Enable: false
# Use to add: ADD
# Use to subtract: REMOVE
Mode: ADD
# Set the number of vote points to be subtracted / added here
Amount: 0
FunctionItem:
# With this function you can give or remove items to a player
Enable: false
# Use to add: ADD
# Use to subtract: REMOVE
Mode: REMOVE
# Enter the item (material) and the number behind it. Separate them with ; (ITEM;AMOUNT)
Item: DIRT;5

View File

@ -0,0 +1,51 @@
################################################
## To add another GUI just create a new file. ##
################################################
GUI:
# Enable or disable the GUI
Enable: true
# Set the lines of the GUI here (1-6)
Lines: 1
# Here you set the display name of the GUI
Name: '&5default &9GUI'
FillItem:
# Activate or deactivate the FillItem here
Enable: true
# Here you can set the FillItem
Item: BLACK_STAINED_GLASS_PANE
# Here you set the settings for the alias
Command:
# Here you can enable or disable the alias of the GUI. The alias is the file name without .yml
Alias: true
Permission:
# Set here if a permission is needed for the alias or not. | Permission: commandgui.command.<alias>
Required: true
# Here you set the functions and slots
Slots:
# Here is an example of a slot
# To add another slot just copy the block. IMPORTANT: The slot name must not be duplicated (Slots.<name>).
function1:
# Here you set which slot the item / function should be in
Slot: 4
# Here you can activate and deactivate the slot
Enable: true
# Here you specify which function this slot should perform
Function: function1
Permission:
# Here you can set if a permission is needed to use this function.
Required: false
# Placeholder: [function] which function is used | [slot] is the slot number | [slotname] is the name of the key (Slots.KEY)
See: commandgui.gui.[function].slot.[slot].see
Use: commandgui.gui.[function].slot.[slot].use
function2:
Slot: 6
Enable: true
Function: function2
Permission:
Required: false
See: commandgui.gui.[function].slot.[slot].see
Use: commandgui.gui.[function].slot.[slot].use

View File

@ -1,4 +0,0 @@
name: CommandGUI
version: ${project.version}
main: de.jatitv.commandguiv2.Bungee.BMain
author: JaTiTV

View File

@ -0,0 +1,313 @@
#########################################
## Please do not change ConfigVersion! ##
#########################################
ConfigVersion: 7
Plugin:
# Here you can set the debug mode of the plugin.
# It is recommended not to activate this on productive systems. Only if it is really needed!
Debug: false
updateCheck:
# In this option you can set if players with the permission 'commandgui.updatemsg' will get an update message on join when an update for the plugin is available.
onJoin: true
# In this option you can set whether you want to receive and display beta and snapshot versions in the update check.
seePreReleaseUpdates: true
# In this option you can set the time interval in minutes in which updates should be checked.
timeInterval: 60
# Here you can set whether the Helpalias command (/commandguihelp) should be activated.
# If this is changed the server MUST be restarted to change this!
HelpAlias: true
# Here you set which subcommand should be for the admin functions.
# (/commandgui 'admin' reload)
AdminSubCommand: admin
# here you set the language to be used
language: english
# Here you set the character or word that will be used as currency
Currency: $
# Here you set which GUI should be opened at '/commandgui' / '/gui'.
DefaultGUI: default
Storage:
# Set here if MySQL, SQLITE or YML should be used as storage.
Type: SQLITE
# Enter here the access data to the database you want to use, if you use MySQL
MySQL:
IP: localhost
Port: 3306
Database: database
User: root
Password: password
SSL: false
UseItem:
# Set here if the UseItem is to be used in use
Enable: true
# Set here if players are allowed to enable or disable the UseItem with '/gui-item <on/off>'.
# Permission 'commandgui.useitem.toggle' is additionally required
AllowToggle: true
# Set here if players are allowed to change the slot in the inventory where the UseItem is located with '/gui-item <slot>'.
# Permission 'commandgui.useitem.toggle' is additionally required
AllowSetSlot: true
# Set here if the dropping of the UseItem should be blocked
BlockMoveAndDrop: true
# Set here which GUI should open the UseItem
OpenGUI: default
Permission:
# Set here if the permission 'commandgui.useitem' is required to use the UseItem
NeededToUse: true
# Set here if the UseItem should stay in the inventory with the '/clear' command
KeepAtCommandClear: true
InventorySlot:
# Set here on which slot the UseItem should be located by default
Slot: 1
# Set here if the slot should be forced even if another item is on this slot (also the set slot of the player).
# NOTE: The item that was on this slot before will be deleted.
SlotEnforce: false
# Set here if the UseItem should be placed on another free slot, if the selected slot (also the set slot of the player) is occupied.
FreeSlot: false
# Set here the item that should be used as UseItem
Item:
# Set here which material should be used as UseItem
Material: paper
PlayerHead:
# Set here if a PlayerHead should be used as UseItem
Enable: false
Base64:
# Set here if a Base64 PlayerHead should be used as UseItem
Enable: false
# Here you can set the Base64 Value.
# You can find the Base64 Value for example on https://minecraft-heads.com.
Base64Value: ''
# Here you can set whether the player head should be used as a UseItem by the player
PlayerWhoHasOpenedTheGUI: false
# Here you can set a player name whose head should be used as UseItem
Playername: ''
# Set the DisplayName of the UseItem here
Name: '&6GUI UseItem'
# Set the lore of the UseItem here
Lore:
- 'Lore line 1'
- 'Lore line 2'
Join:
# Set here if the UseItem should be given at every server join
GiveOnEveryJoin: true
# Set here if the UseItem should only be given to the server at the first join of the player.
GiveOnlyOnFirstJoin: false
Cursor:
ToGUIItem:
OnLogin:
# Here you define whether the UseItem should be selected when joining the server.
Enable: true
Spigot:
# Set here if the UseItem should only be selected at the first join
OnOnlyFirstLogin: true
Bungee:
# Set here if the UseItem should be selected even if you change the server of the bungee network.
# The option BungeeCord must be activated for this!
OnServerChange: false
Toggle:
# Set the items to be used with the Toggle function here
Items:
# Set here the item that should be used if you have the permission or the UseItem is active.
OnOrYes:
Item:
Base64:
# Set here if a Base64 head should be used
Enable: false
# Here you can set the Base64 Value.
# You can find the Base64 Value for example on https://minecraft-heads.com.
Base64Value: ''
# Set the material to be used here
Material: GREEN_WOOL
# Set here the item to be used if you have the permission or the UseItem is disabled
OffOrNo:
Item:
Base64:
# Set here if a Base64 head should be used
Enable: false
# Here you can set the Base64 Value.
# You can find the Base64 Value for example on https://minecraft-heads.com.
Base64Value: ''
# Set the material to be used here
Material: RED_WOOL
Permission:
# Set here the commands to be used for Toggle.Permission
Commands:
'True': luckperms user [player] permission set [perm] true
'False': luckperms user [player] permission set [perm] false
# Set the design of the placeholders here
Placeholder:
# Placeholder for true / enabled
'True': '&2true'
# Placeholder for false / disabled
'False': '&4false'
Sound:
# Here you can disable all sounds
Enable: true
# Set here At which action which sound should be played or none at all
OpenInventory:
Enable: true
Sound: BLOCK_CHEST_OPEN
Click:
Enable: true
Sound: BLOCK_NOTE_BLOCK_HAT
NoMoney:
Enable: true
Sound: BLOCK_NOTE_BLOCK_HARP
NoInventorySpace:
Enable: true
Sound: BLOCK_NOTE_BLOCK_HARP
Give:
Enable: true
Sound: ENTITY_PLAYER_LEVELUP
PlayerNotFound:
Enable: true
Sound: BLOCK_NOTE_BLOCK_HARP
Advanced:
UseItem:
GameMode:
Change:
# Set here if the UseItem should be reset when the GameMode is changed.
Enable: true
# Set the delay with which the UseItem should be reset (time in Minecraft ticks. 20 is one second).
DelayInTicks: 1
Protection:
# Set here in which gamemode the UseItem may be used
Enable: false
# Set here if the UseItem should be removed if you are in a not allowed Gamemode
RemoveItemWhenItIsDisabled: false
# Set here if a 'blacklist' or 'whitelist' should be used
Mode: blacklist
# Set the GameMode list here
List:
- CREATIVE
- Spectator
World:
Change:
# This specifies whether the UseItem should be reset when the world is changed.
Enable: true
# Set the delay with which the UseItem should be reset (time in Minecraft ticks. 20 is one second).
DelayInTicks: 1
Protection:
# Set here in which world the UseItem may be used
Enable: false
# Here you specify whether the UseItem should be removed if you are in a world that is not permitted
RemoveItemWhenItIsDisabled: false
# Set here if a 'blacklist' or 'whitelist' should be used
Mode: blacklist
# Set the worlds here
List:
- World1
- World2
# Set here for which blocks the UseItem is blocked and the function of the block you are looking at should be used.
ItemBlockBlacklist:
- CHEST
- CRAFTING_TABLE
- FURNACE
- OAK_FENCE
- SPRUCE_FENCE
- BIRCH_FENCE
- JUNGLE_FENCE
- ACACIA_FENCE
- DARK_OAK_FENCE
- MANGROVE_FENCE
- CRIMSON_FENCE
- WARPED_FENCE
- NETHER_BRICK_FENCE
- ENDER_CHEST
- BEACON
- ANVIL
- CHIPPED_ANVIL
- DAMAGED_ANVIL
- REPEATER
- COMPARATOR
- HOPPER
- DISPENSER
- DROPPER
- LEVER
- DAYLIGHT_DETECTOR
- TRAPPED_CHEST
- NOTE_BLOCK
- STONE_BUTTON
- POLISHED_BLACKSTONE_BUTTON
- OAK_BUTTON
- SPRUCE_BUTTON
- BIRCH_BUTTON
- JUNGLE_BUTTON
- ACACIA_BUTTON
- DARK_OAK_BUTTON
- MANGROVE_BUTTON
- CRIMSON_BUTTON
- WARPED_BUTTON
- IRON_DOOR
- OAK_DOOR
- SPRUCE_DOOR
- BIRCH_DOOR
- JUNGLE_DOOR
- ACACIA_DOOR
- DARK_OAK_DOOR
- MANGROVE_DOOR
- CRIMSON_DOOR
- WARPED_DOOR
- IRON_TRAPDOOR
- IRON_TRAPDOOR
- OAK_TRAPDOOR
- OAK_TRAPDOOR
- SPRUCE_TRAPDOOR
- SPRUCE_TRAPDOOR
- BIRCH_TRAPDOOR
- BIRCH_TRAPDOOR
- JUNGLE_TRAPDOOR
- JUNGLE_TRAPDOOR
- ACACIA_TRAPDOOR
- ACACIA_TRAPDOOR
- DARK_OAK_TRAPDOOR
- DARK_OAK_TRAPDOOR
- MANGROVE_TRAPDOOR
- MANGROVE_TRAPDOOR
- CRIMSON_TRAPDOOR
- CRIMSON_TRAPDOOR
- WARPED_TRAPDOOR
- WARPED_TRAPDOOR
- OAK_FENCE_GATE
- SPRUCE_FENCE_GATE
- BIRCH_FENCE_GATE
- JUNGLE_FENCE_GATE
- ACACIA_FENCE_GATE
- DARK_OAK_FENCE_GATE
- MANGROVE_FENCE_GATE
- CRIMSON_FENCE_GATE
- WARPED_FENCE_GATE
- CHEST_MINECART
- FURNACE_MINECART
- HOPPER_MINECART
- OAK_CHEST_BOAT
- SPRUCE_CHEST_BOAT
- BIRCH_CHEST_BOAT
- JUNGLE_CHEST_BOAT
- ACACIA_CHEST_BOAT
- DARK_OAK_CHEST_BOAT
- MANGROVE_CHEST_BOAT
- LEATHER_CHESTPLATE
- CHAINMAIL_CHESTPLATE
- IRON_CHESTPLATE
- DIAMOND_CHESTPLATE
- GOLDEN_CHESTPLATE
- NETHERITE_CHESTPLATE
- BREWING_STAND
- LOOM
- COMPOSTER
- BARREL
- SMOKER
- BLAST_FURNACE
- BLAST_FURNACE
- CARTOGRAPHY_TABLE
- FLETCHING_TABLE
- GRINDSTONE
- SMITHING_TABLE
- STONECUTTER

View File

@ -1,16 +1,11 @@
name: CommandGUI
name: T2C-CommandGUI
version: ${project.version}
main: de.jatitv.commandguiv2.Spigot.Main
main: net.t2code.commandguiv2.Spigot.Main
api-version: 1.13
prefix: CommandGUI
prefix: T2C-CommandGUI
authors: [ JaTiTV ]
softdepend:
- T2CodeLib
- Vault
- PlaceholderAPI
- PlotSquaredGUI
- PlugManGUI
commands:
commandgui:
@ -20,53 +15,4 @@ commands:
description: CommandGUI Help
aliases: [cguihelp, guihelp]
commandgui-item:
aliases: [gui-item]
#permissions:
# commandgui.admin:
# description: All permissions from CommandGUI
# default: op
# children:
# commandgui.command: true
# commandgui.get.guiitem.at.login: true
# commandgui.useitem: true
# commandgui.useitem.toggle: true
# commandgui.updatemsg: true
# commandgui.bypass: true
# commandgui.command.info: true
# commandgui.command.give: true
#
# commandgui.player:
# description: All permissions from CommandGUI
# default: op
# children:
# commandgui.command: true
# commandgui.get.guiitem.at.login: true
# commandgui.useitem: true
# commandgui.useitem.toggle: true
#
# commandgui.updatemsg:
# description: Players with this permission get the update message when joining if an update is available
# default: op
# commandgui.command:
# description: Required permission to open GUIs via command
# default: op
# commandgui.get.guiitem.at.login:
# description: Only players with this permission will receive the GUI item
# default: op
# commandgui.useitem:
# description: Required permission to use the GUI Item
# default: op
# commandgui.useitem.toggle:
# description: Required permission to enable/disable the GUI Item for itself (if the function UseItem/AllowToggle is set to true)
# default: op
# commandgui.bypass:
# description: Bypass to open disabled GUIs
# default: op
# commandgui.command.info:
# description: Permission to view CommandGUI info
# default: not op
# commandgui.command.give:
# description: Kommend in V2.1.0
# default: op
aliases: [gui-item, useitem]

View File

@ -27,6 +27,9 @@ Slots:
Sound: ''
Cost:
Enable: false
EcoModule: VAULT
Item: DIRT;5
VotePoints: 0
Price: 0.0
Command:
Enable: false
@ -72,3 +75,11 @@ Slots:
PluginReload:
Enable: false
Command: ''
FunctionVotePoints:
Enable: false
Mode: ADD
Amount: 0
FunctionItem:
Enable: false
Mode: REMOVE
Item: DIRT;5

View File

@ -20,6 +20,9 @@ Slots:
Sound: ''
Cost:
Enable: false
EcoModule: VAULT
Item: DIRT;5
VotePoints: 0
Price: 0.0
Command:
Enable: false
@ -65,3 +68,11 @@ Slots:
PluginReload:
Enable: false
Command: ''
FunctionVotePoints:
Enable: false
Mode: ADD
Amount: 0
FunctionItem:
Enable: false
Mode: REMOVE
Item: DIRT;5

View File

@ -0,0 +1,158 @@
#####################################################
## To add another Function just create a new file. ##
#####################################################
Slots:
Function:
Item:
# Here you can create an empty slot.
# Note: When this is enabled, no functions will work.
Empty: false
# Here you can set the number of items
Amount: 1
PlayerHead:
# Here you can set if the item should be a player head
Enable: false
Base64:
# Here you can specify whether a Base64 player header should be used
Enable: false
# Here you can set the Base64 Value.
# You can find the Base64 Value for example on https://minecraft-heads.com.
Base64Value: ''
# Here you can set whether the player head should be used by the player who has opened the GUI.
PlayerWhoHasOpenedTheGUI: false
# Here you can set a specific player from which the player head should be used
PlayerName: ''
# Here you can set a Minecraft material to be used. This is ignored when PlayerHead is used
Material: 'DIRT'
# Here you set the DisplayName of the item
Name: 'Item Title'
# Here you set the lore of the item
Lore:
- '&8-----------------'
- '&bLine 1'
- '&bLine 2'
- '&8-----------------'
CustomSound:
# Here you can set whether a specific sound or the default sound from the config.yml should be used.
Enable: false
# Here you can deactivate the sound for this item. CustomSound must be activated for this!
NoSound: false
# Here you set the custom sound
Sound: ''
Cost:
# Here you can specify whether the function should cost or not
Enable: false
# Here you set which economy mode should be used.
# Use 'VAULT' / 'MONEY' for money via vault.
# Use 'ITEM' to pay with items.
# Use 'VOTEPOINTS' to pay with vote points from VotingPlugin (https://spigotmc.org/resources/votingplugin.15358/).
EcoModule: VAULT
# Set the item and the quantity for the ITEM mode here. (ITEM;AMOUNT)
Item: DIRT;5
# Set here the VotePoints for the VOTEPOINTS mode.
VotePoints: 0
# Set the money here for the mode VAULT or MONEY
Price: 0.0
Command:
# Here you can enable or disable the Command function
# Placeholder: [player] = PlayerName
Enable: false
# Here you can specify if this command should be executed on the bugee
BungeeCommand: false
# Here you can set if the command should be executed from the console
# Example: You can also create a store with this command.
# /give [player] stone | So all commands can be executed even those for which the player has no permission.
CommandAsConsole: false
# Here you can set commands. Several commands are also possible.
# They are processed from top to bottom and executed one after the other!
Command:
- 'command 1'
- 'command 2'
ServerChange:
# Here you can enable or disable the function ServerChange
# To use this function the function BungeeCord must be activated in the conig.yml and the plugin must be installed on the proxy!
Enable: false
# # Here you can say which server the player should be moved to.
Server: ''
OpenGUI:
# Here you can enable or disable the OpenGUI feature
Enable: false
# Here you can set which GUI should be opened.
# Use the file name of the GUI without .yml
GUI: ''
Toggle:
# Here you can enable a feature that allows players to give or remove permissions to each other
# The commands for the permission plugin can be set in the config (default for LuckPerms)
Permission:
# Activate this function here
Enable: false
# Set the permission here
Permission: ''
UseItem:
# When this function is enabled, players can toggle the UseItem on and off.
# For this function 'UseItem.AllowToggle' must be activated in config.yml!
Enable: false
Message:
# Here you can enable or disable the Message function
Enable: false
# Here you can set the messages to be sent to the player
# Placeholder: [player] = PlayerName | [prefix] = PluginPrefix | [price] = price if function Cost is activated
Message:
- 'Message line 1'
- 'Message line 2'
SetConfig:
# Here you can enable or disable the SetConfig function
Enable: false
File:
# Here you define in which file something should be changed
# Example at this file: 'plugins/CommandGUI/GUIs/default.yml'.
Path: ''
Option:
# Here you set the option to be changed
# Example on the option of this example slots: 'Slots.Example.Slot'
Path: ''
# Here you set which format should be set
# String = text in one line
# Boolean = true / false
# Integer = numbers without comma
# Double = number with comma | Please use . as comma
# List = text with multiple lines (- 'hi')
Premat: String
Value:
# Here you can set which value should be set when you click with the left mouse button.
LeftClick:
String: ''
Boolean: false
Integer: 0
Double: 0.0
List: []
# Here you set which value should be set when clicking with the right mouse button
RightClick:
String: ''
Boolean: false
Integer: 0
Double: 0.0
List: []
PluginReload:
# Here you can set if the plugin to which a file was changed should be reloaded directly
Enable: false
# Here you set the reload command to be used
# The command is executed by the console! No / is needed!
Command: ''
FunctionVotePoints:
# With this function you can give or subtract VotePoints from VotingPlugin to a player.
Enable: false
# Use to add: ADD
# Use to subtract: REMOVE
Mode: ADD
# Set the number of vote points to be subtracted / added here
Amount: 0
FunctionItem:
# With this function you can give or remove items to a player
Enable: false
# Use to add: ADD
# Use to subtract: REMOVE
Mode: REMOVE
# Enter the item (material) and the number behind it. Separate them with ; (ITEM;AMOUNT)
Item: DIRT;5

View File

@ -16,13 +16,13 @@ Slots:
Function: SupportDiscord
Permission:
Required: false
See: commandgui.gui.[guiname].slot.[slot].see
Use: commandgui.gui.[guiname].slot.[slot].use
See: commandgui.gui.[function].slot.[slot].see
Use: commandgui.gui.[function].slot.[slot].use
UseItem:
Slot: 6
Enable: true
Function: UseItem
Permission:
Required: false
See: commandgui.gui.[guiname].slot.[slot].see
Use: commandgui.gui.[guiname].slot.[slot].use
See: commandgui.gui.[function].slot.[slot].see
Use: commandgui.gui.[function].slot.[slot].use

View File

@ -0,0 +1,51 @@
################################################
## To add another GUI just create a new file. ##
################################################
GUI:
# Enable or disable the GUI
Enable: true
# Set the lines of the GUI here (1-6)
Lines: 1
# Here you set the display name of the GUI
Name: '&5default &9GUI'
FillItem:
# Activate or deactivate the FillItem here
Enable: true
# Here you can set the FillItem
Item: BLACK_STAINED_GLASS_PANE
# Here you set the settings for the alias
Command:
# Here you can enable or disable the alias of the GUI. The alias is the file name without .yml
Alias: true
Permission:
# Set here if a permission is needed for the alias or not. | Permission: commandgui.command.<alias>
Required: true
# Here you set the functions and slots
Slots:
# Here is an example of a slot
# To add another slot just copy the block. IMPORTANT: The slot name must not be duplicated (Slots.<name>).
function1:
# Here you set which slot the item / function should be in
Slot: 4
# Here you can activate and deactivate the slot
Enable: true
# Here you specify which function this slot should perform
Function: function1
Permission:
# Here you can set if a permission is needed to use this function.
Required: false
# Placeholder: [function] which function is used | [slot] is the slot number | [slotname] is the name of the key (Slots.KEY)
See: commandgui.gui.[function].slot.[slot].see
Use: commandgui.gui.[function].slot.[slot].use
function2:
Slot: 6
Enable: true
Function: function2
Permission:
Required: false
See: commandgui.gui.[function].slot.[slot].see
Use: commandgui.gui.[function].slot.[slot].use

Binary file not shown.

View File

@ -1,13 +1,13 @@
ConfigVersion: 5
Plugin:
UpdateCheckOnJoin: true
Debug: false
HelpAlias: true
AdminSubCommand: admin
language: english
Currency: $
DefaultGUI: default
Storage:
Type: YML
Type: SQLITE
MySQL:
IP: localhost
Port: 3306
@ -54,30 +54,6 @@ UseItem:
OnOnlyFirstLogin: true
Bungee:
OnServerChange: false
Advanced:
UseItem:
GameMode:
Change:
Enable: true
DelayInTicks: 1
Protection:
Enable: false
RemoveItemWhenItIsDisabled: false
Mode: blacklist
List:
- CREATIVE
- Spectator
World:
Change:
Enable: true
DelayInTicks: 1
Protection:
Enable: false
RemoveItemWhenItIsDisabled: false
Mode: blacklist
List:
- World1
- World2
Toggle:
Items:
OnOrYes:
@ -119,3 +95,133 @@ Sound:
PlayerNotFound:
Enable: true
Sound: BLOCK_NOTE_BLOCK_HARP
Advanced:
UseItem:
GameMode:
Change:
Enable: true
DelayInTicks: 1
Protection:
Enable: false
RemoveItemWhenItIsDisabled: false
Mode: blacklist
List:
- CREATIVE
- Spectator
World:
Change:
Enable: true
DelayInTicks: 1
Protection:
Enable: false
RemoveItemWhenItIsDisabled: false
Mode: blacklist
List:
- World1
- World2
ItemBlockBlacklist:
- CHEST
- CRAFTING_TABLE
- FURNACE
- OAK_FENCE
- SPRUCE_FENCE
- BIRCH_FENCE
- JUNGLE_FENCE
- ACACIA_FENCE
- DARK_OAK_FENCE
- MANGROVE_FENCE
- CRIMSON_FENCE
- WARPED_FENCE
- NETHER_BRICK_FENCE
- ENDER_CHEST
- BEACON
- ANVIL
- CHIPPED_ANVIL
- DAMAGED_ANVIL
- REPEATER
- COMPARATOR
- HOPPER
- DISPENSER
- DROPPER
- LEVER
- DAYLIGHT_DETECTOR
- TRAPPED_CHEST
- NOTE_BLOCK
- STONE_BUTTON
- POLISHED_BLACKSTONE_BUTTON
- OAK_BUTTON
- SPRUCE_BUTTON
- BIRCH_BUTTON
- JUNGLE_BUTTON
- ACACIA_BUTTON
- DARK_OAK_BUTTON
- MANGROVE_BUTTON
- CRIMSON_BUTTON
- WARPED_BUTTON
- IRON_DOOR
- OAK_DOOR
- SPRUCE_DOOR
- BIRCH_DOOR
- JUNGLE_DOOR
- ACACIA_DOOR
- DARK_OAK_DOOR
- MANGROVE_DOOR
- CRIMSON_DOOR
- WARPED_DOOR
- IRON_TRAPDOOR
- IRON_TRAPDOOR
- OAK_TRAPDOOR
- OAK_TRAPDOOR
- SPRUCE_TRAPDOOR
- SPRUCE_TRAPDOOR
- BIRCH_TRAPDOOR
- BIRCH_TRAPDOOR
- JUNGLE_TRAPDOOR
- JUNGLE_TRAPDOOR
- ACACIA_TRAPDOOR
- ACACIA_TRAPDOOR
- DARK_OAK_TRAPDOOR
- DARK_OAK_TRAPDOOR
- MANGROVE_TRAPDOOR
- MANGROVE_TRAPDOOR
- CRIMSON_TRAPDOOR
- CRIMSON_TRAPDOOR
- WARPED_TRAPDOOR
- WARPED_TRAPDOOR
- OAK_FENCE_GATE
- SPRUCE_FENCE_GATE
- BIRCH_FENCE_GATE
- JUNGLE_FENCE_GATE
- ACACIA_FENCE_GATE
- DARK_OAK_FENCE_GATE
- MANGROVE_FENCE_GATE
- CRIMSON_FENCE_GATE
- WARPED_FENCE_GATE
- CHEST_MINECART
- FURNACE_MINECART
- HOPPER_MINECART
- OAK_CHEST_BOAT
- SPRUCE_CHEST_BOAT
- BIRCH_CHEST_BOAT
- JUNGLE_CHEST_BOAT
- ACACIA_CHEST_BOAT
- DARK_OAK_CHEST_BOAT
- MANGROVE_CHEST_BOAT
- LEATHER_CHESTPLATE
- CHAINMAIL_CHESTPLATE
- IRON_CHESTPLATE
- DIAMOND_CHESTPLATE
- GOLDEN_CHESTPLATE
- NETHERITE_CHESTPLATE
- BREWING_STAND
- LOOM
- COMPOSTER
- BARREL
- SMOKER
- BLAST_FURNACE
- BLAST_FURNACE
- CARTOGRAPHY_TABLE
- FLETCHING_TABLE
- GRINDSTONE
- SMITHING_TABLE
- STONECUTTER

View File

@ -0,0 +1,313 @@
#########################################
## Please do not change ConfigVersion! ##
#########################################
ConfigVersion: 5
Plugin:
# Here you can set the debug mode of the plugin.
# It is recommended not to activate this on productive systems. Only if it is really needed!
Debug: false
# Here you can set whether the Helpalias command (/commandguihelp) should be activated.
# If this is changed the server MUST be restarted to change this!
HelpAlias: true
# Here you set which subcommand should be for the admin functions.
# (/commandgui 'admin' reload)
AdminSubCommand: admin
# here you set the language to be used
language: english
# Here you set the character or word that will be used as currency
Currency: $
# Here you set which GUI should be opened at '/commandgui' / '/gui'.
DefaultGUI: default
Storage:
# Set here if MySQL, SQLITE or YML should be used as storage.
Type: SQLITE
# Enter here the access data to the database you want to use, if you use MySQL
MySQL:
IP: localhost
Port: 3306
Database: database
User: root
Password: password
SSL: false
BungeeCord:
# Set here if the plugin runs in a BungeeCord subserver.
# The plugin file must then be installed on the proxy (BungeeCord, Waterfall) and on the servers.
Enable: false
# Set here the server name of the server
ThisServer: server
UseItem:
# Set here if the UseItem is to be used in use
Enable: true
# Set here if players are allowed to enable or disable the UseItem with '/gui-item <on/off>'.
# Permission 'commandgui.useitem.toggle' is additionally required
AllowToggle: true
# Set here if players are allowed to change the slot in the inventory where the UseItem is located with '/gui-item <slot>'.
# Permission 'commandgui.useitem.toggle' is additionally required
AllowSetSlot: true
# Set here if the dropping of the UseItem should be blocked
BlockMoveAndDrop: true
# Set here which GUI should open the UseItem
OpenGUI: default
Permission:
# Set here if the permission 'commandgui.useitem' is required to use the UseItem
NeededToUse: true
# Set here if the UseItem should stay in the inventory with the '/clear' command
KeepAtCommandClear: true
InventorySlot:
# Set here on which slot the UseItem should be located by default
Slot: 1
# Set here if the slot should be forced even if another item is on this slot (also the set slot of the player).
# NOTE: The item that was on this slot before will be deleted.
SlotEnforce: false
# Set here if the UseItem should be placed on another free slot, if the selected slot (also the set slot of the player) is occupied.
FreeSlot: false
# Set here the item that should be used as UseItem
Item:
# Set here which material should be used as UseItem
Material: paper
PlayerHead:
# Set here if a PlayerHead should be used as UseItem
Enable: false
Base64:
# Set here if a Base64 PlayerHead should be used as UseItem
Enable: false
# Here you can set the Base64 Value.
# You can find the Base64 Value for example on https://minecraft-heads.com.
Base64Value: ''
# Here you can set whether the player head should be used as a UseItem by the player
PlayerWhoHasOpenedTheGUI: false
# Here you can set a player name whose head should be used as UseItem
Playername: ''
# Set the DisplayName of the UseItem here
Name: '&6GUI UseItem'
# Set the lore of the UseItem here
Lore:
- 'Lore line 1'
- 'Lore line 2'
Join:
# Set here if the UseItem should be given at every server join
GiveOnEveryJoin: true
# Set here if the UseItem should only be given to the server at the first join of the player.
GiveOnlyOnFirstJoin: false
Cursor:
ToGUIItem:
OnLogin:
# Here you define whether the UseItem should be selected when joining the server.
Enable: true
Spigot:
# Set here if the UseItem should only be selected at the first join
OnOnlyFirstLogin: true
Bungee:
# Set here if the UseItem should be selected even if you change the server of the bungee network.
# The option BungeeCord must be activated for this!
OnServerChange: false
Toggle:
# Set the items to be used with the Toggle function here
Items:
# Set here the item that should be used if you have the permission or the UseItem is active.
OnOrYes:
Item:
Base64:
# Set here if a Base64 head should be used
Enable: false
# Here you can set the Base64 Value.
# You can find the Base64 Value for example on https://minecraft-heads.com.
Base64Value: ''
# Set the material to be used here
Material: GREEN_WOOL
# Set here the item to be used if you have the permission or the UseItem is disabled
OffOrNo:
Item:
Base64:
# Set here if a Base64 head should be used
Enable: false
# Here you can set the Base64 Value.
# You can find the Base64 Value for example on https://minecraft-heads.com.
Base64Value: ''
# Set the material to be used here
Material: RED_WOOL
Permission:
# Set here the commands to be used for Toggle.Permission
Commands:
'True': luckperms user [player] permission set [perm] true
'False': luckperms user [player] permission set [perm] false
# Set the design of the placeholders here
Placeholder:
# Placeholder for true / enabled
'True': '&2true'
# Placeholder for false / disabled
'False': '&4false'
Sound:
# Here you can disable all sounds
Enable: true
# Set here At which action which sound should be played or none at all
OpenInventory:
Enable: true
Sound: BLOCK_CHEST_OPEN
Click:
Enable: true
Sound: BLOCK_NOTE_BLOCK_HAT
NoMoney:
Enable: true
Sound: BLOCK_NOTE_BLOCK_HARP
NoInventorySpace:
Enable: true
Sound: BLOCK_NOTE_BLOCK_HARP
Give:
Enable: true
Sound: ENTITY_PLAYER_LEVELUP
PlayerNotFound:
Enable: true
Sound: BLOCK_NOTE_BLOCK_HARP
Advanced:
UseItem:
GameMode:
Change:
# Set here if the UseItem should be reset when the GameMode is changed.
Enable: true
# Set the delay with which the UseItem should be reset (time in Minecraft ticks. 20 is one second).
DelayInTicks: 1
Protection:
# Set here in which gamemode the UseItem may be used
Enable: false
# Set here if the UseItem should be removed if you are in a not allowed Gamemode
RemoveItemWhenItIsDisabled: false
# Set here if a 'blacklist' or 'whitelist' should be used
Mode: blacklist
# Set the GameMode list here
List:
- CREATIVE
- Spectator
World:
Change:
# This specifies whether the UseItem should be reset when the world is changed.
Enable: true
# Set the delay with which the UseItem should be reset (time in Minecraft ticks. 20 is one second).
DelayInTicks: 1
Protection:
# Set here in which world the UseItem may be used
Enable: false
# Here you specify whether the UseItem should be removed if you are in a world that is not permitted
RemoveItemWhenItIsDisabled: false
# Set here if a 'blacklist' or 'whitelist' should be used
Mode: blacklist
# Set the worlds here
List:
- World1
- World2
# Set here for which blocks the UseItem is blocked and the function of the block you are looking at should be used.
ItemBlockBlacklist:
- CHEST
- CRAFTING_TABLE
- FURNACE
- OAK_FENCE
- SPRUCE_FENCE
- BIRCH_FENCE
- JUNGLE_FENCE
- ACACIA_FENCE
- DARK_OAK_FENCE
- MANGROVE_FENCE
- CRIMSON_FENCE
- WARPED_FENCE
- NETHER_BRICK_FENCE
- ENDER_CHEST
- BEACON
- ANVIL
- CHIPPED_ANVIL
- DAMAGED_ANVIL
- REPEATER
- COMPARATOR
- HOPPER
- DISPENSER
- DROPPER
- LEVER
- DAYLIGHT_DETECTOR
- TRAPPED_CHEST
- NOTE_BLOCK
- STONE_BUTTON
- POLISHED_BLACKSTONE_BUTTON
- OAK_BUTTON
- SPRUCE_BUTTON
- BIRCH_BUTTON
- JUNGLE_BUTTON
- ACACIA_BUTTON
- DARK_OAK_BUTTON
- MANGROVE_BUTTON
- CRIMSON_BUTTON
- WARPED_BUTTON
- IRON_DOOR
- OAK_DOOR
- SPRUCE_DOOR
- BIRCH_DOOR
- JUNGLE_DOOR
- ACACIA_DOOR
- DARK_OAK_DOOR
- MANGROVE_DOOR
- CRIMSON_DOOR
- WARPED_DOOR
- IRON_TRAPDOOR
- IRON_TRAPDOOR
- OAK_TRAPDOOR
- OAK_TRAPDOOR
- SPRUCE_TRAPDOOR
- SPRUCE_TRAPDOOR
- BIRCH_TRAPDOOR
- BIRCH_TRAPDOOR
- JUNGLE_TRAPDOOR
- JUNGLE_TRAPDOOR
- ACACIA_TRAPDOOR
- ACACIA_TRAPDOOR
- DARK_OAK_TRAPDOOR
- DARK_OAK_TRAPDOOR
- MANGROVE_TRAPDOOR
- MANGROVE_TRAPDOOR
- CRIMSON_TRAPDOOR
- CRIMSON_TRAPDOOR
- WARPED_TRAPDOOR
- WARPED_TRAPDOOR
- OAK_FENCE_GATE
- SPRUCE_FENCE_GATE
- BIRCH_FENCE_GATE
- JUNGLE_FENCE_GATE
- ACACIA_FENCE_GATE
- DARK_OAK_FENCE_GATE
- MANGROVE_FENCE_GATE
- CRIMSON_FENCE_GATE
- WARPED_FENCE_GATE
- CHEST_MINECART
- FURNACE_MINECART
- HOPPER_MINECART
- OAK_CHEST_BOAT
- SPRUCE_CHEST_BOAT
- BIRCH_CHEST_BOAT
- JUNGLE_CHEST_BOAT
- ACACIA_CHEST_BOAT
- DARK_OAK_CHEST_BOAT
- MANGROVE_CHEST_BOAT
- LEATHER_CHESTPLATE
- CHAINMAIL_CHESTPLATE
- IRON_CHESTPLATE
- DIAMOND_CHESTPLATE
- GOLDEN_CHESTPLATE
- NETHERITE_CHESTPLATE
- BREWING_STAND
- LOOM
- COMPOSTER
- BARREL
- SMOKER
- BLAST_FURNACE
- BLAST_FURNACE
- CARTOGRAPHY_TABLE
- FLETCHING_TABLE
- GRINDSTONE
- SMITHING_TABLE
- STONECUTTER

View File

@ -26,7 +26,11 @@ UseItem:
DisabledInWorld: '[prefix] &cThe UseItem is disabled in this World!'
Cost:
Buy_msg: '[prefix] &2You bought [itemname] &2for &6[price]&2.'
No_money: '[prefix] &cYou don''t have enough money!'
'No':
Money: '[prefix] &cYou don''t have enough money!/*/&cYou need: &6[price]&c.'
Item: '[prefix] &cYou don''t have enough items of &6[item] &cin your inventory!/*/&cYou
need: &6[amount]&c.'
Vote: '[prefix] &cYou do not have enough vote points!/*/&cYou need: &6[amount]&c.'
NoInventorySpace: '[prefix] &cYou have no room in your inventory!'
ServerChange:
onServerChange: '[prefix] &2You will be connected to the server &e[server]§2.'
@ -39,6 +43,15 @@ Give:
Player:
PlayerNotFond: '[prefix] &cThe player &6[player] &cwas not found or is not online!'
PlayerNoInventorySpace: '[prefix] &6[player] &chas no free space in his inventory!'
FunctionItem:
Add: '[prefix] &2You have &6[amount] [item] &2placed in your inventory.'
Remove: '[prefix] &2You have been &6[amount] [item] &2removed.'
RemoveError: '[prefix] &cYou don''t have so many items!/*/&cYou need &6[amount]
[item]&c!'
FunctionVote:
Add: '[prefix] &2You were given &6[amount] &2Vote points.'
Remove: '[prefix] &2You have been removed &6[amount] &2Vote points.'
RemoveError: '[prefix] &cYou don''t have so many VotePoints!/*/&cYou need &6[amount]&c!'
Help:
CGUI: '&8''''&b/commandgui &8| &b/cgui&8'''' &eOpen the default GUI &7(&r[gui]&7)&e.'
Help: '&8''''&b/commandguihelp&8'''' &eOpen this help.'
@ -51,5 +64,23 @@ Help:
Reload: '&8''''&b/commandgui admin reload&8'''' &eReload the plugin.'
UseItem_On: '&8''''&b/gui-item on&8'''' &eActivate the GUIItem for you.'
UseItem_Off: '&8''''&b/gui-item off&8'''' &eDisable the GUIItem for yourself.'
UseItem_Slot: '&8''''&b/gui-item slot [slot]&8'''' &eSet the slot for GUIItem for
you.'
UseItem_Slot: '&8''''&b/gui-item slot &7<slot>&8'''' &eSet the slot where you want
to have the GUIItem.'
Player:
CGUI: '&b/commandgui &8| &b/cgui/*/&eOpen the default GUI &7(&r[gui]&7)&e./*/SUGGEST_COMMAND/*//commandgui'
Help: '&b/commandguihelp/*/&eOpen this help./*/SUGGEST_COMMAND/*//commandguihelp'
Info: '&b/commandgui admin info/*/&eCall the info from &4Command&9GUI &e./*/SUGGEST_COMMAND/*//commandgui
admin info'
Open: '&b/commandgui [gui]/*/&eOpen the GUI: &6[guiname]&e./*/SUGGEST_COMMAND/*//commandgui '
Give: '&b/commandgui admin give &7<player>/*/&eGive a player the GUI item./*/SUGGEST_COMMAND/*//commandgui
admin give '
CreateDefaultGUI: '&b/commandgui admin createdefaultgui/*/&eCreate a default GUI
&7([directory])&e./*/SUGGEST_COMMAND/*//commandgui admin createdefaultgui'
Reload: '&b/commandgui admin reload/*/&eReload the plugin./*/SUGGEST_COMMAND/*//commandgui
admin reload'
UseItem_On: '&b/gui-item on/*/&eActivate the GUIItem for you./*/SUGGEST_COMMAND/*//gui-item
on'
UseItem_Off: '&b/gui-item off/*/&eDisable the GUIItem for yourself./*/SUGGEST_COMMAND/*//gui-item
off'
UseItem_Slot: '&b/gui-item slot &7<slot>/*/&eSet the slot where you want to have
the GUIItem./*/SUGGEST_COMMAND/*//gui-item slot '

View File

@ -26,7 +26,12 @@ UseItem:
DisabledInWorld: '[prefix] &cDas UseItem ist in dieser Welt deaktiviert!'
Cost:
Buy_msg: '[prefix] &2Du hast dir [itemname] &2f[ue]r &6[price] &2gekauft.'
No_money: '[prefix] &cDu hast nicht gen[ue]gend Geld!'
'No':
Money: '[prefix] &cDu hast nicht gen[ue]gend Geld!/*/&cDu ben[oe]tigst [price].'
Item: '[prefix] &cDu hast nicht gen[ue]gent Items von &6[item] &cim Inventar!/*/&cDu
ben[oe]tigst: &6[amount]&c.'
Vote: '[prefix] &cDu hast nicht gen[ue]gent Vote Punkte!/*/&cDu ben[oe]tigst:
&6[amount]&c.'
NoInventorySpace: '[prefix] &cDu hast keinen Platz in deinem Inventar!'
ServerChange:
onServerChange: '[prefix] &2Du wirst auf den Server §e[server] §2verbunden.'
@ -41,6 +46,15 @@ Player:
nicht Online!'
PlayerNoInventorySpace: '[prefix] &6[player] &chat keinen freien Platz in seinem
Inventar!'
FunctionItem:
Add: '[prefix] &2Dir wurden &6[amount] [item] &2in dein Inventar gelegt.'
Remove: '[prefix] &2Dir wurden &6[amount] [item] &2entfernt.'
RemoveError: '[prefix] &cDu hast nicht so viele Items!/*/&cDu benötigets &6[amount]
[item]&c!'
FunctionVote:
Add: '[prefix] &2Dir wurden &6[amount] &2Vote Punkte gegeben.'
Remove: '[prefix] &2Dir wurden &6[amount] &2Vote Punkte entfernt.'
RemoveError: '[prefix] &cDu hast nicht so viele VotePunkte!/*/&cDu benötigets &6[amount]&c!'
Help:
CGUI: '&8''''&b/commandgui &8| &b/cgui&8'''' &e[OE]ffne die default GUI &7(&r[gui]&7)&e.'
Help: '&8''''&b/commandguihelp&8'''' &e[OE]ffne diese help.'
@ -54,5 +68,23 @@ Help:
Reload: '&8''''&b/commandgui admin reload&8'''' &eLade das Plugin neu.'
UseItem_On: '&8''''&b/gui-item on&8'''' &eAktiviere f[ue]r dich das GUIItem.'
UseItem_Off: '&8''''&b/gui-item off&8'''' &eDeaktiviere f[ue]r dich das GUIItem.'
UseItem_Slot: '&8''''&b/gui-item slot [slot]&8'''' &eSetze den Slot für GUIItem
für Sie einstellen.'
UseItem_Slot: '&8''''&b/gui-item slot &7<slot>&8'''' &eStelle den Slot ein, auf
den du das GUIItem haben möchtest.'
Player:
CGUI: '&b/commandgui &8| &b/cgui/*/&e[OE]ffne die default GUI &7(&r[gui]&7)&e./*/SUGGEST_COMMAND/*//commandgui'
Help: '&b/commandguihelp/*/&e[OE]ffne diese help./*/SUGGEST_COMMAND/*//commandguihelp'
Info: '&b/commandgui admin info/*/&eRufe die Infos von &4Command&9GUI &eauf./*/SUGGEST_COMMAND/*//commandgui
admin info'
Open: '&b/commandgui [gui]/*/&e[OE]ffne die GUI: &6[guiname]&e./*/SUGGEST_COMMAND/*//commandgui '
Give: '&b/commandgui admin give &7<player>/*/&eGebe einem Spieler das GUI-Item./*/SUGGEST_COMMAND/*//commandgui
admin give '
CreateDefaultGUI: '&b/commandgui admin createdefaultgui/*/&eLasse eine default
GUI erstellen &7([directory])&e./*/SUGGEST_COMMAND/*//commandgui admin createdefaultgui'
Reload: '&b/commandgui admin reload/*/&eLade das Plugin neu./*/SUGGEST_COMMAND/*//commandgui
admin reload'
UseItem_On: '&b/gui-item on/*/&eAktiviere f[ue]r dich das GUIItem./*/SUGGEST_COMMAND/*//gui-item
on'
UseItem_Off: '&b/gui-item off/*/&eDeaktiviere f[ue]r dich das GUIItem./*/SUGGEST_COMMAND/*//gui-item
off'
UseItem_Slot: '&b/gui-item slot &7<slot>/*/&eStelle den Slot ein, auf den du das
GUIItem haben möchtest./*/SUGGEST_COMMAND/*//gui-item slot '

View File

@ -25,7 +25,11 @@ UseItem:
DisabledInWorld: '[prefix] &cUseItem er deaktivert i denne verden!'
Cost:
Buy_msg: '[prefix] &2Du kjøpte [itemname] &2for &6[price]&2.'
No_money: '[prefix] &cDu har ikke nok penger!'
'No':
Money: '[prefix] &cDu har ikke nok penger!/*/&cDu trenger &6[price]&c.'
Item: '[prefix] &cDu har ikke nok varer av &6[item] &ci inventaret ditt!/*/&cDu
trenger: &6[amount]&c.'
Vote: '[prefix] &cDu har ikke nok stemmepoeng!/*/&cDu trenger: &6[amount]&c.'
NoInventorySpace: '[prefix] &cDu har ikke nok plass i inventaret ditt!'
ServerChange:
onServerChange: '[prefix] &2Du vil bli tilkoblet serveren &e[server]&2.'
@ -39,6 +43,14 @@ Player:
PlayerNotFond: '[prefix] &cSpilleren &6[player] &cble ikke funnet eller er ikke
pålogget!'
PlayerNoInventorySpace: '[prefix] &6[player] &char ikke nok plass i inventaret sitt!'
FunctionItem:
Add: '[prefix] &2Du har &6[amount] [item] &2plassert i beholdningen din.'
Remove: '[prefix] &2Du har blitt &6[amount] [item] &2fjernet.'
RemoveError: '[prefix] &cDu har ikke så mange varer!/*/&cDu trenger &6[amount] [item]&c!'
FunctionVote:
Add: '[prefix] &2Du fikk &6[amount] &2stemmepoeng.'
Remove: '[prefix] &2Du har blitt fjernet &6[amount] &2Stemmepoeng.'
RemoveError: '[prefix] &cDu har ikke så mange stemmepoeng!/*/&cDu trenger &6[amount]&c!'
Help:
CGUI: '&8''''&b/commandgui &8| &b/cgui&8'''' &eÅpne default GUIen &7(&r[gui]&7)&e.'
Help: '&8''''&b/commandguihelp&8'''' &eSender denne hjelpe meldingen.'
@ -50,5 +62,23 @@ Help:
Reload: '&8''''&b/commandgui admin reload&8'''' &eLast inn pluginet på nytt.'
UseItem_On: '&8''''&b/gui-item on&8'''' &eAktiverer en GUI gjenstand for deg.'
UseItem_Off: '&8''''&b/gui-item off&8'''' &eDeaktiverer en GUI gjenstand for deg.'
UseItem_Slot: '&8''''&b/gui-item slot [slot]&8'''' &eSett sporet for GUIItem for
UseItem_Slot: '&8''''&b/gui-item slot &7<slot>&8'''' &eSett sporet for GUIItem for
deg.'
Player:
CGUI: '&b/commandgui &8| &b/cgui/*/&eÅpne default GUIen &7(&r[gui]&7)&e./*/SUGGEST_COMMAND/*//commandgui'
Help: '&b/commandguihelp/*/&eSender denne hjelpe meldingen./*/SUGGEST_COMMAND/*//commandguihelp'
Info: '&b/commandgui admin info/*/&eKall informasjon fra &4Command&9GUI&e./*/SUGGEST_COMMAND/*//commandgui
admin info'
Open: '&b/commandgui [gui]/*/&eÅpne GUIen: &6[guiname]&e./*/SUGGEST_COMMAND/*//commandgui '
Give: '&b/commandgui admin give &7<player>/*/&eGi en spiller GUI gjenstanden./*/SUGGEST_COMMAND/*//commandgui
admin give '
CreateDefaultGUI: '&b/commandgui admin createdefaultgui/*/&eLag en normalverdi
GUI &7([directory])&e./*/SUGGEST_COMMAND/*//commandgui admin createdefaultgui'
Reload: '&b/commandgui admin reload/*/&eLast inn pluginet på nytt./*/SUGGEST_COMMAND/*//commandgui
admin reload'
UseItem_On: '&b/gui-item on/*/&eAktiverer en GUI gjenstand for deg./*/SUGGEST_COMMAND/*//gui-item
on'
UseItem_Off: '&b/gui-item off/*/&eDeaktiverer en GUI gjenstand for deg./*/SUGGEST_COMMAND/*//gui-item
off'
UseItem_Slot: '&b/gui-item slot &7<slot>/*/&eSett sporet for GUIItem for deg./*/SUGGEST_COMMAND/*//gui-item
slot '

View File

@ -54,3 +54,4 @@ Optional:
---
<img src="https://bstats.org/signatures/bukkit/CGUI.svg" width="600">
<img src="https://i.imgur.com/HoZSt7c.png" width="600">