mirror of
https://github.com/Auxilor/Reforges.git
synced 2026-01-06 15:51:32 +00:00
Added immediate reforge and enabled extensions
This commit is contained in:
@@ -29,7 +29,7 @@ public class ReforgesPlugin extends EcoPlugin {
|
||||
* Internal constructor called by bukkit on plugin load.
|
||||
*/
|
||||
public ReforgesPlugin() {
|
||||
super(0, 12412, "&3");
|
||||
super(0, 12412, "&3", true);
|
||||
instance = this;
|
||||
}
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.willfp.reforges.reforges.reforges.ReforgeDurable;
|
||||
import com.willfp.reforges.reforges.reforges.ReforgeDynamic;
|
||||
import com.willfp.reforges.reforges.reforges.ReforgeEvasive;
|
||||
import com.willfp.reforges.reforges.reforges.ReforgeGravitated;
|
||||
import com.willfp.reforges.reforges.reforges.ReforgeImmediate;
|
||||
import com.willfp.reforges.reforges.reforges.ReforgeLight;
|
||||
import com.willfp.reforges.reforges.reforges.ReforgeLucky;
|
||||
import com.willfp.reforges.reforges.reforges.ReforgeNautical;
|
||||
@@ -58,6 +59,7 @@ public class Reforges {
|
||||
public static final Reforge VERSATILE = new ReforgeVersatile();
|
||||
public static final Reforge AFFLUENT = new ReforgeAffluent();
|
||||
public static final Reforge DURABLE = new ReforgeDurable();
|
||||
public static final Reforge IMMEDIATE = new ReforgeImmediate();
|
||||
|
||||
/**
|
||||
* Get all registered {@link Reforge}s.
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
package com.willfp.reforges.reforges.reforges;
|
||||
|
||||
import com.willfp.eco.core.integrations.anticheat.AnticheatManager;
|
||||
import com.willfp.eco.util.NumberUtils;
|
||||
import com.willfp.reforges.reforges.Reforge;
|
||||
import com.willfp.reforges.reforges.meta.ReforgeTarget;
|
||||
import com.willfp.reforges.reforges.util.ReforgeUtils;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.block.BlockDamageEvent;
|
||||
import org.bukkit.event.player.PlayerItemDamageEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ReforgeImmediate extends Reforge {
|
||||
public ReforgeImmediate() {
|
||||
super("immediate");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ReforgeTarget[] getTarget() {
|
||||
return new ReforgeTarget[]{
|
||||
ReforgeTarget.PICKAXE
|
||||
};
|
||||
}
|
||||
|
||||
@EventHandler(ignoreCancelled = true)
|
||||
public void handle(@NotNull final BlockDamageEvent event) {
|
||||
Reforge reforge = ReforgeUtils.getReforge(event.getItemInHand());
|
||||
|
||||
if (reforge == null || !reforge.equals(this)) {
|
||||
return;
|
||||
}
|
||||
|
||||
Block block = event.getBlock();
|
||||
|
||||
if (block.getDrops(event.getItemInHand()).isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (block.getType().getHardness() > 100) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (block.getType() == Material.BEDROCK) {
|
||||
return;
|
||||
}
|
||||
|
||||
AnticheatManager.exemptPlayer(event.getPlayer());
|
||||
|
||||
if (NumberUtils.randFloat(0, 100) < this.getConfig().getDouble("chance")) {
|
||||
event.setInstaBreak(true);
|
||||
}
|
||||
|
||||
AnticheatManager.unexemptPlayer(event.getPlayer());
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,12 @@
|
||||
package com.willfp.reforges.reforges.util;
|
||||
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.Arrow;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Projectile;
|
||||
import org.bukkit.entity.Trident;
|
||||
import org.bukkit.event.block.BlockBreakEvent;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.event.entity.EntityShootBowEvent;
|
||||
@@ -15,6 +17,20 @@ import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public interface Watcher {
|
||||
|
||||
/**
|
||||
* Called when a player breaks a block.
|
||||
*
|
||||
* @param player The player.
|
||||
* @param block The block that was broken.
|
||||
* @param event The event that called this watcher.
|
||||
*/
|
||||
default void onBlockBreak(@NotNull final Player player,
|
||||
@NotNull final Block block,
|
||||
@NotNull final BlockBreakEvent event) {
|
||||
// Empty default as enchantments only override required watchers.
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when an entity shoots another entity with an arrow.
|
||||
*
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.willfp.eco.core.integrations.antigrief.AntigriefManager;
|
||||
import com.willfp.eco.core.integrations.mcmmo.McmmoManager;
|
||||
import com.willfp.eco.util.ArrowUtils;
|
||||
import com.willfp.reforges.reforges.Reforge;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.AbstractArrow;
|
||||
import org.bukkit.entity.Arrow;
|
||||
import org.bukkit.entity.EntityType;
|
||||
@@ -16,6 +17,7 @@ import org.bukkit.entity.Projectile;
|
||||
import org.bukkit.entity.Trident;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.BlockBreakEvent;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.event.entity.EntityShootBowEvent;
|
||||
@@ -35,6 +37,39 @@ public class WatcherTriggers extends PluginDependent<EcoPlugin> implements Liste
|
||||
super(plugin);
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when a player breaks a block.
|
||||
*
|
||||
* @param event The event to listen for.
|
||||
*/
|
||||
@EventHandler(ignoreCancelled = true)
|
||||
public void onBlockBreak(@NotNull final BlockBreakEvent event) {
|
||||
if (McmmoManager.isFake(event)) {
|
||||
return;
|
||||
}
|
||||
|
||||
Player player = event.getPlayer();
|
||||
Block block = event.getBlock();
|
||||
|
||||
if (!AntigriefManager.canBreakBlock(player, block)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
ItemStack itemStack = player.getInventory().getItemInMainHand();
|
||||
|
||||
Reforge reforge = ReforgeUtils.getReforge(itemStack);
|
||||
|
||||
if (reforge == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
reforge.onBlockBreak(player, block, event);
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when an entity shoots another entity with an arrow.
|
||||
*
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
#
|
||||
# Immediate Reforge
|
||||
#
|
||||
|
||||
name: "<gradient:#3CA55C>Immediate</gradient:#B5AC49>"
|
||||
enabled: true
|
||||
description: "&a5%&r chance to inst-amine blocks"
|
||||
|
||||
stone-config:
|
||||
requires-stone: false
|
||||
texture: ''
|
||||
craftable: false
|
||||
recipe: []
|
||||
|
||||
config:
|
||||
chance: 5
|
||||
Reference in New Issue
Block a user