9
0
mirror of https://github.com/LeavesMC/Leaves.git synced 2026-01-04 15:41:31 +00:00

Make shears in dispenser can unlimited use

This commit is contained in:
violetc
2022-02-27 14:12:32 +08:00
parent 8f2ac3ed67
commit 609818a5ee
3 changed files with 110 additions and 2 deletions

View File

@@ -0,0 +1,106 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: violetc <58360096+s-yh-china@users.noreply.github.com>
Date: Sun, 27 Feb 2022 14:07:57 +0800
Subject: [PATCH] Make shears in dispenser can unlimited use
diff --git a/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java
index c861505325efecfb53069ce44c14bc20fb851c59..ce97355a14defbe6457f00f5d99fecebe8306396 100644
--- a/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java
+++ b/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java
@@ -1,7 +1,5 @@
package net.minecraft.core.dispenser;
-import java.util.Iterator;
-import java.util.List;
import net.minecraft.core.BlockPos;
import net.minecraft.core.BlockSource;
import net.minecraft.core.Direction;
@@ -23,10 +21,12 @@ import net.minecraft.world.level.block.entity.BeehiveBlockEntity;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.gameevent.GameEvent;
import net.minecraft.world.phys.AABB;
-// CraftBukkit start
import org.bukkit.craftbukkit.event.CraftEventFactory;
import org.bukkit.craftbukkit.inventory.CraftItemStack;
import org.bukkit.event.block.BlockDispenseEvent;
+
+import java.util.Iterator;
+import java.util.List;
// CraftBukkit end
public class ShearsDispenseItemBehavior extends OptionalDispenseItemBehavior {
@@ -64,7 +64,7 @@ public class ShearsDispenseItemBehavior extends OptionalDispenseItemBehavior {
BlockPos blockposition = pointer.getPos().relative((Direction) pointer.getBlockState().getValue(DispenserBlock.FACING));
this.setSuccess(ShearsDispenseItemBehavior.tryShearBeehive((ServerLevel) worldserver, blockposition) || ShearsDispenseItemBehavior.tryShearLivingEntity((ServerLevel) worldserver, blockposition, bukkitBlock, craftItem)); // CraftBukkit
- if (this.isSuccess() && stack.hurt(1, worldserver.getRandom(), (ServerPlayer) null)) {
+ if (this.isSuccess() && stack.hurt(1, worldserver.getRandom(), (ServerPlayer) null) && !top.leavesmc.leaves.LeavesConfig.shearsInDispenserCanZeroAmount) { // Leaves - Make shears in dispenser can unlimited use
stack.setCount(0);
}
}
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index def8ab8bf0537e648751b200de01607191426d56..1cfe6ab144d11e36b9a4c982f05077ebc2c653a7 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -93,27 +93,6 @@ public final class LeavesConfig {
LeavesConfig.config.set(path, value);
}
- public static boolean playerCanEditSign = true;
- private static void playerCanEditSign() {
- playerCanEditSign = getBoolean("settings.player-can-edit-sign", playerCanEditSign);
- }
-
- public static boolean snowballAndEggCanKnockback = true;
- private static void snowballAndEggCanKnockback() {
- snowballAndEggCanKnockback = getBoolean("settings.snowball-and-egg-can-knockback-player", snowballAndEggCanKnockback);
- }
-
- public static boolean fakeplayerSupport = true;
- private static void fakeplayerSupport() {
- fakeplayerSupport = getBoolean("settings.fakeplayer-support", fakeplayerSupport);
- }
-
- public static void registerCommands() {
- for (Map.Entry<String, Command> entry : commands.entrySet()) {
- MinecraftServer.getServer().server.getCommandMap().register(entry.getKey(), "Leaves", entry.getValue());
- }
- }
-
static boolean getBoolean(final String path, final boolean dfl) {
LeavesConfig.config.addDefault(path, Boolean.valueOf(dfl));
return LeavesConfig.config.getBoolean(path, dfl);
@@ -139,6 +118,32 @@ public final class LeavesConfig {
return LeavesConfig.config.getString(path, dfl);
}
+ public static boolean playerCanEditSign = true;
+ private static void playerCanEditSign() {
+ playerCanEditSign = getBoolean("settings.player-can-edit-sign", playerCanEditSign);
+ }
+
+ public static boolean snowballAndEggCanKnockback = true;
+ private static void snowballAndEggCanKnockback() {
+ snowballAndEggCanKnockback = getBoolean("settings.snowball-and-egg-can-knockback-player", snowballAndEggCanKnockback);
+ }
+
+ public static boolean fakeplayerSupport = true;
+ private static void fakeplayerSupport() {
+ fakeplayerSupport = getBoolean("settings.fakeplayer-support", fakeplayerSupport);
+ }
+
+ public static boolean shearsInDispenserCanZeroAmount = false;
+ private static void shearsInDispenserCanZeroAmount() {
+ shearsInDispenserCanZeroAmount = getBoolean("settings.shears-in-dispenser-can-zero-amount", shearsInDispenserCanZeroAmount);
+ }
+
+ public static void registerCommands() {
+ for (Map.Entry<String, Command> entry : commands.entrySet()) {
+ MinecraftServer.getServer().server.getCommandMap().register(entry.getKey(), "Leaves", entry.getValue());
+ }
+ }
+
public static final class WorldConfig {
public final String worldName;