mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
make it compile
This commit is contained in:
@@ -30,7 +30,7 @@ index fb65832d3d820aa48bb8fc0efecfd659bb8e2755..cf817b5bab8e936bd40477d40359c35f
|
||||
/* Drop global time updates
|
||||
if (this.tickCount % 20 == 0) {
|
||||
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
|
||||
index 394e5baaec5ae7730833d07cc4140ac498d7e4b1..f8fece07c5e1a721cfc826b48b0b4944b4859be9 100644
|
||||
index c18844ca7c9840f28fe5167d67387ebaf758a9da..c99ba8c3eba14efcf7906fe2b42e4db1c73c90fe 100644
|
||||
--- a/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -230,6 +230,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||
@@ -62,7 +62,7 @@ index 9ec896ad8e95d7822095c42054e76e7a5db91481..2eba1b0ac8b4a0bb34d04b81c4c279db
|
||||
|
||||
private void updatePlayerAttributes() {
|
||||
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 4b4a4698673725b058072034fb525eeb941c0489..b89c73e74216333f5ac70ee9c80bdbea61cc47b5 100644
|
||||
index a7e64b698d8db843cac9e1b0ae86c9e7aa8db492..bf534674d9796a985534538301523723190a6277 100644
|
||||
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -2902,6 +2902,8 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -3799,7 +3799,7 @@ index d26b7970490a2a108affee11c3fb74e38509d92b..64e55d48bc81d6237970e86e6e1cc719
|
||||
Phantom.this.setYRot(Phantom.this.getYRot() + 180.0F);
|
||||
this.speed = 0.1F;
|
||||
diff --git a/net/minecraft/world/entity/monster/Ravager.java b/net/minecraft/world/entity/monster/Ravager.java
|
||||
index ab40d05ed4c5099c57a62c5dbaa45308b2bae1c3..6fa5fc86cfb2493a8bcd0dae92be635b7c1f6fe0 100644
|
||||
index a10c693a8948d1b7c4bd06b957a08a9cea9170ad..f7807aac5a8f9c92ba77ac38c469ef14948197ac 100644
|
||||
--- a/net/minecraft/world/entity/monster/Ravager.java
|
||||
+++ b/net/minecraft/world/entity/monster/Ravager.java
|
||||
@@ -72,15 +72,40 @@ public class Ravager extends Raider {
|
||||
@@ -3833,7 +3833,7 @@ index ab40d05ed4c5099c57a62c5dbaa45308b2bae1c3..6fa5fc86cfb2493a8bcd0dae92be635b
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
this.goalSelector.addGoal(0, new FloatGoal(this));
|
||||
if (level().purpurConfig.ravagerAvoidRabbits) this.goalSelector.addGoal(3, new net.minecraft.world.entity.ai.goal.AvoidEntityGoal<>(this, net.minecraft.world.entity.animal.Rabbit.class, 6.0F, 1.0D, 1.2D)); // Purpur - option to make ravagers afraid of rabbits
|
||||
if (level().purpurConfig.ravagerAvoidRabbits) this.goalSelector.addGoal(3, new net.minecraft.world.entity.ai.goal.AvoidEntityGoal<>(this, net.minecraft.world.entity.animal.rabbit.Rabbit.class, 6.0F, 1.0D, 1.2D)); // Purpur - option to make ravagers afraid of rabbits
|
||||
+ this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
|
||||
this.goalSelector.addGoal(4, new MeleeAttackGoal(this, 1.0, true));
|
||||
this.goalSelector.addGoal(5, new WaterAvoidingRandomStrollGoal(this, 0.4));
|
||||
@@ -5076,7 +5076,7 @@ index ef6a4aff03c1a85535b15e653714751e79f61090..e2c5301a465e28cea057f9afec7e9d78
|
||||
protected void addBehaviourGoals() {
|
||||
this.goalSelector.addGoal(1, new SpearUseGoal<>(this, 1.0, 1.0, 10.0F, 2.0F));
|
||||
diff --git a/net/minecraft/world/entity/npc/villager/Villager.java b/net/minecraft/world/entity/npc/villager/Villager.java
|
||||
index 9d28818f885c9fb6cbd78073c779e46ab8a5abe2..4b4acd05ab94d5beadd20989b39b267ecb56ad8b 100644
|
||||
index e117ae1b114c7e2ca314a00335473efc41137f7f..6d4ef7b5d64639eb7fe400b2ed612c3b3552aa52 100644
|
||||
--- a/net/minecraft/world/entity/npc/villager/Villager.java
|
||||
+++ b/net/minecraft/world/entity/npc/villager/Villager.java
|
||||
@@ -250,6 +250,28 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -5116,7 +5116,7 @@ index 9d28818f885c9fb6cbd78073c779e46ab8a5abe2..4b4acd05ab94d5beadd20989b39b267e
|
||||
+ if (!inactive && (getRider() == null || !this.isControllable())) { // Purpur - Ridables
|
||||
this.getBrain().tick(level, this); // Paper - EAR 2
|
||||
}
|
||||
else if (this.isLobotomized && shouldRestock()) restock();
|
||||
else if (this.isLobotomized && shouldRestock(level)) restock();
|
||||
@@ -417,7 +439,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
return super.mobInteract(player, hand);
|
||||
} else if (this.isBaby()) {
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Giants AI settings
|
||||
|
||||
|
||||
diff --git a/net/minecraft/world/entity/monster/Giant.java b/net/minecraft/world/entity/monster/Giant.java
|
||||
index 416bb85fc87b5f9e372f33df8fe27f12e83834b9..e6fb01e4e2146d6c6971d80af0f101d20c03950a 100644
|
||||
index 416bb85fc87b5f9e372f33df8fe27f12e83834b9..40cf8f44a6b01d45306dab4ba4f9a7ea7c6590a9 100644
|
||||
--- a/net/minecraft/world/entity/monster/Giant.java
|
||||
+++ b/net/minecraft/world/entity/monster/Giant.java
|
||||
@@ -30,8 +30,25 @@ public class Giant extends Monster {
|
||||
@@ -25,11 +25,11 @@ index 416bb85fc87b5f9e372f33df8fe27f12e83834b9..e6fb01e4e2146d6c6971d80af0f101d2
|
||||
+ if (level().purpurConfig.giantHaveHostileAI) {
|
||||
+ this.goalSelector.addGoal(2, new net.minecraft.world.entity.ai.goal.MeleeAttackGoal(this, 1.0D, false));
|
||||
+ this.targetSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this));
|
||||
+ this.targetSelector.addGoal(1, new net.minecraft.world.entity.ai.goal.target.HurtByTargetGoal(this).setAlertOthers(ZombifiedPiglin.class));
|
||||
+ this.targetSelector.addGoal(1, new net.minecraft.world.entity.ai.goal.target.HurtByTargetGoal(this).setAlertOthers(net.minecraft.world.entity.monster.zombie.ZombifiedPiglin.class));
|
||||
+ this.targetSelector.addGoal(2, new net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal<>(this, net.minecraft.world.entity.player.Player.class, true));
|
||||
+ this.targetSelector.addGoal(3, new net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal<>(this, net.minecraft.world.entity.npc.Villager.class, false));
|
||||
+ this.targetSelector.addGoal(4, new net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal<>(this, net.minecraft.world.entity.animal.IronGolem.class, true));
|
||||
+ this.targetSelector.addGoal(5, new net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal<>(this, net.minecraft.world.entity.animal.Turtle.class, true));
|
||||
+ this.targetSelector.addGoal(3, new net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal<>(this, net.minecraft.world.entity.npc.villager.Villager.class, false));
|
||||
+ this.targetSelector.addGoal(4, new net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal<>(this, net.minecraft.world.entity.animal.golem.IronGolem.class, true));
|
||||
+ this.targetSelector.addGoal(5, new net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal<>(this, net.minecraft.world.entity.animal.turtle.Turtle.class, true));
|
||||
+ }
|
||||
+ }
|
||||
+ // Purpur end - Giants AI settings
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Minecart settings and WASD controls
|
||||
|
||||
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index 2eba1b0ac8b4a0bb34d04b81c4c279db6e716b3b..5569223c99ad6563687f67f899d43189fd81776e 100644
|
||||
index 2eba1b0ac8b4a0bb34d04b81c4c279db6e716b3b..01efe1fbd185ebd3a60c6bbb7aa2d82817506e7d 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -1311,6 +1311,11 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -13,7 +13,7 @@ index 2eba1b0ac8b4a0bb34d04b81c4c279db6e716b3b..5569223c99ad6563687f67f899d43189
|
||||
// Purpur start - Add boat fall damage config
|
||||
if (damageSource.is(net.minecraft.tags.DamageTypeTags.IS_FALL)) {
|
||||
+ // Purpur start - Minecart settings and WASD controls
|
||||
+ if (getRootVehicle() instanceof net.minecraft.world.entity.vehicle.AbstractMinecart && level().purpurConfig.minecartControllable && !level().purpurConfig.minecartControllableFallDamage) {
|
||||
+ if (getRootVehicle() instanceof AbstractMinecart && level().purpurConfig.minecartControllable && !level().purpurConfig.minecartControllableFallDamage) {
|
||||
+ return false;
|
||||
+ }
|
||||
+ // Purpur end - Minecart settings and WASD controls
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Villagers follow emerald blocks
|
||||
|
||||
|
||||
diff --git a/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java b/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java
|
||||
index 686776bb00560f9da8838bd5f8dd64aaddfa7a2b..9bc35ca825e300e82d2d108de70622f8f453bff6 100644
|
||||
index 686776bb00560f9da8838bd5f8dd64aaddfa7a2b..ccdd439a89b7e7e10ee960cfe1e5e119d5367799 100644
|
||||
--- a/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java
|
||||
+++ b/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java
|
||||
@@ -173,7 +173,7 @@ public class DefaultAttributes {
|
||||
@@ -13,12 +13,12 @@ index 686776bb00560f9da8838bd5f8dd64aaddfa7a2b..9bc35ca825e300e82d2d108de70622f8
|
||||
.put(EntityType.VINDICATOR, Vindicator.createAttributes().build())
|
||||
.put(EntityType.WARDEN, Warden.createAttributes().build())
|
||||
- .put(EntityType.WANDERING_TRADER, Mob.createMobAttributes().build())
|
||||
+ .put(EntityType.WANDERING_TRADER, net.minecraft.world.entity.npc.WanderingTrader.createAttributes().build()) // Purpur - Villagers follow emerald blocks
|
||||
+ .put(EntityType.WANDERING_TRADER, net.minecraft.world.entity.npc.wanderingtrader.WanderingTrader.createAttributes().build()) // Purpur - Villagers follow emerald blocks
|
||||
.put(EntityType.WITCH, Witch.createAttributes().build())
|
||||
.put(EntityType.WITHER, WitherBoss.createAttributes().build())
|
||||
.put(EntityType.WITHER_SKELETON, AbstractSkeleton.createAttributes().build())
|
||||
diff --git a/net/minecraft/world/entity/ai/goal/TemptGoal.java b/net/minecraft/world/entity/ai/goal/TemptGoal.java
|
||||
index 18030dc04eb7d7971e457637b5320b1e41665658..1473da28222a4a1d465c5b5d0493fcdac81cd274 100644
|
||||
index 18030dc04eb7d7971e457637b5320b1e41665658..60ebd57de496eba6ad307195ffacd3b7fc4149ff 100644
|
||||
--- a/net/minecraft/world/entity/ai/goal/TemptGoal.java
|
||||
+++ b/net/minecraft/world/entity/ai/goal/TemptGoal.java
|
||||
@@ -70,7 +70,7 @@ public class TemptGoal extends Goal {
|
||||
@@ -26,24 +26,24 @@ index 18030dc04eb7d7971e457637b5320b1e41665658..1473da28222a4a1d465c5b5d0493fcda
|
||||
|
||||
private boolean shouldFollow(LivingEntity entity) {
|
||||
- return this.items.test(entity.getMainHandItem()) || this.items.test(entity.getOffhandItem());
|
||||
+ return (this.items.test(entity.getMainHandItem()) || this.items.test(entity.getOffhandItem())) && (!(this.mob instanceof net.minecraft.world.entity.npc.Villager villager) || !villager.isSleeping()); // Purpur - Villagers follow emerald blocks
|
||||
+ return (this.items.test(entity.getMainHandItem()) || this.items.test(entity.getOffhandItem())) && (!(this.mob instanceof net.minecraft.world.entity.npc.villager.Villager villager) || !villager.isSleeping()); // Purpur - Villagers follow emerald blocks
|
||||
}
|
||||
|
||||
@Override
|
||||
diff --git a/net/minecraft/world/entity/npc/villager/AbstractVillager.java b/net/minecraft/world/entity/npc/villager/AbstractVillager.java
|
||||
index fa8f1ea38192f9ad0a961a53399f295d83af7721..397cf33790494d84d7fc69234eae50ae154b0212 100644
|
||||
index fa8f1ea38192f9ad0a961a53399f295d83af7721..05d1a859e1aee639ad9572f2369e6db3c3d7a111 100644
|
||||
--- a/net/minecraft/world/entity/npc/villager/AbstractVillager.java
|
||||
+++ b/net/minecraft/world/entity/npc/villager/AbstractVillager.java
|
||||
@@ -38,6 +38,7 @@ import net.minecraft.world.phys.Vec3;
|
||||
import org.jspecify.annotations.Nullable;
|
||||
|
||||
public abstract class AbstractVillager extends AgeableMob implements InventoryCarrier, Npc, Merchant {
|
||||
+ static final net.minecraft.world.item.crafting.Ingredient TEMPT_ITEMS = net.minecraft.world.item.crafting.Ingredient.of(net.minecraft.world.level.block.Blocks.EMERALD_BLOCK.asItem()); // Purpur - Villagers follow emerald blocks
|
||||
+ public static final net.minecraft.world.item.crafting.Ingredient TEMPT_ITEMS = net.minecraft.world.item.crafting.Ingredient.of(net.minecraft.world.level.block.Blocks.EMERALD_BLOCK.asItem()); // Purpur - Villagers follow emerald blocks
|
||||
private static final EntityDataAccessor<Integer> DATA_UNHAPPY_COUNTER = SynchedEntityData.defineId(AbstractVillager.class, EntityDataSerializers.INT);
|
||||
public static final int VILLAGER_SLOT_OFFSET = 300;
|
||||
private static final int VILLAGER_INVENTORY_SIZE = 8;
|
||||
diff --git a/net/minecraft/world/entity/npc/villager/Villager.java b/net/minecraft/world/entity/npc/villager/Villager.java
|
||||
index 2e4e5164ee59ee45ce56e39c305c200a636d4046..bad2d93118b04d5b41626bf75a05cf469d6fd2e8 100644
|
||||
index 6f9658af51f1f30434756f871cf6ab5cd2f3a7ea..02836bd2e8fda563877d3014ab839734aebc7457 100644
|
||||
--- a/net/minecraft/world/entity/npc/villager/Villager.java
|
||||
+++ b/net/minecraft/world/entity/npc/villager/Villager.java
|
||||
@@ -269,6 +269,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Implement elytra settings
|
||||
|
||||
|
||||
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
|
||||
index a2879705bf847dfc1453206746377895beac5b4b..e04320155173caa8ce8f998477f36a6b36de935c 100644
|
||||
index 983aea0bb8c581f06030adf74f0f7962f99c3c2a..c0a686ba573642f8f666db7c1636e29a770e9c05 100644
|
||||
--- a/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -3883,7 +3883,18 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
|
||||
@@ -29,7 +29,7 @@ index a2879705bf847dfc1453206746377895beac5b4b..e04320155173caa8ce8f998477f36a6b
|
||||
|
||||
this.gameEvent(GameEvent.ELYTRA_GLIDE);
|
||||
diff --git a/net/minecraft/world/item/FireworkRocketItem.java b/net/minecraft/world/item/FireworkRocketItem.java
|
||||
index 2c597e20c1ff587f2eadef600bedb9e01b999bbf..1cad4997455ab1a17fc38da06a9ca0ec5c21b062 100644
|
||||
index 2c597e20c1ff587f2eadef600bedb9e01b999bbf..e548f7161f14d7dc02d6882c3639ff65d59d7b37 100644
|
||||
--- a/net/minecraft/world/item/FireworkRocketItem.java
|
||||
+++ b/net/minecraft/world/item/FireworkRocketItem.java
|
||||
@@ -73,6 +73,17 @@ public class FireworkRocketItem extends Item implements ProjectileItem {
|
||||
@@ -39,7 +39,7 @@ index 2c597e20c1ff587f2eadef600bedb9e01b999bbf..1cad4997455ab1a17fc38da06a9ca0ec
|
||||
+ // Purpur start - Implement elytra settings
|
||||
+ if (level.purpurConfig.elytraDamagePerFireworkBoost > 0) {
|
||||
+ java.util.List<net.minecraft.world.entity.EquipmentSlot> list = net.minecraft.world.entity.EquipmentSlot.VALUES.stream().filter((enumitemslot) -> net.minecraft.world.entity.LivingEntity.canGlideUsing(player.getItemBySlot(enumitemslot), enumitemslot)).toList();
|
||||
+ net.minecraft.world.entity.EquipmentSlot enumitemslot = net.minecraft.Util.getRandom(list, player.random);
|
||||
+ net.minecraft.world.entity.EquipmentSlot enumitemslot = net.minecraft.util.Util.getRandom(list, player.random);
|
||||
+
|
||||
+ ItemStack glideItem = player.getItemBySlot(enumitemslot);
|
||||
+ if (player.canGlide()) {
|
||||
@@ -51,7 +51,7 @@ index 2c597e20c1ff587f2eadef600bedb9e01b999bbf..1cad4997455ab1a17fc38da06a9ca0ec
|
||||
itemInHand.shrink(1); // Moved up from below
|
||||
} else {
|
||||
diff --git a/net/minecraft/world/item/ItemStack.java b/net/minecraft/world/item/ItemStack.java
|
||||
index 54f1ab1e63064c2b26993db5390f25be9809c5a8..70999b29944c821d8e165333b833fddba66c3f60 100644
|
||||
index b8e38ce9b5c4b11e5bcbe6cf5603d6d39454759c..fd90ba8eba88c8d4fa372cb1047e0af8528f914d 100644
|
||||
--- a/net/minecraft/world/item/ItemStack.java
|
||||
+++ b/net/minecraft/world/item/ItemStack.java
|
||||
@@ -702,6 +702,14 @@ public final class ItemStack implements DataComponentHolder {
|
||||
@@ -70,7 +70,7 @@ index 54f1ab1e63064c2b26993db5390f25be9809c5a8..70999b29944c821d8e165333b833fddb
|
||||
onBreak.accept(item);
|
||||
}
|
||||
diff --git a/net/minecraft/world/item/TridentItem.java b/net/minecraft/world/item/TridentItem.java
|
||||
index b87861c089f849e855d10c15ede53fd7c9e6a47c..5dcac1c181ce0f811152bb32fd84c39fbcaf812f 100644
|
||||
index b87861c089f849e855d10c15ede53fd7c9e6a47c..633bb1a6d69b55717a9a07978b92f625ff5d066a 100644
|
||||
--- a/net/minecraft/world/item/TridentItem.java
|
||||
+++ b/net/minecraft/world/item/TridentItem.java
|
||||
@@ -126,6 +126,17 @@ public class TridentItem extends Item implements ProjectileItem {
|
||||
@@ -80,7 +80,7 @@ index b87861c089f849e855d10c15ede53fd7c9e6a47c..5dcac1c181ce0f811152bb32fd84c39f
|
||||
+ // Purpur start - Implement elytra settings
|
||||
+ List<net.minecraft.world.entity.EquipmentSlot> list = net.minecraft.world.entity.EquipmentSlot.VALUES.stream().filter((enumitemslot) -> LivingEntity.canGlideUsing(entity.getItemBySlot(enumitemslot), enumitemslot)).toList();
|
||||
+ if (!list.isEmpty()) {
|
||||
+ net.minecraft.world.entity.EquipmentSlot enumitemslot = net.minecraft.Util.getRandom(list, entity.random);
|
||||
+ net.minecraft.world.entity.EquipmentSlot enumitemslot = net.minecraft.util.Util.getRandom(list, entity.random);
|
||||
+ ItemStack glideItem = entity.getItemBySlot(enumitemslot);
|
||||
+ if (glideItem.has(net.minecraft.core.component.DataComponents.GLIDER) && level.purpurConfig.elytraDamagePerTridentBoost > 0) {
|
||||
+ glideItem.hurtAndBreak(level.purpurConfig.elytraDamagePerTridentBoost, entity, enumitemslot);
|
||||
|
||||
@@ -419,6 +419,42 @@ index cd888e070a72ff46d35a4425a0013c617b31e159..30204224ed83f6d3cfd64640b332b23c
|
||||
@Override
|
||||
protected void ageBoundaryReached() {
|
||||
if (this.isBaby()) {
|
||||
diff --git a/net/minecraft/world/entity/animal/nautilus/Nautilus.java b/net/minecraft/world/entity/animal/nautilus/Nautilus.java
|
||||
index a02a4b47cf02cd7eaa76d25af2dccb50ad884504..a941cb9843fcf8d008ae846dcab95e32d823a1b2 100644
|
||||
--- a/net/minecraft/world/entity/animal/nautilus/Nautilus.java
|
||||
+++ b/net/minecraft/world/entity/animal/nautilus/Nautilus.java
|
||||
@@ -21,6 +21,13 @@ public class Nautilus extends AbstractNautilus {
|
||||
super(type, level);
|
||||
}
|
||||
|
||||
+ // Purpur start - Make entity breeding times configurable
|
||||
+ @Override
|
||||
+ public int getPurpurBreedTime() {
|
||||
+ return this.level().purpurConfig.nautilusBreedingTicks;
|
||||
+ }
|
||||
+ // Purpur end - Make entity breeding times configurable
|
||||
+
|
||||
@Override
|
||||
protected Brain.Provider<Nautilus> brainProvider() {
|
||||
return NautilusAi.brainProvider();
|
||||
diff --git a/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java b/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java
|
||||
index 83c16a44b230efd010e06cabb428954d157cea47..9e2b703d23a044fecdbc544588079c345fd376c7 100644
|
||||
--- a/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java
|
||||
+++ b/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java
|
||||
@@ -43,6 +43,13 @@ public class ZombieNautilus extends AbstractNautilus {
|
||||
super(type, level);
|
||||
}
|
||||
|
||||
+ // Purpur start - Make entity breeding times configurable
|
||||
+ @Override
|
||||
+ public int getPurpurBreedTime() {
|
||||
+ return 6000;
|
||||
+ }
|
||||
+ // Purpur end - Make entity breeding times configurable
|
||||
+
|
||||
public static AttributeSupplier.Builder createAttributes() {
|
||||
return AbstractNautilus.createAttributes().add(Attributes.MOVEMENT_SPEED, 1.1F);
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/animal/panda/Panda.java b/net/minecraft/world/entity/animal/panda/Panda.java
|
||||
index d5060fb8e9a711e6230f2c4950521d8b4f5c01d2..163fe697f57459b36885fa3a18f41370347cab38 100644
|
||||
--- a/net/minecraft/world/entity/animal/panda/Panda.java
|
||||
|
||||
@@ -108,7 +108,7 @@ index bb3ac5297860c8af6e213d10fdf5144086e9474b..0e72601781235119d62fe74420153b98
|
||||
} else {
|
||||
workAtPoi = new WorkAtPoi();
|
||||
diff --git a/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java b/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java
|
||||
index 39a9e9a6f6dfddbf47a7f96150ef832efe61f89e..bcce12389c1cd290066bd86b85355292c22e921a 100644
|
||||
index 39a9e9a6f6dfddbf47a7f96150ef832efe61f89e..c268817b170bd54898bb5f8c2e2e12c0faa7eb1e 100644
|
||||
--- a/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java
|
||||
+++ b/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java
|
||||
@@ -22,6 +22,13 @@ public class SecondaryPoiSensor extends Sensor<Villager> {
|
||||
@@ -117,7 +117,7 @@ index 39a9e9a6f6dfddbf47a7f96150ef832efe61f89e..bcce12389c1cd290066bd86b85355292
|
||||
protected void doTick(ServerLevel level, Villager entity) {
|
||||
+ // Purpur start - Option for Villager Clerics to farm Nether Wart - make sure clerics don't wander to soul sand when the option is off
|
||||
+ Brain<?> brain = entity.getBrain();
|
||||
+ if (!level.purpurConfig.villagerClericsFarmWarts && entity.getVillagerData().profession().is(net.minecraft.world.entity.npc.VillagerProfession.CLERIC)) {
|
||||
+ if (!level.purpurConfig.villagerClericsFarmWarts && entity.getVillagerData().profession().is(net.minecraft.world.entity.npc.villager.VillagerProfession.CLERIC)) {
|
||||
+ brain.eraseMemory(MemoryModuleType.SECONDARY_JOB_SITE);
|
||||
+ return;
|
||||
+ }
|
||||
@@ -135,7 +135,7 @@ index 39a9e9a6f6dfddbf47a7f96150ef832efe61f89e..bcce12389c1cd290066bd86b85355292
|
||||
brain.setMemory(MemoryModuleType.SECONDARY_JOB_SITE, list);
|
||||
} else {
|
||||
diff --git a/net/minecraft/world/entity/npc/villager/Villager.java b/net/minecraft/world/entity/npc/villager/Villager.java
|
||||
index bad2d93118b04d5b41626bf75a05cf469d6fd2e8..810f1dc6506ca037363060aec1c90b9fc1602cd8 100644
|
||||
index 02836bd2e8fda563877d3014ab839734aebc7457..ed6642023fccbc8f825d7c5c206d73ffd666f0f9 100644
|
||||
--- a/net/minecraft/world/entity/npc/villager/Villager.java
|
||||
+++ b/net/minecraft/world/entity/npc/villager/Villager.java
|
||||
@@ -315,7 +315,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Cows naturally aggressive to players chance
|
||||
|
||||
|
||||
diff --git a/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java b/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java
|
||||
index 9bc35ca825e300e82d2d108de70622f8f453bff6..2db06c40b4a1841e96d02e3d90e2c98a6f709d30 100644
|
||||
index ccdd439a89b7e7e10ee960cfe1e5e119d5367799..49292ae53f2b4554064daa4953a8cec00aa1fa98 100644
|
||||
--- a/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java
|
||||
+++ b/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java
|
||||
@@ -135,7 +135,7 @@ public class DefaultAttributes {
|
||||
@@ -13,7 +13,7 @@ index 9bc35ca825e300e82d2d108de70622f8f453bff6..2db06c40b4a1841e96d02e3d90e2c98a
|
||||
.put(EntityType.MAGMA_CUBE, MagmaCube.createAttributes().build())
|
||||
.put(EntityType.MANNEQUIN, LivingEntity.createLivingAttributes().build())
|
||||
- .put(EntityType.MOOSHROOM, Cow.createAttributes().build())
|
||||
+ .put(EntityType.MOOSHROOM, net.minecraft.world.entity.animal.AbstractCow.createAttributes().build()) // Purpur - Cows naturally aggressive to players chance
|
||||
+ .put(EntityType.MOOSHROOM, net.minecraft.world.entity.animal.cow.AbstractCow.createAttributes().build()) // Purpur - Cows naturally aggressive to players chance
|
||||
.put(EntityType.MULE, AbstractChestedHorse.createBaseChestedHorseAttributes().build())
|
||||
.put(EntityType.NAUTILUS, Nautilus.createAttributes().build())
|
||||
.put(EntityType.OCELOT, Ocelot.createAttributes().build())
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
* @return
|
||||
*/
|
||||
public static boolean checkIfActive(final Entity entity) {
|
||||
+ if (entity.level().purpurConfig.squidImmuneToEAR && entity instanceof net.minecraft.world.entity.animal.Squid) return true; // Purpur - Squid EAR immunity
|
||||
+ if (entity.level().purpurConfig.squidImmuneToEAR && entity instanceof net.minecraft.world.entity.animal.squid.Squid) return true; // Purpur - Squid EAR immunity
|
||||
// Never safe to skip fireworks or item gravity
|
||||
if (entity instanceof FireworkRocketEntity || (entity instanceof ItemEntity && (entity.tickCount + entity.getId()) % 4 == 0)) { // Needed for item gravity, see ItemEntity tick
|
||||
return true;
|
||||
|
||||
@@ -201,7 +201,7 @@
|
||||
case NONE -> Explosion.BlockInteraction.KEEP;
|
||||
case BLOCK -> this.getDestroyType(GameRules.BLOCK_EXPLOSION_DROP_DECAY);
|
||||
- case MOB -> this.getGameRules().get(GameRules.MOB_GRIEFING)
|
||||
+ case MOB -> ((source instanceof net.minecraft.world.entity.projectile.hurtingprojectile.LargeFireball) ? this.getGameRules().getBoolean(GameRules.MOB_GRIEFING, this.purpurConfig.fireballsMobGriefingOverride) : this.getGameRules().get(GameRules.MOB_GRIEFING)) // Purpur - Add mobGriefing override to everything affected
|
||||
+ case MOB -> ((source instanceof net.minecraft.world.entity.projectile.hurtingprojectile.LargeFireball) ? this.getGameRules().get(GameRules.MOB_GRIEFING, this.purpurConfig.fireballsMobGriefingOverride) : this.getGameRules().get(GameRules.MOB_GRIEFING)) // Purpur - Add mobGriefing override to everything affected
|
||||
? this.getDestroyType(GameRules.MOB_EXPLOSION_DROP_DECAY)
|
||||
: Explosion.BlockInteraction.KEEP;
|
||||
case TNT -> this.getDestroyType(GameRules.TNT_EXPLOSION_DROP_DECAY);
|
||||
|
||||
@@ -196,7 +196,7 @@
|
||||
+ public boolean isScissors(ItemStack stack) {
|
||||
+ if (!stack.is(Items.SHEARS)) return false;
|
||||
+
|
||||
+ ResourceLocation itemModelReference = stack.get(net.minecraft.core.component.DataComponents.ITEM_MODEL);
|
||||
+ Identifier itemModelReference = stack.get(net.minecraft.core.component.DataComponents.ITEM_MODEL);
|
||||
+ if (itemModelReference != null && itemModelReference.equals(this.player.level().purpurConfig.dontRunWithScissorsItemModelReference)) return true;
|
||||
+
|
||||
+ return stack.getOrDefault(DataComponents.CUSTOM_MODEL_DATA, net.minecraft.world.item.component.CustomModelData.EMPTY).equals(net.minecraft.world.item.component.CustomModelData.EMPTY);
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
this.goalSelector.addGoal(0, new FloatGoal(this));
|
||||
+ if (level().purpurConfig.ravagerAvoidRabbits) this.goalSelector.addGoal(3, new net.minecraft.world.entity.ai.goal.AvoidEntityGoal<>(this, net.minecraft.world.entity.animal.Rabbit.class, 6.0F, 1.0D, 1.2D)); // Purpur - option to make ravagers afraid of rabbits
|
||||
+ if (level().purpurConfig.ravagerAvoidRabbits) this.goalSelector.addGoal(3, new net.minecraft.world.entity.ai.goal.AvoidEntityGoal<>(this, net.minecraft.world.entity.animal.rabbit.Rabbit.class, 6.0F, 1.0D, 1.2D)); // Purpur - option to make ravagers afraid of rabbits
|
||||
this.goalSelector.addGoal(4, new MeleeAttackGoal(this, 1.0, true));
|
||||
this.goalSelector.addGoal(5, new WaterAvoidingRandomStrollGoal(this, 0.4));
|
||||
this.goalSelector.addGoal(6, new LookAtPlayerGoal(this, Player.class, 6.0F));
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
+ if (!inactive) {
|
||||
+ this.getBrain().tick(level, this); // Paper - EAR 2
|
||||
+ }
|
||||
+ else if (this.isLobotomized && shouldRestock()) restock();
|
||||
+ else if (this.isLobotomized && shouldRestock(level)) restock();
|
||||
+ // Purpur end - Lobotomize stuck villagers
|
||||
profilerFiller.pop();
|
||||
if (this.assignProfessionWhenSpawned) {
|
||||
@@ -122,7 +122,7 @@
|
||||
}
|
||||
|
||||
public void spawnGolemIfNeeded(ServerLevel level, long gameTime, int minVillagerAmount) {
|
||||
+ if (level.purpurConfig.villagerSpawnIronGolemRadius > 0 && level.getEntitiesOfClass(net.minecraft.world.entity.animal.IronGolem.class, getBoundingBox().inflate(level.purpurConfig.villagerSpawnIronGolemRadius)).size() > level.purpurConfig.villagerSpawnIronGolemLimit) return; // Purpur - Implement configurable search radius for villagers to spawn iron golems
|
||||
+ if (level.purpurConfig.villagerSpawnIronGolemRadius > 0 && level.getEntitiesOfClass(net.minecraft.world.entity.animal.golem.IronGolem.class, getBoundingBox().inflate(level.purpurConfig.villagerSpawnIronGolemRadius)).size() > level.purpurConfig.villagerSpawnIronGolemLimit) return; // Purpur - Implement configurable search radius for villagers to spawn iron golems
|
||||
if (this.wantsToSpawnGolem(gameTime)) {
|
||||
AABB aabb = this.getBoundingBox().inflate(10.0, 10.0, 10.0);
|
||||
List<Villager> entitiesOfClass = level.getEntitiesOfClass(Villager.class, aabb);
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
+ if (level.purpurConfig.turtleEggsBreakFromItems && entity instanceof net.minecraft.world.entity.item.ItemEntity) {
|
||||
+ return true;
|
||||
+ }
|
||||
+ if (level.purpurConfig.turtleEggsBreakFromMinecarts && entity instanceof net.minecraft.world.entity.vehicle.AbstractMinecart) {
|
||||
+ if (level.purpurConfig.turtleEggsBreakFromMinecarts && entity instanceof net.minecraft.world.entity.vehicle.minecart.AbstractMinecart) {
|
||||
+ return true;
|
||||
+ }
|
||||
+ if (!(entity instanceof LivingEntity)) {
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
if (entity instanceof LivingEntity livingEntity) {
|
||||
int enchantmentLevel = EnchantmentHelper.getEnchantmentLevel(this.enchantment, livingEntity);
|
||||
+ // Purpur start - Add an option to fix MC-3304 projectile looting
|
||||
+ if (org.purpurmc.purpur.PurpurConfig.fixProjectileLootingTransfer && context.getOptionalParameter(LootContextParams.DIRECT_ATTACKING_ENTITY) instanceof net.minecraft.world.entity.projectile.AbstractArrow arrow) {
|
||||
+ if (org.purpurmc.purpur.PurpurConfig.fixProjectileLootingTransfer && context.getOptionalParameter(LootContextParams.DIRECT_ATTACKING_ENTITY) instanceof net.minecraft.world.entity.projectile.arrow.AbstractArrow arrow) {
|
||||
+ enchantmentLevel = arrow.actualEnchantments.getLevel(this.enchantment);
|
||||
+ }
|
||||
+ // Purpur end - Add an option to fix MC-3304 projectile looting
|
||||
|
||||
@@ -190,7 +190,7 @@
|
||||
+ net.minecraft.nbt.NbtIo.writeCompressed(compoundTag, tempFile.toPath());
|
||||
+ File playerDataFile = new File(playerDir, this.getUniqueId()+".dat");
|
||||
+ File playerDataFileOld = new File(playerDir, this.getUniqueId()+".dat_old");
|
||||
+ net.minecraft.Util.safeReplaceFile(playerDataFile.toPath(), tempFile.toPath(), playerDataFileOld.toPath());
|
||||
+ net.minecraft.util.Util.safeReplaceFile(playerDataFile.toPath(), tempFile.toPath(), playerDataFileOld.toPath());
|
||||
+ } catch (java.io.IOException e) {
|
||||
+ e.printStackTrace();
|
||||
+ }
|
||||
|
||||
@@ -2359,6 +2359,27 @@ public class PurpurWorldConfig {
|
||||
muleAlwaysDropExp = getBoolean("mobs.mule.always-drop-exp", muleAlwaysDropExp);
|
||||
}
|
||||
|
||||
// public boolean nautilusRidable = false;
|
||||
// public boolean nautilusRidableInWater = true;
|
||||
// public boolean nautilusControllable = true;
|
||||
// public double nautilusMaxHealth = 10.0D;
|
||||
// public double nautilusScale = 1.0D;
|
||||
public int nautilusBreedingTicks = 6000;
|
||||
// public boolean nautilusTakeDamageFromWater = false;
|
||||
// public boolean nautilusAlwaysDropExp = false;
|
||||
// public boolean nautilusSpawnUnderSeaLevel = false;
|
||||
private void nautilusSettings() {
|
||||
// nautilusRidable = getBoolean("mobs.nautilus.ridable", nautilusRidable);
|
||||
// nautilusRidableInWater = getBoolean("mobs.nautilus.ridable-in-water", nautilusRidableInWater);
|
||||
// nautilusControllable = getBoolean("mobs.nautilus.controllable", nautilusControllable);
|
||||
// nautilusMaxHealth = getDouble("mobs.nautilus.attributes.max_health", nautilusMaxHealth);
|
||||
// nautilusScale = Mth.clamp(getDouble("mobs.nautilus.attributes.scale", nautilusScale), 0.0625D, 16.0D);
|
||||
nautilusBreedingTicks = getInt("mobs.nautilus.breeding-delay-ticks", nautilusBreedingTicks);
|
||||
// nautilusTakeDamageFromWater = getBoolean("mobs.nautilus.takes-damage-from-water", nautilusTakeDamageFromWater);
|
||||
// nautilusAlwaysDropExp = getBoolean("mobs.nautilus.always-drop-exp", nautilusAlwaysDropExp);
|
||||
// nautilusSpawnUnderSeaLevel = getBoolean("mobs.nautilus.spawn-below-sea-level", nautilusSpawnUnderSeaLevel);
|
||||
}
|
||||
|
||||
public boolean ocelotRidable = false;
|
||||
public boolean ocelotRidableInWater = true;
|
||||
public boolean ocelotControllable = true;
|
||||
|
||||
@@ -4,12 +4,13 @@ import com.mojang.brigadier.CommandDispatcher;
|
||||
import net.minecraft.commands.CommandSourceStack;
|
||||
import net.minecraft.commands.Commands;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.server.permissions.Permissions;
|
||||
import org.purpurmc.purpur.task.CompassTask;
|
||||
|
||||
public class CompassCommand {
|
||||
public static void register(CommandDispatcher<CommandSourceStack> dispatcher) {
|
||||
dispatcher.register(Commands.literal("compass")
|
||||
.requires(listener -> listener.hasPermission(2, "bukkit.command.compass"))
|
||||
.requires(listener -> listener.hasPermission(Permissions.COMMANDS_GAMEMASTER, "bukkit.command.compass"))
|
||||
.executes(context -> {
|
||||
ServerPlayer player = context.getSource().getPlayerOrException();
|
||||
CompassTask task = CompassTask.instance();
|
||||
|
||||
@@ -6,6 +6,7 @@ import net.minecraft.commands.Commands;
|
||||
import net.minecraft.commands.arguments.EntityArgument;
|
||||
import net.minecraft.network.protocol.game.ClientboundGameEventPacket;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.server.permissions.Permissions;
|
||||
import org.purpurmc.purpur.PurpurConfig;
|
||||
|
||||
import java.util.Collection;
|
||||
@@ -14,10 +15,10 @@ import java.util.Collections;
|
||||
public class CreditsCommand {
|
||||
public static void register(CommandDispatcher<CommandSourceStack> dispatcher) {
|
||||
dispatcher.register(Commands.literal("credits")
|
||||
.requires((listener) -> listener.hasPermission(2, "bukkit.command.credits"))
|
||||
.requires((listener) -> listener.hasPermission(Permissions.COMMANDS_GAMEMASTER, "bukkit.command.credits"))
|
||||
.executes((context) -> execute(context.getSource(), Collections.singleton(context.getSource().getPlayerOrException())))
|
||||
.then(Commands.argument("targets", EntityArgument.players())
|
||||
.requires(listener -> listener.hasPermission(2, "bukkit.command.credits.other"))
|
||||
.requires(listener -> listener.hasPermission(Permissions.COMMANDS_GAMEMASTER, "bukkit.command.credits.other"))
|
||||
.executes((context) -> execute(context.getSource(), EntityArgument.getPlayers(context, "targets")))
|
||||
)
|
||||
);
|
||||
|
||||
@@ -6,6 +6,7 @@ import net.minecraft.commands.Commands;
|
||||
import net.minecraft.commands.arguments.EntityArgument;
|
||||
import net.minecraft.network.protocol.game.ClientboundGameEventPacket;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.server.permissions.Permissions;
|
||||
import org.purpurmc.purpur.PurpurConfig;
|
||||
|
||||
import java.util.Collection;
|
||||
@@ -14,10 +15,10 @@ import java.util.Collections;
|
||||
public class DemoCommand {
|
||||
public static void register(CommandDispatcher<CommandSourceStack> dispatcher) {
|
||||
dispatcher.register(Commands.literal("demo")
|
||||
.requires((listener) -> listener.hasPermission(2, "bukkit.command.demo"))
|
||||
.requires((listener) -> listener.hasPermission(Permissions.COMMANDS_GAMEMASTER, "bukkit.command.demo"))
|
||||
.executes((context) -> execute(context.getSource(), Collections.singleton(context.getSource().getPlayerOrException())))
|
||||
.then(Commands.argument("targets", EntityArgument.players())
|
||||
.requires(listener -> listener.hasPermission(2, "bukkit.command.demo.other"))
|
||||
.requires(listener -> listener.hasPermission(Permissions.COMMANDS_GAMEMASTER, "bukkit.command.demo.other"))
|
||||
.executes((context) -> execute(context.getSource(), EntityArgument.getPlayers(context, "targets")))
|
||||
)
|
||||
);
|
||||
|
||||
@@ -5,6 +5,7 @@ import net.minecraft.commands.CommandSourceStack;
|
||||
import net.minecraft.commands.Commands;
|
||||
import net.minecraft.commands.arguments.EntityArgument;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.server.permissions.Permissions;
|
||||
import org.purpurmc.purpur.PurpurConfig;
|
||||
|
||||
import java.util.Collection;
|
||||
@@ -13,10 +14,10 @@ import java.util.Collections;
|
||||
public class PingCommand {
|
||||
public static void register(CommandDispatcher<CommandSourceStack> dispatcher) {
|
||||
dispatcher.register(Commands.literal("ping")
|
||||
.requires((listener) -> listener.hasPermission(2, "bukkit.command.ping"))
|
||||
.requires((listener) -> listener.hasPermission(Permissions.COMMANDS_GAMEMASTER, "bukkit.command.ping"))
|
||||
.executes((context) -> execute(context.getSource(), Collections.singleton(context.getSource().getPlayerOrException())))
|
||||
.then(Commands.argument("targets", EntityArgument.players())
|
||||
.requires(listener -> listener.hasPermission(2, "bukkit.command.ping.other"))
|
||||
.requires(listener -> listener.hasPermission(Permissions.COMMANDS_GAMEMASTER, "bukkit.command.ping.other"))
|
||||
.executes((context) -> execute(context.getSource(), EntityArgument.getPlayers(context, "targets")))
|
||||
)
|
||||
);
|
||||
|
||||
@@ -9,6 +9,7 @@ import net.minecraft.commands.CommandSourceStack;
|
||||
import net.minecraft.commands.Commands;
|
||||
import net.minecraft.commands.arguments.EntityArgument;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.server.permissions.Permissions;
|
||||
import org.purpurmc.purpur.PurpurConfig;
|
||||
import org.purpurmc.purpur.task.RamBarTask;
|
||||
|
||||
@@ -18,10 +19,10 @@ import java.util.Collections;
|
||||
public class RamBarCommand {
|
||||
public static void register(CommandDispatcher<CommandSourceStack> dispatcher) {
|
||||
dispatcher.register(Commands.literal("rambar")
|
||||
.requires(listener -> listener.hasPermission(2, "bukkit.command.rambar"))
|
||||
.requires(listener -> listener.hasPermission(Permissions.COMMANDS_GAMEMASTER, "bukkit.command.rambar"))
|
||||
.executes(context -> execute(context.getSource(), Collections.singleton(context.getSource().getPlayerOrException())))
|
||||
.then(Commands.argument("targets", EntityArgument.players())
|
||||
.requires(listener -> listener.hasPermission(2, "bukkit.command.rambar.other"))
|
||||
.requires(listener -> listener.hasPermission(Permissions.COMMANDS_GAMEMASTER, "bukkit.command.rambar.other"))
|
||||
.executes((context) -> execute(context.getSource(), EntityArgument.getPlayers(context, "targets")))
|
||||
)
|
||||
);
|
||||
|
||||
@@ -6,13 +6,14 @@ import net.kyori.adventure.text.minimessage.MiniMessage;
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
|
||||
import net.minecraft.commands.CommandSourceStack;
|
||||
import net.minecraft.commands.Commands;
|
||||
import net.minecraft.server.permissions.Permissions;
|
||||
import org.purpurmc.purpur.PurpurConfig;
|
||||
import org.purpurmc.purpur.task.RamBarTask;
|
||||
|
||||
public class RamCommand {
|
||||
public static void register(CommandDispatcher<CommandSourceStack> dispatcher) {
|
||||
dispatcher.register(Commands.literal("ram")
|
||||
.requires(listener -> listener.hasPermission(2, "bukkit.command.ram"))
|
||||
.requires(listener -> listener.hasPermission(Permissions.COMMANDS_GAMEMASTER, "bukkit.command.ram"))
|
||||
.executes(context -> {
|
||||
CommandSourceStack sender = context.getSource();
|
||||
RamBarTask ramBar = RamBarTask.instance();
|
||||
|
||||
@@ -9,6 +9,7 @@ import net.minecraft.commands.CommandSourceStack;
|
||||
import net.minecraft.commands.Commands;
|
||||
import net.minecraft.commands.arguments.EntityArgument;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.server.permissions.Permissions;
|
||||
import org.purpurmc.purpur.PurpurConfig;
|
||||
import org.purpurmc.purpur.task.TPSBarTask;
|
||||
|
||||
@@ -18,10 +19,10 @@ import java.util.Collections;
|
||||
public class TPSBarCommand {
|
||||
public static void register(CommandDispatcher<CommandSourceStack> dispatcher) {
|
||||
dispatcher.register(Commands.literal("tpsbar")
|
||||
.requires(listener -> listener.hasPermission(2, "bukkit.command.tpsbar"))
|
||||
.requires(listener -> listener.hasPermission(Permissions.COMMANDS_GAMEMASTER, "bukkit.command.tpsbar"))
|
||||
.executes(context -> execute(context.getSource(), Collections.singleton(context.getSource().getPlayerOrException())))
|
||||
.then(Commands.argument("targets", EntityArgument.players())
|
||||
.requires(listener -> listener.hasPermission(2, "bukkit.command.tpsbar.other"))
|
||||
.requires(listener -> listener.hasPermission(Permissions.COMMANDS_GAMEMASTER, "bukkit.command.tpsbar.other"))
|
||||
.executes((context) -> execute(context.getSource(), EntityArgument.getPlayers(context, "targets")))
|
||||
)
|
||||
);
|
||||
|
||||
@@ -7,6 +7,7 @@ import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
|
||||
import net.minecraft.commands.CommandSourceStack;
|
||||
import net.minecraft.commands.Commands;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.server.permissions.Permissions;
|
||||
import org.purpurmc.purpur.PurpurConfig;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
@@ -15,7 +16,7 @@ import java.util.function.Function;
|
||||
public class UptimeCommand {
|
||||
public static void register(CommandDispatcher<CommandSourceStack> dispatcher) {
|
||||
dispatcher.register(Commands.literal("uptime")
|
||||
.requires((listener) -> listener.hasPermission(2, "bukkit.command.uptime"))
|
||||
.requires((listener) -> listener.hasPermission(Permissions.COMMANDS_GAMEMASTER, "bukkit.command.uptime"))
|
||||
.executes((context) -> execute(context.getSource()))
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user