recoded whole project to support multi-version instead of standalone plugins, new config entry and comments, overall project cleanup and initial 1.12.5-1.20.6 support (actually doesn't work due to issues between java 21 and java 17)
This commit is contained in:
1 parent
b4824cd8c8
commit
eee83ba1d4
62 files changed
+613
-868
No files matched your search
@@ -1,2 +1,2 @@
|
||||
#Fri Feb 23 17:47:23 CET 2024
|
||||
gradle.version=8.4
|
||||
#Thu May 09 16:57:21 CEST 2024
|
||||
gradle.version=8.5
|
||||
Generated
+23
-1
@@ -1,6 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="CompilerConfiguration">
|
||||
<bytecodeTargetLevel target="16" />
|
||||
<bytecodeTargetLevel target="17">
|
||||
<module name="FastCrystalsPlugin.fast-crystals-plugin-1.18.main" target="17" />
|
||||
<module name="FastCrystalsPlugin.fast-crystals-plugin-1.18.test" target="17" />
|
||||
<module name="FastCrystalsPlugin.fast-crystals-plugin-1.19.3.main" target="17" />
|
||||
<module name="FastCrystalsPlugin.fast-crystals-plugin-1.19.3.test" target="17" />
|
||||
<module name="FastCrystalsPlugin.fast-crystals-plugin-1.19.4.main" target="17" />
|
||||
<module name="FastCrystalsPlugin.fast-crystals-plugin-1.19.4.test" target="17" />
|
||||
<module name="FastCrystalsPlugin.fast-crystals-plugin-1.19.main" target="17" />
|
||||
<module name="FastCrystalsPlugin.fast-crystals-plugin-1.19.test" target="17" />
|
||||
<module name="FastCrystalsPlugin.fast-crystals-plugin-1.20.2.main" target="17" />
|
||||
<module name="FastCrystalsPlugin.fast-crystals-plugin-1.20.2.test" target="17" />
|
||||
<module name="FastCrystalsPlugin.fast-crystals-plugin-1.20.4.main" target="17" />
|
||||
<module name="FastCrystalsPlugin.fast-crystals-plugin-1.20.4.test" target="17" />
|
||||
<module name="FastCrystalsPlugin.fast-crystals-plugin-1.20.main" target="17" />
|
||||
<module name="FastCrystalsPlugin.fast-crystals-plugin-1.20.test" target="17" />
|
||||
<module name="v1_18" target="17" />
|
||||
<module name="v1_19" target="17" />
|
||||
<module name="v1_19_3" target="17" />
|
||||
<module name="v1_19_4" target="17" />
|
||||
<module name="v1_20" target="17" />
|
||||
<module name="v1_20_2" target="17" />
|
||||
<module name="v1_20_4" target="17" />
|
||||
</bytecodeTargetLevel>
|
||||
</component>
|
||||
</project>
|
||||
Generated
+7
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="DiscordProjectSettings">
|
||||
<option name="show" value="PROJECT_FILES" />
|
||||
<option name="description" value="" />
|
||||
</component>
|
||||
</project>
|
||||
Generated
+13
-9
@@ -5,18 +5,22 @@
|
||||
<option name="linkedExternalProjectsSettings">
|
||||
<GradleProjectSettings>
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="gradleJvm" value="17" />
|
||||
<option name="modules">
|
||||
<set>
|
||||
<option value="$PROJECT_DIR$" />
|
||||
<option value="$PROJECT_DIR$/fast-crystals-plugin-1.16" />
|
||||
<option value="$PROJECT_DIR$/fast-crystals-plugin-1.17" />
|
||||
<option value="$PROJECT_DIR$/fast-crystals-plugin-1.18" />
|
||||
<option value="$PROJECT_DIR$/fast-crystals-plugin-1.19" />
|
||||
<option value="$PROJECT_DIR$/fast-crystals-plugin-1.19.3" />
|
||||
<option value="$PROJECT_DIR$/fast-crystals-plugin-1.19.4" />
|
||||
<option value="$PROJECT_DIR$/fast-crystals-plugin-1.20" />
|
||||
<option value="$PROJECT_DIR$/fast-crystals-plugin-1.20.2" />
|
||||
<option value="$PROJECT_DIR$/fast-crystals-plugin-1.20.4" />
|
||||
<option value="$PROJECT_DIR$/core" />
|
||||
<option value="$PROJECT_DIR$/shared" />
|
||||
<option value="$PROJECT_DIR$/v1_16" />
|
||||
<option value="$PROJECT_DIR$/v1_17" />
|
||||
<option value="$PROJECT_DIR$/v1_18" />
|
||||
<option value="$PROJECT_DIR$/v1_19" />
|
||||
<option value="$PROJECT_DIR$/v1_19_3" />
|
||||
<option value="$PROJECT_DIR$/v1_19_4" />
|
||||
<option value="$PROJECT_DIR$/v1_20" />
|
||||
<option value="$PROJECT_DIR$/v1_20_2" />
|
||||
<option value="$PROJECT_DIR$/v1_20_4" />
|
||||
<option value="$PROJECT_DIR$/v1_20_6" />
|
||||
</set>
|
||||
</option>
|
||||
</GradleProjectSettings>
|
||||
|
||||
Generated
+25
@@ -31,5 +31,30 @@
|
||||
<option name="name" value="maven" />
|
||||
<option name="url" value="https://hub.spigotmc.org/nexus/content/repositories/snapshots/" />
|
||||
</remote-repository>
|
||||
<remote-repository>
|
||||
<option name="id" value="maven2" />
|
||||
<option name="name" value="maven2" />
|
||||
<option name="url" value="https://hub.spigotmc.org/nexus/content/groups/public/" />
|
||||
</remote-repository>
|
||||
<remote-repository>
|
||||
<option name="id" value="maven3" />
|
||||
<option name="name" value="maven3" />
|
||||
<option name="url" value="https://repo.papermc.io/repository/maven-public/" />
|
||||
</remote-repository>
|
||||
<remote-repository>
|
||||
<option name="id" value="MavenLocal" />
|
||||
<option name="name" value="MavenLocal" />
|
||||
<option name="url" value="file:/$MAVEN_REPOSITORY$/" />
|
||||
</remote-repository>
|
||||
<remote-repository>
|
||||
<option name="id" value="maven" />
|
||||
<option name="name" value="maven" />
|
||||
<option name="url" value="https://oss.sonatype.org/content/repositories/snapshots" />
|
||||
</remote-repository>
|
||||
<remote-repository>
|
||||
<option name="id" value="maven3" />
|
||||
<option name="name" value="maven3" />
|
||||
<option name="url" value="https://oss.sonatype.org/content/repositories/central" />
|
||||
</remote-repository>
|
||||
</component>
|
||||
</project>
|
||||
Generated
+1
-1
@@ -4,5 +4,5 @@
|
||||
<component name="FrameworkDetectionExcludesConfiguration">
|
||||
<file type="web" url="file://$PROJECT_DIR$" />
|
||||
</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" project-jdk-name="16" project-jdk-type="JavaSDK" />
|
||||
</project>
|
||||
Generated
+124
@@ -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>
|
||||
Generated
+6
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
+13
-3
@@ -3,8 +3,18 @@ plugins {
|
||||
}
|
||||
|
||||
group 'xyz.exyron.fastcrystals'
|
||||
version '1.0-SNAPSHOT'
|
||||
version '1.0'
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
subprojects {
|
||||
afterEvaluate {
|
||||
def isShadowPluginApplied = project.plugins.hasPlugin('com.github.johnrengelman.shadow')
|
||||
|
||||
if (isShadowPluginApplied) {
|
||||
tasks.named('shadowJar') {
|
||||
it.archiveFileName.set("${rootProject.name}-${rootProject.version}.jar")
|
||||
it.destinationDirectory.set(file("${project.rootDir}/build/libs"))
|
||||
it.relocate 'org.bstats', 'xyz.exyron.fastcrystals.bstats'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
plugins {
|
||||
id 'java'
|
||||
id "com.github.johnrengelman.shadow" version "8.1.1"
|
||||
}
|
||||
|
||||
group 'xyz.exyron.fastcrystals'
|
||||
version '1.0'
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
maven { url 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/' }
|
||||
maven { url 'https://hub.spigotmc.org/nexus/content/groups/public/' }
|
||||
maven { url 'https://repo.codemc.org/repository/nms/' }
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly 'org.spigotmc:spigot:1.16.5-R0.1-SNAPSHOT'
|
||||
implementation 'org.bstats:bstats-bukkit:3.0.2'
|
||||
|
||||
implementation project (':shared')
|
||||
implementation project (':v1_16')
|
||||
implementation project (':v1_17')
|
||||
implementation project (':v1_18')
|
||||
implementation project (':v1_19')
|
||||
implementation project (':v1_19_3')
|
||||
implementation project (':v1_19_4')
|
||||
implementation project (':v1_20')
|
||||
implementation project (':v1_20_2')
|
||||
implementation project (':v1_20_4')
|
||||
//implementation project (':v1_20_6')
|
||||
}
|
||||
@@ -0,0 +1,115 @@
|
||||
package xyz.exyron.fastcrystals;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import org.bstats.bukkit.Metrics;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.entity.EnderCrystal;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
public final class FastCrystalsPlugin extends JavaPlugin implements Listener {
|
||||
|
||||
private final FileConfiguration configuration = this.getConfig();
|
||||
private final boolean currentStatus = this.configuration.getBoolean("defaultStatus");
|
||||
|
||||
private final Set<UUID> playersUUID = new HashSet<>();
|
||||
private CrystalDamage crystalDamage;
|
||||
|
||||
private static final int BSTATS_ID = 21848;
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
this.saveDefaultConfig();
|
||||
|
||||
new Metrics(this, BSTATS_ID);
|
||||
|
||||
this.crystalDamage = this.assignCrystalDamageFromServerVersion(Bukkit.getBukkitVersion().split("-")[0]);
|
||||
|
||||
String disableMessage = this.colorize(Objects.requireNonNull(this.configuration.getString("disableMessage")));
|
||||
String enableMessage = this.colorize(Objects.requireNonNull(this.configuration.getString("enableMessage")));
|
||||
|
||||
if (this.configuration.getBoolean("commandEnabled")) {
|
||||
Objects.requireNonNull(this.getCommand("fastcrystals")).setExecutor(((sender, command, label, args) -> {
|
||||
if (sender instanceof Player player) {
|
||||
UUID playerUniqueId = player.getUniqueId();
|
||||
|
||||
if (this.playersUUID.contains(playerUniqueId)) {
|
||||
player.sendMessage(disableMessage);
|
||||
this.playersUUID.remove(playerUniqueId);
|
||||
} else {
|
||||
player.sendMessage(enableMessage);
|
||||
this.playersUUID.add(playerUniqueId);
|
||||
}
|
||||
} else {
|
||||
sender.sendMessage(this.colorize("&cYou cannot run this command from Console."));
|
||||
}
|
||||
return false;
|
||||
}));
|
||||
}
|
||||
|
||||
this.getServer().getPluginManager().registerEvents(this, this);
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
|
||||
if (event.getDamager() instanceof Player player && event.getEntity() instanceof EnderCrystal crystal && this.playersUUID.contains(player.getUniqueId())) {
|
||||
this.crystalDamage.handle(player, crystal);
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||
if (this.currentStatus) {
|
||||
this.playersUUID.add(event.getPlayer().getUniqueId());
|
||||
}
|
||||
}
|
||||
|
||||
private CrystalDamage assignCrystalDamageFromServerVersion(String version) {
|
||||
return switch (version) {
|
||||
//case "1.20.5", "1.20.6" -> new CrystalDamage_v1_20_6();
|
||||
case "1.20.4", "1.20.3" -> new CrystalDamage_v1_20_4();
|
||||
case "1.20", "1.20.1", "1.20.2" -> new CrystalDamage_v1_20_2();
|
||||
case "1.19.4" -> new CrystalDamage_v1_19_4();
|
||||
case "1.19.3" -> new CrystalDamage_v1_19_3();
|
||||
case "1.19.2", "1.19.1", "1.19" -> new CrystalDamage_v1_19();
|
||||
case "1.18.2", "1.18.1", "1.18" -> new CrystalDamage_v1_18();
|
||||
case "1.17.2", "1.17.1", "1.17" -> new CrystalDamage_v1_17();
|
||||
case "1.16.5", "1.16.4" -> new CrystalDamage_v1_16();
|
||||
|
||||
default -> {
|
||||
Bukkit.getPluginManager().disablePlugin(this);
|
||||
throw new IllegalStateException(
|
||||
"Plugin is disabling due to unsupported minecraft version (" + version + "). We currently support only 1.16.4+ versions."
|
||||
);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private static final Pattern HEX_PATTERN = Pattern.compile("#[A-Fa-f0-9]{6}");
|
||||
|
||||
private String colorize(String message) {
|
||||
Matcher matcher = HEX_PATTERN.matcher(message);
|
||||
StringBuilder result = new StringBuilder();
|
||||
|
||||
while (matcher.find()) {
|
||||
matcher.appendReplacement(result, ChatColor.of(matcher.group()).toString());
|
||||
}
|
||||
|
||||
matcher.appendTail(result);
|
||||
message = result.toString();
|
||||
|
||||
return ChatColor.translateAlternateColorCodes('&', message.replace(">>", "»").replace("<<", "«"));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
#
|
||||
# ___ __ __ _ _ _ __ ___ _ __ __ __ _ _ ____
|
||||
# / _ \\ \/ /| | | || '__|/ _ \ | '_ \ \ \/ /| | | ||_ /
|
||||
# | __/ > < | |_| || | | (_) || | | | _ > < | |_| | / /
|
||||
# \___|/_/\_\ \__, ||_| \___/ |_| |_|(_)/_/\_\ \__, |/___|
|
||||
# |___/ |___/
|
||||
#
|
||||
|
||||
# Set this value to "false" if you don't want to be fast crystals automatically enabled on player join.
|
||||
defaultStatus: true
|
||||
|
||||
# Set this value to "false" if you don't want "/fastcrystals" command to be working. (it's going to be completely disabled)
|
||||
commandEnabled: true
|
||||
|
||||
enableMessage: "&7Fast crystal feature is now &aenabled&7."
|
||||
disableMessage: "&7Fast crystal feature is now &cdisabled&7."
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
name: Exyron-FastCrystals
|
||||
version: 1.0
|
||||
api-version: 1.13
|
||||
api-version: 1.16
|
||||
main: xyz.exyron.fastcrystals.FastCrystalsPlugin
|
||||
authors: [ Exyron.XYZ, KamlaX, KinczeK ]
|
||||
commands:
|
||||
fastcrystals:
|
||||
aliases: [ fastercrystals, fastcrystal ]
|
||||
aliases: [ fastercrystals, fastcrystal, quickcrystal ]
|
||||
-81
@@ -1,81 +0,0 @@
|
||||
package xyz.exyron.fastcrystals;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import net.minecraft.server.v1_16_R3.PacketPlayOutEntityDestroy;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.craftbukkit.v1_16_R3.entity.CraftPlayer;
|
||||
import org.bukkit.entity.EnderCrystal;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
public final class FastCrystalsPlugin extends JavaPlugin implements Listener {
|
||||
|
||||
private final FileConfiguration configuration = this.getConfig();
|
||||
private final boolean currentStatus = configuration.getBoolean("defaultStatus");
|
||||
private final Set<UUID> playersUUID = new HashSet<>();
|
||||
private final Pattern HEX_PATTERN = Pattern.compile("#[A-Fa-f0-9]{6}");
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
this.saveDefaultConfig();
|
||||
|
||||
String enableMessage = colorize(Objects.requireNonNull(configuration.getString("enableMessage")));
|
||||
String disableMessage = colorize(Objects.requireNonNull(configuration.getString("disableMessage")));
|
||||
|
||||
Objects.requireNonNull(getCommand("fastcrystals")).setExecutor(((sender, command, label, args) -> {
|
||||
if (sender instanceof Player player) {
|
||||
if (this.playersUUID.contains(player.getUniqueId())) {
|
||||
player.sendMessage(disableMessage);
|
||||
this.playersUUID.remove(player.getUniqueId());
|
||||
} else {
|
||||
player.sendMessage(enableMessage);
|
||||
this.playersUUID.add(player.getUniqueId());
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}));
|
||||
|
||||
this.getServer().getPluginManager().registerEvents(this, this);
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
|
||||
if (event.getDamager() instanceof Player player && event.getEntity() instanceof EnderCrystal && this.playersUUID.contains(player.getUniqueId())) {
|
||||
((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutEntityDestroy(event.getEntity().getEntityId()));
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||
if (currentStatus) {
|
||||
this.playersUUID.add(event.getPlayer().getUniqueId());
|
||||
}
|
||||
}
|
||||
|
||||
private String colorize(String message) {
|
||||
Matcher matcher = HEX_PATTERN.matcher(message);
|
||||
StringBuilder result = new StringBuilder();
|
||||
|
||||
while (matcher.find()) {
|
||||
matcher.appendReplacement(result, ChatColor.of(matcher.group()).toString());
|
||||
}
|
||||
|
||||
matcher.appendTail(result);
|
||||
message = result.toString();
|
||||
|
||||
return ChatColor.translateAlternateColorCodes('&', message
|
||||
.replace(">>", "\u00BB")
|
||||
.replace("<<", "\u00AB"));
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
defaultStatus: true
|
||||
enableMessage: "&aFastCrystals has been &2enabled&a!"
|
||||
disableMessage: "&cFastCrystals has been &4disabled&c!"
|
||||
@@ -1,8 +0,0 @@
|
||||
name: Exyron-FastCrystals
|
||||
version: 1.0
|
||||
api-version: 1.13
|
||||
main: xyz.exyron.fastcrystals.FastCrystalsPlugin
|
||||
authors: [ Exyron.XYZ, KamlaX, KinczeK ]
|
||||
commands:
|
||||
fastcrystals:
|
||||
aliases: [ fastercrystals, fastcrystal ]
|
||||
-81
@@ -1,81 +0,0 @@
|
||||
package xyz.exyron.fastcrystals;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import net.minecraft.network.protocol.game.PacketPlayOutEntityDestroy;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.craftbukkit.v1_17_R1.entity.CraftPlayer;
|
||||
import org.bukkit.entity.EnderCrystal;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
public final class FastCrystalsPlugin extends JavaPlugin implements Listener {
|
||||
|
||||
private final FileConfiguration configuration = this.getConfig();
|
||||
private final boolean currentStatus = configuration.getBoolean("defaultStatus");
|
||||
private final Set<UUID> playersUUID = new HashSet<>();
|
||||
private final Pattern HEX_PATTERN = Pattern.compile("#[A-Fa-f0-9]{6}");
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
this.saveDefaultConfig();
|
||||
|
||||
String enableMessage = colorize(Objects.requireNonNull(this.getConfig().getString("enableMessage")));
|
||||
String disableMessage = colorize(Objects.requireNonNull(this.getConfig().getString("disableMessage")));
|
||||
|
||||
Objects.requireNonNull(getCommand("fastcrystals")).setExecutor(((sender, command, label, args) -> {
|
||||
if (sender instanceof Player player) {
|
||||
if (this.playersUUID.contains(player.getUniqueId())) {
|
||||
player.sendMessage(disableMessage);
|
||||
this.playersUUID.remove(player.getUniqueId());
|
||||
} else {
|
||||
player.sendMessage(enableMessage);
|
||||
this.playersUUID.add(player.getUniqueId());
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}));
|
||||
|
||||
this.getServer().getPluginManager().registerEvents(this, this);
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
|
||||
if (event.getDamager() instanceof Player player && event.getEntity() instanceof EnderCrystal && this.playersUUID.contains(player.getUniqueId())) {
|
||||
((CraftPlayer) player).getHandle().b.sendPacket(new PacketPlayOutEntityDestroy(event.getEntity().getEntityId()));
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||
if (currentStatus) {
|
||||
this.playersUUID.add(event.getPlayer().getUniqueId());
|
||||
}
|
||||
}
|
||||
|
||||
private String colorize(String message) {
|
||||
Matcher matcher = HEX_PATTERN.matcher(message);
|
||||
StringBuilder result = new StringBuilder();
|
||||
|
||||
while (matcher.find()) {
|
||||
matcher.appendReplacement(result, ChatColor.of(matcher.group()).toString());
|
||||
}
|
||||
|
||||
matcher.appendTail(result);
|
||||
message = result.toString();
|
||||
|
||||
return ChatColor.translateAlternateColorCodes('&', message
|
||||
.replace(">>", "\u00BB")
|
||||
.replace("<<", "\u00AB"));
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
defaultStatus: true
|
||||
enableMessage: "&aFastCrystals has been enabled!"
|
||||
disableMessage: "&cFastCrystals has been disabled!"
|
||||
-81
@@ -1,81 +0,0 @@
|
||||
package xyz.exyron.fastcrystals;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import net.minecraft.network.protocol.game.PacketPlayOutEntityDestroy;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.craftbukkit.v1_18_R2.entity.CraftPlayer;
|
||||
import org.bukkit.entity.EnderCrystal;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
public final class FastCrystalsPlugin extends JavaPlugin implements Listener {
|
||||
|
||||
private final FileConfiguration configuration = this.getConfig();
|
||||
private final boolean currentStatus = configuration.getBoolean("defaultStatus");
|
||||
private final Set<UUID> playersUUID = new HashSet<>();
|
||||
private final Pattern HEX_PATTERN = Pattern.compile("#[A-Fa-f0-9]{6}");
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
saveDefaultConfig();
|
||||
|
||||
String enableMessage = colorize(Objects.requireNonNull(this.getConfig().getString("enableMessage")));
|
||||
String disableMessage = colorize(Objects.requireNonNull(this.getConfig().getString("disableMessage")));
|
||||
|
||||
Objects.requireNonNull(getCommand("fastcrystals")).setExecutor(((sender, command, label, args) -> {
|
||||
if (sender instanceof Player player) {
|
||||
if (this.playersUUID.contains(player.getUniqueId())) {
|
||||
player.sendMessage(disableMessage);
|
||||
this.playersUUID.remove(player.getUniqueId());
|
||||
} else {
|
||||
player.sendMessage(enableMessage);
|
||||
this.playersUUID.add(player.getUniqueId());
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}));
|
||||
|
||||
getServer().getPluginManager().registerEvents(this, this);
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
|
||||
if (event.getDamager() instanceof Player player && event.getEntity() instanceof EnderCrystal && this.playersUUID.contains(player.getUniqueId())) {
|
||||
((CraftPlayer) player).getHandle().b.a(new PacketPlayOutEntityDestroy(event.getEntity().getEntityId()));
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||
if (currentStatus) {
|
||||
this.playersUUID.add(event.getPlayer().getUniqueId());
|
||||
}
|
||||
}
|
||||
|
||||
private String colorize(String message) {
|
||||
Matcher matcher = HEX_PATTERN.matcher(message);
|
||||
StringBuilder result = new StringBuilder();
|
||||
|
||||
while (matcher.find()) {
|
||||
matcher.appendReplacement(result, ChatColor.of(matcher.group()).toString());
|
||||
}
|
||||
|
||||
matcher.appendTail(result);
|
||||
message = result.toString();
|
||||
|
||||
return ChatColor.translateAlternateColorCodes('&', message
|
||||
.replace(">>", "\u00BB")
|
||||
.replace("<<", "\u00AB"));
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
defaultStatus: true
|
||||
enableMessage: "&aFastCrystals has been &2enabled&a!"
|
||||
disableMessage: "&cFastCrystals has been &4disabled&c!"
|
||||
@@ -1,8 +0,0 @@
|
||||
name: Exyron-FastCrystals
|
||||
version: 1.0
|
||||
api-version: 1.13
|
||||
main: xyz.exyron.fastcrystals.FastCrystalsPlugin
|
||||
authors: [ Exyron.XYZ, KamlaX, KinczeK ]
|
||||
commands:
|
||||
fastcrystals:
|
||||
aliases: [ fastercrystals, fastcrystal ]
|
||||
-81
@@ -1,81 +0,0 @@
|
||||
package xyz.exyron.fastcrystals;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import net.minecraft.network.protocol.game.PacketPlayOutEntityDestroy;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.craftbukkit.v1_19_R2.entity.CraftPlayer;
|
||||
import org.bukkit.entity.EnderCrystal;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
public final class FastCrystalsPlugin extends JavaPlugin implements Listener {
|
||||
|
||||
private final FileConfiguration configuration = this.getConfig();
|
||||
private final boolean currentStatus = configuration.getBoolean("defaultStatus");
|
||||
private final Set<UUID> playersUUID = new HashSet<>();
|
||||
private final Pattern HEX_PATTERN = Pattern.compile("#[A-Fa-f0-9]{6}");
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
saveDefaultConfig();
|
||||
|
||||
String enableMessage = colorize(Objects.requireNonNull(this.getConfig().getString("enableMessage")));
|
||||
String disableMessage = colorize(Objects.requireNonNull(this.getConfig().getString("disableMessage")));
|
||||
|
||||
Objects.requireNonNull(getCommand("fastcrystals")).setExecutor(((sender, command, label, args) -> {
|
||||
if (sender instanceof Player player) {
|
||||
if (this.playersUUID.contains(player.getUniqueId())) {
|
||||
player.sendMessage(disableMessage);
|
||||
this.playersUUID.remove(player.getUniqueId());
|
||||
} else {
|
||||
player.sendMessage(enableMessage);
|
||||
this.playersUUID.add(player.getUniqueId());
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}));
|
||||
|
||||
getServer().getPluginManager().registerEvents(this, this);
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
|
||||
if (event.getDamager() instanceof Player player && event.getEntity() instanceof EnderCrystal && this.playersUUID.contains(player.getUniqueId())) {
|
||||
((CraftPlayer) player).getHandle().b.a(new PacketPlayOutEntityDestroy(event.getEntity().getEntityId()));
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||
if (currentStatus) {
|
||||
this.playersUUID.add(event.getPlayer().getUniqueId());
|
||||
}
|
||||
}
|
||||
|
||||
private String colorize(String message) {
|
||||
Matcher matcher = HEX_PATTERN.matcher(message);
|
||||
StringBuilder result = new StringBuilder();
|
||||
|
||||
while (matcher.find()) {
|
||||
matcher.appendReplacement(result, ChatColor.of(matcher.group()).toString());
|
||||
}
|
||||
|
||||
matcher.appendTail(result);
|
||||
message = result.toString();
|
||||
|
||||
return ChatColor.translateAlternateColorCodes('&', message
|
||||
.replace(">>", "\u00BB")
|
||||
.replace("<<", "\u00AB"));
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
defaultStatus: true
|
||||
enableMessage: "&aFastCrystals has been &2enabled&a!"
|
||||
disableMessage: "&cFastCrystals has been &4disabled&c!"
|
||||
@@ -1,8 +0,0 @@
|
||||
name: Exyron-FastCrystals
|
||||
version: 1.0
|
||||
api-version: 1.13
|
||||
main: xyz.exyron.fastcrystals.FastCrystalsPlugin
|
||||
authors: [ Exyron.XYZ, KamlaX, KinczeK ]
|
||||
commands:
|
||||
fastcrystals:
|
||||
aliases: [ fastercrystals, fastcrystal ]
|
||||
-81
@@ -1,81 +0,0 @@
|
||||
package xyz.exyron.fastcrystals;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import net.minecraft.network.protocol.game.PacketPlayOutEntityDestroy;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.craftbukkit.v1_19_R3.entity.CraftPlayer;
|
||||
import org.bukkit.entity.EnderCrystal;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
public final class FastCrystalsPlugin extends JavaPlugin implements Listener {
|
||||
|
||||
private final FileConfiguration configuration = this.getConfig();
|
||||
private final boolean currentStatus = configuration.getBoolean("defaultStatus");
|
||||
private final Set<UUID> playersUUID = new HashSet<>();
|
||||
private final Pattern HEX_PATTERN = Pattern.compile("#[A-Fa-f0-9]{6}");
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
saveDefaultConfig();
|
||||
|
||||
String enableMessage = colorize(Objects.requireNonNull(this.getConfig().getString("enableMessage")));
|
||||
String disableMessage = colorize(Objects.requireNonNull(this.getConfig().getString("disableMessage")));
|
||||
|
||||
Objects.requireNonNull(getCommand("fastcrystals")).setExecutor(((sender, command, label, args) -> {
|
||||
if (sender instanceof Player player) {
|
||||
if (this.playersUUID.contains(player.getUniqueId())) {
|
||||
player.sendMessage(disableMessage);
|
||||
this.playersUUID.remove(player.getUniqueId());
|
||||
} else {
|
||||
player.sendMessage(enableMessage);
|
||||
this.playersUUID.add(player.getUniqueId());
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}));
|
||||
|
||||
getServer().getPluginManager().registerEvents(this, this);
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
|
||||
if (event.getDamager() instanceof Player player && event.getEntity() instanceof EnderCrystal && this.playersUUID.contains(player.getUniqueId())) {
|
||||
((CraftPlayer) player).getHandle().b.a(new PacketPlayOutEntityDestroy(event.getEntity().getEntityId()));
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||
if (currentStatus) {
|
||||
this.playersUUID.add(event.getPlayer().getUniqueId());
|
||||
}
|
||||
}
|
||||
|
||||
private String colorize(String message) {
|
||||
Matcher matcher = HEX_PATTERN.matcher(message);
|
||||
StringBuilder result = new StringBuilder();
|
||||
|
||||
while (matcher.find()) {
|
||||
matcher.appendReplacement(result, ChatColor.of(matcher.group()).toString());
|
||||
}
|
||||
|
||||
matcher.appendTail(result);
|
||||
message = result.toString();
|
||||
|
||||
return ChatColor.translateAlternateColorCodes('&', message
|
||||
.replace(">>", "\u00BB")
|
||||
.replace("<<", "\u00AB"));
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
defaultStatus: true
|
||||
enableMessage: "&aFastCrystals has been &2enabled&a!"
|
||||
disableMessage: "&cFastCrystals has been &4disabled&c!"
|
||||
@@ -1,8 +0,0 @@
|
||||
name: Exyron-FastCrystals
|
||||
version: 1.0
|
||||
api-version: 1.13
|
||||
main: xyz.exyron.fastcrystals.FastCrystalsPlugin
|
||||
authors: [ Exyron.XYZ, KamlaX, KinczeK ]
|
||||
commands:
|
||||
fastcrystals:
|
||||
aliases: [ fastercrystals, fastcrystal ]
|
||||
-81
@@ -1,81 +0,0 @@
|
||||
package xyz.exyron.fastcrystals;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import net.minecraft.network.protocol.game.PacketPlayOutEntityDestroy;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.craftbukkit.v1_19_R1.entity.CraftPlayer;
|
||||
import org.bukkit.entity.EnderCrystal;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
public final class FastCrystalsPlugin extends JavaPlugin implements Listener {
|
||||
|
||||
private final FileConfiguration configuration = this.getConfig();
|
||||
private final boolean currentStatus = configuration.getBoolean("defaultStatus");
|
||||
private final Set<UUID> playersUUID = new HashSet<>();
|
||||
private final Pattern HEX_PATTERN = Pattern.compile("#[A-Fa-f0-9]{6}");
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
saveDefaultConfig();
|
||||
|
||||
String enableMessage = colorize(Objects.requireNonNull(this.getConfig().getString("enableMessage")));
|
||||
String disableMessage = colorize(Objects.requireNonNull(this.getConfig().getString("disableMessage")));
|
||||
|
||||
Objects.requireNonNull(getCommand("fastcrystals")).setExecutor(((sender, command, label, args) -> {
|
||||
if (sender instanceof Player player) {
|
||||
if (this.playersUUID.contains(player.getUniqueId())) {
|
||||
player.sendMessage(disableMessage);
|
||||
this.playersUUID.remove(player.getUniqueId());
|
||||
} else {
|
||||
player.sendMessage(enableMessage);
|
||||
this.playersUUID.add(player.getUniqueId());
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}));
|
||||
|
||||
getServer().getPluginManager().registerEvents(this, this);
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
|
||||
if (event.getDamager() instanceof Player player && event.getEntity() instanceof EnderCrystal && this.playersUUID.contains(player.getUniqueId())) {
|
||||
((CraftPlayer) player).getHandle().b.a(new PacketPlayOutEntityDestroy(event.getEntity().getEntityId()));
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||
if (currentStatus) {
|
||||
this.playersUUID.add(event.getPlayer().getUniqueId());
|
||||
}
|
||||
}
|
||||
|
||||
private String colorize(String message) {
|
||||
Matcher matcher = HEX_PATTERN.matcher(message);
|
||||
StringBuilder result = new StringBuilder();
|
||||
|
||||
while (matcher.find()) {
|
||||
matcher.appendReplacement(result, ChatColor.of(matcher.group()).toString());
|
||||
}
|
||||
|
||||
matcher.appendTail(result);
|
||||
message = result.toString();
|
||||
|
||||
return ChatColor.translateAlternateColorCodes('&', message
|
||||
.replace(">>", "\u00BB")
|
||||
.replace("<<", "\u00AB"));
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
defaultStatus: true
|
||||
enableMessage: "&aFastCrystals has been &2enabled&a!"
|
||||
disableMessage: "&cFastCrystals has been &4disabled&c!"
|
||||
@@ -1,8 +0,0 @@
|
||||
name: Exyron-FastCrystals
|
||||
version: 1.0
|
||||
api-version: 1.13
|
||||
main: xyz.exyron.fastcrystals.FastCrystalsPlugin
|
||||
authors: [ Exyron.XYZ, KamlaX, KinczeK ]
|
||||
commands:
|
||||
fastcrystals:
|
||||
aliases: [ fastercrystals, fastcrystal ]
|
||||
-81
@@ -1,81 +0,0 @@
|
||||
package xyz.exyron.fastcrystals;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import net.minecraft.network.protocol.game.PacketPlayOutEntityDestroy;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.craftbukkit.v1_20_R2.entity.CraftPlayer;
|
||||
import org.bukkit.entity.EnderCrystal;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
public final class FastCrystalsPlugin extends JavaPlugin implements Listener {
|
||||
|
||||
private final FileConfiguration configuration = this.getConfig();
|
||||
private final boolean currentStatus = configuration.getBoolean("defaultStatus");
|
||||
private final Set<UUID> playersUUID = new HashSet<>();
|
||||
private final Pattern HEX_PATTERN = Pattern.compile("#[A-Fa-f0-9]{6}");
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
saveDefaultConfig();
|
||||
|
||||
String enableMessage = colorize(Objects.requireNonNull(this.getConfig().getString("enableMessage")));
|
||||
String disableMessage = colorize(Objects.requireNonNull(this.getConfig().getString("disableMessage")));
|
||||
|
||||
Objects.requireNonNull(getCommand("fastcrystals")).setExecutor(((sender, command, label, args) -> {
|
||||
if (sender instanceof Player player) {
|
||||
if (this.playersUUID.contains(player.getUniqueId())) {
|
||||
player.sendMessage(disableMessage);
|
||||
this.playersUUID.remove(player.getUniqueId());
|
||||
} else {
|
||||
player.sendMessage(enableMessage);
|
||||
this.playersUUID.add(player.getUniqueId());
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}));
|
||||
|
||||
getServer().getPluginManager().registerEvents(this, this);
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
|
||||
if (event.getDamager() instanceof Player player && event.getEntity() instanceof EnderCrystal && this.playersUUID.contains(player.getUniqueId())) {
|
||||
((CraftPlayer) player).getHandle().c.a(new PacketPlayOutEntityDestroy(event.getEntity().getEntityId()));
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||
if (currentStatus) {
|
||||
this.playersUUID.add(event.getPlayer().getUniqueId());
|
||||
}
|
||||
}
|
||||
|
||||
private String colorize(String message) {
|
||||
Matcher matcher = HEX_PATTERN.matcher(message);
|
||||
StringBuilder result = new StringBuilder();
|
||||
|
||||
while (matcher.find()) {
|
||||
matcher.appendReplacement(result, ChatColor.of(matcher.group()).toString());
|
||||
}
|
||||
|
||||
matcher.appendTail(result);
|
||||
message = result.toString();
|
||||
|
||||
return ChatColor.translateAlternateColorCodes('&', message
|
||||
.replace(">>", "\u00BB")
|
||||
.replace("<<", "\u00AB"));
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
defaultStatus: true
|
||||
enableMessage: "&aFastCrystals has been &2enabled&a!"
|
||||
disableMessage: "&cFastCrystals has been &4disabled&c!"
|
||||
@@ -1,8 +0,0 @@
|
||||
name: Exyron-FastCrystals
|
||||
version: 1.0
|
||||
api-version: 1.13
|
||||
main: xyz.exyron.fastcrystals.FastCrystalsPlugin
|
||||
authors: [ Exyron.XYZ, KamlaX, KinczeK ]
|
||||
commands:
|
||||
fastcrystals:
|
||||
aliases: [ fastercrystals, fastcrystal ]
|
||||
-81
@@ -1,81 +0,0 @@
|
||||
package xyz.exyron.fastcrystals;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import net.minecraft.network.protocol.game.PacketPlayOutEntityDestroy;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.craftbukkit.v1_20_R3.entity.CraftPlayer;
|
||||
import org.bukkit.entity.EnderCrystal;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
public final class FastCrystalsPlugin extends JavaPlugin implements Listener {
|
||||
|
||||
private final FileConfiguration configuration = this.getConfig();
|
||||
private final boolean currentStatus = configuration.getBoolean("defaultStatus");
|
||||
private final Set<UUID> playersUUID = new HashSet<>();
|
||||
private final Pattern HEX_PATTERN = Pattern.compile("#[A-Fa-f0-9]{6}");
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
saveDefaultConfig();
|
||||
|
||||
String enableMessage = colorize(Objects.requireNonNull(this.getConfig().getString("enableMessage")));
|
||||
String disableMessage = colorize(Objects.requireNonNull(this.getConfig().getString("disableMessage")));
|
||||
|
||||
Objects.requireNonNull(getCommand("fastcrystals")).setExecutor(((sender, command, label, args) -> {
|
||||
if (sender instanceof Player player) {
|
||||
if (this.playersUUID.contains(player.getUniqueId())) {
|
||||
player.sendMessage(disableMessage);
|
||||
this.playersUUID.remove(player.getUniqueId());
|
||||
} else {
|
||||
player.sendMessage(enableMessage);
|
||||
this.playersUUID.add(player.getUniqueId());
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}));
|
||||
|
||||
getServer().getPluginManager().registerEvents(this, this);
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
|
||||
if (event.getDamager() instanceof Player player && event.getEntity() instanceof EnderCrystal && this.playersUUID.contains(player.getUniqueId())) {
|
||||
((CraftPlayer) player).getHandle().c.a(new PacketPlayOutEntityDestroy(event.getEntity().getEntityId()));
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||
if (currentStatus) {
|
||||
this.playersUUID.add(event.getPlayer().getUniqueId());
|
||||
}
|
||||
}
|
||||
|
||||
private String colorize(String message) {
|
||||
Matcher matcher = HEX_PATTERN.matcher(message);
|
||||
StringBuilder result = new StringBuilder();
|
||||
|
||||
while (matcher.find()) {
|
||||
matcher.appendReplacement(result, ChatColor.of(matcher.group()).toString());
|
||||
}
|
||||
|
||||
matcher.appendTail(result);
|
||||
message = result.toString();
|
||||
|
||||
return ChatColor.translateAlternateColorCodes('&', message
|
||||
.replace(">>", "\u00BB")
|
||||
.replace("<<", "\u00AB"));
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
defaultStatus: true
|
||||
enableMessage: "&aFastCrystals has been &2enabled&a!"
|
||||
disableMessage: "&cFastCrystals has been &4disabled&c!"
|
||||
@@ -1,8 +0,0 @@
|
||||
name: Exyron-FastCrystals
|
||||
version: 1.0
|
||||
api-version: 1.13
|
||||
main: xyz.exyron.fastcrystals.FastCrystalsPlugin
|
||||
authors: [ Exyron.XYZ, KamlaX, KinczeK ]
|
||||
commands:
|
||||
fastcrystals:
|
||||
aliases: [ fastercrystals, fastcrystal ]
|
||||
-81
@@ -1,81 +0,0 @@
|
||||
package xyz.exyron.fastcrystals;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import net.minecraft.network.protocol.game.PacketPlayOutEntityDestroy;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.craftbukkit.v1_20_R1.entity.CraftPlayer;
|
||||
import org.bukkit.entity.EnderCrystal;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
public final class FastCrystalsPlugin extends JavaPlugin implements Listener {
|
||||
|
||||
private final FileConfiguration configuration = this.getConfig();
|
||||
private final boolean currentStatus = configuration.getBoolean("defaultStatus");
|
||||
private final Set<UUID> playersUUID = new HashSet<>();
|
||||
private final Pattern HEX_PATTERN = Pattern.compile("#[A-Fa-f0-9]{6}");
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
saveDefaultConfig();
|
||||
|
||||
String enableMessage = colorize(Objects.requireNonNull(this.getConfig().getString("enableMessage")));
|
||||
String disableMessage = colorize(Objects.requireNonNull(this.getConfig().getString("disableMessage")));
|
||||
|
||||
Objects.requireNonNull(getCommand("fastcrystals")).setExecutor(((sender, command, label, args) -> {
|
||||
if (sender instanceof Player player) {
|
||||
if (this.playersUUID.contains(player.getUniqueId())) {
|
||||
player.sendMessage(disableMessage);
|
||||
this.playersUUID.remove(player.getUniqueId());
|
||||
} else {
|
||||
player.sendMessage(enableMessage);
|
||||
this.playersUUID.add(player.getUniqueId());
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}));
|
||||
|
||||
getServer().getPluginManager().registerEvents(this, this);
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
|
||||
if (event.getDamager() instanceof Player player && event.getEntity() instanceof EnderCrystal && this.playersUUID.contains(player.getUniqueId())) {
|
||||
((CraftPlayer) player).getHandle().c.a(new PacketPlayOutEntityDestroy(event.getEntity().getEntityId()));
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||
if (currentStatus) {
|
||||
this.playersUUID.add(event.getPlayer().getUniqueId());
|
||||
}
|
||||
}
|
||||
|
||||
private String colorize(String message) {
|
||||
Matcher matcher = HEX_PATTERN.matcher(message);
|
||||
StringBuilder result = new StringBuilder();
|
||||
|
||||
while (matcher.find()) {
|
||||
matcher.appendReplacement(result, ChatColor.of(matcher.group()).toString());
|
||||
}
|
||||
|
||||
matcher.appendTail(result);
|
||||
message = result.toString();
|
||||
|
||||
return ChatColor.translateAlternateColorCodes('&', message
|
||||
.replace(">>", "\u00BB")
|
||||
.replace("<<", "\u00AB"));
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
defaultStatus: true
|
||||
enableMessage: "&aFastCrystals has been &2enabled&a!"
|
||||
disableMessage: "&cFastCrystals has been &4disabled&c!"
|
||||
@@ -1,8 +0,0 @@
|
||||
name: Exyron-FastCrystals
|
||||
version: 1.0
|
||||
api-version: 1.13
|
||||
main: xyz.exyron.fastcrystals.FastCrystalsPlugin
|
||||
authors: [ Exyron.XYZ, KamlaX, KinczeK ]
|
||||
commands:
|
||||
fastcrystals:
|
||||
aliases: [ fastercrystals, fastcrystal ]
|
||||
+16
-9
@@ -1,12 +1,19 @@
|
||||
plugins {
|
||||
id("org.gradle.toolchains.foojay-resolver-convention") version("0.5.0")
|
||||
}
|
||||
|
||||
rootProject.name = 'FastCrystalsPlugin'
|
||||
|
||||
include 'fast-crystals-plugin-1.16'
|
||||
include 'fast-crystals-plugin-1.18'
|
||||
include 'fast-crystals-plugin-1.17'
|
||||
include 'fast-crystals-plugin-1.19'
|
||||
include 'fast-crystals-plugin-1.19.3'
|
||||
include 'fast-crystals-plugin-1.19.4'
|
||||
include 'fast-crystals-plugin-1.20'
|
||||
include 'fast-crystals-plugin-1.20.2'
|
||||
include 'fast-crystals-plugin-1.20.4'
|
||||
include 'core'
|
||||
include 'shared'
|
||||
include 'v1_16'
|
||||
include 'v1_17'
|
||||
include 'v1_18'
|
||||
include 'v1_19'
|
||||
include 'v1_19_3'
|
||||
include 'v1_19_4'
|
||||
include 'v1_20'
|
||||
include 'v1_20_2'
|
||||
include 'v1_20_4'
|
||||
include 'v1_20_6'
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
plugins {
|
||||
id 'java'
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
maven { url 'https://repo.codemc.org/repository/nms/' }
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly 'org.spigotmc:spigot:1.16.5-R0.1-SNAPSHOT'
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package xyz.exyron.fastcrystals;
|
||||
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public interface CrystalDamage {
|
||||
|
||||
void handle(Player damager, Entity crystal);
|
||||
|
||||
}
|
||||
@@ -12,4 +12,6 @@ repositories {
|
||||
}
|
||||
dependencies {
|
||||
compileOnly 'org.spigotmc:spigot:1.16.5-R0.1-SNAPSHOT'
|
||||
|
||||
compileOnly project(':shared')
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package xyz.exyron.fastcrystals;
|
||||
|
||||
import net.minecraft.server.v1_16_R3.PacketPlayOutEntityDestroy;
|
||||
import org.bukkit.craftbukkit.v1_16_R3.entity.CraftPlayer;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class CrystalDamage_v1_16 implements CrystalDamage {
|
||||
|
||||
@Override
|
||||
public void handle(Player damager, Entity crystal) {
|
||||
((CraftPlayer) damager).getHandle().playerConnection.sendPacket(new PacketPlayOutEntityDestroy(crystal.getEntityId()));
|
||||
}
|
||||
}
|
||||
@@ -12,4 +12,6 @@ repositories {
|
||||
}
|
||||
dependencies {
|
||||
compileOnly 'org.spigotmc:spigot:1.17.1-R0.1-SNAPSHOT'
|
||||
|
||||
compileOnly project(':shared')
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package xyz.exyron.fastcrystals;
|
||||
|
||||
import net.minecraft.network.protocol.game.PacketPlayOutEntityDestroy;
|
||||
import org.bukkit.craftbukkit.v1_17_R1.entity.CraftPlayer;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class CrystalDamage_v1_17 implements CrystalDamage {
|
||||
|
||||
@Override
|
||||
public void handle(Player damager, Entity crystal) {
|
||||
((CraftPlayer) damager).getHandle().b.sendPacket(new PacketPlayOutEntityDestroy(crystal.getEntityId()));
|
||||
}
|
||||
}
|
||||
@@ -6,9 +6,7 @@ group 'xyz.exyron.fastcrystals'
|
||||
version '1.0'
|
||||
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion = JavaLanguageVersion.of(17)
|
||||
}
|
||||
toolchain.languageVersion.set(JavaLanguageVersion.of(17))
|
||||
}
|
||||
|
||||
repositories {
|
||||
@@ -17,7 +15,10 @@ repositories {
|
||||
maven { url 'https://repo.codemc.org/repository/nms/' }
|
||||
maven { url 'https://papermc.io/repo/repository/maven-public/' }
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly 'org.spigotmc:spigot:1.18.2-R0.1-SNAPSHOT'
|
||||
compileOnly 'org.spigotmc:spigot-api:1.18.2-R0.1-SNAPSHOT'
|
||||
|
||||
compileOnly project (':shared')
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package xyz.exyron.fastcrystals;
|
||||
|
||||
import net.minecraft.network.protocol.game.PacketPlayOutEntityDestroy;
|
||||
import org.bukkit.craftbukkit.v1_18_R2.entity.CraftPlayer;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class CrystalDamage_v1_18 implements CrystalDamage {
|
||||
|
||||
@Override
|
||||
public void handle(Player damager, Entity crystal) {
|
||||
((CraftPlayer) damager).getHandle().b.a(new PacketPlayOutEntityDestroy(crystal.getEntityId()));
|
||||
}
|
||||
}
|
||||
@@ -6,12 +6,11 @@ group 'xyz.exyron.fastcrystals'
|
||||
version '1.0'
|
||||
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion = JavaLanguageVersion.of(17)
|
||||
}
|
||||
toolchain.languageVersion.set(JavaLanguageVersion.of(17))
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenLocal()
|
||||
mavenCentral()
|
||||
maven { url 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/' }
|
||||
maven { url 'https://repo.codemc.org/repository/nms/' }
|
||||
@@ -20,4 +19,6 @@ repositories {
|
||||
dependencies {
|
||||
compileOnly 'org.spigotmc:spigot:1.19-R0.1-SNAPSHOT'
|
||||
compileOnly 'org.spigotmc:spigot-api:1.19-R0.1-SNAPSHOT'
|
||||
|
||||
compileOnly project (':shared')
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package xyz.exyron.fastcrystals;
|
||||
|
||||
import net.minecraft.network.protocol.game.PacketPlayOutEntityDestroy;
|
||||
import org.bukkit.craftbukkit.v1_19_R1.entity.CraftPlayer;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class CrystalDamage_v1_19 implements CrystalDamage {
|
||||
|
||||
@Override
|
||||
public void handle(Player damager, Entity crystal) {
|
||||
((CraftPlayer) damager).getHandle().b.a(new PacketPlayOutEntityDestroy(crystal.getEntityId()));
|
||||
}
|
||||
}
|
||||
@@ -6,12 +6,11 @@ group 'xyz.exyron.fastcrystals'
|
||||
version '1.0'
|
||||
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion = JavaLanguageVersion.of(17)
|
||||
}
|
||||
toolchain.languageVersion.set(JavaLanguageVersion.of(17))
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenLocal()
|
||||
mavenCentral()
|
||||
maven { url 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/' }
|
||||
maven { url 'https://repo.codemc.org/repository/nms/' }
|
||||
@@ -20,4 +19,6 @@ repositories {
|
||||
dependencies {
|
||||
compileOnly 'org.spigotmc:spigot:1.19.3-R0.1-SNAPSHOT'
|
||||
compileOnly 'org.spigotmc:spigot-api:1.19.3-R0.1-SNAPSHOT'
|
||||
|
||||
compileOnly project (':shared')
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package xyz.exyron.fastcrystals;
|
||||
|
||||
import net.minecraft.network.protocol.game.PacketPlayOutEntityDestroy;
|
||||
import org.bukkit.craftbukkit.v1_19_R2.entity.CraftPlayer;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class CrystalDamage_v1_19_3 implements CrystalDamage {
|
||||
|
||||
@Override
|
||||
public void handle(Player damager, Entity crystal) {
|
||||
((CraftPlayer) damager).getHandle().b.a(new PacketPlayOutEntityDestroy(crystal.getEntityId()));
|
||||
}
|
||||
}
|
||||
@@ -6,12 +6,11 @@ group 'xyz.exyron.fastcrystals'
|
||||
version '1.0'
|
||||
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion = JavaLanguageVersion.of(17)
|
||||
}
|
||||
toolchain.languageVersion.set(JavaLanguageVersion.of(17))
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenLocal()
|
||||
mavenCentral()
|
||||
maven { url 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/' }
|
||||
maven { url 'https://repo.codemc.org/repository/nms/' }
|
||||
@@ -20,4 +19,6 @@ repositories {
|
||||
dependencies {
|
||||
compileOnly 'org.spigotmc:spigot:1.19.4-R0.1-SNAPSHOT'
|
||||
compileOnly 'org.spigotmc:spigot-api:1.19.4-R0.1-SNAPSHOT'
|
||||
|
||||
compileOnly project (':shared')
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package xyz.exyron.fastcrystals;
|
||||
|
||||
import net.minecraft.network.protocol.game.PacketPlayOutEntityDestroy;
|
||||
import org.bukkit.craftbukkit.v1_19_R3.entity.CraftPlayer;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class CrystalDamage_v1_19_4 implements CrystalDamage {
|
||||
|
||||
@Override
|
||||
public void handle(Player damager, Entity crystal) {
|
||||
((CraftPlayer) damager).getHandle().b.a(new PacketPlayOutEntityDestroy(crystal.getEntityId()));
|
||||
}
|
||||
}
|
||||
@@ -6,12 +6,11 @@ group 'xyz.exyron.fastcrystals'
|
||||
version '1.0'
|
||||
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion = JavaLanguageVersion.of(17)
|
||||
}
|
||||
toolchain.languageVersion.set(JavaLanguageVersion.of(17))
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenLocal()
|
||||
mavenCentral()
|
||||
maven { url 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/' }
|
||||
maven { url 'https://repo.codemc.org/repository/nms/' }
|
||||
@@ -21,4 +20,6 @@ repositories {
|
||||
dependencies {
|
||||
compileOnly 'org.spigotmc:spigot:1.20-R0.1-SNAPSHOT'
|
||||
compileOnly 'org.spigotmc:spigot-api:1.20-R0.1-SNAPSHOT'
|
||||
|
||||
compileOnly project (':shared')
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package xyz.exyron.fastcrystals;
|
||||
|
||||
import net.minecraft.network.protocol.game.PacketPlayOutEntityDestroy;
|
||||
import org.bukkit.craftbukkit.v1_20_R1.entity.CraftPlayer;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class CrystalDamage_v1_20 implements CrystalDamage {
|
||||
|
||||
@Override
|
||||
public void handle(Player damager, Entity crystal) {
|
||||
((CraftPlayer) damager).getHandle().c.a(new PacketPlayOutEntityDestroy(crystal.getEntityId()));
|
||||
}
|
||||
}
|
||||
@@ -6,13 +6,12 @@ group 'xyz.exyron.fastcrystals'
|
||||
version '1.0'
|
||||
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion = JavaLanguageVersion.of(17)
|
||||
}
|
||||
toolchain.languageVersion.set(JavaLanguageVersion.of(17))
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
mavenLocal()
|
||||
maven { url 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/' }
|
||||
maven { url 'https://repo.codemc.org/repository/nms/' }
|
||||
maven { url 'https://papermc.io/repo/repository/maven-public/' }
|
||||
@@ -21,4 +20,6 @@ repositories {
|
||||
dependencies {
|
||||
compileOnly 'org.spigotmc:spigot:1.20.2-R0.1-SNAPSHOT'
|
||||
compileOnly 'org.spigotmc:spigot-api:1.20.2-R0.1-SNAPSHOT'
|
||||
|
||||
compileOnly project (':shared')
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package xyz.exyron.fastcrystals;
|
||||
|
||||
import net.minecraft.network.protocol.game.PacketPlayOutEntityDestroy;
|
||||
import org.bukkit.craftbukkit.v1_20_R2.entity.CraftPlayer;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class CrystalDamage_v1_20_2 implements CrystalDamage {
|
||||
|
||||
@Override
|
||||
public void handle(Player damager, Entity crystal) {
|
||||
((CraftPlayer) damager).getHandle().c.a(new PacketPlayOutEntityDestroy(crystal.getEntityId()));
|
||||
}
|
||||
}
|
||||
@@ -6,13 +6,12 @@ group 'xyz.exyron.fastcrystals'
|
||||
version '1.0'
|
||||
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion = JavaLanguageVersion.of(17)
|
||||
}
|
||||
toolchain.languageVersion.set(JavaLanguageVersion.of(17))
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
mavenLocal()
|
||||
maven { url 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/' }
|
||||
maven { url 'https://repo.codemc.org/repository/nms/' }
|
||||
maven { url 'https://papermc.io/repo/repository/maven-public/' }
|
||||
@@ -21,4 +20,6 @@ repositories {
|
||||
dependencies {
|
||||
compileOnly 'org.spigotmc:spigot:1.20.4-R0.1-SNAPSHOT'
|
||||
compileOnly 'org.spigotmc:spigot-api:1.20.4-R0.1-SNAPSHOT'
|
||||
|
||||
compileOnly project (':shared')
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package xyz.exyron.fastcrystals;
|
||||
|
||||
import net.minecraft.network.protocol.game.PacketPlayOutEntityDestroy;
|
||||
import org.bukkit.craftbukkit.v1_20_R3.entity.CraftPlayer;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class CrystalDamage_v1_20_4 implements CrystalDamage {
|
||||
|
||||
@Override
|
||||
public void handle(Player damager, Entity crystal) {
|
||||
((CraftPlayer) damager).getHandle().c.a(new PacketPlayOutEntityDestroy(crystal.getEntityId()));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
plugins {
|
||||
id 'java'
|
||||
}
|
||||
|
||||
group 'xyz.exyron.fastcrystals'
|
||||
version '1.0'
|
||||
|
||||
java {
|
||||
toolchain.languageVersion.set(JavaLanguageVersion.of(21))
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
mavenLocal()
|
||||
maven { url 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/' }
|
||||
maven { url 'https://repo.codemc.org/repository/nms/' }
|
||||
maven { url 'https://papermc.io/repo/repository/maven-public/' }
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly 'org.spigotmc:spigot:1.20.6-R0.1-SNAPSHOT'
|
||||
compileOnly 'org.spigotmc:spigot-api:1.20.6-R0.1-SNAPSHOT'
|
||||
|
||||
compileOnly project (':shared')
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package xyz.exyron.fastcrystals;
|
||||
|
||||
import net.minecraft.network.protocol.game.PacketPlayOutEntityDestroy;
|
||||
import org.bukkit.craftbukkit.v1_20_R4.entity.CraftPlayer;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class CrystalDamage_v1_20_6 implements CrystalDamage {
|
||||
|
||||
@Override
|
||||
public void handle(Player damager, Entity crystal) {
|
||||
((CraftPlayer) damager).getHandle().c.a(new PacketPlayOutEntityDestroy(crystal.getEntityId()));
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user