--- a/net/minecraft/world/level/storage/loot/predicates/LootItemRandomChanceWithLootingCondition.java
+++ b/net/minecraft/world/level/storage/loot/predicates/LootItemRandomChanceWithLootingCondition.java
@@ -14,6 +14,7 @@
 import net.minecraft.world.level.storage.loot.parameters.LootContextParams;
 
 public class LootItemRandomChanceWithLootingCondition implements LootItemCondition {
+
     final float percent;
     final float lootingMultiplier;
 
@@ -32,15 +33,20 @@
         return ImmutableSet.of(LootContextParams.KILLER_ENTITY);
     }
 
-    @Override
-    public boolean test(LootContext lootContext) {
-        Entity entity = lootContext.getParamOrNull(LootContextParams.KILLER_ENTITY);
+    public boolean test(LootContext loottableinfo) {
+        Entity entity = (Entity) loottableinfo.getParamOrNull(LootContextParams.KILLER_ENTITY);
         int i = 0;
+
         if (entity instanceof LivingEntity) {
-            i = EnchantmentHelper.getMobLooting((LivingEntity)entity);
+            i = EnchantmentHelper.getMobLooting((LivingEntity) entity);
+        }
+        // CraftBukkit start - only use lootingModifier if set by Bukkit
+        if (loottableinfo.hasParam(LootContextParams.LOOTING_MOD)) {
+            i = loottableinfo.getParamOrNull(LootContextParams.LOOTING_MOD);
         }
+        // CraftBukkit end
 
-        return lootContext.getRandom().nextFloat() < this.percent + (float)i * this.lootingMultiplier;
+        return loottableinfo.getRandom().nextFloat() < this.percent + (float) i * this.lootingMultiplier;
     }
 
     public static LootItemCondition.Builder randomChanceAndLootingBoost(float chance, float lootingMultiplier) {
@@ -50,15 +56,17 @@
     }
 
     public static class Serializer implements net.minecraft.world.level.storage.loot.Serializer<LootItemRandomChanceWithLootingCondition> {
-        @Override
+
+        public Serializer() {}
+
         public void serialize(JsonObject json, LootItemRandomChanceWithLootingCondition object, JsonSerializationContext context) {
             json.addProperty("chance", object.percent);
             json.addProperty("looting_multiplier", object.lootingMultiplier);
         }
 
         @Override
-        public LootItemRandomChanceWithLootingCondition deserialize(JsonObject jsonObject, JsonDeserializationContext jsonDeserializationContext) {
-            return new LootItemRandomChanceWithLootingCondition(GsonHelper.getAsFloat(jsonObject, "chance"), GsonHelper.getAsFloat(jsonObject, "looting_multiplier"));
+        public LootItemRandomChanceWithLootingCondition deserialize(JsonObject json, JsonDeserializationContext context) {
+            return new LootItemRandomChanceWithLootingCondition(GsonHelper.getAsFloat(json, "chance"), GsonHelper.getAsFloat(json, "looting_multiplier"));
         }
     }
 }
