commit 57fc53c056cde25f7f3cf57edee2513ae53237ce Author: iTakinn Date: Sun Feb 18 22:12:02 2024 -0300 sla, so criei isso diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..042a2b8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +zerv/* +.vscode/settings.json diff --git a/effective-pom.xml b/effective-pom.xml new file mode 100644 index 0000000..d886f19 --- /dev/null +++ b/effective-pom.xml @@ -0,0 +1,298 @@ + + + + + + + + + + + + + + 4.0.0 + com.itakinn + plzao + 1.0-SNAPSHOT + plzao + http://www.example.com + + 17 + 17 + UTF-8 + + + + junit + junit + 4.11 + test + + + org.bukkit + bukkit + 1.20.1-R0.1-SNAPSHOT + provided + + + + + spigot-repo + https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + + + + false + + central + Central Repository + https://repo.maven.apache.org/maven2 + + + + + + never + + + false + + central + Central Repository + https://repo.maven.apache.org/maven2 + + + + c:\Users\iTakinn\Desktop\plzao\src\main\java + c:\Users\iTakinn\Desktop\plzao\src\main\scripts + c:\Users\iTakinn\Desktop\plzao\src\test\java + c:\Users\iTakinn\Desktop\plzao\target\classes + c:\Users\iTakinn\Desktop\plzao\target\test-classes + + + c:\Users\iTakinn\Desktop\plzao\src\main\resources + + + + + c:\Users\iTakinn\Desktop\plzao\src\test\resources + + + c:\Users\iTakinn\Desktop\plzao\target + plzao-1.0-SNAPSHOT + + + + maven-antrun-plugin + 3.1.0 + + + maven-assembly-plugin + 3.6.0 + + + maven-dependency-plugin + 3.6.0 + + + maven-release-plugin + 3.0.1 + + + maven-clean-plugin + 3.1.0 + + + maven-resources-plugin + 3.0.2 + + + maven-compiler-plugin + 3.8.0 + + + maven-surefire-plugin + 2.22.1 + + + maven-jar-plugin + 3.0.2 + + + maven-install-plugin + 2.5.2 + + + maven-deploy-plugin + 2.8.2 + + + maven-site-plugin + 3.7.1 + + + maven-project-info-reports-plugin + 3.0.0 + + + + + + maven-clean-plugin + 3.1.0 + + + default-clean + clean + + clean + + + + + + maven-resources-plugin + 3.0.2 + + + default-testResources + process-test-resources + + testResources + + + + default-resources + process-resources + + resources + + + + + + maven-jar-plugin + 3.0.2 + + + default-jar + package + + jar + + + + + + maven-compiler-plugin + 3.8.0 + + + default-compile + compile + + compile + + + + default-testCompile + test-compile + + testCompile + + + + + + maven-surefire-plugin + 2.22.1 + + + default-test + test + + test + + + + + + maven-install-plugin + 2.5.2 + + + default-install + install + + install + + + + + + maven-deploy-plugin + 2.8.2 + + + default-deploy + deploy + + deploy + + + + + + maven-site-plugin + 3.7.1 + + + default-site + site + + site + + + c:\Users\iTakinn\Desktop\plzao\target\site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + default-deploy + site-deploy + + deploy + + + c:\Users\iTakinn\Desktop\plzao\target\site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + + c:\Users\iTakinn\Desktop\plzao\target\site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + + + c:\Users\iTakinn\Desktop\plzao\target\site + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..42cc649 --- /dev/null +++ b/pom.xml @@ -0,0 +1,87 @@ + + + + 4.0.0 + + com.itakinn + plzao + 1.0-SNAPSHOT + + plzao + + http://www.example.com + + + UTF-8 + 17 + 17 + + + + spigot-repo + https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + + + + + junit + junit + 4.11 + test + + + org.spigotmc + spigot-api + 1.20.1-R0.1-SNAPSHOT + provided + + + + + + + + + + maven-clean-plugin + 3.1.0 + + + + maven-resources-plugin + 3.0.2 + + + maven-compiler-plugin + 3.8.0 + + + maven-surefire-plugin + 2.22.1 + + + maven-jar-plugin + 3.0.2 + + + maven-install-plugin + 2.5.2 + + + maven-deploy-plugin + 2.8.2 + + + + maven-site-plugin + 3.7.1 + + + maven-project-info-reports-plugin + 3.0.0 + + + + + diff --git a/src/main/java/com/itakinn/LightningStrike.java b/src/main/java/com/itakinn/LightningStrike.java new file mode 100644 index 0000000..22a81e8 --- /dev/null +++ b/src/main/java/com/itakinn/LightningStrike.java @@ -0,0 +1,89 @@ +package com.itakinn; + +import org.bukkit.Bukkit; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerMoveEvent; +import org.bukkit.plugin.java.JavaPlugin; +import org.bukkit.scheduler.BukkitRunnable; + +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +public class LightningStrike extends JavaPlugin implements Listener { + private final Map tasks = new HashMap<>(); + + @Override + public void onEnable() { + getLogger().info("Plugin LightningStrike habilitado!"); + getCommand("raios").setExecutor(this); + getServer().getPluginManager().registerEvents(this, this); + } + + @Override + public void onDisable() { + getLogger().info("Plugin LightningStrike desabilitado!"); + for (BukkitRunnable task : tasks.values()) { + task.cancel(); + } + tasks.clear(); + } + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (args.length != 1) { + sender.sendMessage("Uso correto: /raios "); + return false; + } + + Player target = Bukkit.getPlayer(args[0]); + if (target == null) { + sender.sendMessage("Jogador não encontrado."); + return false; + } + + toggleLightning(target); + return true; + } + + private void toggleLightning(Player player) { + UUID playerId = player.getUniqueId(); + if (tasks.containsKey(playerId)) { + // Se o jogador já está sendo atingido por raios, cancela a tarefa + tasks.get(playerId).cancel(); + tasks.remove(playerId); + player.sendMessage("Os raios foram desativados."); + } else { + // Inicia uma tarefa que atinge o jogador com raios constantemente enquanto ele se move + BukkitRunnable task = new BukkitRunnable() { + @Override + public void run() { + if (!player.isOnline() || player.isDead()) { + // Se o jogador desconectar ou morrer, cancela a tarefa + cancel(); + tasks.remove(playerId); + return; + } + player.getWorld().strikeLightning(player.getLocation()); + } + }; + task.runTaskTimer(this, 0, 1); // A cada segundo (20 ticks) + tasks.put(playerId, task); + player.sendMessage("Os raios foram ativados. Mantenha-se em movimento!"); + } + } + + @EventHandler + public void onPlayerMove(PlayerMoveEvent event) { + Player player = event.getPlayer(); + UUID playerId = player.getUniqueId(); + if (!player.isDead() && tasks.containsKey(playerId)) { + // Se o jogador está se movendo e sendo atingido por raios, não faz nada + return; + } + } +} diff --git a/src/main/java/plugin.yml b/src/main/java/plugin.yml new file mode 100644 index 0000000..86ca6a5 --- /dev/null +++ b/src/main/java/plugin.yml @@ -0,0 +1,8 @@ +name: LightningStrike +version: 1.0 +main: com.itakinn.LightningStrike +author: iTakinn +commands: + raios: + description: Ativa ou desativa raios sobre um jogador + usage: /raios diff --git a/target/classes/com/itakinn/LightningStrike$1.class b/target/classes/com/itakinn/LightningStrike$1.class new file mode 100644 index 0000000..8dab8f7 Binary files /dev/null and b/target/classes/com/itakinn/LightningStrike$1.class differ diff --git a/target/classes/com/itakinn/LightningStrike.class b/target/classes/com/itakinn/LightningStrike.class new file mode 100644 index 0000000..017b284 Binary files /dev/null and b/target/classes/com/itakinn/LightningStrike.class differ diff --git a/target/classes/plugin.yml b/target/classes/plugin.yml new file mode 100644 index 0000000..86ca6a5 --- /dev/null +++ b/target/classes/plugin.yml @@ -0,0 +1,8 @@ +name: LightningStrike +version: 1.0 +main: com.itakinn.LightningStrike +author: iTakinn +commands: + raios: + description: Ativa ou desativa raios sobre um jogador + usage: /raios