mirror of
https://github.com/YatopiaMC/Yatopia.git
synced 2025-02-27 09:42:45 +01:00
818 lines
44 KiB
Diff
818 lines
44 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: YatopiaMC <yatopiamc@gmail.com>
|
|
Date: Sun, 25 Oct 2020 12:23:35 -0500
|
|
Subject: [PATCH] Yatopia-Server-Fixes
|
|
|
|
|
|
diff --git a/src/main/java/de/minebench/origami/OrigamiConfig.java b/src/main/java/de/minebench/origami/OrigamiConfig.java
|
|
index fe7330fabe386966c2d203a190a00a785ea21be0..537456a7427cddd6783f5b5d8ee2d655668c4c53 100644
|
|
--- a/src/main/java/de/minebench/origami/OrigamiConfig.java
|
|
+++ b/src/main/java/de/minebench/origami/OrigamiConfig.java
|
|
@@ -16,7 +16,7 @@ public final class OrigamiConfig {
|
|
private static final Object[] EMPTY = new Object[0];
|
|
|
|
private static File configFile;
|
|
- private static YamlConfiguration config;
|
|
+ public static YamlConfiguration config; // Yatopia
|
|
private static int configVersion;
|
|
|
|
public static void init(final File file) {
|
|
@@ -112,6 +112,28 @@ public final class OrigamiConfig {
|
|
config.addDefault("worlds.default." + path, Double.valueOf(dfl));
|
|
return config.getDouble("worlds." + worldName + "." + path, config.getDouble("worlds.default." + path, dfl));
|
|
}
|
|
+
|
|
+ public boolean tickEmptyHoppers = false;
|
|
+ public int fullHopperCooldown = 128;
|
|
+ private void hopperOptimizations() {
|
|
+ tickEmptyHoppers = getBoolean("tick-empty-hoppers", tickEmptyHoppers);
|
|
+ fullHopperCooldown = getInt("ticks-per.full-hopper-cooldown", fullHopperCooldown);
|
|
+ }
|
|
+
|
|
+ public boolean fastFeatureSearchDontLoad = false;
|
|
+ private void fastFeatureSearchDontLoad() {
|
|
+ fastFeatureSearchDontLoad = getBoolean("fast-feature-search-dont-load", false);
|
|
+ }
|
|
+
|
|
+ public boolean pigmenDontTargetUnlessHit = false;
|
|
+ private void pigmenDontTargetUnlessHit() {
|
|
+ pigmenDontTargetUnlessHit = getBoolean("pigmen.dont-target-unless-hit", pigmenDontTargetUnlessHit);
|
|
+ }
|
|
+
|
|
+ public boolean disableObserverClocks = false;
|
|
+ private void observerClock() {
|
|
+ disableObserverClocks = getBoolean("disable-observer-clocks", disableObserverClocks);
|
|
+ }
|
|
}
|
|
|
|
}
|
|
\ No newline at end of file
|
|
diff --git a/src/main/java/de/minebench/origami/OrigamiConfig.java.rej b/src/main/java/de/minebench/origami/OrigamiConfig.java.rej
|
|
deleted file mode 100644
|
|
index 02f5ccf54210776770d3215afb7c8e82f750d57e..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/de/minebench/origami/OrigamiConfig.java.rej
|
|
+++ /dev/null
|
|
@@ -1,12 +0,0 @@
|
|
-diff a/src/main/java/de/minebench/origami/OrigamiConfig.java b/src/main/java/de/minebench/origami/OrigamiConfig.java (rejected hunks)
|
|
-@@ -153,6 +153,10 @@ public final class OrigamiConfig {
|
|
- public int getTickRate(String type, String typeName, String entityType, int def) {
|
|
- return tickRates.getOrDefault(type + "." + entityType + "." + typeName, tickRates.getOrDefault(type + "." + typeName, def));
|
|
- }
|
|
-+ public boolean pigmenDontTargetUnlessHit = false;
|
|
-+ private void pigmenDontTargetUnlessHit() {
|
|
-+ pigmenDontTargetUnlessHit = getBoolean("pigmen.dont-target-unless-hit", pigmenDontTargetUnlessHit);
|
|
-+ }
|
|
- public int pigmenPortalSpawn = 2000;
|
|
- public double pigmenPortalBoost = 0.0;
|
|
- public boolean pigmenFarmsWaterAi = false;
|
|
diff --git a/src/main/java/net/minecraft/server/BaseBlockPosition.java b/src/main/java/net/minecraft/server/BaseBlockPosition.java
|
|
index e811295b4d6afcd920f60e0ce5440e43300d9085..d1064bd1c76eb23ce12e4a0703ce9f2622952897 100644
|
|
--- a/src/main/java/net/minecraft/server/BaseBlockPosition.java
|
|
+++ b/src/main/java/net/minecraft/server/BaseBlockPosition.java
|
|
@@ -111,6 +111,7 @@ public class BaseBlockPosition implements Comparable<BaseBlockPosition> {
|
|
return this.distanceSquared((double) baseblockposition.getX(), (double) baseblockposition.getY(), (double) baseblockposition.getZ(), false) < d0 * d0;
|
|
}
|
|
|
|
+ public final boolean distanceSquared(IPosition pos, double dist) { return a(pos, dist); } // Yatopia - OBFHELPER
|
|
public boolean a(IPosition iposition, double d0) {
|
|
return this.distanceSquared(iposition.getX(), iposition.getY(), iposition.getZ(), true) < d0 * d0;
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/server/Behavior.java b/src/main/java/net/minecraft/server/Behavior.java
|
|
index fb4a5ca220c9ef0916ecd4249a0ec7d1d8024ef1..899ca7bf676ccd874e317ba7e19b733fbf444baa 100644
|
|
--- a/src/main/java/net/minecraft/server/Behavior.java
|
|
+++ b/src/main/java/net/minecraft/server/Behavior.java
|
|
@@ -11,6 +11,7 @@ public abstract class Behavior<E extends EntityLiving> {
|
|
private long c;
|
|
private final int d;
|
|
private final int e;
|
|
+ co.aikar.timings.Timing timing; // Origami - behavior timing
|
|
|
|
public Behavior(Map<MemoryModuleType<?>, MemoryStatus> map) {
|
|
this(map, 60);
|
|
@@ -25,6 +26,9 @@ public abstract class Behavior<E extends EntityLiving> {
|
|
this.d = i;
|
|
this.e = j;
|
|
this.a = map;
|
|
+ // Origami start - behavior timing
|
|
+ timing = co.aikar.timings.WorldTimingsHandler.getBehaviorTimings(getClass().getSimpleName());
|
|
+ // Origami end
|
|
}
|
|
|
|
public Behavior.Status a() {
|
|
diff --git a/src/main/java/net/minecraft/server/Behavior.java.rej b/src/main/java/net/minecraft/server/Behavior.java.rej
|
|
deleted file mode 100644
|
|
index c3d129452b4f6ff2069bc066e594b1c632ceb0d4..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/Behavior.java.rej
|
|
+++ /dev/null
|
|
@@ -1,19 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/Behavior.java b/src/main/java/net/minecraft/server/Behavior.java (rejected hunks)
|
|
-@@ -15,6 +15,7 @@ public abstract class Behavior<E extends EntityLiving> {
|
|
- private final String configKey;
|
|
- private static final String RATE_TYPE = "behavior";
|
|
- // Origami end
|
|
-+ co.aikar.timings.Timing timing; // Origami - behavior timing
|
|
-
|
|
- public Behavior(Map<MemoryModuleType<?>, MemoryStatus> map) {
|
|
- this(map, 60);
|
|
-@@ -37,6 +38,9 @@ public abstract class Behavior<E extends EntityLiving> {
|
|
- }
|
|
- this.configKey = key;
|
|
- // Origami end
|
|
-+ // Origami start - behavior timing
|
|
-+ timing = co.aikar.timings.WorldTimingsHandler.getBehaviorTimings(key);
|
|
-+ // Origami end
|
|
- }
|
|
-
|
|
- public Behavior.Status a() {
|
|
diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java
|
|
index 65e5b15dc3bf83206438f67053afde6857c97daa..9dfb331652c00904c29d1c6e700f68cf0bce67e8 100644
|
|
--- a/src/main/java/net/minecraft/server/Block.java
|
|
+++ b/src/main/java/net/minecraft/server/Block.java
|
|
@@ -225,6 +225,46 @@ public class Block extends BlockBase implements IMaterial {
|
|
|
|
}
|
|
|
|
+ // Purpur start
|
|
+ private static ItemStack applyDisplayNameAndLoreFromTile(ItemStack itemStack, TileEntity tile) {
|
|
+ if (itemStack.getItem() instanceof ItemBlock) {
|
|
+ if (tile != null && tile.getWorld() instanceof WorldServer && tile.getWorld().purpurConfig.persistentTileEntityDisplayNames) {
|
|
+ String name = tile.getPersistentDisplayName();
|
|
+ NBTTagList lore = tile.getPersistentLore();
|
|
+ if (tile instanceof INamableTileEntity) {
|
|
+ INamableTileEntity namedTile = (INamableTileEntity) tile;
|
|
+ if (namedTile.hasCustomName()) {
|
|
+ name = IChatBaseComponent.ChatSerializer.componentToJson(namedTile.getCustomName());
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (name != null || lore != null) {
|
|
+ NBTTagCompound display = itemStack.getSubTag("display");
|
|
+ if (display == null) {
|
|
+ display = new NBTTagCompound();
|
|
+ }
|
|
+
|
|
+ if (name != null) {
|
|
+ display.set("Name", NBTTagString.create(name));
|
|
+ }
|
|
+ if (lore != null) {
|
|
+ display.set("Lore", lore);
|
|
+ }
|
|
+
|
|
+ NBTTagCompound tag = itemStack.getTag();
|
|
+ if (tag == null) {
|
|
+ tag = new NBTTagCompound();
|
|
+ }
|
|
+ tag.set("display", display);
|
|
+
|
|
+ itemStack.setTag(tag);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ return itemStack;
|
|
+ }
|
|
+ // Purpur end
|
|
+
|
|
public static void a(World world, BlockPosition blockposition, ItemStack itemstack) {
|
|
if (!world.isClientSide && !itemstack.isEmpty() && world.getGameRules().getBoolean(GameRules.DO_TILE_DROPS)) {
|
|
float f = 0.5F;
|
|
diff --git a/src/main/java/net/minecraft/server/Block.java.rej b/src/main/java/net/minecraft/server/Block.java.rej
|
|
deleted file mode 100644
|
|
index 371ae8819eb4f8e20bc765e09bfee9611f047595..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/Block.java.rej
|
|
+++ /dev/null
|
|
@@ -1,48 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java (rejected hunks)
|
|
-@@ -224,6 +226,46 @@ public class Block extends BlockBase implements IMaterial {
|
|
-
|
|
- }
|
|
-
|
|
-+ // Purpur start
|
|
-+ private static ItemStack applyDisplayNameAndLoreFromTile(ItemStack itemStack, TileEntity tile) {
|
|
-+ if (itemStack.getItem() instanceof ItemBlock) {
|
|
-+ if (tile != null && tile.getWorld() instanceof WorldServer && tile.getWorld().purpurConfig.persistentTileEntityDisplayNames) {
|
|
-+ String name = tile.getPersistentDisplayName();
|
|
-+ NBTTagList lore = tile.getPersistentLore();
|
|
-+ if (tile instanceof INamableTileEntity) {
|
|
-+ INamableTileEntity namedTile = (INamableTileEntity) tile;
|
|
-+ if (namedTile.hasCustomName()) {
|
|
-+ name = IChatBaseComponent.ChatSerializer.componentToJson(namedTile.getCustomName());
|
|
-+ }
|
|
-+ }
|
|
-+
|
|
-+ if (name != null || lore != null) {
|
|
-+ NBTTagCompound display = itemStack.getSubTag("display");
|
|
-+ if (display == null) {
|
|
-+ display = new NBTTagCompound();
|
|
-+ }
|
|
-+
|
|
-+ if (name != null) {
|
|
-+ display.set("Name", NBTTagString.create(name));
|
|
-+ }
|
|
-+ if (lore != null) {
|
|
-+ display.set("Lore", lore);
|
|
-+ }
|
|
-+
|
|
-+ NBTTagCompound tag = itemStack.getTag();
|
|
-+ if (tag == null) {
|
|
-+ tag = new NBTTagCompound();
|
|
-+ }
|
|
-+ tag.set("display", display);
|
|
-+
|
|
-+ itemStack.setTag(tag);
|
|
-+ }
|
|
-+ }
|
|
-+ }
|
|
-+ return itemStack;
|
|
-+ }
|
|
-+ // Purpur end
|
|
-+
|
|
- public static void dropItem(World world, BlockPosition blockposition, ItemStack itemstack) { a(world, blockposition, itemstack); } // Purpur - OBFHELPER
|
|
- public static void a(World world, BlockPosition blockposition, ItemStack itemstack) {
|
|
- if (!world.isClientSide && !itemstack.isEmpty() && world.getGameRules().getBoolean(GameRules.DO_TILE_DROPS)) {
|
|
diff --git a/src/main/java/net/minecraft/server/BlockPosition.java b/src/main/java/net/minecraft/server/BlockPosition.java
|
|
index 2291135eaef64c403183724cb6e413cd7e472672..6fcc7ed7c129e6a33386d65b37cbba4a44e96f0f 100644
|
|
--- a/src/main/java/net/minecraft/server/BlockPosition.java
|
|
+++ b/src/main/java/net/minecraft/server/BlockPosition.java
|
|
@@ -56,6 +56,12 @@ public class BlockPosition extends BaseBlockPosition {
|
|
this(baseblockposition.getX(), baseblockposition.getY(), baseblockposition.getZ());
|
|
}
|
|
|
|
+ // Yatopia start - helper method
|
|
+ public BlockPosition(Entity entity) {
|
|
+ this(entity.locX(), entity.locY(), entity.locZ());
|
|
+ }
|
|
+ // Yatopia end
|
|
+
|
|
public static long getAdjacent(int baseX, int baseY, int baseZ, EnumDirection enumdirection) { return asLong(baseX + enumdirection.getAdjacentX(), baseY + enumdirection.getAdjacentY(), baseZ + enumdirection.getAdjacentZ()); } // Paper
|
|
public static long a(long i, EnumDirection enumdirection) {
|
|
return a(i, enumdirection.getAdjacentX(), enumdirection.getAdjacentY(), enumdirection.getAdjacentZ());
|
|
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
|
index a02f7a39ee15d0478645a99d250a44de662011dc..6cdff124ac660134b1bf378f4f163ae8010d2ef9 100644
|
|
--- a/src/main/java/net/minecraft/server/Entity.java
|
|
+++ b/src/main/java/net/minecraft/server/Entity.java
|
|
@@ -440,7 +440,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
|
public void setPosition(double d0, double d1, double d2) {
|
|
this.setPositionRaw(d0, d1, d2);
|
|
//this.a(this.size.a(d0, d1, d2)); // Paper - move into setPositionRaw
|
|
- if (valid) ((WorldServer) world).chunkCheck(this); // CraftBukkit
|
|
+ if (valid && !dead) ((WorldServer) world).chunkCheck(this); // CraftBukkit // Purpur
|
|
}
|
|
|
|
protected void af() {
|
|
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
|
|
index a02f54ab3ac721a5697f8efea474d2999a0fd7bd..2faaf483cca26586226a2e08ac01285a62a68f6f 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityVillager.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
|
|
@@ -92,6 +92,13 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
|
|
return behaviorcontroller;
|
|
}
|
|
|
|
+ // Purpur start
|
|
+ @Override
|
|
+ public boolean a(EntityHuman entityhuman) {
|
|
+ return world.purpurConfig.villagerCanBeLeashed && !this.isLeashed();
|
|
+ }
|
|
+ // Purpur end
|
|
+
|
|
public void c(WorldServer worldserver) {
|
|
BehaviorController<EntityVillager> behaviorcontroller = this.getBehaviorController();
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java.rej b/src/main/java/net/minecraft/server/EntityVillager.java.rej
|
|
deleted file mode 100644
|
|
index 538b2c92e050176a1ac0bb4c2315f5b22c7f8eac..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/EntityVillager.java.rej
|
|
+++ /dev/null
|
|
@@ -1,13 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java (rejected hunks)
|
|
-@@ -79,6 +79,11 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
|
|
- protected void initPathfinder() {
|
|
- if (world.purpurConfig.villagerFollowEmeraldBlock) this.goalSelector.a(3, new PathfinderGoalTempt(this, 1.0D, false, TEMPT_ITEMS));
|
|
- }
|
|
-+
|
|
-+ @Override
|
|
-+ public boolean a(EntityHuman entityhuman) {
|
|
-+ return world.purpurConfig.villagerCanBeLeashed && !this.isLeashed();
|
|
-+ }
|
|
- // Purpur end
|
|
-
|
|
- @Override
|
|
diff --git a/src/main/java/net/minecraft/server/IProjectile.java b/src/main/java/net/minecraft/server/IProjectile.java
|
|
index 567c1bb19020a76b3ce03d8b79b8982d51238dde..b7dfa73d4119fe1195412e9ce60fe982ffc42c55 100644
|
|
--- a/src/main/java/net/minecraft/server/IProjectile.java
|
|
+++ b/src/main/java/net/minecraft/server/IProjectile.java
|
|
@@ -13,6 +13,7 @@ public abstract class IProjectile extends Entity {
|
|
private UUID shooter;
|
|
private int c;
|
|
private boolean d;
|
|
+ public int despawnCounter; // Purpur - moved from EntityArrow
|
|
|
|
IProjectile(EntityTypes<? extends IProjectile> entitytypes, World world) {
|
|
super(entitytypes, world);
|
|
@@ -90,6 +91,12 @@ public abstract class IProjectile extends Entity {
|
|
}
|
|
|
|
super.tick();
|
|
+
|
|
+ // Purpur start
|
|
+ if (!(this instanceof EntityArrow)) {
|
|
+ this.tickDespawnCounter();
|
|
+ }
|
|
+ // Purpur end
|
|
}
|
|
|
|
private boolean h() {
|
|
diff --git a/src/main/java/net/minecraft/server/IProjectile.java.rej b/src/main/java/net/minecraft/server/IProjectile.java.rej
|
|
deleted file mode 100644
|
|
index 963c90c065a9e362c8c3030bb36ac6bf0c14a8e2..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/IProjectile.java.rej
|
|
+++ /dev/null
|
|
@@ -1,22 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/IProjectile.java b/src/main/java/net/minecraft/server/IProjectile.java (rejected hunks)
|
|
-@@ -13,6 +13,7 @@ public abstract class IProjectile extends Entity {
|
|
- private UUID shooter;
|
|
- private int c;
|
|
- private boolean d; public boolean leftOwner() { return d; } public void setLeftOwner(boolean leftOwner) { this.d = leftOwner; } // Purpur - OBFHELPER
|
|
-+ public int despawnCounter; // Purpur - moved from EntityArrow
|
|
-
|
|
- IProjectile(EntityTypes<? extends IProjectile> entitytypes, World world) {
|
|
- super(entitytypes, world);
|
|
-@@ -79,6 +91,12 @@ public abstract class IProjectile extends Entity {
|
|
- }
|
|
-
|
|
- super.tick();
|
|
-+
|
|
-+ // Purpur start
|
|
-+ if (!(this instanceof EntityArrow)) { // EntityArrow handles its own despawn counter
|
|
-+ this.tickDespawnCounter();
|
|
-+ }
|
|
-+ // Purpur end
|
|
- }
|
|
-
|
|
- public boolean checkIfLeftOwner() { return this.h(); } // Purpur - OBFHELPER
|
|
diff --git a/src/main/java/net/minecraft/server/StructureGenerator.java b/src/main/java/net/minecraft/server/StructureGenerator.java
|
|
index a62c87bceab2c9700a7b3925f208b0ffa2b9b393..1a6c593f5f20fb3a8e87ccb70cd3de7f0dcb0327 100644
|
|
--- a/src/main/java/net/minecraft/server/StructureGenerator.java
|
|
+++ b/src/main/java/net/minecraft/server/StructureGenerator.java
|
|
@@ -151,6 +151,11 @@ public abstract class StructureGenerator<C extends WorldGenFeatureConfiguration>
|
|
}
|
|
}
|
|
// Paper end
|
|
+ // Origami start - seed based feature search doesn't load
|
|
+ if (iworldreader instanceof World && ((World) iworldreader).origamiConfig.fastFeatureSearchDontLoad) {
|
|
+ return chunkcoordintpair.l();
|
|
+ }
|
|
+ // Origami end
|
|
IChunkAccess ichunkaccess = iworldreader.getChunkAt(chunkcoordintpair.x, chunkcoordintpair.z, ChunkStatus.STRUCTURE_STARTS);
|
|
StructureStart<?> structurestart = structuremanager.a(SectionPosition.a(ichunkaccess.getPos(), 0), this, ichunkaccess);
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/StructureGenerator.java.rej b/src/main/java/net/minecraft/server/StructureGenerator.java.rej
|
|
deleted file mode 100644
|
|
index dd52a8fe4fd46e57a5d1af49ba1965a483cf4fcc..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/StructureGenerator.java.rej
|
|
+++ /dev/null
|
|
@@ -1,13 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/StructureGenerator.java b/src/main/java/net/minecraft/server/StructureGenerator.java (rejected hunks)
|
|
-@@ -151,6 +151,11 @@ public abstract class StructureGenerator<C extends WorldGenFeatureConfiguration>
|
|
- }
|
|
- }
|
|
- // Paper end
|
|
-+ // Origami start - seed based feature search doesn't load
|
|
-+ if (iworldreader instanceof World && ((World) iworldreader).origamiConfig.fastFeatureSearchDontLoad) {
|
|
-+ return chunkcoordintpair.l();
|
|
-+ }
|
|
-+ // Origami end
|
|
- // Origami start - option to only find generated features to not generate new chunks
|
|
- IChunkAccess ichunkaccess = iworldreader.getChunkAt(chunkcoordintpair.x, chunkcoordintpair.z, ChunkStatus.STRUCTURE_STARTS, !(iworldreader instanceof World) || !((World) iworldreader).origamiConfig.onlyFindGeneratedFeatures);
|
|
- if (ichunkaccess == null) {
|
|
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
|
index 9c92f7e7f51c7438a6d4f74b26f4965cdff538b0..55f12f104515e73e7f282bfbd21cb372ad5c3832 100644
|
|
--- a/src/main/java/net/minecraft/server/World.java
|
|
+++ b/src/main/java/net/minecraft/server/World.java
|
|
@@ -96,6 +96,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
|
|
|
public final com.tuinity.tuinity.config.TuinityConfig.WorldConfig tuinityConfig; // Tuinity - Server Config
|
|
public final net.pl3x.purpur.PurpurWorldConfig purpurConfig; // Purpur
|
|
+ public final de.minebench.origami.OrigamiConfig.WorldConfig origamiConfig; // Origami - World config
|
|
|
|
public final co.aikar.timings.WorldTimingsHandler timings; // Paper
|
|
public static BlockPosition lastPhysicsProblem; // Spigot
|
|
@@ -157,6 +158,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
|
this.paperConfig = new com.destroystokyo.paper.PaperWorldConfig(((WorldDataServer) worlddatamutable).getName(), this.spigotConfig); // Paper
|
|
this.tuinityConfig = new com.tuinity.tuinity.config.TuinityConfig.WorldConfig(((WorldDataServer)worlddatamutable).getName()); // Tuinity - Server Config
|
|
this.purpurConfig = new net.pl3x.purpur.PurpurWorldConfig((((WorldDataServer)worlddatamutable).getName())); // Purpur
|
|
+ this.origamiConfig = new de.minebench.origami.OrigamiConfig.WorldConfig(((WorldDataServer)worlddatamutable).getName()); // Origami
|
|
this.chunkPacketBlockController = this.paperConfig.antiXray ? new ChunkPacketBlockControllerAntiXray(this, executor) : ChunkPacketBlockController.NO_OPERATION_INSTANCE; // Paper - Anti-Xray
|
|
this.generator = gen;
|
|
this.world = new CraftWorld((WorldServer) this, gen, env);
|
|
diff --git a/src/main/java/net/minecraft/server/World.java.rej b/src/main/java/net/minecraft/server/World.java.rej
|
|
deleted file mode 100644
|
|
index 313aa8f7d47c53a6a0130994c9d61d7c073c95c6..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/World.java.rej
|
|
+++ /dev/null
|
|
@@ -1,18 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java (rejected hunks)
|
|
-@@ -94,6 +94,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
|
- public final com.destroystokyo.paper.PaperWorldConfig paperConfig; // Paper
|
|
- public final ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray
|
|
-
|
|
-+ public final de.minebench.origami.OrigamiConfig.WorldConfig origamiConfig; // Origami - World Config
|
|
-+
|
|
- public final co.aikar.timings.WorldTimingsHandler timings; // Paper
|
|
- public static BlockPosition lastPhysicsProblem; // Spigot
|
|
- private org.spigotmc.TickLimiter entityLimiter;
|
|
-@@ -124,6 +126,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
|
- protected World(WorldDataMutable worlddatamutable, ResourceKey<World> resourcekey, final DimensionManager dimensionmanager, Supplier<GameProfilerFiller> supplier, boolean flag, boolean flag1, long i, org.bukkit.generator.ChunkGenerator gen, org.bukkit.World.Environment env, java.util.concurrent.Executor executor) { // Paper
|
|
- this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((WorldDataServer) worlddatamutable).getName()); // Spigot
|
|
- this.paperConfig = new com.destroystokyo.paper.PaperWorldConfig((((WorldDataServer)worlddatamutable).getName()), this.spigotConfig); // Paper
|
|
-+ this.origamiConfig = new de.minebench.origami.OrigamiConfig.WorldConfig(((WorldDataServer)worlddatamutable).getName()); // Origami - World Config
|
|
- this.chunkPacketBlockController = this.paperConfig.antiXray ? new ChunkPacketBlockControllerAntiXray(this, executor) : ChunkPacketBlockController.NO_OPERATION_INSTANCE; // Paper - Anti-Xray
|
|
- this.generator = gen;
|
|
- this.world = new CraftWorld((WorldServer) this, gen, env);
|
|
diff --git a/src/main/java/net/minecraft/server/WorldNBTStorage.java b/src/main/java/net/minecraft/server/WorldNBTStorage.java
|
|
index b5cf60495b85c6ae6c32ee8a1c65d80e59fdce3d..1f77b251d7e7b0f023793cbf0876fc067caa75c1 100644
|
|
--- a/src/main/java/net/minecraft/server/WorldNBTStorage.java
|
|
+++ b/src/main/java/net/minecraft/server/WorldNBTStorage.java
|
|
@@ -49,7 +49,8 @@ public class WorldNBTStorage {
|
|
File file = new File(this.playerDir, entityhuman.getUniqueIDString() + ".dat");
|
|
// Spigot Start
|
|
boolean usingWrongFile = false;
|
|
- if ( org.bukkit.Bukkit.getOnlineMode() && !file.exists() ) // Paper - Check online mode first
|
|
+ boolean normalFile = file.exists() && file.isFile(); // Akarin - ensures normal file
|
|
+ if ( org.bukkit.Bukkit.getOnlineMode() && !normalFile ) // Paper - Check online mode first // Akarin - ensures normal file
|
|
{
|
|
file = new File( this.playerDir, java.util.UUID.nameUUIDFromBytes( ( "OfflinePlayer:" + entityhuman.getName() ).getBytes( "UTF-8" ) ).toString() + ".dat");
|
|
if ( file.exists() )
|
|
@@ -60,7 +61,7 @@ public class WorldNBTStorage {
|
|
}
|
|
// Spigot End
|
|
|
|
- if (file.exists() && file.isFile()) {
|
|
+ if (normalFile) { // Akarin - avoid double I/O operation
|
|
nbttagcompound = NBTCompressedStreamTools.a(file);
|
|
}
|
|
// Spigot Start
|
|
diff --git a/src/main/java/net/minecraft/server/WorldNBTStorage.java.rej b/src/main/java/net/minecraft/server/WorldNBTStorage.java.rej
|
|
deleted file mode 100644
|
|
index 39dce006ebf2bd81a9d6c62c25eb9bd55d24199e..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/WorldNBTStorage.java.rej
|
|
+++ /dev/null
|
|
@@ -1,20 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/WorldNBTStorage.java b/src/main/java/net/minecraft/server/WorldNBTStorage.java (rejected hunks)
|
|
-@@ -165,7 +165,8 @@ public class WorldNBTStorage implements IPlayerFileData {
|
|
- File file = new File(this.playerDir, entityhuman.getUniqueIDString() + ".dat");
|
|
- // Spigot Start
|
|
- boolean usingWrongFile = false;
|
|
-- if ( org.bukkit.Bukkit.getOnlineMode() && !file.exists() ) // Paper - Check online mode first
|
|
-+ boolean normalFile = file.exists() && file.isFile(); // Akarin - ensures normal file
|
|
-+ if ( org.bukkit.Bukkit.getOnlineMode() && !normalFile ) // Paper - Check online mode first // Akarin - ensures normal file
|
|
- {
|
|
- file = new File( this.playerDir, UUID.nameUUIDFromBytes( ( "OfflinePlayer:" + entityhuman.getName() ).getBytes( "UTF-8" ) ).toString() + ".dat");
|
|
- if ( file.exists() )
|
|
-@@ -176,7 +177,7 @@ public class WorldNBTStorage implements IPlayerFileData {
|
|
- }
|
|
- // Spigot End
|
|
-
|
|
-- if (file.exists() && file.isFile()) {
|
|
-+ if (normalFile) { // Akarin - avoid double I/O operation
|
|
- nbttagcompound = NBTCompressedStreamTools.a((InputStream) (new FileInputStream(file)));
|
|
- }
|
|
- // Spigot Start
|
|
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
|
|
index 31f918778317f05bd5b09f4a8ee55bb4b71defd1..689a1541853e03e8e6d7a30bc5937978124aba2c 100644
|
|
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
|
|
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
|
|
@@ -129,11 +129,6 @@ public class PurpurConfig {
|
|
return config.getString(path, config.getString(path));
|
|
}
|
|
|
|
- public static String timingsUrl = "https://timings.pl3x.net";
|
|
- private static void timingsSettings() {
|
|
- timingsUrl = getString("settings.timings.url", timingsUrl);
|
|
- }
|
|
-
|
|
public static double laggingThreshold = 19.0D;
|
|
private static void tickLoopSettings() {
|
|
laggingThreshold = getDouble("settings.lagging-threshold", laggingThreshold);
|
|
@@ -172,4 +167,19 @@ public class PurpurConfig {
|
|
private static void fixItemPositionDesync() {
|
|
fixItemPositionDesync = getBoolean("settings.fix-item-position-desync", fixItemPositionDesync);
|
|
}
|
|
+
|
|
+ public static boolean allowInfinityMending = false;
|
|
+ private static void enchantmentSettings() {
|
|
+ if (version < 5) {
|
|
+ boolean oldValue = getBoolean("settings.enchantment.allow-infinite-and-mending-together", false);
|
|
+ set("settings.enchantment.allow-infinity-and-mending-together", oldValue);
|
|
+ set("settings.enchantment.allow-infinite-and-mending-together", null);
|
|
+ }
|
|
+ allowInfinityMending = getBoolean("settings.enchantment.allow-infinity-and-mending-together", allowInfinityMending);
|
|
+ }
|
|
+
|
|
+ public static boolean useHexColorsInConsole = true;
|
|
+ private static void loggerSettings() {
|
|
+ useHexColorsInConsole = getBoolean("settings.logger.hex-color-support-in-console", useHexColorsInConsole);
|
|
+ }
|
|
}
|
|
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java.rej b/src/main/java/net/pl3x/purpur/PurpurConfig.java.rej
|
|
deleted file mode 100644
|
|
index 59a692200527a94c1f67d7058579a08803089509..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java.rej
|
|
+++ /dev/null
|
|
@@ -1,18 +0,0 @@
|
|
-diff a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java (rejected hunks)
|
|
-@@ -194,6 +194,16 @@ public class PurpurConfig {
|
|
- cryingObsidianValidForPortalFrame = getBoolean("settings.blocks.crying_obsidian.valid-for-portal-frame", cryingObsidianValidForPortalFrame);
|
|
- }
|
|
-
|
|
-+ public static boolean allowInfinityMending = false;
|
|
-+ private static void enchantmentSettings() {
|
|
-+ if (version < 5) {
|
|
-+ boolean oldValue = getBoolean("settings.enchantment.allow-infinite-and-mending-together", false);
|
|
-+ set("settings.enchantment.allow-infinity-and-mending-together", oldValue);
|
|
-+ set("settings.enchantment.allow-infinite-and-mending-together", null);
|
|
-+ }
|
|
-+ allowInfinityMending = getBoolean("settings.enchantment.allow-infinity-and-mending-together", allowInfinityMending);
|
|
-+ }
|
|
-+
|
|
- public static boolean endermanShortHeight = false;
|
|
- private static void entitySettings() {
|
|
- endermanShortHeight = getBoolean("settings.entity.enderman.short-height", endermanShortHeight);
|
|
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
index 361f7857e461578e90cb71e15027dadaf794cb69..0432d0320aca70750759935c0f2bd2ef737a596f 100644
|
|
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
@@ -1,7 +1,14 @@
|
|
package net.pl3x.purpur;
|
|
|
|
+import java.util.ArrayList;
|
|
+import java.util.HashSet;
|
|
import org.bukkit.configuration.ConfigurationSection;
|
|
import java.util.List;
|
|
+import java.util.Set;
|
|
+import net.minecraft.server.Block;
|
|
+import net.minecraft.server.IRegistry;
|
|
+import net.minecraft.server.MinecraftKey;
|
|
+
|
|
import static net.pl3x.purpur.PurpurConfig.log;
|
|
|
|
public class PurpurWorldConfig {
|
|
@@ -56,4 +63,130 @@ public class PurpurWorldConfig {
|
|
PurpurConfig.config.addDefault("world-settings.default." + path, def);
|
|
return PurpurConfig.config.getString("world-settings." + worldName + "." + path, PurpurConfig.config.getString("world-settings.default." + path));
|
|
}
|
|
+
|
|
+ public int villagerBrainTicks = 1;
|
|
+ public boolean villagerUseBrainTicksOnlyWhenLagging = true;
|
|
+ public boolean villagerCanBeLeashed = false;
|
|
+ private void villagerSettings() {
|
|
+ villagerBrainTicks = getInt("mobs.villager.brain-ticks", villagerBrainTicks);
|
|
+ villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging);
|
|
+ villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed);
|
|
+ }
|
|
+
|
|
+ public boolean villagerTraderCanBeLeashed = false;
|
|
+ private void villagerTraderSettings() {
|
|
+ villagerTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", villagerTraderCanBeLeashed);
|
|
+ }
|
|
+
|
|
+ public boolean saveProjectilesToDisk = true;
|
|
+ public boolean milkCuresBadOmen = true;
|
|
+ public boolean persistentTileEntityDisplayNames = false;
|
|
+ private void miscGameplayMechanicsSettings() {
|
|
+ saveProjectilesToDisk = getBoolean("gameplay-mechanics.save-projectiles-to-disk", saveProjectilesToDisk);
|
|
+ milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen);
|
|
+ persistentTileEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-tileentity-display-names-and-lore", persistentTileEntityDisplayNames);
|
|
+ }
|
|
+
|
|
+ public boolean anvilAllowColors = false;
|
|
+ private void anvilSettings() {
|
|
+ anvilAllowColors = getBoolean("blocks.anvil.allow-colors", anvilAllowColors);
|
|
+ }
|
|
+
|
|
+ public int cowFeedMushrooms = 0;
|
|
+ private void cowSettings() {
|
|
+ cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms);
|
|
+ }
|
|
+
|
|
+ public boolean snowGolemDropsPumpkin = false;
|
|
+ public boolean snowGolemPutPumpkinBack = false;
|
|
+ private void snowGolemSettings() {
|
|
+ snowGolemDropsPumpkin = getBoolean("mobs.snow_golem.drop-pumpkin-when-sheared", snowGolemDropsPumpkin);
|
|
+ snowGolemPutPumpkinBack = getBoolean("mobs.snow_golem.pumpkin-can-be-added-back", snowGolemPutPumpkinBack);
|
|
+ }
|
|
+
|
|
+ public boolean farmlandGetsMoistFromBelow = false;
|
|
+ private void farmlandSettings() {
|
|
+ farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow);
|
|
+ }
|
|
+
|
|
+ public int entityLifeSpan = 0;
|
|
+ private void entitySettings() {
|
|
+ entityLifeSpan = getInt("gameplay-mechanics.entity-lifespan", entityLifeSpan);
|
|
+ }
|
|
+
|
|
+ public boolean squidImmuneToEAR = true;
|
|
+ public double squidOffsetWaterCheck = 0.0D;
|
|
+ private void squidSettings() {
|
|
+ squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR);
|
|
+ squidOffsetWaterCheck = getDouble("mobs.squid.water-offset-check", squidOffsetWaterCheck);
|
|
+ }
|
|
+
|
|
+ public Set<Block> noTickBlocks = new HashSet<>();
|
|
+ private void noTickBlocks() {
|
|
+ getList("blocks.no-tick", new ArrayList<>()).forEach(key -> {
|
|
+ Block block = IRegistry.BLOCK.get(new MinecraftKey(key.toString()));
|
|
+ if (!block.getBlockData().isAir()) {
|
|
+ noTickBlocks.add(block);
|
|
+ }
|
|
+ });
|
|
+ }
|
|
+
|
|
+ public boolean dolphinDisableTreasureSearching = false;
|
|
+ private void dolphinSettings() {
|
|
+ dolphinDisableTreasureSearching = getBoolean("mobs.dolphin.disable-treasure-searching", dolphinDisableTreasureSearching);
|
|
+ }
|
|
+
|
|
+ public boolean turtleEggsBreakFromExpOrbs = true;
|
|
+ public boolean turtleEggsBreakFromItems = true;
|
|
+ public boolean turtleEggsBreakFromMinecarts = true;
|
|
+ private void turtleEggSettings() {
|
|
+ turtleEggsBreakFromExpOrbs = getBoolean("blocks.turtle_egg.break-from-exp-orbs", turtleEggsBreakFromExpOrbs);
|
|
+ turtleEggsBreakFromItems = getBoolean("blocks.turtle_egg.break-from-items", turtleEggsBreakFromItems);
|
|
+ turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts);
|
|
+ }
|
|
+
|
|
+ public int dragonFireballDespawnRate = -1;
|
|
+ public int eggDespawnRate = -1;
|
|
+ public int enderPearlDespawnRate = -1;
|
|
+ public int expBottleDespawnRate = -1;
|
|
+ public int fireworkDespawnRate = -1;
|
|
+ public int fishingHookDespawnRate = -1;
|
|
+ public int largeFireballDespawnRate = -1;
|
|
+ public int llamaSpitDespawnRate = -1;
|
|
+ public int potionDespawnRate = -1;
|
|
+ public int shulkerBulletDespawnRate = -1;
|
|
+ public int smallFireballDespawnRate = -1;
|
|
+ public int snowballDespawnRate = -1;
|
|
+ public int witherSkullDespawnRate = -1;
|
|
+ private void projectileDespawnRateSettings() {
|
|
+ dragonFireballDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.dragon_fireball", dragonFireballDespawnRate);
|
|
+ eggDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.egg", eggDespawnRate);
|
|
+ enderPearlDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.ender_pearl", enderPearlDespawnRate);
|
|
+ expBottleDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.experience_bottle", expBottleDespawnRate);
|
|
+ fireworkDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.firework_rocket", fireworkDespawnRate);
|
|
+ fishingHookDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.fishing_bobber", fishingHookDespawnRate);
|
|
+ largeFireballDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.fireball", largeFireballDespawnRate);
|
|
+ llamaSpitDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.llama_spit", llamaSpitDespawnRate);
|
|
+ potionDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.potion", potionDespawnRate);
|
|
+ shulkerBulletDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.shulker_bullet", shulkerBulletDespawnRate);
|
|
+ smallFireballDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.small_fireball", smallFireballDespawnRate);
|
|
+ snowballDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.snowball", snowballDespawnRate);
|
|
+ witherSkullDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.wither_skull", witherSkullDespawnRate);
|
|
+ }
|
|
+
|
|
+ public boolean infinityWorksWithNormalArrows = true;
|
|
+ public boolean infinityWorksWithSpectralArrows = false;
|
|
+ public boolean infinityWorksWithTippedArrows = false;
|
|
+ private void infinityArrowsSettings() {
|
|
+ infinityWorksWithNormalArrows = getBoolean("gameplay-mechanics.infinity-bow.normal-arrows", infinityWorksWithNormalArrows);
|
|
+ infinityWorksWithSpectralArrows = getBoolean("gameplay-mechanics.infinity-bow.spectral-arrows", infinityWorksWithSpectralArrows);
|
|
+ infinityWorksWithTippedArrows = getBoolean("gameplay-mechanics.infinity-bow.tipped-arrows", infinityWorksWithTippedArrows);
|
|
+ }
|
|
+
|
|
+ public boolean signAllowColors = false;
|
|
+ public boolean signRightClickEdit = false;
|
|
+ private void signSettings() {
|
|
+ signAllowColors = getBoolean("blocks.sign.allow-colors", signAllowColors);
|
|
+ signRightClickEdit = getBoolean("blocks.sign.right-click-edit", signRightClickEdit);
|
|
+ }
|
|
}
|
|
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java.rej b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java.rej
|
|
deleted file mode 100644
|
|
index f8757d6440fd513860d0c908c011f0833c486be8..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java.rej
|
|
+++ /dev/null
|
|
@@ -1,17 +0,0 @@
|
|
-diff a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java (rejected hunks)
|
|
-@@ -147,6 +147,15 @@ public class PurpurWorldConfig {
|
|
- idleTimeoutUpdateTabList = getBoolean("gameplay-mechanics.player.idle-timeout.update-tab-list", idleTimeoutUpdateTabList);
|
|
- }
|
|
-
|
|
-+ public boolean infinityWorksWithNormalArrows = true;
|
|
-+ public boolean infinityWorksWithSpectralArrows = false;
|
|
-+ public boolean infinityWorksWithTippedArrows = false;
|
|
-+ private void infinityArrowsSettings() {
|
|
-+ infinityWorksWithNormalArrows = getBoolean("gameplay-mechanics.infinity-bow.normal-arrows", infinityWorksWithNormalArrows);
|
|
-+ infinityWorksWithSpectralArrows = getBoolean("gameplay-mechanics.infinity-bow.spectral-arrows", infinityWorksWithSpectralArrows);
|
|
-+ infinityWorksWithTippedArrows = getBoolean("gameplay-mechanics.infinity-bow.tipped-arrows", infinityWorksWithTippedArrows);
|
|
-+ }
|
|
-+
|
|
- public int dragonFireballDespawnRate = -1;
|
|
- public int eggDespawnRate = -1;
|
|
- public int enderPearlDespawnRate = -1;
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
index 1ed00fb04c8c8b5a823894a4c3df8f2eca4dd5ad..6c7eabe57ade13d9ac2a2bbfc406fcf73553bd78 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
@@ -858,6 +858,7 @@ public final class CraftServer implements Server {
|
|
com.destroystokyo.paper.PaperConfig.init((File) console.options.valueOf("paper-settings")); // Paper
|
|
com.tuinity.tuinity.config.TuinityConfig.init((File) console.options.valueOf("tuinity-settings")); // Tuinity - Server Config
|
|
net.pl3x.purpur.PurpurConfig.init((File) console.options.valueOf("purpur-settings")); // Purpur
|
|
+ de.minebench.origami.OrigamiConfig.init((File) console.options.valueOf("origami-settings")); // Origami
|
|
for (WorldServer world : console.getWorlds()) {
|
|
world.worldDataServer.setDifficulty(config.difficulty);
|
|
world.setSpawnFlags(config.spawnMonsters, config.spawnAnimals);
|
|
@@ -894,6 +895,7 @@ public final class CraftServer implements Server {
|
|
world.paperConfig.init(); // Paper
|
|
world.tuinityConfig.init(); // Tuinity - Server Config
|
|
world.purpurConfig.init(); // Purpur
|
|
+ world.origamiConfig.init(); // Origami
|
|
}
|
|
|
|
Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper
|
|
@@ -2301,6 +2303,13 @@ public final class CraftServer implements Server {
|
|
}
|
|
// Purpur end
|
|
|
|
+ // Origami start
|
|
+ @Override
|
|
+ public YamlConfiguration getOrigamiConfig() {
|
|
+ return de.minebench.origami.OrigamiConfig.config;
|
|
+ }
|
|
+ // Origami end
|
|
+
|
|
@Override
|
|
public void restart() {
|
|
org.spigotmc.RestartCommand.restart();
|
|
@@ -2438,4 +2447,11 @@ public final class CraftServer implements Server {
|
|
return mobGoals;
|
|
}
|
|
// Paper end
|
|
+
|
|
+ // Purpur start
|
|
+ @Override
|
|
+ public boolean isLagging() {
|
|
+ return getServer().lagging;
|
|
+ }
|
|
+ // Purpur end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java.rej b/src/main/java/org/bukkit/craftbukkit/CraftServer.java.rej
|
|
deleted file mode 100644
|
|
index 1f7601aede1b8460f48ebaae18b9c5b68bc044c8..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java.rej
|
|
+++ /dev/null
|
|
@@ -1,12 +0,0 @@
|
|
-diff a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java (rejected hunks)
|
|
-@@ -2443,5 +2443,10 @@ public final class CraftServer implements Server {
|
|
- public String getServerName() {
|
|
- return getProperties().serverName;
|
|
- }
|
|
-+
|
|
-+ @Override
|
|
-+ public boolean isLagging() {
|
|
-+ return getServer().lagging;
|
|
-+ }
|
|
- // Purpur end
|
|
- }
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
|
|
index 210cb10ea75b99d3b5d7b5bce5cea44e3cc0fc20..62012d2b780d3399bd641ca3ca4a4ac127e3bcb5 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
|
|
@@ -154,6 +154,14 @@ public class Main {
|
|
.describedAs("Yml file");
|
|
// Purpur end
|
|
|
|
+ // Origami start
|
|
+ acceptsAll(asList("origami", "origami-settings"), "File for origami settings")
|
|
+ .withRequiredArg()
|
|
+ .ofType(File.class)
|
|
+ .defaultsTo(new File("origami.yml"))
|
|
+ .describedAs("Yml file");
|
|
+ // Origami end
|
|
+
|
|
// Paper start
|
|
acceptsAll(asList("server-name"), "Name of the server")
|
|
.withRequiredArg()
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java.rej b/src/main/java/org/bukkit/craftbukkit/Main.java.rej
|
|
deleted file mode 100644
|
|
index 27a6c3279b77f24edcea24f3a01559145d2f4da1..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/org/bukkit/craftbukkit/Main.java.rej
|
|
+++ /dev/null
|
|
@@ -1,16 +0,0 @@
|
|
-diff a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java (rejected hunks)
|
|
-@@ -139,6 +139,14 @@ public class Main {
|
|
- .describedAs("Yml file");
|
|
- // Paper end
|
|
-
|
|
-+ // Origami Start - Server Config
|
|
-+ acceptsAll(asList("origami", "origami-settings"), "File for origami settings")
|
|
-+ .withRequiredArg()
|
|
-+ .ofType(File.class)
|
|
-+ .defaultsTo(new File("origami.yml"))
|
|
-+ .describedAs("Yml file");
|
|
-+ // Origami end - Server Config
|
|
-+
|
|
- // Paper start
|
|
- acceptsAll(asList("server-name"), "Name of the server")
|
|
- .withRequiredArg()
|