make macing/shield mechanic even more OP and add testserver
Some checks failed
Compile / gradle (ubuntu-latest) (push) Has been cancelled

This commit is contained in:
Justus Wolff
2026-03-05 15:44:16 +01:00
parent eab7fc2380
commit b553e36819
310 changed files with 90910 additions and 31 deletions

Binary file not shown.

View File

@@ -57,6 +57,7 @@ public class LegacyAgent extends Agent {
private double regionWeightX; private double regionWeightX;
private double regionWeightY; private double regionWeightY;
private double regionWeightZ; private double regionWeightZ;
private boolean waitformace = false;
public static final Set<EntityType> CUSTOM_MOB_LIST = new HashSet<>(); public static final Set<EntityType> CUSTOM_MOB_LIST = new HashSet<>();
public static CustomListMode customListMode = CustomListMode.CUSTOM; public static CustomListMode customListMode = CustomListMode.CUSTOM;
@@ -131,6 +132,9 @@ public class LegacyAgent extends Agent {
return; return;
} else if (bot.getVelocity().getY() < 0 || bot.isFalling()) { } else if (bot.getVelocity().getY() < 0 || bot.isFalling()) {
tryWindchargeMaceAttack(bot, livingTarget, false); tryWindchargeMaceAttack(bot, livingTarget, false);
} else if (bot.getLocation().getY() > livingTarget.getLocation().getY() && bot.getLocation().distanceSquared(livingTarget.getLocation()) <= 4 && macemode(bot)) {
bot.jump();
macesmash(bot, livingTarget, false, 2.5);
} }
blockCheck.clutch(bot, livingTarget); blockCheck.clutch(bot, livingTarget);
@@ -150,7 +154,7 @@ public class LegacyAgent extends Agent {
} }
if (entholdsmace(livingTarget) && livingTarget.getLocation().getY() > bot.getLocation().getY()) { if (entholdsmace(livingTarget) && livingTarget.getLocation().getY() > bot.getLocation().getY()) {
bot.block(10, 10); bot.block(10, 0);
} }
if (bot.tickDelay(3) && !miningAnim.containsKey(botPlayer)) { if (bot.tickDelay(3) && !miningAnim.containsKey(botPlayer)) {
Location botEyeLoc = botPlayer.getEyeLocation(); Location botEyeLoc = botPlayer.getEyeLocation();
@@ -204,7 +208,9 @@ public class LegacyAgent extends Agent {
if (checkDown(bot, botPlayer, livingTarget.getLocation(), bothXZ)) return; if (checkDown(bot, botPlayer, livingTarget.getLocation(), bothXZ)) return;
if ((withinTargetXZ || sameXZ) && checkUp(bot, livingTarget, botPlayer, target, withinTargetXZ, sameXZ)) return; if ((withinTargetXZ || sameXZ) && entholdsmace(livingTarget) && livingTarget.getLocation().getY() > bot.getLocation().getY() && bot.getLocation().distanceSquared(livingTarget.getLocation()) > 5) {
if (checkUp(bot, livingTarget, botPlayer, target, withinTargetXZ, sameXZ)) return;
}
if (bothXZ) sideResult = checkSide(bot, livingTarget, botPlayer); if (bothXZ) sideResult = checkSide(bot, livingTarget, botPlayer);
@@ -1475,7 +1481,41 @@ public class LegacyAgent extends Agent {
return tryWindchargeMaceAttack(bot, target, true); return tryWindchargeMaceAttack(bot, target, true);
} }
private void macesmash(Terminator bot, LivingEntity target, boolean setwaitmace, double extradmg) {
bot.setItem(bot.getDefaultItem());
bot.faceLocation(target.getLocation());
bot.punch();
World world = bot.getBukkitEntity().getWorld();
if (bot.getLocation().distanceSquared(target.getLocation()) <= 5) {
double exdmg = extradmg;
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> {
bot.attack(target, exdmg); // apply damage only if within range
// effect stuff
if (world != null && exdmg > 0) {
bot.setVelocity(bot.getVelocity().setY(0.1)); // no fall damage
// schedule next mace attempt to make a streak potentially
if (setwaitmace) waitformace = false;
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> {tryWindchargeMaceAttack(bot, target);}, 0);
world.playSound(bot.getLocation(), Sound.ITEM_MACE_SMASH_GROUND, SoundCategory.PLAYERS, 1, 1);
world.spawnParticle(Particle.EXPLOSION, target.getLocation(), 10, 0.5, 0.5, 0.5, 0.1);
} else {
if (setwaitmace) waitformace = false;
//Bukkit.getLogger().info("exdmg !> 0");
}
}, 1);
} else {
if (setwaitmace) waitformace = false;
//Bukkit.getLogger().info("Bot out of range.");
}
}
private boolean tryWindchargeMaceAttack(Terminator bot, LivingEntity target, boolean attemptwindcharge) { private boolean tryWindchargeMaceAttack(Terminator bot, LivingEntity target, boolean attemptwindcharge) {
if (waitformace) return false;
LivingEntity botEntity = bot.getBukkitEntity(); LivingEntity botEntity = bot.getBukkitEntity();
if (botEntity == null) { if (botEntity == null) {
return false; return false;
@@ -1497,6 +1537,7 @@ public class LegacyAgent extends Agent {
if (attemptwindcharge) if (attemptwindcharge)
if (!useWindcharge(bot)) return false; if (!useWindcharge(bot)) return false;
waitformace = true;
Bukkit.getScheduler().scheduleAsyncDelayedTask(plugin, () -> { Bukkit.getScheduler().scheduleAsyncDelayedTask(plugin, () -> {
while (!bot.isBotOnGround() && bot.getLocation().distanceSquared(target.getLocation()) > 3) {} while (!bot.isBotOnGround() && bot.getLocation().distanceSquared(target.getLocation()) > 3) {}
@@ -1517,32 +1558,7 @@ public class LegacyAgent extends Agent {
falldist = clamp(falldist-5,0,Double.MAX_VALUE); falldist = clamp(falldist-5,0,Double.MAX_VALUE);
extradmg += falldist; // remaining blocks handling extradmg += falldist; // remaining blocks handling
} }
bot.setItem(bot.getDefaultItem()); macesmash(bot, target, true, extradmg);
bot.faceLocation(target.getLocation());
bot.punch();
World world = bot.getBukkitEntity().getWorld();
if (bot.getLocation().distanceSquared(target.getLocation()) <= 5) {
double exdmg = extradmg;
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> {
bot.attack(target, exdmg); // apply damage only if within range
// effect stuff
if (world != null && exdmg > 0) {
bot.setVelocity(bot.getVelocity().setY(0.1)); // no fall damage
// schedule next mace attempt to make a streak potentially
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> {tryWindchargeMaceAttack(bot, target);}, 0);
world.playSound(bot.getLocation(), Sound.ITEM_MACE_SMASH_GROUND, SoundCategory.PLAYERS, 1, 1);
world.spawnParticle(Particle.EXPLOSION, target.getLocation(), 10, 0.5, 0.5, 0.5, 0.1);
} else {
//Bukkit.getLogger().info("exdmg !> 0");
}
}, 1);
} else {
//Bukkit.getLogger().info("Bot out of range.");
}
}, 0); }, 0);
}, attemptwindcharge ? 8 : 0); }, attemptwindcharge ? 8 : 0);

View File

@@ -1,2 +1,2 @@
Command: C:\Program Files\Java\jdk-21.0.10\bin\java.exe -Xmx1G -classpath C:\Users\JUFS-STL-SECONDARY\.gradle\caches\modules-2\files-2.1\net.fabricmc\tiny-remapper\0.12.0\bfb93e1bfb66d47272ccd37ce894dcfc20ba0b6\tiny-remapper-0.12.0-fat.jar net.fabricmc.tinyremapper.Main C:\Users\JUFS-STL-SECONDARY\Desktop\terminatorplus\TerminatorPlus-Plugin\build\libs\TerminatorPlus-Plugin-4.5.1-BETA.jar C:\Users\JUFS-STL-SECONDARY\Desktop\terminatorplus\TerminatorPlus-Plugin\build\libs\TerminatorPlus-Plugin-4.5.1-BETA-reobf.jar C:\Users\JUFS-STL-SECONDARY\Desktop\terminatorplus\TerminatorPlus-Plugin\.gradle\caches\paperweight\taskCache\reobfMappings.tiny mojang spigot C:\Users\JUFS-STL-SECONDARY\Desktop\terminatorplus\TerminatorPlus-Plugin\.gradle\caches\paperweight\taskCache\mappedServerJar.jar --threads=1 Command: C:\Program Files\Java\jdk-21.0.10\bin\java.exe -Xmx1G -classpath C:\Users\JUFS-STL-SECONDARY\.gradle\caches\modules-2\files-2.1\net.fabricmc\tiny-remapper\0.12.0\bfb93e1bfb66d47272ccd37ce894dcfc20ba0b6\tiny-remapper-0.12.0-fat.jar net.fabricmc.tinyremapper.Main C:\Users\JUFS-STL-SECONDARY\Desktop\terminatorplus\TerminatorPlus-Plugin\build\libs\TerminatorPlus-Plugin-4.5.1-BETA.jar C:\Users\JUFS-STL-SECONDARY\Desktop\terminatorplus\TerminatorPlus-Plugin\build\libs\TerminatorPlus-Plugin-4.5.1-BETA-reobf.jar C:\Users\JUFS-STL-SECONDARY\Desktop\terminatorplus\TerminatorPlus-Plugin\.gradle\caches\paperweight\taskCache\reobfMappings.tiny mojang spigot C:\Users\JUFS-STL-SECONDARY\Desktop\terminatorplus\TerminatorPlus-Plugin\.gradle\caches\paperweight\taskCache\mappedServerJar.jar --threads=1
[INFO] Finished after 1790.62 ms. [INFO] Finished after 1637.01 ms.

View File

@@ -166,7 +166,6 @@ public class BotManagerImpl implements BotManager, Listener {
if (botNetwork != null) { if (botNetwork != null) {
bot.setNeuralNetwork(botNetwork == NeuralNetwork.RANDOM ? NeuralNetwork.generateRandomNetwork() : botNetwork); bot.setNeuralNetwork(botNetwork == NeuralNetwork.RANDOM ? NeuralNetwork.generateRandomNetwork() : botNetwork);
bot.setShield(true);
bot.setDefaultItem(new ItemStack(Material.WOODEN_AXE)); bot.setDefaultItem(new ItemStack(Material.WOODEN_AXE));
//bot.setRemoveOnDeath(false); //bot.setRemoveOnDeath(false);
} }
@@ -177,6 +176,11 @@ public class BotManagerImpl implements BotManager, Listener {
bot.setVelocity(randomVelocity().multiply(f)); bot.setVelocity(randomVelocity().multiply(f));
} }
final TerminatorPlus plugin = TerminatorPlus.getInstance();
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> {
bot.setShield(true);
}, 100);
bots.add(bot); bots.add(bot);
i++; i++;
} }

View File

@@ -4,6 +4,7 @@ import com.mojang.authlib.GameProfile;
import net.citizensnpcs.api.CitizensAPI; import net.citizensnpcs.api.CitizensAPI;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.trait.SkinTrait; import net.citizensnpcs.trait.SkinTrait;
import net.minecraft.server.level.ServerPlayer;
import net.nuggetmc.tplus.TerminatorPlus; import net.nuggetmc.tplus.TerminatorPlus;
import net.nuggetmc.tplus.api.Terminator; import net.nuggetmc.tplus.api.Terminator;
import net.nuggetmc.tplus.api.agent.Agent; import net.nuggetmc.tplus.api.agent.Agent;
@@ -17,6 +18,7 @@ import org.bukkit.*;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.block.BlockFace; import org.bukkit.block.BlockFace;
import org.bukkit.block.data.Waterlogged; import org.bukkit.block.data.Waterlogged;
import org.bukkit.craftbukkit.entity.CraftPlayer;
import org.bukkit.enchantments.Enchantment; import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Damageable; import org.bukkit.entity.Damageable;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
@@ -117,7 +119,7 @@ public class CitizensNPC implements Terminator {
} catch (Exception e) { } catch (Exception e) {
Bukkit.getServer().getLogger().warning("Failed to get skin: "+e.getMessage()+Arrays.toString(e.getStackTrace())); Bukkit.getServer().getLogger().warning("Failed to get skin: "+e.getMessage()+Arrays.toString(e.getStackTrace()));
} }
// Register with bot manager // Register with bot manager
TerminatorPlus.getInstance().getManager().add(citizensNPC); TerminatorPlus.getInstance().getManager().add(citizensNPC);
@@ -227,11 +229,20 @@ public class CitizensNPC implements Terminator {
private void startBlocking() { private void startBlocking() {
this.blocking = true; this.blocking = true;
this.blockUse = true; this.blockUse = true;
// start blocking ingame
Player bukkitPlayer = (Player)getBukkitEntity();
CraftPlayer craftPlayer = (CraftPlayer) bukkitPlayer;
ServerPlayer handle = craftPlayer.getHandle();
handle.startUsingItem(net.minecraft.world.InteractionHand.OFF_HAND);
} }
private void stopBlocking(int cooldown) { private void stopBlocking(int cooldown) {
this.blocking = false; this.blocking = false;
scheduler.runTaskLater(plugin, () -> this.blockUse = false, cooldown); scheduler.runTaskLater(plugin, () -> this.blockUse = false, cooldown);
Player bukkitPlayer = (Player)getBukkitEntity();
CraftPlayer craftPlayer = (CraftPlayer) bukkitPlayer;
ServerPlayer handle = craftPlayer.getHandle();
handle.stopUsingItem();
} }
@Override @Override

Binary file not shown.

1
testserv/banned-ips.json Normal file
View File

@@ -0,0 +1 @@
[]

View File

@@ -0,0 +1 @@
[]

43
testserv/bukkit.yml Normal file
View File

@@ -0,0 +1,43 @@
# This is the Bukkit configuration file in Paper.
# As you can see, there's actually not that much to configure without any plugins.
#
# If you need help with the configuration or have any questions related to Paper,
# join us in our Discord or check the docs page.
#
# File Reference: https://docs.papermc.io/paper/reference/bukkit-configuration/
# Docs: https://docs.papermc.io/
# Discord: https://discord.gg/papermc
# Website: https://papermc.io/
settings:
allow-end: true
warn-on-overload: true
permissions-file: permissions.yml
update-folder: update
plugin-profiling: false
connection-throttle: 4000
query-plugins: true
deprecated-verbose: default
shutdown-message: Server closed
minimum-api: none
use-map-color-cache: true
spawn-limits:
monsters: 70
animals: 10
water-animals: 5
water-ambient: 20
water-underground-creature: 5
axolotls: 5
ambient: 15
chunk-gc:
period-in-ticks: 600
ticks-per:
animal-spawns: 400
monster-spawns: 1
water-spawns: 1
water-ambient-spawns: 1
water-underground-creature-spawns: 1
axolotl-spawns: 1
ambient-spawns: 1
autosave: 6000
aliases: now-in-commands.yml

BIN
testserv/cache/mojang_1.21.11.jar vendored Normal file

Binary file not shown.

15
testserv/commands.yml Normal file
View File

@@ -0,0 +1,15 @@
# This is the Bukkit commands configuration file for Paper.
#
# If you need help with the configuration or have any questions related to Paper,
# join us in our Discord or check the docs page.
#
# File Reference: https://docs.papermc.io/paper/reference/bukkit-commands-configuration/
# Docs: https://docs.papermc.io/
# Discord: https://discord.gg/papermc
# Website: https://papermc.io/
command-block-overrides: []
ignore-vanilla-permissions: false
aliases:
icanhasbukkit:
- version $1-

View File

@@ -0,0 +1,148 @@
# This is the global configuration file for Paper.
# As you can see, there's a lot to configure. Some options may impact gameplay, so use
# with caution, and make sure you know what each option does before configuring.
#
# If you need help with the configuration or have any questions related to Paper,
# join us in our Discord or check the docs page.
#
# The world configuration options have been moved inside
# their respective world folder. The files are named paper-world.yml
#
# File Reference: https://docs.papermc.io/paper/reference/global-configuration/
# Docs: https://docs.papermc.io/
# Discord: https://discord.gg/papermc
# Website: https://papermc.io/
_version: 31
anticheat:
obfuscation:
items:
all-models:
also-obfuscate: []
dont-obfuscate:
- minecraft:lodestone_tracker
sanitize-count: true
enable-item-obfuscation: false
model-overrides:
minecraft:elytra:
also-obfuscate: []
dont-obfuscate:
- minecraft:damage
sanitize-count: true
block-updates:
disable-chorus-plant-updates: false
disable-mushroom-block-updates: false
disable-noteblock-updates: false
disable-tripwire-updates: false
chunk-loading-advanced:
auto-config-send-distance: true
player-max-concurrent-chunk-generates: 0
player-max-concurrent-chunk-loads: 0
chunk-loading-basic:
player-max-chunk-generate-rate: -1.0
player-max-chunk-load-rate: 100.0
player-max-chunk-send-rate: 75.0
chunk-system:
io-threads: -1
worker-threads: -1
collisions:
enable-player-collisions: true
send-full-pos-for-hard-colliding-entities: true
commands:
ride-command-allow-player-as-vehicle: false
suggest-player-names-when-null-tab-completions: true
time-command-affects-all-worlds: false
console:
enable-brigadier-completions: true
enable-brigadier-highlighting: true
has-all-permissions: false
item-validation:
book:
author: 8192
page: 16384
title: 8192
book-size:
page-max: 2560
total-multiplier: 0.98
display-name: 8192
lore-line: 8192
resolve-selectors-in-books: false
logging:
deobfuscate-stacktraces: true
messages:
kick:
authentication-servers-down: <lang:multiplayer.disconnect.authservers_down>
connection-throttle: Connection throttled! Please wait before reconnecting.
flying-player: <lang:multiplayer.disconnect.flying>
flying-vehicle: <lang:multiplayer.disconnect.flying>
no-permission: <red>I'm sorry, but you do not have permission to perform this command.
Please contact the server administrators if you believe that this is in error.
use-display-name-in-quit-message: false
misc:
chat-threads:
chat-executor-core-size: -1
chat-executor-max-size: -1
client-interaction-leniency-distance: default
compression-level: default
enable-nether: true
fix-far-end-terrain-generation: true
load-permissions-yml-before-plugins: true
max-joins-per-tick: 5
prevent-negative-villager-demand: false
region-file-cache-size: 256
send-full-pos-for-item-entities: false
strict-advancement-dimension-check: false
use-alternative-luck-formula: false
use-dimension-type-for-custom-spawners: false
xp-orb-groups-per-area: default
packet-limiter:
all-packets:
action: KICK
interval: 7.0
max-packet-rate: 500.0
kick-message: <red><lang:disconnect.exceeded_packet_rate>
overrides:
minecraft:place_recipe:
action: DROP
interval: 4.0
max-packet-rate: 5.0
player-auto-save:
max-per-tick: -1
rate: -1
proxies:
bungee-cord:
online-mode: true
proxy-protocol: false
velocity:
enabled: false
online-mode: true
secret: ''
scoreboards:
save-empty-scoreboard-teams: true
track-plugin-scoreboards: false
spam-limiter:
incoming-packet-threshold: 300
recipe-spam-increment: 1
recipe-spam-limit: 20
tab-spam-increment: 1
tab-spam-limit: 500
spark:
enable-immediately: false
enabled: true
unsupported-settings:
allow-headless-pistons: false
allow-permanent-block-break-exploits: false
allow-piston-duplication: false
allow-unsafe-end-portal-teleportation: false
compression-format: ZLIB
oversized-item-component-sanitizer:
dont-sanitize: []
perform-username-validation: true
skip-tripwire-hook-placement-validation: false
skip-vanilla-damage-tick-when-shield-blocked: false
update-equipment-on-player-actions: true
update-checker:
enabled: true
watchdog:
early-warning-delay: 10000
early-warning-every: 5000

View File

@@ -0,0 +1,320 @@
# This is the world defaults configuration file for Paper.
# As you can see, there's a lot to configure. Some options may impact gameplay, so use
# with caution, and make sure you know what each option does before configuring.
#
# If you need help with the configuration or have any questions related to Paper,
# join us in our Discord or check the docs page.
#
# Configuration options here apply to all worlds, unless you specify overrides inside
# the world-specific config file inside each world folder.
#
# File Reference: https://docs.papermc.io/paper/reference/world-configuration/
# Docs: https://docs.papermc.io/
# Discord: https://discord.gg/papermc
# Website: https://papermc.io/
_version: 31
anticheat:
anti-xray:
enabled: false
engine-mode: 1
hidden-blocks:
- copper_ore
- deepslate_copper_ore
- raw_copper_block
- gold_ore
- deepslate_gold_ore
- iron_ore
- deepslate_iron_ore
- raw_iron_block
- coal_ore
- deepslate_coal_ore
- lapis_ore
- deepslate_lapis_ore
- mossy_cobblestone
- obsidian
- chest
- diamond_ore
- deepslate_diamond_ore
- redstone_ore
- deepslate_redstone_ore
- clay
- emerald_ore
- deepslate_emerald_ore
- ender_chest
lava-obscures: false
max-block-height: 64
replacement-blocks:
- stone
- oak_planks
- deepslate
update-radius: 2
use-permission: false
chunks:
auto-save-interval: default
delay-chunk-unloads-by: 10s
entity-per-chunk-save-limit:
arrow: -1
ender_pearl: -1
experience_orb: -1
fireball: -1
small_fireball: -1
snowball: -1
fixed-chunk-inhabited-time: -1
flush-regions-on-save: false
max-auto-save-chunks-per-tick: 24
prevent-moving-into-unloaded-chunks: false
collisions:
allow-player-cramming-damage: false
allow-vehicle-collisions: true
fix-climbing-bypassing-cramming-rule: false
max-entity-collisions: 8
only-players-collide: false
command-blocks:
force-follow-perm-level: true
permissions-level: 2
entities:
armor-stands:
do-collision-entity-lookups: true
tick: true
behavior:
allow-spider-world-border-climbing: true
baby-zombie-movement-modifier: 0.5
cooldown-failed-beehive-releases: true
disable-chest-cat-detection: false
disable-creeper-lingering-effect: false
disable-player-crits: false
door-breaking-difficulty:
husk:
- HARD
vindicator:
- NORMAL
- HARD
zombie:
- HARD
zombie_villager:
- HARD
zombified_piglin:
- HARD
ender-dragons-death-always-places-dragon-egg: false
experience-merge-max-value: -1
mobs-can-always-pick-up-loot:
skeletons: false
zombies: false
nerf-pigmen-from-nether-portals: false
only-merge-items-horizontally: false
parrots-are-unaffected-by-player-movement: false
phantoms-do-not-spawn-on-creative-players: true
phantoms-only-attack-insomniacs: true
phantoms-spawn-attempt-max-seconds: 119
phantoms-spawn-attempt-min-seconds: 60
piglins-guard-chests: true
pillager-patrols:
disable: false
spawn-chance: 0.2
spawn-delay:
per-player: false
ticks: 12000
start:
day: 5
per-player: false
player-insomnia-start-ticks: 72000
should-remove-dragon: false
spawner-nerfed-mobs-should-jump: false
stuck-entity-poi-retry-delay: 200
zombie-villager-infection-chance: default
zombies-target-turtle-eggs: true
markers:
tick: true
mob-effects:
immune-to-wither-effect:
wither: true
wither-skeleton: true
spiders-immune-to-poison-effect: true
sniffer:
boosted-hatch-time: default
hatch-time: default
spawning:
all-chunks-are-slime-chunks: false
alt-item-despawn-rate:
enabled: false
items:
cobblestone: 300
count-all-mobs-for-spawning: false
creative-arrow-despawn-rate: default
despawn-range-shape: ELLIPSOID
despawn-ranges:
ambient:
hard: default
soft: default
axolotls:
hard: default
soft: default
creature:
hard: default
soft: default
misc:
hard: default
soft: default
monster:
hard: default
soft: default
underground_water_creature:
hard: default
soft: default
water_ambient:
hard: default
soft: default
water_creature:
hard: default
soft: default
despawn-time:
llama_spit: disabled
snowball: disabled
disable-mob-spawner-spawn-egg-transformation: false
duplicate-uuid:
mode: SAFE_REGEN
safe-regen-delete-range: 32
filter-bad-tile-entity-nbt-from-falling-blocks: true
filtered-entity-tag-nbt-paths:
- Pos
- Motion
- sleeping_pos
iron-golems-can-spawn-in-air: false
max-arrow-despawn-invulnerability: 200
monster-spawn-max-light-level: default
non-player-arrow-despawn-rate: default
per-player-mob-spawns: true
scan-for-legacy-ender-dragon: true
skeleton-horse-thunder-spawn-chance: default
slime-spawn-height:
slime-chunk:
maximum: 40.0
surface-biome:
maximum: 70.0
minimum: 50.0
spawn-limits:
ambient: -1
axolotls: -1
creature: -1
monster: -1
underground_water_creature: -1
water_ambient: -1
water_creature: -1
ticks-per-spawn:
ambient: -1
axolotls: -1
creature: -1
monster: -1
underground_water_creature: -1
water_ambient: -1
water_creature: -1
wandering-trader:
spawn-chance-failure-increment: 25
spawn-chance-max: 75
spawn-chance-min: 25
spawn-day-length: 24000
spawn-minute-length: 1200
wateranimal-spawn-height:
maximum: default
minimum: default
tracking-range-y:
animal: default
display: default
enabled: false
misc: default
monster: default
other: default
player: default
environment:
disable-explosion-knockback: false
disable-ice-and-snow: false
disable-thunder: false
fire-tick-delay: 30
frosted-ice:
delay:
max: 40
min: 20
enabled: true
generate-flat-bedrock: false
locate-structures-outside-world-border: false
max-block-ticks: 65536
max-fluid-ticks: 65536
nether-ceiling-void-damage-height: disabled
optimize-explosions: false
portal-create-radius: 16
portal-search-radius: 128
portal-search-vanilla-dimension-scaling: true
treasure-maps:
enabled: true
find-already-discovered:
loot-tables: default
villager-trade: false
void-damage-amount: 4.0
void-damage-min-build-height-offset: -64.0
water-over-lava-flow-speed: 5
feature-seeds:
generate-random-seeds-for-all: false
fishing-time-range:
maximum: 600
minimum: 100
fixes:
disable-unloaded-chunk-enderpearl-exploit: false
falling-block-height-nerf: disabled
fix-items-merging-through-walls: false
prevent-tnt-from-moving-in-water: false
split-overstacked-loot: true
tnt-entity-height-nerf: disabled
hopper:
cooldown-when-full: true
disable-move-event: false
ignore-occluding-blocks: false
lootables:
auto-replenish: false
max-refills: -1
refresh-max: 2d
refresh-min: 12h
reset-seed-on-fill: true
restrict-player-reloot: true
restrict-player-reloot-time: disabled
retain-unlooted-shulker-box-loot-table-on-non-player-break: true
maps:
item-frame-cursor-limit: 128
item-frame-cursor-update-interval: 10
max-growth-height:
bamboo:
max: 16
min: 11
cactus: 3
reeds: 3
misc:
allow-remote-ender-dragon-respawning: false
alternate-current-update-order: HORIZONTAL_FIRST_OUTWARD
disable-end-credits: false
disable-relative-projectile-velocity: false
disable-sprint-interruption-on-attack: false
legacy-ender-pearl-behavior: false
max-leash-distance: default
redstone-implementation: VANILLA
show-sign-click-command-failure-msgs-to-player: false
update-pathfinding-on-block-update: true
scoreboards:
allow-non-player-entities-on-scoreboards: true
use-vanilla-world-scoreboard-name-coloring: false
spawn:
allow-using-signs-inside-spawn-protection: false
tick-rates:
behavior:
villager:
validatenearbypoi: -1
container-update: 1
dry-farmland: 1
grass-spread: 1
mob-spawner: 1
sensor:
villager:
secondarypoisensor: 40
wet-farmland: 1
unsupported-settings:
disable-world-ticking-when-empty: false
fix-invulnerable-end-crystal-exploit: true

3
testserv/eula.txt Normal file
View File

@@ -0,0 +1,3 @@
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://aka.ms/MinecraftEULA).
#Mon Mar 02 18:27:29 CET 2026
eula=true

64
testserv/help.yml Normal file
View File

@@ -0,0 +1,64 @@
# This is the Bukkit help configuration file for Paper.
#
# By default you do not need to modify this file. Help topics for all plugin commands are automatically provided by
# or extracted from your installed plugins. You only need to modify this file if you wish to add new help pages to
# your server or override the help pages of existing plugin commands.
#
# This file is divided up into the following parts:
# -- general-topics: lists admin defined help topics
# -- index-topics: lists admin defined index topics
# -- amended-topics: lists topic amendments to apply to existing help topics
# -- ignore-plugins: lists any plugins that should be excluded from help
#
# Examples are given below. When amending command topic, the string <text> will be replaced with the existing value
# in the help topic. Color codes can be used in topic text. The color code character is & followed by 0-F.
# ================================================================
#
# Set this to true to list the individual command help topics in the master help.
# command-topics-in-master-index: true
#
# Each general topic will show up as a separate topic in the help index along with all the plugin command topics.
# general-topics:
# Rules:
# shortText: Rules of the server
# fullText: |
# &61. Be kind to your fellow players.
# &B2. No griefing.
# &D3. No swearing.
# permission: topics.rules
#
# Each index topic will show up as a separate sub-index in the help index along with all the plugin command topics.
# To override the default help index (displayed when the user executes /help), name the index topic "Default".
# index-topics:
# Ban Commands:
# shortText: Player banning commands
# preamble: Moderator - do not abuse these commands
# permission: op
# commands:
# - /ban
# - /ban-ip
# - /banlist
#
# Topic amendments are used to change the content of automatically generated plugin command topics.
# amended-topics:
# /stop:
# shortText: Stops the server cold....in its tracks!
# fullText: <text> - This kills the server.
# permission: you.dont.have
#
# Any plugin in the ignored plugins list will be excluded from help. The name must match the name displayed by
# the /plugins command. Ignore "Bukkit" to remove the standard bukkit commands from the index. Ignore "All"
# to completely disable automatic help topic generation.
# ignore-plugins:
# - PluginNameOne
# - PluginNameTwo
# - PluginNameThree
#
# If you need help with the configuration or have any questions related to Paper,
# join us in our Discord or check the docs page.
#
# File Reference: https://docs.papermc.io/paper/reference/bukkit-help-configuration/
# Docs: https://docs.papermc.io/
# Discord: https://discord.gg/papermc
{}

View File

@@ -0,0 +1,4 @@
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
#Mon Mar 02 18:28:06 CET 2026
phtree-2.8.2.jar>central=
phtree-2.8.2.pom>central=

View File

@@ -0,0 +1 @@
9214be245b08ea00a4d11d36185f7c907133ccf1

View File

@@ -0,0 +1,222 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>ch.ethz.globis.phtree</groupId>
<artifactId>phtree</artifactId>
<packaging>jar</packaging>
<version>2.8.2</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<name>PH-Tree</name>
<description>The PH-Tree is a multi-dimensional / spatial index</description>
<url>http://phtree.org</url>
<scm>
<connection>scm:git:git@github.com:tzaeschke/phtree.git</connection>
<developerConnection>scm:git:git@github.com:tzaeschke/phtree.git</developerConnection>
<url>https://github.com/tzaeschke/phtree</url>
<tag>phtree-2.8.2</tag>
</scm>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
<comments>A business-friendly OSS license</comments>
</license>
</licenses>
<developers>
<developer>
<name>Tilmann Zäschke</name>
<id>tzaeschke</id>
<email>zoodb@gmx.de</email>
</developer>
</developers>
<issueManagement>
<system>github</system>
<url>https://github.com/tzaeschke/phtree/issues</url>
</issueManagement>
<distributionManagement>
<snapshotRepository>
<id>sonatype-snapshots</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
<repository>
<id>sonatype-nexus-staging</id>
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
</repository>
</distributionManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.3.1</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.13.0</version>
<configuration>
<source>1.8</source>
<compilerArgument>-Xlint:all</compilerArgument>
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
<!--
<compilerArgument>-Werror </compilerArgument>
-->
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.3.1</version>
<configuration>
<argLine>@{argLine} -Xmx512m</argLine>
<printSummary>true</printSummary>
<skipTests>false</skipTests>
<includes>
<!-- include ALL tests -->
<include>**/*.java</include>
</includes>
<excludes>
<!-- exclude tests that currently fail -->
</excludes>
</configuration>
</plugin>
<!--Make sure the .java files in tst are also included in the .jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.4.2</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.6.14</version>
<extensions>true</extensions>
<configuration>
<serverId>ossrh</serverId>
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
<autoReleaseAfterClose>true</autoReleaseAfterClose>
</configuration>
</plugin>
<plugin>
<artifactId>maven-release-plugin</artifactId>
<version>3.0.1</version>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.11</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>release</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
<configuration>
<keyname>${gpg.keyname}</keyname>
<passphraseServerId>${gpg.keyname}</passphraseServerId>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.7.0</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.13.0</version>
<configuration>
<release>8</release>
<compilerArgument>-Xlint:all</compilerArgument>
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
<!--
<compilerArgument>-Werror </compilerArgument>
-->
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>warnings</id>
<properties>
<showWarnings>true</showWarnings>
<compilerArgument>-Xlint:all,-rawtypes</compilerArgument>
</properties>
</profile>
</profiles>
</project>

View File

@@ -0,0 +1 @@
967e2741cd2e64b244178cc2e8bfb7abf61cafe6

View File

@@ -0,0 +1,4 @@
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
#Mon Mar 02 18:28:06 CET 2026
fastutil-8.5.16.jar>central=
fastutil-8.5.16.pom>central=

View File

@@ -0,0 +1 @@
34d13fa04fc72b5d9674adc6fd765afaaccc551e

View File

@@ -0,0 +1,40 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>it.unimi.dsi</groupId>
<artifactId>fastutil</artifactId>
<packaging>jar</packaging>
<name>fastutil</name>
<version>8.5.16</version>
<description>fastutil extends the Java Collections Framework by providing type-specific maps, sets, lists, and queues with a small memory footprint and fast access and insertion; it provides also big (64-bit) arrays, sets and lists, sorting algorithms, fast, practical I/O classes for binary and text files, and facilities for memory mapping large files. Note that if you have both this jar and fastutil-core.jar in your dependencies, fastutil-core.jar should be excluded.</description>
<url>http://fastutil.di.unimi.it/</url>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
<distribution>repo</distribution>
</license>
</licenses>
<scm>
<connection>scm:git://github.com/vigna/fastutil.git</connection>
<url>https://github.com/vigna/fastutil</url>
</scm>
<developers>
<developer>
<id>vigna</id>
<name>Sebastiano Vigna</name>
<email>sebastiano.vigna@unimi.it</email>
</developer>
</developers>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1 @@
53f282f7c2f593c72651950249fabb7e18a5c4de

Some files were not shown because too many files have changed in this diff Show More