mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
Upstream has released updates that appear to apply and compile correctly Paper Changes: 9a129fa99 Add #getEligibleHumans to SkeletonHorseTrapEvent b5e23c7a6 Fix merging spawning values a932e8ad7 Turn off spigot verbose world by default 8ced89f65 Fix Delegation to vanilla chunk gen
74 lines
3.7 KiB
Diff
74 lines
3.7 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: jmp <jasonpenilla2@me.com>
|
|
Date: Thu, 27 Aug 2020 13:48:52 -0700
|
|
Subject: [PATCH] Raid cooldown setting
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/PersistentRaid.java b/src/main/java/net/minecraft/server/PersistentRaid.java
|
|
index 826dcf9f7e..807910c60e 100644
|
|
--- a/src/main/java/net/minecraft/server/PersistentRaid.java
|
|
+++ b/src/main/java/net/minecraft/server/PersistentRaid.java
|
|
@@ -9,6 +9,7 @@ import javax.annotation.Nullable;
|
|
|
|
public class PersistentRaid extends PersistentBase {
|
|
|
|
+ public final Map<java.util.UUID, Integer> playerCooldowns = new java.util.HashMap<>(); // Purpur
|
|
public final Map<Integer, Raid> raids = Maps.newHashMap();
|
|
private final WorldServer b;
|
|
private int c;
|
|
@@ -27,6 +28,17 @@ public class PersistentRaid extends PersistentBase {
|
|
|
|
public void a() {
|
|
++this.d;
|
|
+ // Purpur start
|
|
+ if (b.purpurConfig.raidCooldownSeconds != 0 && this.d % 20 == 0) {
|
|
+ com.google.common.collect.ImmutableMap.copyOf(playerCooldowns).forEach((id, i) -> {
|
|
+ if (i < 1) {
|
|
+ playerCooldowns.remove(id);
|
|
+ } else {
|
|
+ playerCooldowns.put(id, i - 1);
|
|
+ }
|
|
+ });
|
|
+ }
|
|
+ // Purpur end
|
|
Iterator iterator = this.raids.values().iterator();
|
|
|
|
while (iterator.hasNext()) {
|
|
@@ -110,10 +122,15 @@ public class PersistentRaid extends PersistentBase {
|
|
|
|
if (flag) {
|
|
// CraftBukkit start
|
|
- if (!org.bukkit.craftbukkit.event.CraftEventFactory.callRaidTriggerEvent(raid, entityplayer)) {
|
|
+ if ((b.purpurConfig.raidCooldownSeconds != 0 && playerCooldowns.containsKey(entityplayer.getUniqueID())) || !org.bukkit.craftbukkit.event.CraftEventFactory.callRaidTriggerEvent(raid, entityplayer)) { // Purpur
|
|
entityplayer.removeEffect(MobEffects.BAD_OMEN);
|
|
return null;
|
|
}
|
|
+ // Purpur start
|
|
+ if (b.purpurConfig.raidCooldownSeconds != 0) {
|
|
+ playerCooldowns.put(entityplayer.getUniqueID(), b.purpurConfig.raidCooldownSeconds);
|
|
+ }
|
|
+ // Purpur end
|
|
|
|
if (!this.raids.containsKey(raid.getId())) {
|
|
this.raids.put(raid.getId(), raid);
|
|
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
index 789337e340..4883856612 100644
|
|
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
@@ -155,6 +155,7 @@ public class PurpurWorldConfig {
|
|
public boolean milkCuresBadOmen = true;
|
|
public double tridentLoyaltyVoidReturnHeight = 0.0D;
|
|
public double voidDamageHeight = -64.0D;
|
|
+ public int raidCooldownSeconds = 0;
|
|
private void miscGameplayMechanicsSettings() {
|
|
useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending);
|
|
boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand);
|
|
@@ -164,6 +165,7 @@ public class PurpurWorldConfig {
|
|
milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen);
|
|
tridentLoyaltyVoidReturnHeight = getDouble("gameplay-mechanics.trident-loyalty-void-return-height", tridentLoyaltyVoidReturnHeight);
|
|
voidDamageHeight = getDouble("gameplay-mechanics.void-damage-height", voidDamageHeight);
|
|
+ raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds);
|
|
}
|
|
|
|
public boolean catSpawning;
|