From 3e57b8baa4d1cf181467a9019dae6dd10ee10fca Mon Sep 17 00:00:00 2001 From: games647 Date: Thu, 10 Feb 2022 22:03:50 +0100 Subject: [PATCH] Copy custom server settings for faster ramp up --- bukkit/src/test/java/integration/LoginIT.java | 13 + bukkit/src/test/resources/bukkit.yml | 29 ++ bukkit/src/test/resources/paper.yml | 316 ++++++++++++++++++ bukkit/src/test/resources/server.properties | 50 +++ bukkit/src/test/resources/spigot.yml | 164 +++++++++ 5 files changed, 572 insertions(+) create mode 100644 bukkit/src/test/resources/bukkit.yml create mode 100644 bukkit/src/test/resources/paper.yml create mode 100644 bukkit/src/test/resources/server.properties create mode 100644 bukkit/src/test/resources/spigot.yml diff --git a/bukkit/src/test/java/integration/LoginIT.java b/bukkit/src/test/java/integration/LoginIT.java index 981f55ab..8a78f5ae 100644 --- a/bukkit/src/test/java/integration/LoginIT.java +++ b/bukkit/src/test/java/integration/LoginIT.java @@ -13,12 +13,14 @@ import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; import java.nio.charset.StandardCharsets; +import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; +import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.mockserver.client.MockServerClient; @@ -28,6 +30,7 @@ import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.MockServerContainer; import org.testcontainers.containers.wait.strategy.Wait; import org.testcontainers.utility.DockerImageName; +import org.testcontainers.utility.MountableFile; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; @@ -53,6 +56,11 @@ public class LoginIT { public GenericContainer minecraftServer = new GenericContainer(DockerImageName.parse(SERVER_IMAGE)) .withEnv("JDK_JAVA_OPTIONS", buildJVMFlags()) .withExposedPorts(25565) + // use server settings that use minimal minecraft log to quickly ramp up the server + .withCopyFileToContainer(MountableFile.forClasspathResource("server.properties"), "/home/nonroot/server.properties") + .withCopyFileToContainer(MountableFile.forClasspathResource("bukkit.yml"), "/home/nonroot/bukkit.yml") + .withCopyFileToContainer(MountableFile.forClasspathResource("spigot.yml"), "/home/nonroot/spigot.yml") + .withTmpFs(Collections.singletonMap("/home/nonroot/world", "rw,noexec,nosuid,nodev")) // Done (XXXXs)! For help, type "help" .waitingFor( Wait.forLogMessage(".*For help, type \"help\"*\\n", 1) @@ -72,6 +80,11 @@ public class LoginIT { .collect(Collectors.joining(" ")); } + @Before + public void setUp() throws Exception { + System.out.println(minecraftServer.getLogs()); + } + @Test public void checkRunning() throws Exception { assertThat(minecraftServer.isRunning(), is(true)); diff --git a/bukkit/src/test/resources/bukkit.yml b/bukkit/src/test/resources/bukkit.yml new file mode 100644 index 00000000..c4c20f65 --- /dev/null +++ b/bukkit/src/test/resources/bukkit.yml @@ -0,0 +1,29 @@ +settings: + allow-end: false + warn-on-overload: true + permissions-file: permissions.yml + update-folder: update + plugin-profiling: false + connection-throttle: 4000 + query-plugins: false + deprecated-verbose: default + shutdown-message: Server closed + minimum-api: none +spawn-limits: + monsters: 70 + animals: 10 + water-animals: 5 + water-ambient: 20 + water-underground-creature: 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 + ambient-spawns: 1 + autosave: 6000 +aliases: now-in-commands.yml diff --git a/bukkit/src/test/resources/paper.yml b/bukkit/src/test/resources/paper.yml new file mode 100644 index 00000000..cb804901 --- /dev/null +++ b/bukkit/src/test/resources/paper.yml @@ -0,0 +1,316 @@ +# This is the main configuration file for Paper. +# As you can see, there's tons 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 IRC channel. +# +# Discord: https://discord.gg/papermc +# IRC: #paper @ irc.esper.net ( https://webchat.esper.net/?channels=paper ) +# Website: https://papermc.io/ +# Docs: https://paper.readthedocs.org/ + +verbose: false +messages: + kick: + authentication-servers-down: '' + connection-throttle: Connection throttled! Please wait before reconnecting. + flying-player: Flying is not enabled on this server + flying-vehicle: Flying is not enabled on this server + no-permission: '&cI''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.' +timings: + enabled: false + verbose: true + url: https://timings.aikar.co/ + server-name-privacy: false + hidden-config-entries: [] + history-interval: 300 + history-length: 3600 + server-name: Unknown Server +config-version: 24 +settings: + max-joins-per-tick: 3 + track-plugin-scoreboards: false + fix-entity-position-desync: true + use-display-name-in-quit-message: false + load-permissions-yml-before-plugins: true + region-file-cache-size: 256 + enable-player-collisions: false + save-empty-scoreboard-teams: false + bungee-online-mode: true + incoming-packet-spam-threshold: 300 + use-alternative-luck-formula: false + velocity-support: + enabled: false + online-mode: false + secret: '' + console-has-all-permissions: false + player-auto-save-rate: -1 + max-player-auto-save-per-tick: -1 + fix-target-selector-tag-completion: true + lag-compensate-block-breaking: true + time-command-affects-all-worlds: false + log-player-ip-addresses: false + console: + enable-brigadier-highlighting: false + enable-brigadier-completions: false + suggest-player-names-when-null-tab-completions: true + watchdog: + early-warning-every: 5000 + early-warning-delay: 10000 + spam-limiter: + tab-spam-increment: 1 + tab-spam-limit: 500 + recipe-spam-increment: 1 + recipe-spam-limit: 20 + book-size: + page-max: 2560 + total-multiplier: 0.98 + loggers: + deobfuscate-stacktraces: true + item-validation: + display-name: 8192 + loc-name: 8192 + lore-line: 8192 + book: + title: 8192 + author: 8192 + page: 16384 + send-full-pos-for-hard-colliding-entities: true + async-chunks: + threads: -1 + unsupported-settings: + allow-permanent-block-break-exploits: false + allow-piston-duplication: false + perform-username-validation: true + allow-headless-pistons: false + allow-permanent-block-break-exploits-readme: This setting controls if players + should be able to break bedrock, end portals and other intended to be permanent + blocks. + allow-piston-duplication-readme: This setting controls if player should be able + to use TNT duplication, but this also allows duplicating carpet, rails and potentially + other items + allow-headless-pistons-readme: This setting controls if players should be able + to create headless pistons. + packet-limiter: + kick-message: '&cSent too many packets' + limits: [] +world-settings: + default: + delay-chunk-unloads-by: 10s + disable-teleportation-suffocation-check: true + generator-settings: + flat-bedrock: true + piglins-guard-chests: true + should-remove-dragon: false + max-auto-save-chunks-per-tick: 24 + baby-zombie-movement-modifier: 0.5 + optimize-explosions: false + use-vanilla-world-scoreboard-name-coloring: false + game-mechanics: + scan-for-legacy-ender-dragon: true + fix-curing-zombie-villager-discount-exploit: true + disable-pillager-patrols: true + pillager-patrols: + spawn-chance: 0.2 + spawn-delay: + per-player: false + ticks: 12000 + start: + per-player: false + day: 5 + disable-chest-cat-detection: true + nerf-pigmen-from-nether-portals: false + disable-player-crits: true + disable-sprint-interruption-on-attack: true + shield-blocking-delay: 5 + disable-end-credits: true + disable-unloaded-chunk-enderpearl-exploit: true + disable-relative-projectile-velocity: true + disable-mob-spawner-spawn-egg-transformation: true + prevent-moving-into-unloaded-chunks: false + count-all-mobs-for-spawning: false + spawn-limits: + monster: -1 + creature: -1 + ambient: -1 + axolotls: -1 + underground_water_creature: -1 + water_creature: -1 + water_ambient: -1 + ender-dragons-death-always-places-dragon-egg: false + experience-merge-max-value: -1 + allow-using-signs-inside-spawn-protection: false + wandering-trader: + spawn-minute-length: 1200 + spawn-day-length: 24000 + spawn-chance-failure-increment: 25 + spawn-chance-min: 25 + spawn-chance-max: 75 + door-breaking-difficulty: + zombie: + - HARD + vindicator: + - NORMAL + - HARD + max-growth-height: + cactus: 3 + reeds: 3 + bamboo: + max: 16 + min: 11 + fishing-time-range: + MinimumTicks: 100 + MaximumTicks: 600 + despawn-ranges: + monster: + soft: 32 + hard: 128 + creature: + soft: 32 + hard: 128 + ambient: + soft: 32 + hard: 128 + axolotls: + soft: 32 + hard: 128 + underground_water_creature: + soft: 32 + hard: 128 + water_creature: + soft: 32 + hard: 128 + water_ambient: + soft: 32 + hard: 64 + misc: + soft: 32 + hard: 128 + falling-block-height-nerf: 0 + tnt-entity-height-nerf: 0 + slime-spawn-height: + swamp-biome: + maximum: 70.0 + minimum: 50.0 + slime-chunk: + maximum: 40.0 + frosted-ice: + enabled: true + delay: + min: 20 + max: 40 + lootables: + auto-replenish: false + restrict-player-reloot: true + reset-seed-on-fill: true + max-refills: -1 + refresh-min: 12h + refresh-max: 2d + filter-nbt-data-from-spawn-eggs-and-related: true + max-entity-collisions: 8 + disable-creeper-lingering-effect: true + duplicate-uuid-resolver: saferegen + duplicate-uuid-saferegen-delete-range: 32 + hopper: + cooldown-when-full: true + disable-move-event: true + ignore-occluding-blocks: false + mob-effects: + undead-immune-to-certain-effects: true + spiders-immune-to-poison-effect: true + immune-to-wither-effect: + wither: true + wither-skeleton: true + update-pathfinding-on-block-update: true + phantoms-do-not-spawn-on-creative-players: true + phantoms-only-attack-insomniacs: true + mobs-can-always-pick-up-loot: + zombies: false + skeletons: false + map-item-frame-cursor-update-interval: 10 + allow-player-cramming-damage: false + anticheat: + obfuscation: + items: + hide-itemmeta: false + hide-durability: false + monster-spawn-max-light-level: -1 + water-over-lava-flow-speed: 5 + grass-spread-tick-rate: 1 + use-faster-eigencraft-redstone: false + nether-ceiling-void-damage-height: 0 + only-players-collide: false + allow-vehicle-collisions: true + allow-non-player-entities-on-scoreboards: false + anti-xray: + enabled: false + engine-mode: 1 + max-block-height: 64 + update-radius: 2 + lava-obscures: false + use-permission: false + hidden-blocks: [] + replacement-blocks: [] + keep-spawn-loaded: true + armor-stands-do-collision-entity-lookups: true + parrots-are-unaffected-by-player-movement: false + disable-explosion-knockback: true + portal-search-radius: 128 + portal-create-radius: 16 + portal-search-vanilla-dimension-scaling: true + fix-items-merging-through-walls: false + disable-thunder: true + skeleton-horse-thunder-spawn-chance: 0.01 + disable-ice-and-snow: true + keep-spawn-loaded-range: 10 + fix-climbing-bypassing-cramming-rule: false + container-update-tick-rate: 1 + fixed-chunk-inhabited-time: -1 + remove-corrupt-tile-entities: false + prevent-tnt-from-moving-in-water: false + iron-golems-can-spawn-in-air: false + max-leash-distance: 10.0 + show-sign-click-command-failure-msgs-to-player: false + armor-stands-tick: true + non-player-arrow-despawn-rate: -1 + creative-arrow-despawn-rate: -1 + spawner-nerfed-mobs-should-jump: false + entities-target-with-follow-range: false + wateranimal-spawn-height: + maximum: default + minimum: default + zombies-target-turtle-eggs: true + zombie-villager-infection-chance: -1.0 + unsupported-settings: + fix-invulnerable-end-crystal-exploit: true + all-chunks-are-slime-chunks: false + mob-spawner-tick-rate: 1 + map-item-frame-cursor-limit: 128 + per-player-mob-spawns: true + light-queue-size: 20 + auto-save-interval: -1 + enable-treasure-maps: false + treasure-maps-return-already-discovered: false + split-overstacked-loot: true + entity-per-chunk-save-limit: + experience_orb: -1 + snowball: -1 + ender_pearl: -1 + arrow: -1 + fireball: -1 + small_fireball: -1 + alt-item-despawn-rate: + enabled: false + items: + COBBLESTONE: 300 + tick-rates: + sensor: + villager: + secondarypoisensor: 40 + behavior: + villager: + validatenearbypoi: -1 + feature-seeds: + generate-random-seeds-for-all: false diff --git a/bukkit/src/test/resources/server.properties b/bukkit/src/test/resources/server.properties new file mode 100644 index 00000000..efe79ca9 --- /dev/null +++ b/bukkit/src/test/resources/server.properties @@ -0,0 +1,50 @@ +#Minecraft server properties +enable-jmx-monitoring=false +rcon.port=25575 +gamemode=creative +enable-command-block=false +enable-query=false +level-name=world +motd=Debug server +query.port=25565 +pvp=false +difficulty=peaceful +network-compression-threshold=256 +require-resource-pack=false +max-tick-time=60000 +use-native-transport=true +max-players=2 +online-mode=false +enable-status=true +allow-flight=false +broadcast-rcon-to-ops=true +view-distance=3 +server-ip= +resource-pack-prompt= +allow-nether=false +server-port=25565 +enable-rcon=false +sync-chunk-writes=false +op-permission-level=4 +prevent-proxy-connections=false +hide-online-players=true +resource-pack= +entity-broadcast-range-percentage=10 +simulation-distance=3 +rcon.password= +player-idle-timeout=0 +debug=true +force-gamemode=false +rate-limit=0 +hardcore=false +white-list=false +broadcast-console-to-ops=false +spawn-npcs=false +spawn-animals=false +function-permission-level=2 +text-filtering-config= +spawn-monsters=false +enforce-whitelist=false +resource-pack-sha1= +spawn-protection=0 +max-world-size=1 diff --git a/bukkit/src/test/resources/spigot.yml b/bukkit/src/test/resources/spigot.yml new file mode 100644 index 00000000..d7bb3450 --- /dev/null +++ b/bukkit/src/test/resources/spigot.yml @@ -0,0 +1,164 @@ +# This is the main configuration file for Spigot. +# As you can see, there's tons to configure. Some options may impact gameplay, so use +# with caution, and make sure you know what each option does before configuring. +# For a reference for any variable inside this file, check out the Spigot wiki at +# http://www.spigotmc.org/wiki/spigot-configuration/ +# +# If you need help with the configuration or have any questions related to Spigot, +# join us at the Discord or drop by our forums and leave a post. +# +# Discord: https://www.spigotmc.org/go/discord +# Forums: http://www.spigotmc.org/ + +settings: + debug: true + bungeecord: false + sample-count: 12 + player-shuffle: 0 + user-cache-size: 1000 + save-user-cache-on-stop-only: false + moved-wrongly-threshold: 0.0625 + moved-too-quickly-multiplier: 10.0 + timeout-time: 60 + restart-on-crash: false + restart-script: ./start.sh + netty-threads: 1 + attribute: + maxHealth: + max: 2048.0 + movementSpeed: + max: 2048.0 + attackDamage: + max: 2048.0 + log-villager-deaths: false + log-named-deaths: false +messages: + whitelist: You are not whitelisted on this server! + unknown-command: Unknown command. Type "/help" for help. + server-full: The server is full! + outdated-client: Outdated client! Please use {0} + outdated-server: Outdated server! I'm still on {0} + restart: Server is restarting +advancements: + disable-saving: true + disabled: [] +commands: + replace-commands: [] + spam-exclusions: [] + silent-commandblock-console: false + log: false + tab-complete: 0 + send-namespaced: false +players: + disable-saving: true +world-settings: + default: + below-zero-generation-in-existing-chunks: true + verbose: false + merge-radius: + exp: 3.0 + item: 2.5 + growth: + cactus-modifier: 100 + cane-modifier: 100 + melon-modifier: 100 + mushroom-modifier: 100 + pumpkin-modifier: 100 + sapling-modifier: 100 + beetroot-modifier: 100 + carrot-modifier: 100 + potato-modifier: 100 + wheat-modifier: 100 + netherwart-modifier: 100 + vine-modifier: 100 + cocoa-modifier: 100 + bamboo-modifier: 100 + sweetberry-modifier: 100 + kelp-modifier: 100 + twistingvines-modifier: 100 + weepingvines-modifier: 100 + cavevines-modifier: 100 + glowberry-modifier: 100 + entity-activation-range: + animals: 32 + monsters: 32 + raiders: 48 + misc: 16 + water: 16 + villagers: 32 + flying-monsters: 32 + wake-up-inactive: + animals-max-per-tick: 4 + animals-every: 1200 + animals-for: 100 + monsters-max-per-tick: 8 + monsters-every: 400 + monsters-for: 100 + villagers-max-per-tick: 4 + villagers-every: 600 + villagers-for: 100 + flying-monsters-max-per-tick: 8 + flying-monsters-every: 200 + flying-monsters-for: 100 + villagers-work-immunity-after: 100 + villagers-work-immunity-for: 20 + villagers-active-for-panic: true + tick-inactive-villagers: true + ignore-spectators: false + entity-tracking-range: + players: 48 + animals: 48 + monsters: 48 + misc: 32 + other: 64 + ticks-per: + hopper-transfer: 8 + hopper-check: 1 + hopper-amount: 1 + dragon-death-sound-radius: 0 + seed-village: 10387312 + seed-desert: 14357617 + seed-igloo: 14357618 + seed-jungle: 14357619 + seed-swamp: 14357620 + seed-monument: 10387313 + seed-shipwreck: 165745295 + seed-ocean: 14357621 + seed-outpost: 165745296 + seed-endcity: 10387313 + seed-slime: 987234911 + seed-bastion: 30084232 + seed-fortress: 30084232 + seed-mansion: 10387319 + seed-fossil: 14357921 + seed-portal: 34222645 + seed-stronghold: default + hunger: + jump-walk-exhaustion: 0.05 + jump-sprint-exhaustion: 0.2 + combat-exhaustion: 0.1 + regen-exhaustion: 6.0 + swim-multiplier: 0.01 + sprint-multiplier: 0.1 + other-multiplier: 0.0 + max-tnt-per-tick: 100 + max-tick-time: + tile: 50 + entity: 50 + enable-zombie-pigmen-portal-spawns: true + item-despawn-rate: 6000 + view-distance: default + simulation-distance: default + thunder-chance: 100000 + wither-spawn-sound-radius: 0 + arrow-despawn-rate: 1200 + trident-despawn-rate: 1200 + hanging-tick-frequency: 100 + zombie-aggressive-towards-villager: true + nerf-spawner-mobs: false + mob-spawn-range: 8 + end-portal-sound-radius: 0 +config-version: 12 +stats: + disable-saving: true + forced-stats: {}