Compare commits

..

13 Commits

Author SHA1 Message Date
f3bc2e3d4f remove trash line 2024-07-02 06:17:36 +02:00
d8f0752ea7 small code changes 2024-07-02 06:11:10 +02:00
90f899cb16 fix load on spigot Server 2024-07-01 21:21:59 +02:00
7c3ffc80c3 . 2024-07-01 19:50:19 +02:00
d5a82e6005 Add Velocity ALP Classes 2024-07-01 18:15:08 +02:00
eb237aaa89 Add Velocity
- bStats
  - config
  - updateChecker
2024-07-01 18:00:44 +02:00
1397656bf2 add velo 2024-07-01 15:12:53 +02:00
bbe8fbce49 remove EnumManager 2024-07-01 15:01:08 +02:00
9413f0f7c8 finish T2ClibConfig create with coments 2024-07-01 06:32:37 +02:00
a05223333c development status
add EnumManager
2024-07-01 03:18:32 +02:00
2ac9c890f6 add T2CplatformDetector 2024-06-17 23:53:01 +02:00
b8c65cb537 16.7
Debug messages removed
2024-06-15 18:06:14 +02:00
32b57de55c 16.6
1.21 support
minor code changes / bug fixes
2024-06-15 02:34:34 +02:00
54 changed files with 3284 additions and 339 deletions

View File

@@ -0,0 +1,32 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="VulnerableLibrariesLocal" enabled="true" level="WARNING" enabled_by_default="true">
<option name="isIgnoringEnabled" value="true" />
<option name="ignoredModules">
<list>
<option value="T2CodeLib" />
<option value="T2CodeLib" />
<option value="T2CodeLib" />
<option value="T2CodeLib" />
</list>
</option>
<option name="ignoredPackages">
<list>
<option value="junit:junit:4.10" />
<option value="commons-codec:commons-codec:1.9" />
<option value="commons-io:commons-io:2.4" />
<option value="org.apache.logging.log4j:log4j-core:2.0-beta9" />
</list>
</option>
<option name="ignoredReasons">
<list>
<option value="Not exploitable" />
<option value="Not exploitable" />
<option value="Not exploitable" />
<option value="Not exploitable" />
</list>
</option>
</inspection_tool>
</profile>
</component>

View File

@@ -26,6 +26,11 @@
<option name="name" value="sonatype-oss-snapshots1" />
<option name="url" value="https://s01.oss.sonatype.org/content/repositories/snapshots/" />
</remote-repository>
<remote-repository>
<option name="id" value="papermc-repo" />
<option name="name" value="papermc-repo" />
<option name="url" value="https://repo.papermc.io/repository/maven-public/" />
</remote-repository>
<remote-repository>
<option name="id" value="placeholderapi" />
<option name="name" value="placeholderapi" />

2
.idea/misc.xml generated
View File

@@ -14,5 +14,5 @@
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_16" default="true" project-jdk-name="16" project-jdk-type="JavaSDK" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="corretto-17" project-jdk-type="JavaSDK" />
</project>

124
.idea/uiDesigner.xml generated Normal file
View File

@@ -0,0 +1,124 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>

66
pom.xml
View File

@@ -6,7 +6,7 @@
<groupId>net.t2code</groupId>
<artifactId>T2CodeLib</artifactId>
<version>16.5</version>
<version>16.7_dev-1</version>
<!--version>VERSION_snapshot-0</version-->
<!--version>VERSION_beta-0</version-->
<!--version>VERSION_dev-0</version-->
@@ -27,8 +27,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>9</source>
<target>9</target>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
<plugin>
@@ -45,8 +45,32 @@
<createDependencyReducedPom>false</createDependencyReducedPom>
<relocations>
<relocation>
<pattern>net.kyori.adventure</pattern>
<shadedPattern>net.t2code.t2codelib.shaded.adventure</shadedPattern>
<pattern>net.kyori</pattern>
<shadedPattern>net.t2code.libraries.kyori.adventure</shadedPattern>
</relocation>
<relocation>
<pattern>com.google.gson</pattern>
<shadedPattern>net.t2code.libraries.google</shadedPattern>
</relocation>
<relocation>
<pattern>mozilla</pattern>
<shadedPattern>net.t2code.libraries.mozilla</shadedPattern>
</relocation>
<relocation>
<pattern>org.apache</pattern>
<shadedPattern>net.t2code.libraries.apache</shadedPattern>
</relocation>
<relocation>
<pattern>org.intellij</pattern>
<shadedPattern>net.t2code.libraries.intellij</shadedPattern>
</relocation>
<relocation>
<pattern>org.jetbrains</pattern>
<shadedPattern>net.t2code.libraries.jetbrains</shadedPattern>
</relocation>
<relocation>
<pattern>org.json</pattern>
<shadedPattern>net.t2code.libraries.json</shadedPattern>
</relocation>
</relocations>
</configuration>
@@ -81,6 +105,12 @@
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</repository>
<!-- Velocity / Paper-->
<repository>
<id>papermc-repo</id>
<url>https://repo.papermc.io/repository/maven-public/</url>
</repository>
<!-- repo.t2code / T2Code -->
<repository>
<id>T2Code</id>
@@ -118,7 +148,7 @@
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.20.6-R0.1-SNAPSHOT</version>
<version>1.21-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
@@ -134,18 +164,26 @@
<dependency>
<groupId>net.md-5</groupId>
<artifactId>bungeecord-api</artifactId>
<version>1.20-R0.1-SNAPSHOT</version>
<version>1.21-R0.1-SNAPSHOT</version>
<type>jar</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>net.md-5</groupId>
<artifactId>bungeecord-api</artifactId>
<version>1.19-R0.1-SNAPSHOT</version>
<version>1.21-R0.1-SNAPSHOT</version>
<type>javadoc</type>
<scope>provided</scope>
</dependency>
<!-- Velocity -->
<dependency>
<groupId>com.velocitypowered</groupId>
<artifactId>velocity-api</artifactId>
<version>3.3.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<!-- repo.t2code / T2Code -->
<dependency>
<groupId>net.t2code</groupId>
@@ -182,19 +220,19 @@
<dependency>
<groupId>net.kyori</groupId>
<artifactId>adventure-text-minimessage</artifactId>
<version>4.17.0</version>
<version>4.18.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>net.kyori</groupId>
<artifactId>adventure-platform-bukkit</artifactId>
<version>4.3.2</version>
<version>4.3.3</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>net.kyori</groupId>
<artifactId>adventure-platform-bungeecord</artifactId>
<version>4.3.2</version>
<version>4.3.3</version>
<scope>compile</scope>
</dependency>
@@ -227,6 +265,12 @@
<version>20230227</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>

View File

@@ -48,14 +48,12 @@ public class T2CBupdateAPI {
private static String pluginVersion;
public static void onUpdateCheckTimer(Plugin plugin, String prefix, String discord, Integer spigotID, String url) {
Integer finalInterval;
if (T2CBlibConfig.getUpdateTimer() < 1){
finalInterval = 1;
} else finalInterval = T2CBlibConfig.getUpdateTimer();
if ((int) T2CBlibConfig.VALUES.updateTimer.getValue() < 1) {
T2CBlibConfig.VALUES.updateTimer.setValue(1);
}
ProxyServer.getInstance().getScheduler().schedule(plugin, new Runnable() {
public void run() {
if (T2CBlibConfig.getUpdateCheckFullDisable()) return;
(new T2CBupdateCheckerGit(plugin, spigotID)).getVersion((webData) -> {
(new T2CBupdateCheckerGit(plugin)).getVersion((webData) -> {
pluginVersion = plugin.getDescription().getVersion();
T2CupdateObject update = new T2CupdateObject(
plugin.getDescription().getName(),
@@ -77,6 +75,6 @@ public class T2CBupdateAPI {
}
}, pluginVersion, spigotID, url);
}
}, 0, finalInterval * 60 * 20L, TimeUnit.SECONDS);
}, 0, (int) T2CBlibConfig.VALUES.updateTimer.getValue() * 60 * 20L, TimeUnit.SECONDS);
}
}

View File

@@ -18,17 +18,16 @@ import java.util.function.Consumer;
public class T2CBupdateCheckerGit {
private Plugin plugin;
private int resourceId;
public T2CBupdateCheckerGit(Plugin plugin, int resourceId) {
public T2CBupdateCheckerGit(Plugin plugin) {
this.plugin = plugin;
this.resourceId = resourceId;
}
public void getVersion(Consumer<T2CupdateWebData> consumer, String pluginVersion, Integer spigotID, String gitKey) {
if (T2CBlibConfig.getUpdateCheckFullDisable()) return;
String RepoURL = "https://git.t2code.net/api/v1/repos/" + gitKey + "/releases?limit=1";
if (!T2CBlibConfig.getSeePreReleaseUpdates()) {
if (!(boolean)T2CBlibConfig.VALUES.seePreReleaseUpdates.getValue() ) {
RepoURL = RepoURL + "&pre-release=false";
}
String finalRepoURL = RepoURL;

View File

@@ -0,0 +1,100 @@
// This class was created by JaTiTV.
package net.t2code.t2codelib.BUNGEE.api.yaml;
import net.md_5.bungee.config.ConfigurationProvider;
import net.md_5.bungee.config.YamlConfiguration;
import net.t2code.t2codelib.T2CconfigItem;
import net.md_5.bungee.config.Configuration;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
public class T2CBconfigWriter {
private static Configuration config;
public static void createConfig(File configFile, T2CconfigItem[] values, String... header) {
if (!configFile.exists()) {
configFile.getParentFile().mkdirs();
try {
configFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
return;
}
}
try {
config = ConfigurationProvider.getProvider(YamlConfiguration.class).load(configFile);
} catch (IOException e) {
throw new RuntimeException(e);
}
Map<String, List<String>> comments = new LinkedHashMap<>();
for(T2CconfigItem item : values){
if(!config.contains(item.getPath())){
config.set(item.getPath(), item.getValue());
}
comments.put(item.getPath(), item.getComments());
}
saveConfigWithComments(configFile, comments, header);
readConfig(config,values);
}
private static void readConfig(Configuration config, T2CconfigItem[] values) {
for(T2CconfigItem item : values){
item.setValue(config.get(item.getPath()));
}
}
private static void saveConfigWithComments(File file, Map<String, List<String>> comments, String... headers) {
try {
StringBuilder configContent = new StringBuilder();
for(String h : headers){
configContent.append("# ").append(h).append("\n");
}
configContent.append("\n");
addSection(config, comments, configContent, "", 0);
// Write the content to the file
Files.write(file.toPath(), configContent.toString().getBytes());
} catch (IOException e) {
e.printStackTrace();
}
}
private static void addSection(Configuration section, Map<String, List<String>> comments, StringBuilder builder, String prefix, int indentLevel) {
String indent = " ".repeat(indentLevel);
for (String key : section.getKeys()) {
String fullKey = prefix.isEmpty() ? key : prefix + "." + key;
Object value = section.get(key);
// Add comment if it exists for this key
List<String> commentList = comments.get(fullKey);
if (commentList != null) {
for(String c : commentList){
builder.append(indent).append("# ").append(c).append("\n");
}
}
// Check if the value is a section (nested map)
if (value instanceof Configuration) {
// Correctly add the section
builder.append(indent).append(key).append(":\n");
addSection((Configuration) value, comments, builder, fullKey, indentLevel + 1);
} else {
// Add value with proper indentation
builder.append(indent).append(key).append(": ").append(value).append("\n");
}
}
}
}

View File

@@ -4,15 +4,13 @@ import net.md_5.bungee.api.plugin.Plugin;
import net.t2code.t2codelib.BUNGEE.api.messages.T2CBsend;
import net.t2code.t2codelib.BUNGEE.api.update.T2CBupdateAPI;
import net.t2code.t2codelib.BUNGEE.system.bstats.T2CBmetrics;
import net.t2code.t2codelib.BUNGEE.system.config.T2CBlibConfig;
import net.t2code.t2codelib.BUNGEE.api.bungeePlayers.T2CBbungeePlayers;
import net.t2code.t2codelib.BUNGEE.system.config.T2CBlibConfig;
import net.t2code.t2codelib.BUNGEE.system.pluginMessaging.T2CplmsgBcmd;
import net.t2code.t2codelib.BUNGEE.system.pluginMessaging.autoResponse.T2CapiAutoResponse;
import net.t2code.t2codelib.BUNGEE.system.pluginMessaging.commandgui.T2CapiCGUI;
import net.t2code.t2codelib.BUNGEE.system.pluginMessaging.opSecurity.T2CapiOpSecurity;
import java.io.IOException;
public class T2CBload {
public static void onLoad(Plugin plugin, String prefix, String autor, String version, String spigot, String discord, Integer spigotID, Integer bstatsID, String url) {
long long_ = System.currentTimeMillis();
@@ -22,17 +20,8 @@ public class T2CBload {
T2CBsend.console(prefix + " §2Spigot: §6" + spigot);
T2CBsend.console(prefix + " §2Discord: §6" + discord);
T2CBmetrics.Bstats(plugin, bstatsID);
try {
T2CBlibConfig.create();
} catch (IOException e) {
throw new RuntimeException(e);
}
try {
T2CBlibConfig.select();
} catch (IOException e) {
throw new RuntimeException(e);
}
T2CBmetrics.bStats(plugin, bstatsID);
T2CBlibConfig.set();
T2CBupdateAPI.onUpdateCheckTimer(plugin, prefix, discord, spigotID, url);
@@ -44,16 +33,16 @@ public class T2CBload {
plugin.getProxy().getPluginManager().registerListener(plugin, new T2CBbungeePlayers());
T2CBbungeePlayers.sendToSpigotDeleteAll();
if (T2CBlibConfig.getApiCommandGUIEnable()) {
if ((boolean) T2CBlibConfig.VALUES.apiCommandGUIEnable.getValue()) {
plugin.getProxy().registerChannel("t2c:cguiopl");
plugin.getProxy().getPluginManager().registerListener(plugin, new T2CapiCGUI());
T2CapiCGUI.sendToSpigotDeleteAll();
}
if (T2CBlibConfig.getApiAutoResponse()) {
if ( (boolean)T2CBlibConfig.VALUES.apiAutoResponse.getValue() ) {
plugin.getProxy().registerChannel("t2c:aresp");
plugin.getProxy().getPluginManager().registerListener(plugin, new T2CapiAutoResponse());
}
if (T2CBlibConfig.getApiOpSecurity()) {
if ((boolean)T2CBlibConfig.VALUES.apiOpSecurity.getValue()) {
plugin.getProxy().registerChannel("t2c:t2c:opsec");
plugin.getProxy().getPluginManager().registerListener(plugin, new T2CapiOpSecurity());
}

View File

@@ -23,7 +23,7 @@ import java.util.zip.GZIPOutputStream;
public class T2CBmetrics {
public static void Bstats(Plugin plugin, int bstatsID) {
public static void bStats(Plugin plugin, int bstatsID) {
int pluginId = bstatsID; // <-- Replace with the id of your plugin!
T2CBmetrics metrics = new T2CBmetrics(plugin, pluginId);
}

View File

@@ -0,0 +1,37 @@
package net.t2code.t2codelib.BUNGEE.system.config;
import net.md_5.bungee.config.ConfigurationProvider;
import net.t2code.t2codelib.BUNGEE.system.T2CodeBMain;
import net.md_5.bungee.config.Configuration;
import net.md_5.bungee.config.YamlConfiguration;
import net.t2code.t2codelib.T2CconfigItem;
import java.io.File;
import java.io.IOException;
public class ConvertT2CBlibConfig {
public static Configuration configuration;
public static void convert() throws IOException {
File config = new File(T2CodeBMain.getPlugin().getDataFolder(), "config.yml");
configuration = ConfigurationProvider.getProvider(YamlConfiguration.class).load(config);
if (!config.exists()) return;
if (configuration.contains("plugin.updateCheck.onJoin")) return;
set("UpdateCheck.TimerInMin",T2CBlibConfig.VALUES.updateTimer);
set("UpdateCheck.SeePreReleaseUpdates",T2CBlibConfig.VALUES.seePreReleaseUpdates);
set("API.CommandGUI.Enable",T2CBlibConfig.VALUES.apiCommandGUIEnable);
set("API.AutoResponse.Enable",T2CBlibConfig.VALUES.apiAutoResponse);
set("API.OPSecurity.Enable",T2CBlibConfig.VALUES.apiOpSecurity);
config.delete();
}
private static void set(String path, T2CconfigItem item){
if (configuration.contains(path)){
item.setValue(configuration.get(path));
}
}
}

View File

@@ -1,63 +1,65 @@
package net.t2code.t2codelib.BUNGEE.system.config;
import lombok.Getter;
import net.md_5.bungee.config.Configuration;
import net.md_5.bungee.config.ConfigurationProvider;
import net.md_5.bungee.config.YamlConfiguration;
import net.t2code.t2codelib.BUNGEE.api.messages.T2CBsend;
import net.t2code.t2codelib.BUNGEE.api.yaml.T2CBconfig;
import net.t2code.t2codelib.BUNGEE.api.yaml.T2CBconfigWriter;
import net.t2code.t2codelib.BUNGEE.system.T2CodeBMain;
import net.t2code.t2codelib.T2CconfigItem;
import net.t2code.t2codelib.Util;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class T2CBlibConfig {
public static void create() throws IOException {
long long_ = System.currentTimeMillis();
File config = new File(T2CodeBMain.getPlugin().getDataFolder(), "config.yml");
if (!T2CodeBMain.getPlugin().getDataFolder().exists()) T2CodeBMain.getPlugin().getDataFolder().mkdir();
if (!config.exists()) {
config.createNewFile();
public enum VALUES implements T2CconfigItem{
updateTimer("updateCheck.timerInMin", 60,"In this option you can set the time interval in minutes in which updates should be checked."),
seePreReleaseUpdates("updateCheck.seePreReleaseUpdates", true,"In this option you can set whether you want to receive and display beta and snapshot versions in the update check."),
apiCommandGUIEnable("api.commandGUI.enable", false, "With this option you activate the api interface for the T2C-CommandGUI plugin."),
apiAutoResponse("api.autoResponse.enable", false,"With this option you activate the api interface for the T2C-AutoResponse plugin."),
apiOpSecurity("api.opSecurity.enable", false,"With this option you activate the api interface for the T2C-OPSecurity plugin."),
;
private final String path;
private Object value;
private final List<String> comments;
VALUES(String path, Object value, String... comments) {
this.path = path;
this.value = value;
this.comments = new ArrayList<>(Arrays.asList(comments));
}
Configuration configuration = ConfigurationProvider.getProvider(YamlConfiguration.class).load(config);
T2CBconfig.set("UpdateCheck.TimerInMin", 60, configuration);
T2CBconfig.set("UpdateCheck.SeePreReleaseUpdates", true, configuration);
T2CBconfig.set("Plugin.UpdateCheck.AllPlugins.FullDisable", false, configuration);
T2CBconfig.set("API.CommandGUI.Enable", false, configuration);
T2CBconfig.set("API.AutoResponse.Enable", false, configuration);
T2CBconfig.set("API.OPSecurity.Enable", false, configuration);
@Override
public String getPath() {
return path;
}
ConfigurationProvider.getProvider(YamlConfiguration.class).save(configuration, config);
T2CBsend.console(Util.getPrefix() + " §2config.yml were successfully created / updated." + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
@Override
public Object getValue() {
return value;
}
@Override
public List<String> getComments() {
return comments;
}
@Override
public void setValue(Object newValue) {
value = newValue;
}
}
public static void select() throws IOException {
File config = new File(T2CodeBMain.getPlugin().getDataFolder(), "config.yml");
Configuration configuration = ConfigurationProvider.getProvider(YamlConfiguration.class).load(config);
updateTimer = configuration.getInt("UpdateCheck.TimerInMin");
seePreReleaseUpdates = configuration.getBoolean("UpdateCheck.SeePreReleaseUpdates");
updateCheckFullDisable = configuration.getBoolean("Plugin.UpdateCheck.AllPlugins.FullDisable");
apiCommandGUIEnable = configuration.getBoolean("API.CommandGUI.Enable");
apiAutoResponse = configuration.getBoolean("API.AutoResponse.Enable");
apiOpSecurity = configuration.getBoolean("API.OPSecurity.Enable");
public static void set(){
try {
ConvertT2CBlibConfig.convert();
} catch (IOException e) {
throw new RuntimeException(e);
}
T2CBconfigWriter.createConfig(new File(T2CodeBMain.getPlugin().getDataFolder(), "config.yml"), VALUES.values(), Util.getConfigLogo());
}
@Getter
private static Integer updateTimer;
@Getter
private static Boolean seePreReleaseUpdates;
@Getter
private static Boolean updateCheckFullDisable;
@Getter
private static Boolean apiCommandGUIEnable;
@Getter
private static Boolean apiAutoResponse;
@Getter
private static Boolean apiOpSecurity;
}

View File

@@ -3,6 +3,7 @@ package net.t2code.t2codelib.SPIGOT.api.bungeePlayers;
import lombok.Getter;
import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend;
import net.t2code.t2codelib.SPIGOT.system.T2CodeLibMain;
import net.t2code.t2codelib.SPIGOT.system.config.config.T2CLibConfig;
import net.t2code.t2codelib.Util;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
@@ -37,7 +38,7 @@ public class T2CbungeePlayers implements PluginMessageListener {
bungeePlayers.remove(input);
break;
case GIVEALL:
if (!Util.getServerUUID().toString().equals(uuid)) {
if (!T2CLibConfig.VALUES.serverUUID.getValue().equals(uuid)) {
return;
}
bungeePlayers.clear();
@@ -67,7 +68,7 @@ public class T2CbungeePlayers implements PluginMessageListener {
DataOutputStream output = new DataOutputStream(stream);
try {
output.writeUTF(T2CbungeePlayersEnum.GIVEALL.name());
output.writeUTF(Util.getServerUUID().toString());
output.writeUTF(T2CLibConfig.VALUES.serverUUID.getValue().toString());
} catch (IOException e) {
e.printStackTrace();
}
@@ -76,7 +77,7 @@ public class T2CbungeePlayers implements PluginMessageListener {
player.sendPluginMessage(T2CodeLibMain.getPlugin(), "t2c:bonlp", stream.toByteArray());
T2Csend.debug(T2CodeLibMain.getPlugin(), "PluginMessage received channel: t2c:bonlp");
T2Csend.debug(T2CodeLibMain.getPlugin(), "PluginMessage send subChannel: " + T2CbungeePlayersEnum.GIVEALL.name());
T2Csend.debug(T2CodeLibMain.getPlugin(), "PluginMessage send output/uuid: " + Util.getServerUUID().toString());
T2Csend.debug(T2CodeLibMain.getPlugin(), "PluginMessage send output/uuid: " + T2CLibConfig.VALUES.serverUUID.getValue().toString());
return;
}
}

View File

@@ -1,60 +1,73 @@
package net.t2code.t2codelib.SPIGOT.api.messages;
import net.t2code.t2codelib.SPIGOT.api.update.T2CupdateAPI;
import net.t2code.t2codelib.SPIGOT.system.config.config.SelectLibConfig;
import net.t2code.t2codelib.SPIGOT.system.T2CodeLibMain;
import net.t2code.t2codelib.T2CupdateWebData;
import net.t2code.t2codelib.UpdateType;
import net.t2code.t2codelib.Util;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginLogger;
import org.jetbrains.annotations.NotNull;
import java.util.List;
import java.util.logging.Level;
public class T2Ctemplate {
public static Long onLoadHeader(String prefix, List<String> autor, String version, String spigot, String discord) {
public static Long onLoadHeader(String prefix, List<String> autor, String version, String spigot, String discord) {
return onLoadHeader(prefix, autor, version, spigot, discord, null, null);
}
public static Long onLoadHeader(String prefix, List<String> autor, String version, String spigot, String discord, Boolean isPremium) {
public static Long onLoadHeader(String prefix, List<String> autor, String version, String spigot, String discord, Boolean isPremium) {
return onLoadHeader(prefix, autor, version, spigot, discord, isPremium, null);
}
public static Long onLoadHeader(String prefix, List<String> autor, String version, String spigot, String discord, Boolean isPremium, Boolean isVerify) {
public static Long onLoadHeader( String prefix, List<String> autor, String version, String spigot, String discord, Boolean isPremium, Boolean isVerify) {
Long long_ = System.currentTimeMillis();
T2Csend.console(prefix + " <dark_red> _______ </dark_red><gray>___ </gray><dark_red>_____ </dark_red>");
T2Csend.console(prefix + " <dark_red> |__ __|</dark_red><gray>__ \\ </gray><dark_red>/ ____|</dark_red>");
T2Csend.console(prefix + " <dark_red> | | </dark_red><gray> ) </gray><dark_red>| | </dark_red>");
T2Csend.console(prefix + " <dark_red> | | </dark_red><gray> / /</gray><dark_red>| | </dark_red>");
T2Csend.console(prefix + " <dark_red> | | </dark_red><gray>/ /_</gray><dark_red>| |____ </dark_red>");
T2Csend.console(prefix + " <dark_red> |_| </dark_red><gray>|____|</gray><dark_red>\\_____|</dark_red>");
T2Csend.console(prefix + " §4 §e╔══════════════════════════");
T2Csend.console(prefix + " §4 §e║ §2Autor: §6" + String.valueOf(autor).replace("[", "").replace("]", ""));
T2Csend.console(prefix + " §4 §e║ §2Version: §6" + version);
T2Csend.console(prefix + " §4 §e║ §2Spigot: §6" + spigot);
T2Csend.console(prefix + " §4 §e║ §2Discord: §6" + discord);
/**
T2Csend.console(prefix + " <dark_red> _______ </dark_red><gray>___ </gray><dark_red>_____ </dark_red>");
T2Csend.console(prefix + " <dark_red> |__ __|</dark_red><gray>__ \\ </gray><dark_red>/ ____|</dark_red>");
T2Csend.console(prefix + " <dark_red> | | </dark_red><gray> ) </gray><dark_red>| | </dark_red>");
T2Csend.console(prefix + " <dark_red> | | </dark_red><gray> / /</gray><dark_red>| | </dark_red>");
T2Csend.console(prefix + " <dark_red> | | </dark_red><gray>/ /_</gray><dark_red>| |____ </dark_red>");
T2Csend.console(prefix + " <dark_red> |_| </dark_red><gray>|____|</gray><dark_red>\\_____|</dark_red>");
*/
T2Csend.console(prefix + " §e╔════════════════════════════════════");
onStartMsg(prefix,"");
for (String s : Util.getLoadLogo()) {
onStartMsg(prefix, s);
}
onStartMsg(prefix,"");
onStartMsg(prefix,"§2Author §6" + String.valueOf(autor).replace("[", "").replace("]", ""));
onStartMsg(prefix,"§2Version: §6" + version);
onStartMsg(prefix,"§2Spigot: §6" + spigot);
onStartMsg(prefix,"§2Discord: §6" + discord);
if (isPremium != null) {
if (isPremium) {
T2Csend.console(prefix + " §4 §e║ §6Premium: §2true");
} else T2Csend.console(prefix + " §4 §e║ §6Premium: §4false");
onStartMsg(prefix,"§6Premium: §2true");
} else onStartMsg(prefix,"§6Premium: §4false");
if (isVerify != null) {
if (isVerify) {
T2Csend.console(prefix + " §4 §e║ §6Verify: §2true");
} else T2Csend.console(prefix + " §4 §e║ §6Verify: §4false");
} else T2Csend.console(prefix + " §4 §e║ §6Verify: §4false");
onStartMsg(prefix,"§6Verify: §2true");
} else onStartMsg(prefix,"§6Verify: §4false");
} else onStartMsg(prefix,"§6Verify: §4false");
}
T2Csend.console(prefix + " §4 §e╚══════════════════════════");
onLoadSeparateStroke(prefix);
if (version.toLowerCase().contains("dev") || version.toLowerCase().contains("snapshot") || version.toLowerCase().contains("beta")) {
T2Csend.console(prefix + " §eYou are running §4" + version + " §eof " + prefix + "§e! Some features may not be working as expected. Please report all" +
" bugs here: http://dc.t2code.net §4UpdateChecker & bStats may be disabled!");
onLoadSeparateStroke(prefix);
if (!SelectLibConfig.getT2cTestDevelopment()) {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
return long_;
@@ -67,7 +80,11 @@ public class T2Ctemplate {
}
public static void onLoadSeparateStroke(String prefix) {
T2Csend.console(prefix + " §8-------------------------------");
onStartMsg(prefix,"§8-------------------------------");
}
public static void onStartMsg(String prefix, String msg) {
T2Csend.console(prefix + " §e║ " + msg);
}
public static void onLoadFooter(String prefix, Long long_, String v) {
@@ -76,7 +93,8 @@ public class T2Ctemplate {
public static void onLoadFooter(String prefix, Long long_) {
onLoadSeparateStroke(prefix);
T2Csend.console(prefix + " §2Plugin loaded successfully." + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
onStartMsg(prefix, "§2Plugin loaded successfully." + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
T2Csend.console(prefix + " §e╚════════════════════════════════════");
}
/**
@@ -134,7 +152,7 @@ public class T2Ctemplate {
String stUpdate = "<dark_red>║</dark_red> <yellow>New version available:</yellow> [up]".replace("[up]", webData != null ? update ?
"<dark_green>YES</dark_green>" : "<red>no</red>" : "<b><dark_red>It could not be checked for updates!</dark_red></b>");
stNVersion = update ? "<br><dark_red>║</dark_red> <yellow>Newest Version:</yellow> <gold>[nver]</gold>".replace("[nver]",player ? "<hover:show_text:'<yellow>Click for the update information</yellow>'><click:run_command:'/t2code updateinfo "+plugin.getName()+"'>"+publicVersion+"</click></hover>":publicVersion) : "";
stNVersion = update ? "<br><dark_red>║</dark_red> <yellow>Newest Version:</yellow> <gold>[nver]</gold>".replace("[nver]", player ? "<hover:show_text:'<yellow>Click for the update information</yellow>'><click:run_command:'/t2code updateinfo " + plugin.getName() + "'>" + publicVersion + "</click></hover>" : publicVersion) : "";
String stLinkPlayer = "<dark_red>║</dark_red> <yellow><hover:show_text:'<green>Go to the Spigot page</green>'><click:open_url:'[slink]'>Spigot</click></hover></yellow> "
.replace("[slink]", "https://www.spigotmc.org/resources/" + spigotID)
+ "<dark_red>-</dark_red> <dark_purple><hover:show_text:'<green>Go to the T2Code Support Discord</green>'><click:open_url:'[dlink]'>Discord</click></hover></dark_purple>"

View File

@@ -1,27 +1,36 @@
package net.t2code.t2codelib.SPIGOT.api.minecraftVersion;
import net.t2code.t2codelib.SPIGOT.api.debug.T2Cdebug;
import net.t2code.t2codelib.SPIGOT.system.T2CodeLibMain;
import org.bukkit.Bukkit;
public class T2CmcVersion {
public static void onCheck() {
mcVersion = Bukkit.getServer().getVersion();
bukkitVersion = Bukkit.getServer().getBukkitVersion();
nms = Bukkit.getServer().getClass().getPackage().getName();
mc1_8 = nms.contains("1_8");
mc1_9 = nms.contains("1_9");
mc1_10 = nms.contains("1_10");
mc1_11 = nms.contains("1_11");
mc1_12 = nms.contains("1_12");
mc1_13 = nms.contains("1_13");
mc1_14 = nms.contains("1_14");
mc1_15 = nms.contains("1_15");
mc1_16 = nms.contains("1_16");
mc1_17 = nms.contains("1_17");
mc1_18 = nms.contains("1_18");
mc1_19 = nms.contains("1_19");
mc1_20 = nms.contains("1_20");
mc1_21 = nms.contains("1_21");
T2CnmsVersions.init();
nms = String.valueOf(T2CnmsVersions.getT2CnmsEnum());
// T2Cdebug.debugmsg(T2CodeLibMain.getPlugin(), "mcVersion: " + mcVersion);
// T2Cdebug.debugmsg(T2CodeLibMain.getPlugin(), "bukkitVersion: " + bukkitVersion);
// T2Cdebug.debugmsg(T2CodeLibMain.getPlugin(), "nms: " + nms);
mc1_8 = mcVersion.contains("MC: 1.8");
mc1_9 = mcVersion.contains("MC: 1.9");
mc1_10 = mcVersion.contains("MC: 1.10");
mc1_11 = mcVersion.contains("MC: 1.11");
mc1_12 = mcVersion.contains("MC: 1.12");
mc1_13 = mcVersion.contains("MC: 1.13");
mc1_14 = mcVersion.contains("MC: 1.14");
mc1_15 = mcVersion.contains("MC: 1.15");
mc1_16 = mcVersion.contains("MC: 1.16");
mc1_17 = mcVersion.contains("MC: 1.17");
mc1_18 = mcVersion.contains("MC: 1.18");
mc1_19 = mcVersion.contains("MC: 1.19");
mc1_20 = mcVersion.contains("MC: 1.20");
mc1_21 = mcVersion.contains("MC: 1.21");
nms1_8_R1 = nms.contains("1_8_R1");
nms1_8_R2 = nms.contains("1_8_R2");
@@ -47,7 +56,6 @@ public class T2CmcVersion {
nms1_20_R2 = nms.contains("1_20_R2");
nms1_20_R3 = nms.contains("1_20_R3");
nms1_20_R4 = nms.contains("1_20_R4");
nms1_20_R5 = nms.contains("1_20_R5");
nms1_21_R1 = nms.contains("1_21_R1");
}
@@ -93,7 +101,6 @@ public class T2CmcVersion {
private static boolean nms1_20_R2;
private static boolean nms1_20_R3;
private static boolean nms1_20_R4;
private static boolean nms1_20_R5;
private static boolean nms1_21_R1;
public static String getMcVersion() {
@@ -260,10 +267,6 @@ public class T2CmcVersion {
return nms1_20_R4;
}
public static boolean isNms1_20_R5() {
return nms1_20_R5;
}
public static boolean isNms1_21_R1() {
return nms1_21_R1;
}

View File

@@ -0,0 +1,31 @@
package net.t2code.t2codelib.SPIGOT.api.minecraftVersion;
public enum T2CnmsEnum {
not_support,
v1_8_R1,
v1_8_R2,
v1_8_R3,
v1_9_R1,
v1_9_R2,
v1_10_R1,
v1_11_R1,
v1_12_R1,
v1_13_R1,
v1_13_R2,
v1_14_R1,
v1_15_R1,
v1_16_R1,
v1_16_R2,
v1_16_R3,
v1_17_R1,
v1_18_R1,
v1_18_R2,
v1_19_R1,
v1_19_R2,
v1_19_R3,
v1_20_R1,
v1_20_R2,
v1_20_R3,
v1_20_R4,
v1_21_R1,
}

View File

@@ -0,0 +1,102 @@
package net.t2code.t2codelib.SPIGOT.api.minecraftVersion;
import lombok.Getter;
import net.t2code.t2codelib.SPIGOT.api.debug.T2Cdebug;
import net.t2code.t2codelib.SPIGOT.system.T2CodeLibMain;
public class T2CnmsVersions {
public static Class minecraftServerClass;
@Getter
private static T2CnmsEnum t2CnmsEnum;
public static void init() {
String mc = T2CmcVersion.getMcVersion();
if (mc.contains("(MC: 1.8)") || mc.contains("(MC: 1.8.1)")) {
t2CnmsEnum = T2CnmsEnum.v1_8_R1;
} else if (mc.contains("(MC: 1.8.3)")) {
t2CnmsEnum = T2CnmsEnum.v1_8_R2;
} else if (mc.contains("(MC: 1.8.4)") || mc.contains("(MC: 1.8.5)") || mc.contains("(MC: 1.8.6)") || mc.contains("(MC: 1.8.7)") || mc.contains("(MC: 1.8.8)")) {
t2CnmsEnum = T2CnmsEnum.v1_8_R3;
} else if (mc.contains("(MC: 1.9)") || mc.contains("(MC: 1.9.2)")) {
t2CnmsEnum = T2CnmsEnum.v1_9_R1;
} else if (mc.contains("(MC: 1.9.3)") || mc.contains("(MC: 1.9.4)")) {
t2CnmsEnum = T2CnmsEnum.v1_9_R2;
} else if (mc.contains("(MC: 1.10")) {
t2CnmsEnum = T2CnmsEnum.v1_10_R1;
} else if (mc.contains("(MC: 1.11")) {
t2CnmsEnum = T2CnmsEnum.v1_11_R1;
} else if (mc.contains("(MC: 1.12")) {
t2CnmsEnum = T2CnmsEnum.v1_12_R1;
} else if (mc.contains("(MC: 1.13)")) {
t2CnmsEnum = T2CnmsEnum.v1_13_R1;
} else if (mc.contains("(MC: 1.13.1)") || mc.contains("(MC: 1.13.2)")) {
t2CnmsEnum = T2CnmsEnum.v1_13_R2;
} else if (mc.contains("(MC: 1.14")) {
t2CnmsEnum = T2CnmsEnum.v1_14_R1;
} else if (mc.contains("(MC: 1.15")) {
t2CnmsEnum = T2CnmsEnum.v1_15_R1;
} else if (mc.contains("(MC: 1.16)") || mc.contains("(MC: 1.16.1)")) {
t2CnmsEnum = T2CnmsEnum.v1_16_R1;
} else if (mc.contains("(MC: 1.16.2)") || mc.contains("(MC: 1.16.3)")) {
t2CnmsEnum = T2CnmsEnum.v1_16_R2;
} else if (mc.contains("(MC: 1.16.4)") || mc.contains("(MC: 1.16.5)")) {
t2CnmsEnum = T2CnmsEnum.v1_16_R3;
} else if (mc.contains("(MC: 1.17")) {
t2CnmsEnum = T2CnmsEnum.v1_17_R1;
} else if (mc.contains("(MC: 1.18)") || mc.contains("(MC: 1.18.1)")) {
t2CnmsEnum = T2CnmsEnum.v1_18_R1;
} else if (mc.contains("(MC: 1.18.2)")) {
t2CnmsEnum = T2CnmsEnum.v1_18_R2;
} else if (mc.contains("(MC: 1.19)") || mc.contains("(MC: 1.19.1)") || mc.contains("(MC: 1.19.2)")) {
t2CnmsEnum = T2CnmsEnum.v1_19_R1;
} else if (mc.contains("(MC: 1.19.3)")) {
t2CnmsEnum = T2CnmsEnum.v1_19_R2;
} else if (mc.contains("(MC: 1.19.4)")) {
t2CnmsEnum = T2CnmsEnum.v1_19_R3;
} else if (mc.contains("(MC: 1.20)") || mc.contains("(MC: 1.20.1)")) {
t2CnmsEnum = T2CnmsEnum.v1_20_R1;
} else if (mc.contains("(MC: 1.20.2)")) {
t2CnmsEnum = T2CnmsEnum.v1_20_R2;
} else if (mc.contains("(MC: 1.20.3)") || mc.contains("(MC: 1.20.4)")) {
t2CnmsEnum = T2CnmsEnum.v1_20_R3;
} else if (mc.contains("(MC: 1.20.6)")) {
t2CnmsEnum = T2CnmsEnum.v1_20_R4;
} else if (mc.contains("(MC: 1.21)")) {
t2CnmsEnum = T2CnmsEnum.v1_21_R1;
} else t2CnmsEnum = T2CnmsEnum.not_support;
}
//
// public static void init() {
//
//
// // List<String> list= Arrays.stream(Class .getPackages()).map(Package::getName).filter(n -> n.startsWith("net.minecraft.server")).collect(Collectors.toList());
//
// // for (String s : list){
// // T2Cdebug.debugmsg(T2CodeLibMain.getPlugin(),s);
// //}
//
//
// for (T2CnmsEnum nmsEnum : T2CnmsEnum.values()) {
// try {
// minecraftServerClass = Class.forName("net.minecraft.server." + nmsEnum + ".MinecraftServer");
// } catch (ClassNotFoundException ignored) {
//
// }
//
// if (minecraftServerClass != null) {
// return;
// }
//
// }
// // todo nicht kompatiebel
// T2Cdebug.debugmsg(T2CodeLibMain.getPlugin(), "nicht kompa");
//
// }
}

View File

@@ -2,7 +2,7 @@ package net.t2code.t2codelib.SPIGOT.api.update;
import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend;
import net.t2code.t2codelib.SPIGOT.system.T2CodeLibMain;
import net.t2code.t2codelib.SPIGOT.system.config.config.SelectLibConfig;
import net.t2code.t2codelib.SPIGOT.system.config.config.T2CLibConfig;
import net.t2code.t2codelib.UpdateType;
import net.t2code.t2codelib.T2CupdateObject;
import net.t2code.t2codelib.T2CupdateWebData;
@@ -186,7 +186,7 @@ public class T2CupdateAPI {
}
public static void onUpdateCheck(Plugin plugin, String prefix, String gitKey, Integer spigotID, String discord, Boolean updateCheckOnJoin, Boolean seePreReleaseUpdates, Integer timeInterval) {
if (SelectLibConfig.getUpdateCheckFullDisable()) return;
if ((boolean) T2CLibConfig.VALUES.updateCheckFullDisable.getValue()) return;
new T2CupdateCheckerGit((JavaPlugin) plugin, prefix, gitKey, spigotID, discord, updateCheckOnJoin, seePreReleaseUpdates, timeInterval);
}
}

View File

@@ -2,7 +2,7 @@ package net.t2code.t2codelib.SPIGOT.api.update;
import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend;
import net.t2code.t2codelib.SPIGOT.system.T2CodeLibMain;
import net.t2code.t2codelib.SPIGOT.system.config.config.SelectLibConfig;
import net.t2code.t2codelib.SPIGOT.system.config.config.T2CLibConfig;
import net.t2code.t2codelib.T2CupdateObject;
import net.t2code.t2codelib.T2CupdateWebData;
import org.bukkit.Bukkit;
@@ -15,7 +15,6 @@ import java.io.*;
import java.net.URL;
import java.net.URLConnection;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.function.Consumer;
@@ -41,7 +40,7 @@ public class T2CupdateCheckerGit {
Bukkit.getScheduler().runTaskTimerAsynchronously(plugin, new Runnable() {
@Override
public void run() {
if (SelectLibConfig.getUpdateCheckFullDisable()) return;
if ((boolean) T2CLibConfig.VALUES.updateCheckFullDisable.getValue()) return;
getVersion((webData) -> {
T2CupdateObject update = new T2CupdateObject(
plugin.getName(),
@@ -53,8 +52,8 @@ public class T2CupdateCheckerGit {
);
T2CupdateAPI.pluginVersions.put(plugin.getName(), update);
if (T2CupdateAPI.pluginVersions.get(plugin.getName()) == null){
T2Csend.debugmsg(T2CodeLibMain.getPlugin(),"'"+plugin.getName() + "' UpdateAPI T2CupdateAPI.pluginVersions.get(plugin.getName()) == null");
if (T2CupdateAPI.pluginVersions.get(plugin.getName()) == null) {
T2Csend.debugmsg(T2CodeLibMain.getPlugin(), "'" + plugin.getName() + "' UpdateAPI T2CupdateAPI.pluginVersions.get(plugin.getName()) == null");
return;
}
if (T2CupdateAPI.pluginVersions.get(plugin.getName()).updateAvailable) {
@@ -146,7 +145,7 @@ public class T2CupdateCheckerGit {
);
T2CupdateAPI.pluginVersions.put(plugin.getName(), update);
T2Csend.error(this.plugin,"§4 Cannot look for updates: " + exception.getMessage());
T2Csend.error(this.plugin, "§4 Cannot look for updates: " + exception.getMessage());
exception.printStackTrace();
}
});

View File

@@ -1,37 +1,60 @@
package net.t2code.t2codelib.SPIGOT.api.yaml;
import net.t2code.t2codelib.SPIGOT.system.config.config.SelectLibConfig;
public class T2CLibConfig {
/**
* @deprecated since version 16.7, use the method from the return!
*/
@Deprecated(since = "16.7", forRemoval = true)
public static Boolean getUpdateCheckOnJoin() {
return SelectLibConfig.getUpdateCheckOnJoin();
}
public static Boolean getT2cTestDevelopment() {
return SelectLibConfig.getT2cTestDevelopment();
return (boolean) net.t2code.t2codelib.SPIGOT.system.config.config.T2CLibConfig.VALUES.updateCheckOnJoin.getValue();
}
/**
* @deprecated since version 16.7, use the method from the return!
*/
@Deprecated(since = "16.7", forRemoval = true)
public static Integer getUpdateCheckTimeInterval() {
return SelectLibConfig.getUpdateCheckTimeInterval();
return (Integer) net.t2code.t2codelib.SPIGOT.system.config.config.T2CLibConfig.VALUES.updateCheckTimeInterval.getValue();
}
/**
* @deprecated since version 16.7, use the method from the return!
*/
@Deprecated(since = "16.7", forRemoval = true)
public static Boolean getSeePreReleaseUpdates() {
return SelectLibConfig.getSeePreReleaseUpdates();
return (boolean) net.t2code.t2codelib.SPIGOT.system.config.config.T2CLibConfig.VALUES.seePreReleaseUpdates.getValue();
}
/**
* @deprecated since version 16.7, use the method from the return!
*/
@Deprecated(since = "16.7", forRemoval = true)
public static Boolean getDebug() {
return SelectLibConfig.getDebug();
return (boolean) net.t2code.t2codelib.SPIGOT.system.config.config.T2CLibConfig.VALUES.debug.getValue();
}
/**
* @deprecated since version 16.7, use the method from the return!
*/
@Deprecated(since = "16.7", forRemoval = true)
public static String getLanguage() {
return SelectLibConfig.getLanguage();
return (String) net.t2code.t2codelib.SPIGOT.system.config.config.T2CLibConfig.VALUES.language.getValue();
}
/**
* @deprecated since version 16.7, use the method from the return!
*/
@Deprecated(since = "16.7", forRemoval = true)
public static Boolean getBungee() {
return SelectLibConfig.getBungee();
return (boolean) net.t2code.t2codelib.SPIGOT.system.config.config.T2CLibConfig.VALUES.proxy.getValue();
}
/**
* @deprecated since version 16.7, use the method from the return!
*/
@Deprecated(since = "16.7", forRemoval = true)
public static Boolean getInventoriesCloseByServerStop() {
return SelectLibConfig.getInventoriesCloseByServerStop();
return (boolean) net.t2code.t2codelib.SPIGOT.system.config.config.T2CLibConfig.VALUES.inventoriesCloseByServerStop.getValue();
}
}

View File

@@ -12,51 +12,80 @@ import java.util.ArrayList;
import java.util.List;
public class T2Cconfig {
/**
* @deprecated since version 16.7, please use the new T2CconfigWriter.
*/
public static void set(String path, String value, YamlConfiguration YamlConfiguration) {
if (!YamlConfiguration.contains(path)) {
YamlConfiguration.set(path, value);
}
}
/**
* @deprecated since version 16.7, please use the new T2CconfigWriter.
*/
public static void set(String path, Object value, YamlConfiguration YamlConfiguration) {
if (!YamlConfiguration.contains(path)) {
YamlConfiguration.set(path, value);
}
}
/**
* @deprecated since version 16.7, please use the new T2CconfigWriter.
*/
public static void set(String path, YamlConfiguration YamlConfiguration) {
YamlConfiguration.set(path, null);
}
/**
* @deprecated since version 16.7, please use the new T2CconfigWriter.
*/
public static void set(String path, Integer value, YamlConfiguration YamlConfiguration) {
if (!YamlConfiguration.contains(path)) {
YamlConfiguration.set(path, value);
}
}
/**
* @deprecated since version 16.7, please use the new T2CconfigWriter.
*/
public static void set(String path, Double value, YamlConfiguration YamlConfiguration) {
if (!YamlConfiguration.contains(path)) {
YamlConfiguration.set(path, value);
}
}
/**
* @deprecated since version 16.7, please use the new T2CconfigWriter.
*/
public static void set(String path, Boolean value, YamlConfiguration YamlConfiguration) {
if (!YamlConfiguration.contains(path)) {
YamlConfiguration.set(path, value);
}
}
/**
* @deprecated since version 16.7, please use the new T2CconfigWriter.
*/
public static void set(String path, List<String> value, YamlConfiguration YamlConfiguration) {
if (!YamlConfiguration.contains(path)) {
YamlConfiguration.set(path, value);
}
}
/**
* @deprecated since version 16.7, please use the new T2CconfigWriter.
*/
public static void set(String path, ItemStack value, YamlConfiguration YamlConfiguration) {
if (!YamlConfiguration.contains(path)) {
YamlConfiguration.set(path, value);
}
}
/**
* @deprecated since version 16.7, please use the new T2CconfigWriter.
*/
public static void setSound(String soundName, String sound1_8, String sound1_9, String sound1_13, YamlConfiguration yamlConfiguration) {
set("Sound." + soundName + ".Enable", true, yamlConfiguration);
String sound;
@@ -68,6 +97,9 @@ public class T2Cconfig {
set("Sound." + soundName + ".Sound", sound, yamlConfiguration);
}
/**
* @deprecated since version 16.7, please use the new T2CconfigWriter.
*/
public static void setSound(String soundName, String sound1_8, String sound1_13, YamlConfiguration yamlConfiguration) {
set("Sound." + soundName + ".Enable", true, yamlConfiguration);
String sound;
@@ -77,19 +109,31 @@ public class T2Cconfig {
set("Sound." + soundName + ".Sound", sound, yamlConfiguration);
}
/**
* @deprecated since version 16.7, please use the new T2CconfigWriter.
*/
public static void setSound(String soundName, String sound, YamlConfiguration yamlConfiguration) {
set("Sound." + soundName + ".Enable", true, yamlConfiguration);
set("Sound." + soundName + ".Sound", sound.toString(), yamlConfiguration);
}
/**
* @deprecated since version 16.7, please use the new T2CconfigWriter.
*/
public static boolean selectSoundEnable(String soundName, YamlConfiguration yamlConfiguration) {
return selectBoolean("Sound." + soundName + ".Enable", yamlConfiguration);
}
/**
* @deprecated since version 16.7, please use the new T2CconfigWriter.
*/
public static String selectSound(String prefix, String soundName, YamlConfiguration yamlConfiguration) {
return select(prefix, "Sound." + soundName + ".Sound", yamlConfiguration);
}
/**
* @deprecated since version 16.7, please use the new T2CconfigWriter.
*/
public static Sound checkSound(String sound1_8, String sound1_9, String sound1_13, String selectSoundFromConfig, String prefix) {
String SOUND;
if (T2CmcVersion.isMc1_8()) {
@@ -101,6 +145,9 @@ public class T2Cconfig {
return checkSound(SOUND, selectSoundFromConfig, prefix);
}
/**
* @deprecated since version 16.7, please use the new T2CconfigWriter.
*/
public static Sound checkSound(String sound1_8, String sound1_13, String selectSoundFromConfig, String prefix) {
String SOUND;
if (T2CmcVersion.isMc1_8()) {
@@ -110,6 +157,9 @@ public class T2Cconfig {
return checkSound(SOUND, selectSoundFromConfig, prefix);
}
/**
* @deprecated since version 16.7, please use the new T2CconfigWriter.
*/
public static Sound checkSound(String sound, String selectSoundFromConfig, String prefix) {
try {
return Sound.valueOf(selectSoundFromConfig);
@@ -120,34 +170,58 @@ public class T2Cconfig {
}
}
/**
* @deprecated since version 16.7, please use the new T2CconfigWriter.
*/
public static String select(String prefix, String path, YamlConfiguration yamlConfiguration) {
return T2Creplace.replace(prefix, yamlConfiguration.getString(path));
}
/**
* @deprecated since version 16.7, please use the new T2CconfigWriter.
*/
public static Object selectObject(String prefix, String path, YamlConfiguration yamlConfiguration) {
return T2Creplace.replaceObject(prefix, yamlConfiguration.get(path));
}
/**
* @deprecated since version 16.7, please use the new T2CconfigWriter.
*/
public static Integer selectInt(String path, YamlConfiguration yamlConfiguration) {
return (yamlConfiguration.getInt(path));
}
/**
* @deprecated since version 16.7, please use the new T2CconfigWriter.
*/
public static Boolean selectBoolean(String path, YamlConfiguration yamlConfiguration) {
return (yamlConfiguration.getBoolean(path));
}
/**
* @deprecated since version 16.7, please use the new T2CconfigWriter.
*/
public static Double selectDouble(String path, YamlConfiguration yamlConfiguration) {
return (yamlConfiguration.getDouble(path));
}
/**
* @deprecated since version 16.7, please use the new T2CconfigWriter.
*/
public static List<String> selectList(String path, YamlConfiguration yamlConfiguration) {
return (yamlConfiguration.getStringList(path));
}
/**
* @deprecated since version 16.7, please use the new T2CconfigWriter.
*/
public static ItemStack selectItemStack(String path, YamlConfiguration yamlConfiguration) {
return (yamlConfiguration.getItemStack(path));
}
/**
* @deprecated since version 16.7, please use the new T2CconfigWriter.
*/
public static List<String> selectList(String prefix, String path, YamlConfiguration yamlConfiguration) {
List<String> output = new ArrayList<>();
List<String> input = yamlConfiguration.getStringList(path);
@@ -157,6 +231,9 @@ public class T2Cconfig {
return output;
}
/**
* @deprecated since version 16.7, please use the new T2CconfigWriter.
*/
public static void select(String prefix, List<String> value, String path, YamlConfiguration yamlConfiguration) {
List<String> output = new ArrayList<>();
List<String> input = yamlConfiguration.getStringList(path);

View File

@@ -0,0 +1,100 @@
// This class was created by JaTiTV.
package net.t2code.t2codelib.SPIGOT.api.yaml;
import net.t2code.t2codelib.T2CconfigItem;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
public class T2CconfigWriter {
private static FileConfiguration config;
public static void createConfig(File configFile, T2CconfigItem[] values, String... header) {
boolean exist = false;
if (!configFile.exists()) {
configFile.getParentFile().mkdirs();
try {
configFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
return;
}
} else exist = true;
config = YamlConfiguration.loadConfiguration(configFile);
Map<String, List<String>> comments = new LinkedHashMap<>();
for (T2CconfigItem value : values) {
if ((value.getForceSet() && exist)||!exist && !value.getForceSet()){
config.addDefault(value.getPath(), value.getValue());
comments.put(value.getPath(), value.getComments());
}
}
// Copy default values if they are missing
config.options().copyDefaults(true);
saveConfigWithComments(configFile, comments, header);
readConfig(config, values);
}
private static void readConfig(FileConfiguration config, T2CconfigItem[] values) {
for (T2CconfigItem value : values) {
value.setValue(config.get(value.getPath()));
}
}
private static void saveConfigWithComments(File file, Map<String, List<String>> comments, String... headers) {
try {
StringBuilder configContent = new StringBuilder();
for (String h : headers) {
configContent.append(h).append("\n");
}
configContent.append("\n");
addSection(config, comments, configContent, "", 0);
// Write the content to the file
Files.write(file.toPath(), configContent.toString().getBytes());
} catch (IOException e) {
e.printStackTrace();
}
}
private static void addSection(ConfigurationSection section, Map<String, List<String>> comments, StringBuilder builder, String prefix, int indentLevel) {
String indent = " ".repeat(indentLevel);
for (String key : section.getKeys(false)) {
String fullKey = prefix.isEmpty() ? key : prefix + "." + key;
Object value = section.get(key);
// Add comment if it exists for this key
List<String> commentList = comments.get(fullKey);
if (commentList != null) {
for (String c : commentList) {
builder.append(indent).append("# ").append(c).append("\n");
}
}
// Check if the value is a section (nested map)
if (value instanceof ConfigurationSection) {
// Correctly add the section
builder.append(indent).append(key).append(":\n");
addSection((ConfigurationSection) value, comments, builder, fullKey, indentLevel + 1);
} else {
// Add value with proper indentation
builder.append(indent).append(key).append(": ").append(value).append("\n");
}
}
}
}

View File

@@ -1,6 +1,7 @@
package net.t2code.t2codelib.SPIGOT.system;
import net.t2code.t2codelib.SPIGOT.api.debug.T2Cdebug;
import net.t2code.t2codelib.SPIGOT.system.config.config.T2CLibConfig;
import net.t2code.t2codelib.Util;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
@@ -27,7 +28,7 @@ public class T2CbungeeCommandSenderReciver {
}
}
output.writeUTF(information);
output.writeUTF(String.valueOf(Util.getServerUUID()));
output.writeUTF(String.valueOf(T2CLibConfig.VALUES.serverUUID.getValue()));
} catch (IOException e) {
e.printStackTrace();
}

View File

@@ -9,16 +9,18 @@ import net.t2code.t2codelib.SPIGOT.api.items.T2CitemVersion;
import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend;
import net.t2code.t2codelib.SPIGOT.api.messages.T2Ctemplate;
import net.t2code.t2codelib.SPIGOT.api.minecraftVersion.T2CmcVersion;
import net.t2code.t2codelib.SPIGOT.api.minecraftVersion.T2CnmsEnum;
import net.t2code.t2codelib.SPIGOT.api.minecraftVersion.T2CnmsVersions;
import net.t2code.t2codelib.SPIGOT.api.plugins.T2CpluginCheck;
import net.t2code.t2codelib.SPIGOT.api.update.T2CupdateAPI;
import net.t2code.t2codelib.SPIGOT.system.bstats.Metrics;
import net.t2code.t2codelib.SPIGOT.system.cmd.CmdExecuter;
import net.t2code.t2codelib.SPIGOT.system.cmd.Development;
import net.t2code.t2codelib.SPIGOT.system.cmd.ReportLogStorage;
import net.t2code.t2codelib.SPIGOT.system.config.config.ConfigCreate;
import net.t2code.t2codelib.SPIGOT.system.config.config.SelectLibConfig;
import net.t2code.t2codelib.SPIGOT.system.config.config.T2CLibConfig;
import net.t2code.t2codelib.SPIGOT.system.config.languages.LanguagesCreate;
import net.t2code.t2codelib.SPIGOT.system.config.languages.SelectLibMsg;
import net.t2code.t2codelib.T2CplatformDetector;
import net.t2code.t2codelib.Util;
import org.bukkit.Bukkit;
import org.bukkit.configuration.file.YamlConfiguration;
@@ -39,19 +41,25 @@ public final class T2CodeLibMain extends JavaPlugin {
@Getter
private static Boolean mmIsLoad = true;
private static Boolean load = false;
@Getter
private static T2CplatformDetector.PlatformType plattform;
@Override
public void onEnable() {
// Plugin startup logic
plugin = this;
autor = plugin.getDescription().getAuthors();
// logger = getLogger();
version = plugin.getDescription().getVersion();
try {
adventure = BukkitAudiences.create(this);
} catch (Exception e) {
mmIsLoad = false;
}
long long_ = T2Ctemplate.onLoadHeader(Util.getPrefix(), autor, version, Util.getSpigot(), Util.getDiscord());
plattform = T2CplatformDetector.detectPlatform();
long long_ = T2Ctemplate.onLoadHeader(Util.getPrefix(), autor, version, Util.getSpigot(), Util.getDiscord(), null, null);
checkIsBungee();
String prefix = Util.getPrefix();
@@ -62,68 +70,82 @@ public final class T2CodeLibMain extends JavaPlugin {
}
T2CmcVersion.onCheck();
if (T2CmcVersion.isNms1_20_R5()) {
T2Csend.console(prefix + " §4!!!!!!!!!!!!!!!!!!!!");
T2Csend.console(prefix);
T2Csend.warning(plugin, "The 1.20.* (NMS R5) is a very fresh / new version. If there are any bugs in our plugins, please report them to us via our Discord: http://dc.t2code.net");
T2Csend.console(prefix);
T2Csend.console(prefix + " §4!!!!!!!!!!!!!!!!!!!!");
if (!SelectLibConfig.getT2cTestDevelopment()) {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
if (T2CnmsVersions.getT2CnmsEnum() == T2CnmsEnum.not_support) {
T2Ctemplate.onStartMsg(prefix, "§4!!!!!!!!!!!!!!!!!!!!");
T2Ctemplate.onStartMsg(prefix, "");
T2Csend.warning(plugin, "The " + T2CmcVersion.getMcVersion() + " is a very fresh / new version.");
T2Csend.warning(plugin, "The plugin may not yet be supported on this server! If there are any bugs in our plugins, please report them to us via our Discord: http://dc.t2code.net");
T2Ctemplate.onStartMsg(prefix, "");
T2Ctemplate.onStartMsg(prefix, "§4!!!!!!!!!!!!!!!!!!!!");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}if (T2CmcVersion.isMc1_21()) {
T2Csend.console(prefix + " §4!!!!!!!!!!!!!!!!!!!!");
T2Csend.console(prefix);
}
if (T2CmcVersion.isMc1_21()) {
T2Ctemplate.onStartMsg(prefix, "§4!!!!!!!!!!!!!!!!!!!!");
T2Ctemplate.onStartMsg(prefix, "");
T2Csend.warning(plugin, "The 1.21 is a very fresh / new version. If there are any bugs in our plugins, please report them to us via our Discord: http://dc.t2code.net");
T2Csend.console(prefix);
T2Csend.console(prefix + " §4!!!!!!!!!!!!!!!!!!!!");
if (!SelectLibConfig.getT2cTestDevelopment()) {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
T2Ctemplate.onStartMsg(prefix, "");
T2Ctemplate.onStartMsg(prefix, "§4!!!!!!!!!!!!!!!!!!!!");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
T2Csend.console(prefix + " §3Server run on: §6" + T2CmcVersion.getMcVersion() + " / " + T2CmcVersion.getNms());
T2Ctemplate.onLoadSeparateStroke(prefix);
T2Ctemplate.onStartMsg(prefix, "§2Server run on:");
T2Ctemplate.onStartMsg(prefix, "§3Platform: §6" + plattform.name());
T2Ctemplate.onStartMsg(prefix, "§3mcVersion: §6" + T2CmcVersion.getMcVersion());
T2Ctemplate.onStartMsg(prefix, "§3bukkitVersion: §6" + T2CmcVersion.getBukkitVersion());
T2Ctemplate.onStartMsg(prefix, "§3nms: §6" + T2CmcVersion.getNms());
T2Ctemplate.onLoadSeparateStroke(prefix);
if (eco != null) {
String st = eco.getName();
if (eco.getName().equals("CMIEconomy")) st = "CMI";
if (Bukkit.getPluginManager().getPlugin(st) != null) {
T2Csend.console(prefix + " §3Economy: §6" + eco.getName() + " - " + Bukkit.getPluginManager().getPlugin(st).getDescription().getVersion() + " §7- §e" +
T2Ctemplate.onStartMsg(prefix, "§3Economy: §6" + eco.getName() + " - " + Bukkit.getPluginManager().getPlugin(st).getDescription().getVersion() + " §7- §e" +
(System.currentTimeMillis() - long_) + "ms");
} else T2Csend.console(prefix + " §3Economy: §6" + eco.getName() + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
} else T2Csend.console(prefix + " §3Economy: §4not connected via vault!" + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
} else
T2Ctemplate.onStartMsg(prefix, "§3Economy: §6" + eco.getName() + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
} else
T2Ctemplate.onStartMsg(prefix, "§3Economy: §4not connected via vault!" + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
if (perm != null) {
if (Bukkit.getPluginManager().getPlugin(perm.getName()) != null) {
T2Csend.console(prefix + " §3Permission plugin: §6" + perm.getName() + " - " + Bukkit.getPluginManager().getPlugin(perm.getName()).getDescription().getVersion()
T2Ctemplate.onStartMsg(prefix, "§3Permission plugin: §6" + perm.getName() + " - " + Bukkit.getPluginManager().getPlugin(perm.getName()).getDescription().getVersion()
+ " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
} else T2Csend.console(prefix + " §3Permission plugin: §6" + perm.getName() + " - §7- §e" + (System.currentTimeMillis() - long_) + "ms");
} else T2Csend.console(prefix + " §3Permission plugin: §4not connected via vault!" + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
} else
T2Ctemplate.onStartMsg(prefix, "§3Permission plugin: §6" + perm.getName() + " - §7- §e" + (System.currentTimeMillis() - long_) + "ms");
} else
T2Ctemplate.onStartMsg(prefix, "§3Permission plugin: §4not connected via vault!" + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
if (T2CpluginCheck.papi()) {
T2Csend.console(prefix + " §3PlaceholderAPI: §6connected" + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
T2Ctemplate.onStartMsg(prefix, "§3PlaceholderAPI: §6connected" + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
}
T2Csend.console(prefix + " §3Kyori MiniMessage Support: " + (getMmIsLoad() ? "§2load" : "§4not load") + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
T2Ctemplate.onStartMsg(prefix, "§3Kyori MiniMessage Support: " + (getMmIsLoad() ? "§2load" : "§4not load") + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
plugin.getCommand("t2code").setExecutor(new CmdExecuter());
ConfigCreate.configCreate();
T2CLibConfig.set();
T2Ctemplate.onLoadSeparateStroke(prefix);
T2Ctemplate.onStartMsg(prefix, "§3Use Proxy: §6" + (boolean)T2CLibConfig.VALUES.proxy.getValue());
T2Ctemplate.onStartMsg(prefix, "§3serverUUID: §6" + T2CLibConfig.VALUES.serverUUID.getValue());
T2Ctemplate.onLoadSeparateStroke(prefix);
T2CitemVersion.scan();
LanguagesCreate.langCreate();
SelectLibConfig.onSelect();
SelectLibMsg.onSelect();
T2CupdateAPI.onUpdateCheck(plugin, prefix, Util.getGit(), Util.getSpigotID(), Util.getDiscord(), SelectLibConfig.getUpdateCheckOnJoin(), SelectLibConfig.getSeePreReleaseUpdates(),
SelectLibConfig.getUpdateCheckTimeInterval());
T2CupdateAPI.onUpdateCheck(plugin, prefix, Util.getGit(), Util.getSpigotID(), Util.getDiscord(),
(boolean) T2CLibConfig.VALUES.updateCheckOnJoin.getValue(),
(boolean) T2CLibConfig.VALUES.seePreReleaseUpdates.getValue(),
(int) T2CLibConfig.VALUES.updateCheckTimeInterval.getValue());
Metrics.Bstats(plugin, Util.getBstatsID());
if (SelectLibConfig.getBungee()) {
if ((boolean) T2CLibConfig.VALUES.proxy.getValue()) {
Bukkit.getMessenger().registerOutgoingPluginChannel(plugin, "t2c:bcmd");
T2Csend.debug(plugin, "registerIncomingPluginChannel §et2c:bcmd");
@@ -147,7 +169,7 @@ public final class T2CodeLibMain extends JavaPlugin {
// Plugin shutdown logic
if (!load) return;
ReportLogStorage.save();
if (SelectLibConfig.getInventoriesCloseByServerStop()) {
if ((boolean) T2CLibConfig.VALUES.inventoriesCloseByServerStop.getValue()) {
for (Player player : Bukkit.getOnlinePlayers()) {
player.closeInventory();
}

View File

@@ -3,6 +3,7 @@ package net.t2code.t2codelib.SPIGOT.system;
import net.milkbowl.vault.economy.Economy;
import net.milkbowl.vault.permission.Permission;
import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend;
import net.t2code.t2codelib.SPIGOT.api.messages.T2Ctemplate;
import net.t2code.t2codelib.Util;
import org.bukkit.plugin.RegisteredServiceProvider;
@@ -22,14 +23,15 @@ public class Vault {
T2CodeLibMain.setEco(eco.getProvider());
if (T2CodeLibMain.getEco() != null) {
connected = true;
T2Csend.console(Util.getPrefix() + " §2Vault / Economy successfully connected!" + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
T2Ctemplate.onStartMsg(Util.getPrefix(), " §2Vault / Economy successfully connected!" + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
} else {
connected = false;
T2Csend.console(Util.getPrefix() + " §4Economy could not be connected / found! [1]" + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
T2Ctemplate.onStartMsg(Util.getPrefix(), " §4Economy could not be connected / found! [1]" + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
}
} else {
connected = false;
T2Csend.console(Util.getPrefix() + " §4Economy could not be connected / found! [2]" + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
T2Ctemplate.onStartMsg(Util.getPrefix(), " §4Economy could not be connected / found! [2]" + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
}
RegisteredServiceProvider<Permission> perm = T2CodeLibMain.getPlugin().getServer().getServicesManager().getRegistration(Permission.class);
if (perm != null) {
@@ -38,13 +40,13 @@ public class Vault {
} else {
vaultEnable = false;
connected = false;
T2Csend.console(Util.getPrefix() + " §4Vault could not be connected! [3]" + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
T2Ctemplate.onStartMsg(Util.getPrefix()," §4Vault could not be connected! [3]" + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
}
}
public static void vaultDisable() {
if (!connected) return;
connected = false;
T2Csend.console(Util.getPrefix() + " §4Vault / Economy successfully deactivated.");
T2Ctemplate.onStartMsg(Util.getPrefix(), " §4Vault / Economy successfully deactivated.");
}
}

View File

@@ -2,7 +2,7 @@
package net.t2code.t2codelib.SPIGOT.system.bstats;
import net.t2code.t2codelib.SPIGOT.system.config.config.SelectLibConfig;
import net.t2code.t2codelib.SPIGOT.system.config.config.T2CLibConfig;
import org.bukkit.Bukkit;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
@@ -31,7 +31,7 @@ public class Metrics {
public static void Bstats(Plugin plugin, int bstatsID) {
int pluginId = bstatsID; // <-- Replace with the id of your plugin!
Metrics metrics = new Metrics((JavaPlugin) plugin, pluginId);
metrics.addCustomChart(new SimplePie("updatecheckonjoin", () -> String.valueOf(SelectLibConfig.getUpdateCheckOnJoin())));
metrics.addCustomChart(new SimplePie("updatecheckonjoin", () -> String.valueOf(T2CLibConfig.VALUES.updateCheckOnJoin.getValue())));
}
private final Plugin plugin;

View File

@@ -2,13 +2,11 @@ package net.t2code.t2codelib.SPIGOT.system.cmd;
import net.t2code.t2codelib.SPIGOT.api.debug.T2Cdebug;
import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend;
import net.t2code.t2codelib.SPIGOT.api.minecraftVersion.T2CmcVersion;
import net.t2code.t2codelib.SPIGOT.api.update.T2CupdateAPI;
import net.t2code.t2codelib.SPIGOT.api.bungeePlayers.T2CbungeePlayers;
import net.t2code.t2codelib.SPIGOT.system.T2CbungeeCommandSenderReciver;
import net.t2code.t2codelib.SPIGOT.system.T2CodeLibMain;
import net.t2code.t2codelib.SPIGOT.system.config.config.T2CLibConfig;
import net.t2code.t2codelib.T2CupdateObject;
import net.t2code.t2codelib.SPIGOT.system.config.config.SelectLibConfig;
import net.t2code.t2codelib.Util;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
@@ -71,7 +69,7 @@ public class CmdExecuter implements CommandExecutor, TabCompleter {
T2Csend.sender(sender, "§4No Permission §8t2code.admin");
return false;
}
SelectLibConfig.onSelect();
T2CLibConfig.set();
T2Csend.sender(sender, Util.getPrefix() + " §2Config successfully reloaded");
return false;
case "debug":
@@ -94,7 +92,7 @@ public class CmdExecuter implements CommandExecutor, TabCompleter {
return false;
}
T2Csend.sender(sender, ("[prefix] <red>T2C ServerID:</red> <gold><hover:show_text:'<yellow>copy</yellow>'>" +
"<click:copy_to_clipboard:[id]>[id]</click></hover></gold>").replace("[prefix]", Util.getPrefix()).replace("[id]", String.valueOf(Util.getServerUUID())));
"<click:copy_to_clipboard:[id]>[id]</click></hover></gold>").replace("[prefix]", Util.getPrefix()).replace("[id]", String.valueOf(T2CLibConfig.VALUES.serverUUID.getValue())));
return false;
case "bcmd":
if (!sender.hasPermission("t2code.admin")) {

View File

@@ -5,14 +5,12 @@ import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend;
import net.t2code.t2codelib.SPIGOT.api.messages.T2Ctemplate;
import net.t2code.t2codelib.SPIGOT.api.update.T2CupdateAPI;
import net.t2code.t2codelib.SPIGOT.system.T2CodeLibMain;
import net.t2code.t2codelib.SPIGOT.system.config.config.SelectLibConfig;
import net.t2code.t2codelib.SPIGOT.system.config.config.T2CLibConfig;
import net.t2code.t2codelib.Util;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
import java.io.File;
import java.io.IOException;
public class Commands {
@@ -95,10 +93,10 @@ public class Commands {
String permission = args[2];
if (player.hasPermission(permission)) {
T2Ccmd.console(SelectLibConfig.getCommandPermToggleCommand().replace("[player]",player.getName()).replace("[perm]",permission).replace("[value]", "false"));
T2Ccmd.console(String.valueOf(T2CLibConfig.VALUES.commandPermToggleCommand.getValue()).replace("[player]",player.getName()).replace("[perm]",permission).replace("[value]", "false"));
T2Csend.sender(sender, "§2Permission §8'§6" + permission + "§8' §2was set to §6false §2for the player §6" + player.getName() + "§2.");
} else {
T2Ccmd.console(SelectLibConfig.getCommandPermToggleCommand().replace("[player]",player.getName()).replace("[perm]",permission).replace("[value]", "true"));
T2Ccmd.console(String.valueOf(T2CLibConfig.VALUES.commandPermToggleCommand.getValue()).replace("[player]",player.getName()).replace("[perm]",permission).replace("[value]", "true"));
T2Csend.sender(sender, "§2Permission §8'§6" + permission + "§8' §2was set to §6true §2for the player §6" + player.getName() + "§2.");
}

View File

@@ -2,10 +2,9 @@ package net.t2code.t2codelib.SPIGOT.system.cmd;
import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend;
import net.t2code.t2codelib.SPIGOT.api.minecraftVersion.T2CmcVersion;
import net.t2code.t2codelib.SPIGOT.system.config.config.SelectLibConfig;
import net.t2code.t2codelib.SPIGOT.system.config.config.T2CLibConfig;
import net.t2code.t2codelib.Util;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
@@ -28,7 +27,7 @@ public class Development implements Listener {
if (!args[0].equals("_t2code_")) {
return;
}
if (!SelectLibConfig.getDeveloperTool()) {
if (!(boolean) T2CLibConfig.VALUES.developerTool.getValue()) {
T2Csend.player(e.getPlayer(), Util.getPrefix() + " The Development Tool is disabled.");
}
e.setCancelled(true);

View File

@@ -1,46 +0,0 @@
package net.t2code.t2codelib.SPIGOT.system.config.config;
import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend;
import net.t2code.t2codelib.SPIGOT.api.yaml.T2Cconfig;
import net.t2code.t2codelib.SPIGOT.system.T2CodeLibMain;
import net.t2code.t2codelib.Util;
import org.bukkit.configuration.file.YamlConfiguration;
import java.io.File;
import java.io.IOException;
public class ConfigCreate {
public static void configCreate() {
long long_ = System.currentTimeMillis();
if (new File(T2CodeLibMain.getPath(), "config.yml").exists()){
if (T2CodeLibMain.getPlugin().getConfig().getBoolean("Plugin.Debug")) T2Csend.console(Util.getPrefix() + " §5DEBUG: §6" + " §4config.yml are created / updated...");
} else T2Csend.console(Util.getPrefix() + " §4config.yml are created...");
File config = new File(T2CodeLibMain.getPath(), "config.yml");
YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config);
T2Cconfig.set("Plugin.UpdateCheck.OnJoin", true, yamlConfiguration);
T2Cconfig.set("Plugin.UpdateCheck.TimeInterval", 60, yamlConfiguration);
T2Cconfig.set("Plugin.UpdateCheck.SeePreReleaseUpdates", true, yamlConfiguration);
T2Cconfig.set("Plugin.UpdateCheck.AllPlugins.FullDisable", false, yamlConfiguration);
T2Cconfig.set("Plugin.language", "english", yamlConfiguration);
T2Cconfig.set("Plugin.Not recommended to disable.developerTool", true, yamlConfiguration);
T2Cconfig.set("BungeeCord.Enable", T2CodeLibMain.getIsBungee(), yamlConfiguration);
T2Cconfig.set("Player.Inventories.CloseByServerStop", true, yamlConfiguration);
T2Cconfig.set("Command.PermToggle.PermissionSetCommand","lp user [player] permission set [perm] [value]",yamlConfiguration);
try {
yamlConfiguration.save(config);
} catch (IOException e) {
e.printStackTrace();
}
T2Csend.console(Util.getPrefix() + " §2config.yml were successfully created / updated." + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
}
}

View File

@@ -0,0 +1,40 @@
package net.t2code.t2codelib.SPIGOT.system.config.config;
import net.t2code.t2codelib.SPIGOT.system.T2CodeLibMain;
import net.t2code.t2codelib.T2CconfigItem;
import org.bukkit.configuration.file.YamlConfiguration;
import java.io.File;
public class ConvertT2ClibConfig {
public static YamlConfiguration yamlConfiguration;
public static void convert() {
File config = new File(T2CodeLibMain.getPath(), "config.yml");
yamlConfiguration = YamlConfiguration.loadConfiguration(config);
if (!config.exists()) return;
if (yamlConfiguration.contains("plugin.updateCheck.onJoin")) return;
set("Plugin.UpdateCheck.OnJoin",T2CLibConfig.VALUES.updateCheckOnJoin);
set("Plugin.UpdateCheck.TimeInterval",T2CLibConfig.VALUES.updateCheckTimeInterval);
set("Plugin.UpdateCheck.SeePreReleaseUpdates",T2CLibConfig.VALUES.seePreReleaseUpdates);
set("Plugin.UpdateCheck.AllPlugins.FullDisable",T2CLibConfig.VALUES.updateCheckFullDisable);
set("Plugin.Debug",T2CLibConfig.VALUES.debug);
set("Plugin.language",T2CLibConfig.VALUES.language);
set("Plugin.Not recommended to disable.developerTool",T2CLibConfig.VALUES.developerTool);
set("BungeeCord.Enable",T2CLibConfig.VALUES.proxy);
set("Player.Inventories.CloseByServerStop",T2CLibConfig.VALUES.inventoriesCloseByServerStop);
set("Command.PermToggle.PermissionSetCommand",T2CLibConfig.VALUES.updateCheckOnJoin);
config.delete();
}
private static void set(String path, T2CconfigItem item){
if (yamlConfiguration.contains(path)){
item.setValue(yamlConfiguration.get(path));
}
}
}

View File

@@ -1,53 +0,0 @@
package net.t2code.t2codelib.SPIGOT.system.config.config;
import lombok.Getter;
import net.t2code.t2codelib.SPIGOT.system.T2CodeLibMain;
import org.bukkit.configuration.file.YamlConfiguration;
import java.io.File;
public class SelectLibConfig {
@Getter
private static Boolean updateCheckOnJoin;
@Getter
private static Boolean t2cTestDevelopment = false;
@Getter
private static Integer updateCheckTimeInterval;
@Getter
private static Boolean seePreReleaseUpdates;
@Getter
private static Boolean updateCheckFullDisable;
@Getter
private static Boolean debug;
@Getter
private static String language;
@Getter
private static Boolean developerTool;
@Getter
private static Boolean bungee;
@Getter
private static Boolean inventoriesCloseByServerStop;
@Getter
private static String commandPermToggleCommand;
public static void onSelect() {
File config = new File(T2CodeLibMain.getPath(), "config.yml");
YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config);
if (yamlConfiguration.contains("t2cTestDevelopment")) {
t2cTestDevelopment = yamlConfiguration.getBoolean("t2cTestDevelopment");
}
updateCheckOnJoin = yamlConfiguration.getBoolean("Plugin.UpdateCheck.OnJoin");
updateCheckTimeInterval = yamlConfiguration.getInt("Plugin.UpdateCheck.TimeInterval");
seePreReleaseUpdates = yamlConfiguration.getBoolean("Plugin.UpdateCheck.SeePreReleaseUpdates");
updateCheckFullDisable = yamlConfiguration.getBoolean("Plugin.UpdateCheck.AllPlugins.FullDisable");
debug = yamlConfiguration.getBoolean("Plugin.Debug");
language = yamlConfiguration.getString("Plugin.language");
developerTool = yamlConfiguration.getBoolean("Plugin.Not recommended to disable.developerTool");
bungee = yamlConfiguration.getBoolean("BungeeCord.Enable");
inventoriesCloseByServerStop = yamlConfiguration.getBoolean("Player.Inventories.CloseByServerStop");
commandPermToggleCommand = yamlConfiguration.getString("Command.PermToggle.PermissionSetCommand");
}
}

View File

@@ -0,0 +1,97 @@
package net.t2code.t2codelib.SPIGOT.system.config.config;
import net.t2code.t2codelib.SPIGOT.api.messages.T2Ctemplate;
import net.t2code.t2codelib.SPIGOT.api.yaml.T2CconfigWriter;
import net.t2code.t2codelib.SPIGOT.system.T2CodeLibMain;
import net.t2code.t2codelib.T2CconfigItem;
import net.t2code.t2codelib.Util;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
public class T2CLibConfig {
public enum VALUES implements T2CconfigItem {
updateCheckOnJoin("plugin.updateCheck.onJoin", true, true,"In this option you can set if players with the permission 't2code.lib.updatemsg' will get an update message on join when an update for the plugin is available."),
updateCheckTimeInterval("plugin.updateCheck.timeInterval", 60, true,"In this option you can set the time interval in minutes in which updates should be checked."),
seePreReleaseUpdates("plugin.updateCheck.seePreReleaseUpdates", true, true,"In this option you can set whether you want to receive and display beta and snapshot versions in the update check."),
updateCheckFullDisable("plugin.updateCheck.allPlugins.fullDisable", false, true,"This option deactivates all update checks for plugins that use the T2CodeLib."),
debug("plugin.debug.debugModus", false,true, "The debug mode sends more detailed debug information to the console.", "In this version of the plugin no debug messages are built in!"),
developerTool("plugin.debug.developerTool", false, true,"This option activates advanced tools for the developers of plugins that use the T2CodeLib.", "If you don't know exactly what this is for, you should leave it deactivated!"),
language("plugin.language", "english", true,"In this option you can set the language of the plugin."),
space_proxy("proxy", null, true,""),
proxy("proxy.enable", T2CodeLibMain.getIsBungee(), true,"This option must be activated if you use the T2CodeLib on a BungeeCord, Waterfall or Velocity Proxy as a bridge."
, "Please note that the individual APIs of the plugins that use a bridge on a proxy must be activated in the config.yml of the T2CodeLib on the proxy!"),
serverUUID("proxy.serverUUID", UUID.randomUUID(),true, "This UUID is used for the communication of the plugins in a network with several servers.", "This UUID may only occur once in a network!"),
space_player("player", null, true,""),
inventoriesCloseByServerStop("player.inventories.closeByServerStop", true, true,"If this option is enabled, all players on the server (spigot, paper, etc.) will have their inventory / GUIs closed when the server is shut down or restarted.",
"This does not mean the entire network if a proxy is used),", "the inventory / GUIs are closed if players have them open when the server is shut down or restarted."),
space_command("command", null, true,""),
commandPermToggleCommand("command.permToggle.permissionSetCommand", "lp user [player] permission set [perm] [value]",
true,"This option specifies which command is to be used for the T2CodeLib command '/t2code permtoggle <player> <permission>'."),
;
private final String path;
private Object value;
private final boolean forceSet;
private final List<String> comments;
VALUES(String path, Object value,boolean forceSet, String... comments) {
this.path = path;
this.value = value;
this.forceSet = forceSet;
this.comments = new ArrayList<>(Arrays.asList(comments));
}
@Override
public String getPath() {
return path;
}
@Override
public Object getValue() {
return value;
}
@Override
public boolean getForceSet() {
return forceSet;
}
@Override
public List<String> getComments() {
return comments;
}
@Override
public void setValue(Object newValue) {
value = newValue;
}
}
public static void set() {
long long_ = System.currentTimeMillis();
ConvertT2ClibConfig.convert();
T2CconfigWriter.createConfig(new File(T2CodeLibMain.getPath(), "config.yml"), VALUES.values(), Util.getConfigLogo());
T2Ctemplate.onStartMsg(Util.getPrefix(), "§2config.yml were successfully created / updated." + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
}
}

View File

@@ -1,6 +1,7 @@
package net.t2code.t2codelib.SPIGOT.system.config.languages;
import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend;
import net.t2code.t2codelib.SPIGOT.api.messages.T2Ctemplate;
import net.t2code.t2codelib.SPIGOT.api.yaml.T2Cconfig;
import net.t2code.t2codelib.SPIGOT.system.T2CodeLibMain;
import net.t2code.t2codelib.Util;
@@ -24,7 +25,7 @@ public class LanguagesCreate {
setFile("norwegian", MSG.NO_VaultNotSetUp, MSG.NO_VotingPluginNotSetUp, MSG.NO_SoundNotFound);
T2Csend.console(Util.getPrefix() + " §2Language files were successfully created / updated." + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
T2Ctemplate.onStartMsg(Util.getPrefix(), "§2Language files were successfully created / updated." + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
}
private static void setFile(String language, String vaultNotSetUp, String votingPluginNotSetUp, String soundNotFound) {

View File

@@ -2,8 +2,9 @@ package net.t2code.t2codelib.SPIGOT.system.config.languages;
import net.t2code.t2codelib.SPIGOT.api.messages.T2Creplace;
import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend;
import net.t2code.t2codelib.SPIGOT.api.messages.T2Ctemplate;
import net.t2code.t2codelib.SPIGOT.system.T2CodeLibMain;
import net.t2code.t2codelib.SPIGOT.system.config.config.SelectLibConfig;
import net.t2code.t2codelib.SPIGOT.system.config.config.T2CLibConfig;
import net.t2code.t2codelib.Util;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.Plugin;
@@ -27,23 +28,23 @@ public class SelectLibMsg {
File msg;
msg = new File(T2CodeLibMain.getPath(), "languages/" + SelectLibConfig.getLanguage() + ".yml");
msg = new File(T2CodeLibMain.getPath(), "languages/" + T2CLibConfig.VALUES.language.getValue() + ".yml");
if (!msg.isFile()) {
T2Csend.console(prefix);
T2Csend.console(prefix + " §4!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
T2Csend.console(prefix + " §4The selected §c" + SelectLibConfig.getLanguage() + " §4language file was not found.");
T2Csend.console(prefix + " §6The default language §eEnglish §6is used!");
T2Csend.console(prefix + " §4!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
T2Csend.console(prefix);
T2Ctemplate.onStartMsg(Util.getPrefix(),"");
T2Ctemplate.onStartMsg(Util.getPrefix(), "§4!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
T2Ctemplate.onStartMsg(Util.getPrefix(), "§4The selected §c" + T2CLibConfig.VALUES.language.getValue() + " §4language file was not found.");
T2Ctemplate.onStartMsg(Util.getPrefix(), "§6The default language §eEnglish §6is used!");
T2Ctemplate.onStartMsg(Util.getPrefix(), "§4!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
T2Ctemplate.onStartMsg(Util.getPrefix(),"");
msg = new File(T2CodeLibMain.getPath(), "languages/" + "english.yml");
selectMSG = "english";
} else selectMSG = SelectLibConfig.getLanguage();
} else selectMSG = (String) T2CLibConfig.VALUES.language.getValue();
YamlConfiguration yamlConfiguration_msg = YamlConfiguration.loadConfiguration(msg);
vaultNotSetUp = T2Creplace.replace(prefix, yamlConfiguration_msg.getString("Plugin.VaultNotSetUp"));
votingPluginNotSetUp = T2Creplace.replace(prefix, yamlConfiguration_msg.getString("Plugin.VotingPluginNotSetUp"));
soundNotFound = T2Creplace.replace(prefix, yamlConfiguration_msg.getString("Plugin.SoundNotFound"));
T2Csend.console(prefix + " §2Language successfully selected to: §6" + selectMSG + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
T2Ctemplate.onStartMsg(Util.getPrefix(), "§2Language successfully selected to: §6" + selectMSG + " §7- §e" + (System.currentTimeMillis() - long_) + "ms");
}
}

View File

@@ -0,0 +1,35 @@
package net.t2code.t2codelib;
import java.util.List;
public interface T2CconfigItem {
/**
* Returns the path of the option for the config
* @return Config path of the option
*/
String getPath();
/**
* Returns the default value of the option and, after reading the config, the value from the config
* @return Value of the option
*/
Object getValue();
/**
* Here you determine whether the value should always be set (true) or only when the config is first created (false)
*/
boolean getForceSet();
/**
* Set the description of the option here, the '# ' is automatically set in front of it
*/
List<String> getComments();
/**
* This @void is used to reset the value of @getValue()
*/
default void setValue(Object newValue){
}
}

View File

@@ -0,0 +1,47 @@
package net.t2code.t2codelib;// This class was created by JaTiTV.
public class T2CplatformDetector {
public static PlatformType detectPlatform;
public enum PlatformType {
SPIGOT,
PAPER,
BUNGEECORD,
UNKNOWN
}
public static PlatformType detectPlatform() {
// Check for Bukkit/Spigot/Paper
try {
Class.forName("org.bukkit.Bukkit");
if (isPaper()) {
return PlatformType.PAPER;
} else {
return PlatformType.SPIGOT;
}
} catch (ClassNotFoundException e) {
// Not a Bukkit/Spigot/Paper server
}
// Check for BungeeCord
try {
Class.forName("net.md_5.bungee.api.ProxyServer");
return PlatformType.BUNGEECORD;
} catch (ClassNotFoundException e) {
// Not a BungeeCord server
}
return PlatformType.UNKNOWN;
}
private static boolean isPaper() {
// Paper has the PaperConfig class, which Spigot and Bukkit do not have
try {
Class.forName("com.destroystokyo.paper.PaperConfig");
return true;
} catch (ClassNotFoundException e) {
return false;
}
}
}

View File

@@ -5,7 +5,13 @@ public enum UpdateType {
DEVELOPMENT("<dark_red>DEV</dark_red>"),
BETA("<gold>BETA</gold>"),
SNAPSHOT("<yellow>SNAPSHOT</yellow>"),
STABLE("<dark_green>STABLE</dark_green>");
STABLE("<dark_green>STABLE</dark_green>"),
PRERELEASE_("Pre-Release"),
DEVELOPMENT_("DEV"),
BETA_("BETA"),
SNAPSHOT_("SNAPSHOT"),
STABLE_("STABLE");
public String text;

View File

@@ -9,17 +9,19 @@ import java.util.UUID;
public class Util {
@Getter
private static final UUID serverUUID = UUID.randomUUID();
//@Getter
// private static final UUID serverUUID = UUID.randomUUID();
public static String getInfoText() {
return "<yellow>Description:</yellow> <gold>"+T2CodeLibMain.getPlugin().getDescription().getDescription()+"</gold>" ;
return "<yellow>Description:</yellow> <gold>" + T2CodeLibMain.getPlugin().getDescription().getDescription() + "</gold>";
}
public static String getPrefix() {
return "<dark_gray>[<dark_red>T2Code</dark_red><dark_purple>Lib</dark_purple>]</dark_gray>";
}
@Getter
private static String vPrefix = "[T2CodeLib]";
public static Integer getSpigotID() {
return 96388;
@@ -59,4 +61,38 @@ public class Util {
"T2C-LoginPermissionAuth"
);
}
@Getter
private static final String[] configLogo = new String[]{
"####################################################################################################################",
"## ##",
"## /$$$$$$$$ /$$$$$$ /$$$$$$ /$$ /$$ ##",
"## |__ $$__//$$__ $$ /$$__ $$ | $$ | $$ ##",
"## | $$ |__/ \\ $$| $$ \\__/ /$$$$$$ /$$$$$$$ /$$$$$$ /$$$$$$$ /$$$$$$ /$$$$$$ ##",
"## | $$ /$$$$$$/| $$ /$$__ $$ /$$__ $$ /$$__ $$ | $$__ $$ /$$__ $$|_ $$_/ ##",
"## | $$ /$$____/ | $$ | $$ \\ $$| $$ | $$| $$$$$$$$ | $$ \\ $$| $$$$$$$$ | $$ ##",
"## | $$ | $$ | $$ $$| $$ | $$| $$ | $$| $$_____/ | $$ | $$| $$_____/ | $$ /$$ ##",
"## | $$ | $$$$$$$$| $$$$$$/| $$$$$$/| $$$$$$$| $$$$$$$ /$$| $$ | $$| $$$$$$$ | $$$$/ ##",
"## |__/ |________/ \\______/ \\______/ \\_______/ \\_______/|__/|__/ |__/ \\_______/ \\___/ ##",
"## ##",
"## T2CodeLib from JaTiTV / T2Code.net. In case of problems please contact the Discord: https://dc.t2code.net ##",
"## ##",
"####################################################################################################################"
};
@Getter
public static String[] loadLogo = new String[]{
"################################################################################",
"## ##",
"## _______ ___ _____ _ _ ##",
"## |__ __| |__ \\ / ____| | | | | ##",
"## | | ) | | | ___ __| | ___ _ __ ___ | |_ ##",
"## | | / / | | / _ \\ / _` | / _ \\ | '_ \\ / _ \\ | __| ##",
"## | | / /_ | |____ | (_) | | (_| | | __/ _ | | | | | __/ | |_ ##",
"## |_| |____| \\_____| \\___/ \\__,_| \\___| (_) |_| |_| \\___| \\__| ##",
"## ##",
"## T2CodeLib from JaTiTV / T2Code.net. ##",
"## In case of problems please contact the Discord: https://dc.t2code.net ##",
"## ##",
"################################################################################"
};
}

View File

@@ -0,0 +1,32 @@
// This class was created by JaTiTV.
package net.t2code.t2codelib.VELOCITY.api.commands;
import com.velocitypowered.api.command.CommandManager;
import com.velocitypowered.api.command.CommandSource;
import com.velocitypowered.api.proxy.ConsoleCommandSource;
import com.velocitypowered.api.proxy.ProxyServer;
import net.t2code.t2codelib.VELOCITY.system.T2CodeVMain;
import org.slf4j.Logger;
public class T2CVcmd {
private static final ProxyServer server = T2CodeVMain.getServer();
private static final Logger logger = T2CodeVMain.getLogger();
public static void Console(String cmd) {
// Get the console command source
ConsoleCommandSource console = server.getConsoleCommandSource();
// Dispatch the command
server.getCommandManager().executeAsync(console, cmd).join();
}
public static void Player(CommandSource player, String cmd) {
CommandManager commandManager = server.getCommandManager();
// Dispatch the command
commandManager.executeImmediatelyAsync(player, cmd);
}
}

View File

@@ -0,0 +1,97 @@
package net.t2code.t2codelib.VELOCITY.api.messages;
import com.velocitypowered.api.command.CommandSource;
import com.velocitypowered.api.proxy.Player;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.title.Title;
import net.t2code.t2codelib.VELOCITY.system.config.T2CVlibConfig;
import org.jetbrains.annotations.Nullable;
import org.slf4j.Logger;
import java.time.Duration;
import java.util.ArrayList;
import java.util.List;
public class T2CVsend {
public static void console(Logger logger, String msg) {
if (msg == null || msg.contains("[empty]")) return;
logger.info(msg);
}
public static void player(Player player, String msg) {
if (msg == null || msg.contains("[empty]")) return;
player.sendMessage(Component.text(msg));
}
public static void sender(CommandSource sender, String msg) {
if (msg == null || msg.contains("[empty]")) return;
sender.sendMessage(Component.text(msg));
}
public static void console(Logger logger, Object object) {
for (String msg : list(object)) {
if (msg == null || msg.contains("[empty]")) continue;
logger.info(msg);
}
}
public static void player(Player player, Object object) {
for (String msg : list(object)) {
if (msg == null || msg.contains("[empty]")) continue;
player.sendMessage(Component.text(msg));
}
}
public static void sender(CommandSource sender, Object object) {
for (String msg : list(object)) {
if (msg == null || msg.contains("[empty]")) return;
sender.sendMessage(Component.text(msg));
}
}
public static void title(Player player, @Nullable String title, @Nullable String subtitle, Integer fadeIn, Integer stay, Integer fadeOut) {
Component titleComponent = title != null ? Component.text(title) : Component.empty();
Component subtitleComponent = subtitle != null ? Component.text(subtitle) : Component.empty();
Title.Times times = Title.Times.times(Duration.ofSeconds(fadeIn == null ? 1 : fadeIn), Duration.ofSeconds(stay == null ? 3 : stay), Duration.ofSeconds(fadeOut == null ? 1 : fadeOut));
Title playerTitle = Title.title(titleComponent, subtitleComponent, times);
player.showTitle(playerTitle);
}
public static void debugmsg(Logger logger, String msg) {
logger.warn(msg);
}
public static void debug(Logger logger, String msg) {
if (!(boolean)T2CVlibConfig.VALUES.debug.getValue()) return;
logger.warn(msg);
}
public static void info(Logger logger, String msg) {
logger.info(msg);
}
public static void warning(Logger logger, String msg) {
logger.warn(msg);
}
public static void error(Logger logger, String msg) {
logger.error(msg);
}
private static ArrayList<String> list(Object object) {
ArrayList<String> list = new ArrayList<>();
if (object instanceof List) {
list = (ArrayList<String>) object;
}
if (object instanceof String) {
list.add((String) object);
}
return list;
}
}

View File

@@ -0,0 +1,56 @@
// This class was created by JaTiTV.
package net.t2code.t2codelib.VELOCITY.api.pluginMessaging;
import com.google.common.io.ByteArrayDataInput;
import com.google.common.io.ByteStreams;
import com.velocitypowered.api.event.Subscribe;
import com.velocitypowered.api.event.connection.PluginMessageEvent;
import com.velocitypowered.api.proxy.Player;
import com.velocitypowered.api.proxy.ProxyServer;
import net.t2code.t2codelib.Util;
import net.t2code.t2codelib.VELOCITY.api.commands.T2CVcmd;
import net.t2code.t2codelib.VELOCITY.system.T2CodeVMain;
import org.slf4j.Logger;
public class T2CVplmsgCmd {
private final ProxyServer server;
private final Logger logger;
public T2CVplmsgCmd(ProxyServer server, Logger logger) {
this.server = server;
this.logger = logger;
server.getChannelRegistrar().register(T2CodeVMain.bcmd);
}
@Subscribe
public void onPluginMessageFromPlayer(PluginMessageEvent event) {
if (event.getIdentifier() != T2CodeVMain.bcmd) {
return;
}
ByteArrayDataInput stream = ByteStreams.newDataInput(event.getData());
String channel = stream.readUTF();
String input = stream.readUTF();
String serverID;
try {
serverID = stream.readUTF();
} catch (Exception i) {
serverID = "not Found";
}
if (channel.equals("T2Code-Console")) {
logger.info("{} [{}] T2C BCMD Command Console: {}", Util.getVPrefix(), serverID, input);
T2CVcmd.Console(input);
} else {
Player player = server.getPlayer(channel).orElse(null);
if (player != null) {
logger.info("{} [{}] T2C BCMD Command {}: {}", Util.getVPrefix(), serverID, player, input);
T2CVcmd.Player(player, input);
}
}
event.setResult(PluginMessageEvent.ForwardResult.handled());
}
}

View File

@@ -0,0 +1,62 @@
// This class was created by JaTiTV.
package net.t2code.t2codelib.VELOCITY.api.pluginMessaging.autoResponse;
import com.velocitypowered.api.event.Subscribe;
import com.velocitypowered.api.event.connection.PluginMessageEvent;
import com.velocitypowered.api.proxy.Player;
import com.velocitypowered.api.proxy.ProxyServer;
import net.t2code.t2codelib.VELOCITY.api.commands.T2CVcmd;
import net.t2code.t2codelib.VELOCITY.api.messages.T2CVsend;
import net.t2code.t2codelib.VELOCITY.system.T2CodeVMain;
import org.slf4j.Logger;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.IOException;
public class T2CVapiAutoResponse {
private final ProxyServer server;
private final Logger logger;
public T2CVapiAutoResponse(ProxyServer server, Logger logger) {
this.server = server;
this.logger = logger;
server.getChannelRegistrar().register(T2CodeVMain.aresp);
}
@Subscribe
public void onPluginmessage(PluginMessageEvent event) {
if (event.getIdentifier() != T2CodeVMain.aresp) {
return;
}
DataInputStream stream = new DataInputStream(new ByteArrayInputStream(event.getData()));
try {
String channel = stream.readUTF();
String input = stream.readUTF();
switch (channel) {
case "ConC":
logger.info("Command Console: {}", input);
T2CVcmd.Console(input);
break;
case "ALLPMSG":
for (Player player : server.getAllPlayers()) {
T2CVsend.player(player, input);
}
break;
default:
Player player = server.getPlayer(channel).orElse(null);
if (player != null) {
logger.info("Command Console: {}", input);
T2CVcmd.Player(player, input);
}
break;
}
} catch (IOException e) {
e.printStackTrace();
}
}
}

View File

@@ -0,0 +1,75 @@
// This class was created by JaTiTV.
package net.t2code.t2codelib.VELOCITY.api.pluginMessaging.commandgui;
import com.velocitypowered.api.event.Subscribe;
import com.velocitypowered.api.event.connection.DisconnectEvent;
import com.velocitypowered.api.event.connection.PostLoginEvent;
import com.velocitypowered.api.proxy.Player;
import com.velocitypowered.api.proxy.ProxyServer;
import com.velocitypowered.api.proxy.server.RegisteredServer;
import net.t2code.t2codelib.VELOCITY.system.T2CodeVMain;
import org.slf4j.Logger;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class T2CVapiCGUI {
private static ProxyServer server;
private static Logger logger;
public T2CVapiCGUI(ProxyServer server, Logger logger) {
T2CVapiCGUI.server = server;
T2CVapiCGUI.logger = logger;
server.getChannelRegistrar().register(T2CodeVMain.cguiopl);
}
@Subscribe
public void onJoin(PostLoginEvent event) {
Player player = event.getPlayer();
sendToSpigotPlayer(player.getUsername(), true);
}
@Subscribe
public void onDisconnect(DisconnectEvent event) {
Player player = event.getPlayer();
sendToSpigotPlayer(player.getUsername(), false);
}
public 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.warn(e.getMessage());
}
byte[] data = stream.toByteArray();
for (RegisteredServer server : server.getAllServers()) {
server.sendPluginMessage(T2CodeVMain.cguiopl, data);
}
}
public static void sendToSpigotDeleteAll() {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
DataOutputStream output = new DataOutputStream(stream);
try {
output.writeUTF("clear");
output.writeUTF("");
} catch (IOException e) {
logger.warn(e.getMessage());
}
byte[] data = stream.toByteArray();
for (RegisteredServer server : server.getAllServers()) {
server.sendPluginMessage(T2CodeVMain.cguiopl, data);
}
}
}

View File

@@ -0,0 +1,58 @@
// This class was created by JaTiTV.
package net.t2code.t2codelib.VELOCITY.api.pluginMessaging.opSecurity;
import com.velocitypowered.api.event.Subscribe;
import com.velocitypowered.api.event.connection.PluginMessageEvent;
import com.velocitypowered.api.proxy.ProxyServer;
import com.velocitypowered.api.proxy.server.RegisteredServer;
import net.t2code.t2codelib.VELOCITY.system.T2CodeVMain;
import org.slf4j.Logger;
import java.io.*;
public class T2CVapiOpSecurity {
private static ProxyServer server ;
private static Logger logger ;
public T2CVapiOpSecurity(ProxyServer server, Logger logger) {
T2CVapiOpSecurity.server = server;
T2CVapiOpSecurity.logger = logger;
server.getChannelRegistrar().register(T2CodeVMain.opsec);
}
@Subscribe
public void onPluginmessage(PluginMessageEvent event) {
if (event.getIdentifier() != T2CodeVMain.opsec) {
return;
}
DataInputStream stream = new DataInputStream(new ByteArrayInputStream(event.getData()));
try {
String channel = stream.readUTF();
String mode = stream.readUTF();
String information = stream.readUTF();
if (channel.equals("T2Cconsole")) {
sendToSpigotPlayer(channel,mode,information);
}
} catch (IOException e) {
e.printStackTrace();
}
}
private static void sendToSpigotPlayer(String channel,String mode,String information) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
DataOutputStream output = new DataOutputStream(stream);
try {
output.writeUTF(channel);
output.writeUTF(mode);
output.writeUTF(information);
} catch (IOException e) {
logger.error(e.getMessage());
}
for (RegisteredServer server : server.getAllServers()) {
server.sendPluginMessage(T2CodeVMain.opsec, stream.toByteArray());
}
}
}

View File

@@ -0,0 +1,111 @@
// This class was created by JaTiTV.
package net.t2code.t2codelib.VELOCITY.api.proxyPlayers;
import com.velocitypowered.api.event.Subscribe;
import com.velocitypowered.api.event.connection.DisconnectEvent;
import com.velocitypowered.api.event.connection.PluginMessageEvent;
import com.velocitypowered.api.event.connection.PostLoginEvent;
import com.velocitypowered.api.proxy.Player;
import com.velocitypowered.api.proxy.ProxyServer;
import com.velocitypowered.api.proxy.server.RegisteredServer;
import net.t2code.t2codelib.SPIGOT.api.bungeePlayers.T2CbungeePlayersEnum;
import net.t2code.t2codelib.VELOCITY.api.messages.T2CVsend;
import net.t2code.t2codelib.VELOCITY.system.T2CodeVMain;
import org.slf4j.Logger;
import java.io.*;
public class T2CVPlayers {
public static ProxyServer server = T2CodeVMain.getServer();
public static Logger logger = T2CodeVMain.getLogger();
@Subscribe
public void onJoin(PostLoginEvent e) {
sendToSpigotPlayer(e.getPlayer().getUsername(), T2CbungeePlayersEnum.JOIN, "");
}
@Subscribe
public void onDisconnect(DisconnectEvent e) {
sendToSpigotPlayer(e.getPlayer().getUsername(), T2CbungeePlayersEnum.QUIT, "");
}
public void sendToSpigotPlayer(String name, T2CbungeePlayersEnum value, String uuid) {
switch (value) {
case JOIN:
case QUIT:
sendToSpigotPlayerExecute(name, value, uuid);
break;
case GIVEALL:
StringBuilder input = new StringBuilder();
for (Player player : server.getAllPlayers()) {
input.append(player.getUsername()).append(";");
}
sendToSpigotPlayerExecute(input.toString(), T2CbungeePlayersEnum.GIVEALL, uuid);
break;
}
}
private void sendToSpigotPlayerExecute(String name, T2CbungeePlayersEnum value, String uuid) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
DataOutputStream output = new DataOutputStream(stream);
try {
output.writeUTF(value.name());
output.writeUTF(name);
output.writeUTF(uuid);
} catch (IOException e) {
logger.error (e.getMessage());
}
T2CVsend.debug(logger, "PluginMessage received channel: t2c:bonlp");
T2CVsend.debug(logger, "PluginMessage received subChannel: " + value.name());
T2CVsend.debug(logger, "PluginMessage received input: " + name);
T2CVsend.debug(logger, "PluginMessage received input2/uuid: " + uuid);
byte[] data = stream.toByteArray();
for (RegisteredServer server : server.getAllServers()) {
server.sendPluginMessage(T2CodeVMain.bonlp, data);
}
}
public static void sendToSpigotDeleteAll() {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
DataOutputStream output = new DataOutputStream(stream);
try {
output.writeUTF(T2CbungeePlayersEnum.CLEAR.name());
output.writeUTF("");
output.writeUTF("");
} catch (IOException e) {
logger.error(e.getMessage());
}
byte[] data = stream.toByteArray();
for (RegisteredServer server : server.getAllServers()) {
server.sendPluginMessage(T2CodeVMain.bonlp, data);
}
}
@Subscribe
public void onPluginMessage(PluginMessageEvent event) {
if (event.getIdentifier() != T2CodeVMain.bonlp) {
return;
}
DataInputStream stream = new DataInputStream(new ByteArrayInputStream(event.getData()));
try {
T2CbungeePlayersEnum subChannel = T2CbungeePlayersEnum.valueOf(stream.readUTF());
String input = stream.readUTF();
T2CVsend.debug(logger, "PluginMessage received channel: " + T2CodeVMain.bonlp);
T2CVsend.debug(logger, "PluginMessage received subChannel: " + subChannel.name());
T2CVsend.debug(logger, "PluginMessage received input/uuid: " + input);
sendToSpigotPlayer("", subChannel, input);
} catch (IOException e) {
e.printStackTrace();
}
}
}

View File

@@ -0,0 +1,77 @@
package net.t2code.t2codelib.VELOCITY.api.update;
import com.velocitypowered.api.command.CommandSource;
import com.velocitypowered.api.plugin.PluginContainer;
import com.velocitypowered.api.proxy.ProxyServer;
import net.t2code.t2codelib.T2CupdateObject;
import net.t2code.t2codelib.T2CupdateWebData;
import net.t2code.t2codelib.UpdateType;
import net.t2code.t2codelib.VELOCITY.api.messages.T2CVsend;
import net.t2code.t2codelib.VELOCITY.system.config.T2CVlibConfig;
import org.slf4j.Logger;
import java.time.Duration;
import java.util.HashMap;
public class T2CVupdateAPI {
public static HashMap<String, T2CupdateObject> bungeePluginVersins = new HashMap<>();
public static void sendUpdateMsg(Logger logger, String prefix, String discord, T2CupdateWebData webData, PluginContainer plugin) {
String publicVersion = webData.getVersion();
String pluginVersion = plugin.getDescription().getVersion().orElse("unknown");
String value;
if (webData.isPreRelease()) {
value = UpdateType.PRERELEASE_.text;
if (publicVersion.toLowerCase().contains("dev")) {
value = UpdateType.DEVELOPMENT_.text;
}
if (publicVersion.toLowerCase().contains("beta")) {
value = UpdateType.BETA_.text;
}
if (publicVersion.toLowerCase().contains("snapshot")) {
value = UpdateType.SNAPSHOT_.text;
}
} else value = UpdateType.STABLE_.text;
T2CVsend.console(logger, "╔══════════════" + prefix + "══════════════");
T2CVsend.console(logger, "║ A new [value] version was found!".replace("[value]", value));
T2CVsend.console(logger, "║ Your version: " + pluginVersion + " - Current version: " + webData.getVersion());
T2CVsend.console(logger, "║ You can download it here: " + webData.getUpdateUrl());
T2CVsend.console(logger, "║ You can find more information on Discord: " + discord);
T2CVsend.console(logger, "╚══════════════" + prefix + "══════════════");
}
private static Boolean noUpdate = true;
private static String pluginVersion;
public static void onUpdateCheckTimer(Logger logger, PluginContainer plugin, ProxyServer server, String prefix, String discord, Integer spigotID, String url) {
if ((int) T2CVlibConfig.VALUES.updateTimer.getValue() < 1) {
T2CVlibConfig.VALUES.updateTimer.setValue(1);
}
server.getScheduler().buildTask(plugin, () -> {
(new T2CVupdateCheckerGit(plugin,logger)).getVersion((webData) -> {
pluginVersion = plugin.getDescription().getVersion().toString();
T2CupdateObject update = new T2CupdateObject(
plugin.getDescription().getName().toString(),
plugin.getDescription().getVersion().toString(),
webData,
false,
!plugin.getDescription().getVersion().equals(webData.getVersion()),
true
);
bungeePluginVersins.put(plugin.getDescription().getName().toString(), update);
if (!pluginVersion.replace("_Velocity", "").equalsIgnoreCase(webData.getVersion())) {
sendUpdateMsg(logger,prefix, discord, webData, plugin);
noUpdate = true;
} else {
if (noUpdate) {
T2CVsend.console(logger, " No update found.");
noUpdate = false;
}
}
}, pluginVersion, spigotID, url);
}).repeat(Duration.ofMinutes((int) T2CVlibConfig.VALUES.updateTimer.getValue())).schedule();
}
}

View File

@@ -0,0 +1,101 @@
package net.t2code.t2codelib.VELOCITY.api.update;
import com.velocitypowered.api.plugin.PluginContainer;
import net.t2code.t2codelib.BUNGEE.system.config.T2CBlibConfig;
import net.t2code.t2codelib.T2CupdateObject;
import net.t2code.t2codelib.T2CupdateWebData;
import org.json.JSONArray;
import org.json.JSONObject;
import org.slf4j.Logger;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.function.Consumer;
public class T2CVupdateCheckerGit {
private PluginContainer plugin;
private Logger logger;
public T2CVupdateCheckerGit(PluginContainer plugin, Logger logger) {
this.plugin = plugin;
this.logger=logger;
}
public void getVersion(Consumer<T2CupdateWebData> consumer, String pluginVersion, Integer spigotID, String gitKey) {
String RepoURL = "https://git.t2code.net/api/v1/repos/" + gitKey + "/releases?limit=1";
if (!(boolean)T2CBlibConfig.VALUES.seePreReleaseUpdates.getValue() ) {
RepoURL = RepoURL + "&pre-release=false";
}
String finalRepoURL = RepoURL;
try {
URL url = new URL(finalRepoURL);
URLConnection yc = url.openConnection();
BufferedReader in = new BufferedReader(
new InputStreamReader(
yc.getInputStream()));
String inputLine;
String data = "";
while ((inputLine = in.readLine()) != null)
data = inputLine;
in.close();
data = data.substring(1, data.length() - 1);
if (data.isEmpty()) {
consumer.accept(null);
return;
}
JSONObject obj = new JSONObject(data);
String updateTitle = obj.getString("name");
String version = obj.getString("tag_name");
String updateDescription = obj.getString("body").replace("\n", "<br>").replace("\r", "").replace("'", "''");
String updateUrl = obj.getString("html_url");
boolean preRelease = obj.getBoolean("prerelease");
String date = obj.getString("published_at");
SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss a");
Date parsedDate = inputFormat.parse(date);
String publishedAt = outputFormat.format(parsedDate);
JSONArray downloadArray = obj.getJSONArray("assets");
String gitURL = updateUrl;
String downloadURL;
if (downloadArray.isEmpty()) {
downloadURL = "https://www.spigotmc.org/resources/" + spigotID;
} else {
downloadURL = downloadArray.getJSONObject(0).getString("browser_download_url");
}
if (!preRelease) {
downloadURL = "https://www.spigotmc.org/resources/" + spigotID;
updateUrl = "https://www.spigotmc.org/resources/" + spigotID;
}
T2CupdateWebData webData = new T2CupdateWebData(updateTitle, version, updateDescription, updateUrl, publishedAt, downloadURL, gitURL, preRelease);
consumer.accept(webData);
} catch (Exception var10) {
Boolean load = false;
if (T2CVupdateAPI.bungeePluginVersins.containsKey(plugin.getDescription().getName().toString())) {
load = T2CVupdateAPI.bungeePluginVersins.get(plugin.getDescription().getName().toString()).load;
}
T2CupdateObject update = new T2CupdateObject(
plugin.getDescription().getName().toString(),
pluginVersion,
null,
load,
false,
true
);
T2CVupdateAPI.bungeePluginVersins.put(plugin.getDescription().getName().toString(), update);
logger.error("Cannot look for updates: {}", var10.getMessage());
}
}
}

View File

@@ -0,0 +1,143 @@
package net.t2code.t2codelib.VELOCITY.api.yml;// This class was created by JaTiTV.
import net.t2code.t2codelib.T2CconfigItem;
import org.slf4j.Logger;
import org.yaml.snakeyaml.Yaml;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
public class T2CVconfigWriter {
public static void createConfig(Logger logger, File configFile, T2CconfigItem[] manager, String... header) throws IOException {
if (!configFile.exists()) {
configFile.getParentFile().mkdirs();
try {
configFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
return;
}
}
Yaml yaml = new Yaml();
Map<String,Object> config = yaml.load(Files.newInputStream(configFile.toPath()));
Map<String, List<String>> comments = new LinkedHashMap<>();
if(config == null){
config = new LinkedHashMap<>();
}
for(T2CconfigItem value : manager){
readValue(config,value.getPath(), value);
addValue(config, value.getPath(), value.getValue());
comments.put(value.getPath(), value.getComments());
}
saveConfigWithComments(configFile, comments,config, header);
}
private static void readValue(Map<String, Object> config, String path, T2CconfigItem value) {
if(path.contains(".")){
String[] pathsplit = path.split("\\.");
String key = pathsplit[0];
if(config.containsKey(key)){
StringBuilder zw = new StringBuilder();
for(int i=1; i<pathsplit.length;i++){
zw.append(pathsplit[i]);
if(i!= (pathsplit.length-1)){
zw.append(".");
}
}
readValue((Map<String, Object>) config.get(key),zw.toString(), value);
}
}else{
Object vl = config.get(path);
if(vl != null){
value.setValue(vl);
}
}
}
private static void addValue(Map<String, Object> config, String path, Object value) {
if(path.contains(".")){
String[] pathsplit = path.split("\\.");
String key = pathsplit[0];
if(config.containsKey(key)){
StringBuilder zw = new StringBuilder();
for(int i=1; i<pathsplit.length;i++){
zw.append(pathsplit[i]);
if(i!= (pathsplit.length-1)){
zw.append(".");
}
}
addValue((Map<String, Object>) config.get(key),zw.toString(),value);
}else{
Map<String, Object> newMap = new LinkedHashMap<>();
StringBuilder zw = new StringBuilder();
for(int i=1; i<pathsplit.length;i++){
zw.append(pathsplit[i]);
if(i!= (pathsplit.length-1)){
zw.append(".");
}
}
addValue(newMap,zw.toString(),value);
config.put(key, newMap);
}
}else{
if(!config.containsKey(path)){
config.put(path, value);
}
}
}
private static void saveConfigWithComments(File file, Map<String, List<String>> comments, Map<String,Object> config, String... headers) {
try {
StringBuilder configContent = new StringBuilder();
for(String h : headers){
configContent.append(h).append("\n");
}
configContent.append("\n");
addSection(config, comments, configContent, "", 0);
// Write the content to the file
Files.write(file.toPath(), configContent.toString().getBytes());
} catch (IOException e) {
e.printStackTrace();
}
}
private static void addSection(Map<String,Object> config, Map<String, List<String>> comments, StringBuilder builder, String prefix, int indentLevel) {
String indent = " ".repeat(indentLevel);
for (Map.Entry<String, Object> key : config.entrySet()) {
String fullKey = prefix.isEmpty() ? key.getKey() : prefix + "." + key.getKey();
Object value = key.getValue();
// Add comment if it exists for this key
List<String> commentList = comments.get(fullKey);
if (commentList != null) {
for(String c : commentList){
builder.append(indent).append("# ").append(c).append("\n");
}
}
// Check if the value is a section (nested map)
if (value instanceof Map) {
// Correctly add the section
builder.append(indent).append(key.getKey()).append(":\n");
addSection((Map<String, Object>) value, comments, builder, fullKey, indentLevel + 1);
} else {
// Add value with proper indentation
builder.append(indent).append(key.getKey()).append(": ").append(value).append("\n");
}
}
}
}

View File

@@ -0,0 +1,124 @@
// This class was created by JaTiTV.
package net.t2code.t2codelib.VELOCITY.system;
import com.google.inject.Inject;
import com.velocitypowered.api.event.Subscribe;
import com.velocitypowered.api.event.proxy.ProxyInitializeEvent;
import com.velocitypowered.api.plugin.PluginContainer;
import com.velocitypowered.api.plugin.annotation.DataDirectory;
import com.velocitypowered.api.proxy.ProxyServer;
import com.velocitypowered.api.proxy.messages.MinecraftChannelIdentifier;
import lombok.Getter;
import net.t2code.t2codelib.Util;
import net.t2code.t2codelib.VELOCITY.api.pluginMessaging.T2CVplmsgCmd;
import net.t2code.t2codelib.VELOCITY.api.pluginMessaging.autoResponse.T2CVapiAutoResponse;
import net.t2code.t2codelib.VELOCITY.api.pluginMessaging.commandgui.T2CVapiCGUI;
import net.t2code.t2codelib.VELOCITY.api.pluginMessaging.opSecurity.T2CVapiOpSecurity;
import net.t2code.t2codelib.VELOCITY.api.proxyPlayers.T2CVPlayers;
import net.t2code.t2codelib.VELOCITY.api.update.T2CVupdateAPI;
import net.t2code.t2codelib.VELOCITY.system.bstats.Metrics;
import net.t2code.t2codelib.VELOCITY.system.config.T2CVlibConfig;
import org.slf4j.Logger;
import java.io.IOException;
import java.nio.file.Path;
public class T2CodeVMain {
@Getter
private static ProxyServer server;
@Getter
private static Logger logger;
@Getter
private PluginContainer plugin;
@Getter
private final long starttime;
@Getter
private static Path dataDirectory;
private final Metrics.Factory metricsFactory;
public static final MinecraftChannelIdentifier bcmd = MinecraftChannelIdentifier.from("t2c:bcmd");
public static final MinecraftChannelIdentifier bonlp = MinecraftChannelIdentifier.from("t2c:bonlp");
public static final MinecraftChannelIdentifier cguiopl = MinecraftChannelIdentifier.from("t2c:cguiopl");
public static final MinecraftChannelIdentifier aresp = MinecraftChannelIdentifier.from("t2c:aresp");
public static final MinecraftChannelIdentifier opsec = MinecraftChannelIdentifier.from("t2c:opsec");
@Inject
public T2CodeVMain(ProxyServer server, Logger logger, @DataDirectory Path dataDirectory, Metrics.Factory metricsFactory) {
starttime = System.currentTimeMillis();
T2CodeVMain.server = server;
T2CodeVMain.logger = logger;
T2CodeVMain.dataDirectory = dataDirectory;
this.metricsFactory = metricsFactory;
}
@Subscribe
public void onLoad(ProxyInitializeEvent e) {
new pl(this, server);
logger.info("╔════════════════════════════════════");
// logger.info("║");
for (String s : Util.getLoadLogo()) {
logger.info("║ {}", s);
}
logger.info("");
// Thread.sleep(5000);
logger.info("║ Author: {}", String.valueOf(plugin.getDescription().getAuthors()).replace("[", "").replace("]", ""));
logger.info("║ Version: {}", plugin.getDescription().getVersion().orElse("unknown"));
logger.info("║ Spigot: {}", Util.getSpigot());
logger.info("║ Discord: {}", Util.getDiscord());
try {
T2CVlibConfig.set(dataDirectory, logger);
} catch (IOException ex) {
throw new RuntimeException(ex);
}
// new T2CVcmd(server, logger);
// server.getEventManager().register(this, new T2CVpluginMessagingCmd(server, logger));
//API
server.getEventManager().register(this, new T2CVplmsgCmd(server, logger));
server.getChannelRegistrar().register(T2CodeVMain.bonlp);
T2CVPlayers.sendToSpigotDeleteAll();
if ((boolean) T2CVlibConfig.VALUES.apiCommandGUIEnable.getValue()) {
server.getEventManager().register(this, new T2CVapiCGUI(server, logger));
T2CVapiCGUI.sendToSpigotDeleteAll();
}
if ((boolean) T2CVlibConfig.VALUES.apiAutoResponse.getValue()) {
server.getEventManager().register(this, new T2CVapiAutoResponse(server, logger));
}
if ((boolean) T2CVlibConfig.VALUES.apiOpSecurity.getValue()) {
server.getEventManager().register(this, new T2CVapiOpSecurity(server, logger));
}
Metrics.bStats(this, Util.getBstatsID(), metricsFactory);
T2CVupdateAPI.onUpdateCheckTimer(logger, plugin, server, Util.getVPrefix(), Util.getDiscord(), Util.getSpigotID(), Util.getGit());
logger.info("");
logger.info("║ Plugin loaded successfully - {}ms", System.currentTimeMillis() - starttime);
logger.info("╚════════════════════════════════════");
}
public class pl {
public pl(Object pl, ProxyServer server) {
plugin = server.getPluginManager().fromInstance(pl)
.orElseThrow(() -> new IllegalArgumentException("The provided instance is not a plugin"));
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,67 @@
package net.t2code.t2codelib.VELOCITY.system.config;
import net.t2code.t2codelib.SPIGOT.api.messages.T2Ctemplate;
import net.t2code.t2codelib.T2CconfigItem;
import net.t2code.t2codelib.Util;
import net.t2code.t2codelib.VELOCITY.api.messages.T2CVsend;
import net.t2code.t2codelib.VELOCITY.api.yml.T2CVconfigWriter;
import org.slf4j.Logger;
import java.io.File;
import java.io.IOException;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class T2CVlibConfig {
public enum VALUES implements T2CconfigItem {
updateTimer("updateCheck.timerInMin", 60, "In this option you can set the time interval in minutes in which updates should be checked."),
seePreReleaseUpdates("updateCheck.seePreReleaseUpdates", true, "In this option you can set whether you want to receive and display beta and snapshot versions in the update check."),
debug("plugin.debug.debugModus", false, "The debug mode sends more detailed debug information to the console."),
apiCommandGUIEnable("api.commandGUI.enable", false, "With this option you activate the api interface for the T2C-CommandGUI plugin."),
apiAutoResponse("api.autoResponse.enable", false, "With this option you activate the api interface for the T2C-AutoResponse plugin."),
apiOpSecurity("api.opSecurity.enable", false, "With this option you activate the api interface for the T2C-OPSecurity plugin."),
;
private final String path;
private Object value;
private final List<String> comments;
VALUES(String path, Object value, String... comments) {
this.path = path;
this.value = value;
this.comments = new ArrayList<>(Arrays.asList(comments));
}
@Override
public String getPath() {
return path;
}
@Override
public Object getValue() {
return value;
}
@Override
public List<String> getComments() {
return comments;
}
@Override
public void setValue(Object newValue) {
value = newValue;
}
}
public static void set(Path dataDirectory, Logger logger) throws IOException {
long long_ = System.currentTimeMillis();
T2CVconfigWriter.createConfig(logger, new File(dataDirectory.getParent() + "/T2CodeLib", "config.yml"), VALUES.values(), Util.getConfigLogo());
T2CVsend.info(logger, "║ The config.yml were successfully created / updated." + " - " + (System.currentTimeMillis() - long_) + "ms");
}
}

View File

@@ -31,5 +31,8 @@ permissions:
default: op
children:
t2code.permtoggle.use: true
t2code.lib.updatemsg: true
t2code.permtoggle.use:
default: op
t2code.lib.updatemsg:
default: op

View File

@@ -0,0 +1 @@
{"id":"t2codelib","name":"T2CodeLib","version":"${project.version}","authors":["JaTiTV"],"dependencies":[],"main":"net.t2code.t2codelib.VELOCITY.system.T2CodeVMain"}