Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --------------------------------------------------------------------------------------------------
- MultiExploitFix
- By CaptainShockwave
- Current Features:
- -Reverts over-enchanted items upon use.
- --------------------------------------------------------------------------------------------------
- package me.captainshockwave.exploitfix;
- import java.io.File;
- import java.io.IOException;
- import java.net.URL;
- import java.util.HashMap;
- import java.util.Map;
- import java.util.Map.Entry;
- import org.apache.commons.io.FileUtils;
- import org.bukkit.Bukkit;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandExecutor;
- import org.bukkit.command.CommandSender;
- import org.bukkit.enchantments.Enchantment;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.entity.EntityDamageByEntityEvent;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.plugin.java.JavaPlugin;
- import net.md_5.bungee.api.ChatColor;
- public class Main extends JavaPlugin implements CommandExecutor, Listener {
- public void onEnable() {
- getCommand("update").setExecutor(this);
- Bukkit.getPluginManager().registerEvents(this, this);
- }
- // couldnt figure out how to get the latest version's download
- public static String getLatestVersionUrl() {
- return "spigotmc.org/plugin";
- }
- @SuppressWarnings("deprecation")
- @Override
- public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
- if (label.equalsIgnoreCase("update")) {
- if (sender.isOp() || !sender.hasPermission("exploitfix.update"))
- {
- if (args.length == 0) {
- sender.sendMessage(ChatColor.YELLOW + "Latest version: " + getLatestVersionUrl() + "\nCopy the url and use /update download <url> to download the update faster");
- } else if (args[0].equalsIgnoreCase("download")) {
- if (args.length < 2) {
- sender.sendMessage(ChatColor.RED + "Please paste the URL to download the update from");
- return false;
- }
- Bukkit.getServer().getScheduler().scheduleAsyncDelayedTask(this , new Runnable() {
- public void run() {
- try {
- sender.sendMessage(ChatColor.YELLOW + "Downloading...");
- FileUtils.copyURLToFile(new URL(args[1]), new File("plugins/ExploitFix.jar"));
- sender.sendMessage(ChatColor.YELLOW + "Download complete");
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- });
- }
- }
- }
- return false;
- }
- @EventHandler
- public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
- Player damager = (Player) event.getDamager();
- // prevents item from dealing damage if it was reverted
- event.setCancelled(revert(damager.getInventory().getItemInMainHand()));
- }
- // reverts the item
- public boolean revert(ItemStack itemStack) {
- boolean is32k = false;
- if (itemStack.hasItemMeta() && itemStack.getItemMeta().hasEnchants()) {
- Map<Enchantment, Integer> newEnchants = new HashMap<>();
- for (Entry<Enchantment, Integer> entry : itemStack.getEnchantments().entrySet()) {
- if (entry.getValue() > entry.getKey().getMaxLevel()) {
- newEnchants.put(entry.getKey(), entry.getKey().getMaxLevel());
- is32k = true;
- } else {
- newEnchants.put(entry.getKey(), entry.getValue());
- }
- itemStack.removeEnchantment(entry.getKey());
- }
- itemStack.addEnchantments(newEnchants);
- }
- return is32k;
- }
- }
Add Comment
Please, Sign In to add comment