Commit df35c4d1 authored by Florian Grabowski's avatar Florian Grabowski
Browse files

Merge branch 'quarified_tree_map_algorithm' into 'master'

Bachelor Project final State

See merge request !1
parents bad6607d 7a34aeb9
package de._82grfl1bif.KPI_Visualizer.structures;
import de._82grfl1bif.KPI_Visualizer.helpers.Layout;
import de._82grfl1bif.KPI_Visualizer.data.Klasse;
import de._82grfl1bif.KPI_Visualizer.layouts.SimpleSquare.SimpleSquareLayout;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.util.Vector;
import javax.management.AttributeNotFoundException;
import java.awt.Point;
import java.awt.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Random;
public class Foundation extends Structure{
public class Foundation extends Structure {
private ArrayList<Structure> children = new ArrayList<>();
private Layout layout;
private SimpleSquareLayout simpleSquareLayout;
public Foundation(int depth, Material material){ //Foundations are uniform Height
this.width = 0;
public Foundation(int depth, Material material) { //Foundations are uniform Height
this.width.x = 0;
this.depth = depth;
this.material = material;
}
public Foundation(int depth, Material material, String name) { //Foundations are uniform Height
this.width.x = 0;
this.name = name;
this.depth = depth;
this.material = material;
}
......@@ -27,70 +36,210 @@ public class Foundation extends Structure{
}
public void addChildren(ArrayList<Structure> children) {
for (Structure s:children) {
for (Structure s : children) {
s.setDepth(this.depth);
}
this.children.addAll(children);
}
public void removeChildren(){
public Structure generateChild(boolean isFoundation, Klasse klasse, String name) {
Structure result;
if (isFoundation) {
result = new Foundation(this.depth + 1, nextSediment(), name);
} else {
result = new Building(nextColorConcrete(), klasse, name);
}
this.children.add(result);
return result;
}
public Material nextColorConcrete() {
Material result = null;
Random rand = new Random();
while ((result == this.material) || (result == null)) {
int r = rand.nextInt(15); //there are 16 kins of concrete
switch (r) {
case 0:
result = Material.BLACK_CONCRETE;
break;
case 1:
result = Material.BROWN_CONCRETE;
break;
case 2:
result = Material.GRAY_CONCRETE;
break;
case 3:
result = Material.LIME_CONCRETE;
break;
case 4:
result = Material.YELLOW_CONCRETE;
break;
case 5:
result = Material.LIGHT_GRAY_CONCRETE;
break;
case 6:
result = Material.RED_CONCRETE;
break;
case 7:
result = Material.BLUE_CONCRETE;
break;
case 8:
result = Material.CYAN_CONCRETE;
break;
case 9:
result = Material.GREEN_CONCRETE;
break;
case 10:
result = Material.LIGHT_BLUE_CONCRETE;
break;
case 11:
result = Material.MAGENTA_CONCRETE;
break;
case 12:
result = Material.ORANGE_CONCRETE;
break;
case 13:
result = Material.PINK_CONCRETE;
break;
case 14:
result = Material.PURPLE_CONCRETE;
break;
case 15:
result = Material.WHITE_CONCRETE;
break;
}
}
return result;
}
public Material nextSediment(){
Material result = null;
Random rand = new Random();
while ((result == this.material) || (result == null)) {
int r = rand.nextInt(12); //there are 16 kins of concrete
switch (r) {
case 0:
result = Material.STONE;
break;
case 1:
result = Material.GRASS_BLOCK;
break;
case 2:
result = Material.ROOTED_DIRT;
break;
case 3:
result = Material.GRANITE;
break;
case 4:
result = Material.DIORITE;
break;
case 5:
result = Material.ANDESITE;
break;
case 6:
result = Material.DEEPSLATE;
break;
case 7:
result = Material.TUFF;
break;
case 8:
result = Material.GRAVEL;
break;
case 9:
result = Material.SAND;
break;
case 10:
result = Material.SANDSTONE;
break;
case 11:
result = Material.COARSE_DIRT;
break;
}
}
return result;
}
public void removeChildren() {
this.children = new ArrayList<>();
}
public void optimizeLayout(){
//TODO: find cool Algorithms to do this scientifically and optimal.
public void optimizeLayout() {
int cWith = 0;
for (Structure s : children) {
s.setLocation(location.clone().add(new Vector(1,depth,((cWith)+1))));
cWith += (s.getWidth() + 2);
s.setLocation(location.clone().add(new Vector(1, depth, ((cWith) + 1))));
cWith += (s.getWidth().x + 2);
}
this.width = cWith;
this.width.x = cWith;
}
private static class DepthComparator implements Comparator<Foundation>{
@Override
public Structure getFromTree(String checkName) {
if (this.name != null) {
if (this.name.equals(checkName)) {
return this;
} else {
for (Structure s : this.children) {
if (s.getFromTree(checkName) != null) return s.getFromTree(checkName);
}
}
} else {
for (Structure s : this.children) {
if (s.getFromTree(checkName) != null) return s.getFromTree(checkName);
}
}
return null;
}
@Override
public double getArea(){
if(area == 0)setAllAreas();
return area;
}
private static class DepthComparator implements Comparator<Foundation> {
@Override
public int compare(Foundation o1, Foundation o2) {
return Integer.compare(o1.getDepth(), o2.getDepth());
}
}
private static class WidthComparator implements Comparator<Structure>{
private static class WidthComparator implements Comparator<Structure> {
@Override
public int compare(Structure o1, Structure o2) {
return Integer.compare(o1.getWidth(), o2.getWidth());
return Integer.compare(o1.getWidth().x, o2.getWidth().x);
}
}
private boolean baseFoundation = true;
public void organizeFoundation(){
if(this.depth == 0 && baseFoundation){ //rootElement prepwork and recursion call
public void organizeFoundation() {
if (this.depth == 0 && baseFoundation) { //rootElement prepwork and recursion call
ArrayList<Foundation> allFoundations = collectAllFoundations();
baseFoundation = false;
allFoundations.sort(new DepthComparator());
Collections.reverse(allFoundations); //higher Depths first
for (Foundation f:allFoundations) {
for (Foundation f : allFoundations) {
//if(!this.equals(f))
f.organizeFoundation();
}
}else{ //normal Call and recursion
} else { //normal Call and recursion
this.children.sort(new WidthComparator());
Collections.reverse(this.children); //Widest Building or Foundation first
this.layout = new Layout(this.children);
this.layout.createLayout();
this.width = layout.getSize();
this.simpleSquareLayout = new SimpleSquareLayout(this.children);
this.simpleSquareLayout.createLayout();
this.width.x = simpleSquareLayout.getSize();
}
}
private ArrayList<Foundation> collectAllFoundations(){ //called on the base Foundation
public ArrayList<Foundation> collectAllFoundations() { //called on the base Foundation
ArrayList<Foundation> fCollection = new ArrayList<>();
fCollection.add(this);
int currentDepth = this.depth;
int lastDepthAdded = -1;
while (lastDepthAdded != 0){ //while there are new nextDepths in this Depth.
for (int i = 0; i < fCollection.size();i++) {
if (!(fCollection.get(i).getDepth() < currentDepth)){ //if f is not part of a historical depth
while (lastDepthAdded != 0) { //while there are new nextDepths in this Depth.
for (int i = 0; i < fCollection.size(); i++) {
if (!(fCollection.get(i).getDepth() < currentDepth)) { //if f is not part of a historical depth
fCollection.addAll(fCollection.get(i).getNextDepth());
lastDepthAdded = fCollection.get(i).getNextDepth().size();
}
......@@ -100,28 +249,40 @@ public class Foundation extends Structure{
return fCollection;
}
private ArrayList<Foundation> getNextDepth(){
ArrayList<Foundation> result = new ArrayList<>();
for (Structure s:this.children) {
public ArrayList<Building> collectAllBuildings() { //called on the base Foundation
ArrayList<Building> buildings = new ArrayList<>();
for (Structure s: children) {
if (s.getClass() == Foundation.class){
buildings.addAll(((Foundation) s).collectAllBuildings());
}else{
buildings.add((Building) s);
}
}
return buildings;
}
private ArrayList<Foundation> getNextDepth() {
ArrayList<Foundation> result = new ArrayList<>();
for (Structure s : this.children) {
if (s.getClass() == Foundation.class) {
result.add((Foundation) s);
}else {
} else {
s.setDepth(this.depth);
}
}
for (Foundation f:result) {
f.setDepth((this.depth)+1);
for (Foundation f : result) {
f.setDepth((this.depth) + 1);
}
return result;
}
public void correctAllLocations(Location location){
for (Structure s:this.children) {
public void correctAllLocations(Location location) {
for (Structure s : this.children) {
try {
Point temp = this.layout.getCoordinateOf(s);
s.setLocation(location.clone().add(temp.x,0,temp.y));
if (s.getClass() == Foundation.class){
Foundation f = (Foundation)s;
Point temp = this.simpleSquareLayout.getCoordinateOf(s);
s.setLocation(location.clone().add(temp.x, 0, temp.y));
if (s.getClass() == Foundation.class) {
Foundation f = (Foundation) s;
f.correctAllLocations(f.getLocation());
}
} catch (AttributeNotFoundException e) {
......@@ -129,4 +290,17 @@ public class Foundation extends Structure{
}
}
}
private double setAllAreas(){
double myArea = 0;
for (Structure s: children) {
if(s.getClass() == Foundation.class){
myArea += ((Foundation) s).setAllAreas();
}else{
myArea += s.getArea();
}
}
this.area = myArea;
return myArea;
}
}
......@@ -6,16 +6,20 @@ import org.bukkit.util.Vector;
import javax.persistence.Column;
import javax.persistence.Entity;
import java.awt.*;
@Entity
public class Structure{
public abstract class Structure{
@Column(name ="width")
protected int width;
@Column(name ="material")
protected Point width = new Point(0,0);
protected Material material;
protected Location location;
protected int depth;
protected String name;
protected double area;
public double getArea() {
return area;
}
public Material getMaterial() {
return material;
......@@ -33,7 +37,7 @@ public class Structure{
this.location.add(vector);
}
public int getWidth() {
public Point getWidth() {
return width;
}
......@@ -44,4 +48,6 @@ public class Structure{
public int getDepth() {
return depth;
}
public abstract Structure getFromTree(String checkName);
}
[]
\ No newline at end of file
[]
\ No newline at end of file
# This is the main configuration file for Bukkit.
# As you can see, there's actually not that much to configure without any plugins.
# For a reference for any variable inside this file, check out the Bukkit Wiki at
# https://www.spigotmc.org/go/bukkit-yml
#
# If you need help on this file, feel free to join us on irc or leave a message
# on the forums asking for advice.
#
# IRC: #spigot @ irc.spi.gt
# (If this means nothing to you, just go to https://www.spigotmc.org/go/irc )
# Forums: https://www.spigotmc.org/
# Bug tracker: https://www.spigotmc.org/go/bugs
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
spawn-limits:
water-underground-creature: 5
monsters: 70
animals: 10
water-animals: 5
water-ambient: 20
ambient: 15
chunk-gc:
period-in-ticks: 600
ticks-per:
water-underground-creature-spawns: 1
animal-spawns: 400
monster-spawns: 1
water-spawns: 1
water-ambient-spawns: 1
ambient-spawns: 1
autosave: 6000
aliases: now-in-commands.yml
# This is the commands configuration file for Bukkit.
# For documentation on how to make use of this file, check out the Bukkit Wiki at
# https://www.spigotmc.org/go/commands-yml
#
# If you need help on this file, feel free to join us on irc or leave a message
# on the forums asking for advice.
#
# IRC: #spigot @ irc.spi.gt
# (If this means nothing to you, just go to https://www.spigotmc.org/go/irc )
# Forums: https://www.spigotmc.org/
# Bug tracker: https://www.spigotmc.org/go/bugs
command-block-overrides: []
ignore-vanilla-permissions: false
aliases:
icanhasbukkit:
- version $1-
This source diff could not be displayed because it is too large. You can view the blob instead.
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
#You also agree that tacos are tasty, and the best food in the world.
#Thu Nov 04 15:45:20 CET 2021
eula=true
# This is the help configuration file for Bukkit.
#
# 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
# -- amend-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
[
{
"uuid": "edb76f3f-e782-426a-ba9e-6a895dea431a",
"name": "MC_FLOri",
"level": 4,
"bypassesPlayerLimit": false
}
]
\ No newline at end of file
# 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
config-version: 23
settings:
log-player-ip-addresses: true
use-display-name-in-quit-message: false
load-permissions-yml-before-plugins: true
region-file-cache-size: 256
enable-player-collisions: true
save-empty-scoreboard-teams: false
bungee-online-mode: true
incoming-packet-spam-threshold: 300
use-alternative-luck-formula: false
console-has-all-permissions: false
player-auto-save-rate: -1
max-player-auto-save-per-tick: -1
max-joins-per-tick: 3
track-plugin-scoreboards: false
fix-entity-position-desync: true
lag-compensate-block-breaking: true
send-full-pos-for-hard-colliding-entities: true
suggest-player-names-when-null-tab-completions: true
velocity-support:
enabled: false
online-mode: false
secret: ''
async-chunks:
threads: -1
unsupported-settings:
allow-permanent-block-break-exploits: false
allow-piston-duplication: false
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.
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
console:
enable-brigadier-highlighting: true
enable-brigadier-completions: true
item-validation:
display-name: 8192
loc-name: 8192
lore-line: 8192
book:
title: 8192
author: 8192
page: 16384
chunk-loading:
min-load-radius: 2
max-concurrent-sends: 2
autoconfig-send-distance: true
target-player-chunk-send-rate: 100.0
global-max-chunk-send-rate: -1.0
enable-frustum-priority: false
global-max-chunk-load-rate: -1.0
player-max-concurrent-loads: 4.0
global-max-concurrent-loads: 500.0
packet-limiter:
kick-message: '&cSent too many packets'
limits:
all:
interval: 7.0
max-packet-rate: 500.0
PacketPlayInAutoRecipe:
interval: 4.0
max-packet-rate: 5.0
action: DROP
messages:
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.'
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
timings:
enabled: true
verbose: true
url: https://timings.aikar.co/
server-name-privacy: false
hidden-config-entries:
- database
- settings.bungeecord-addresses
- settings.velocity-support.secret
history-interval: 300
history-length: 3600
server-name: Unknown Server
world-settings:
default:
update-pathfinding-on-block-update: true
fix-wither-targeting-bug: false
map-item-frame-cursor-update-interval: 10
count-all-mobs-for-spawning: false
max-entity-collisions: 8
disable-creeper-lingering-effect: false
prevent-moving-into-unloaded-chunks: false
duplicate-uuid-resolver: saferegen
duplicate-uuid-saferegen-delete-range: 32
remove-corrupt-tile-entities: false
experience-merge-max-value: -1
max-auto-save-chunks-per-tick: 24
baby-zombie-movement-modifier: 0.5
optimize-explosions: false
fixed-chunk-inhabited-time: -1
use-vanilla-world-scoreboard-name-coloring: false
ender-dragons-death-always-places-dragon-egg: false
allow-using-signs-inside-spawn-protection: false
filter-nbt-data-from-spawn-eggs-and-related: true
falling-block-height-nerf: 0
tnt-entity-height-nerf: 0
piglins-guard-chests: true
should-remove-dragon: false
phantoms-do-not-spawn-on-creative-players: true
phantoms-only-attack-insomniacs: true
allow-player-cramming-damage: false
disable-teleportation-suffocation-check: false
prevent-tnt-from-moving-in-water: false
delay-chunk-unloads-by: 10s
show-sign-click-command-failure-msgs-to-player: false
max-leash-distance: 10.0
iron-golems-can-spawn-in-air: false
enable-treasure-maps: true
treasure-maps-return-already-discovered: false
split-overstacked-loot: true
seed-based-feature-search: true
seed-based-feature-search-loads-chunks: true
grass-spread-tick-rate: 1
water-over-lava-flow-speed: 5
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
portal-search-radius: 128
portal-create-radius: 16
portal-search-vanilla-dimension-scaling: true
parrots-are-unaffected-by-player-movement: false
disable-explosion-knockback: false
fix-climbing-bypassing-cramming-rule: false
fix-items-merging-through-walls: false
keep-spawn-loaded: true
armor-stands-do-collision-entity-lookups: true
disable-thunder: false
skeleton-horse-thunder-spawn-chance: 0.01
disable-ice-and-snow: false
keep-spawn-loaded-range: 10
container-update-tick-rate: 1
map-item-frame-cursor-limit: 128
per-player-mob-spawns: true
zombies-target-turtle-eggs: true
zombie-villager-infection-chance: -1.0
all-chunks-are-slime-chunks: false
mob-spawner-tick-rate: 1
light-queue-size: 20
auto-save-interval: -1
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
max-growth-height:
cactus: 3
reeds: 3
bamboo:
max: 16
min: 11
hopper:
cooldown-when-full: true
disable-move-event: false
game-mechanics:
fix-curing-zombie-villager-discount-exploit: true
disable-pillager-patrols: false
scan-for-legacy-ender-dragon: true
disable-unloaded-chunk-enderpearl-exploit: true
disable-relative-projectile-velocity: false
disable-chest-cat-detection: false
nerf-pigmen-from-nether-portals: false
disable-player-crits: false
disable-sprint-interruption-on-attack: false
shield-blocking-delay: 5
disable-end-credits: false
disable-mob-spawner-spawn-egg-transformation: false
pillager-patrols:
spawn-chance: 0.2
spawn-delay:
per-player: false
ticks: 12000
start:
per-player: false
day: 5
mobs-can-always-pick-up-loot:
zombies: false
skeletons: false
frosted-ice:
enabled: true
delay:
min: 20
max: 40
wandering-trader:
spawn-minute-length: 1200
spawn-day-length: 24000
spawn-chance-failure-increment: 25
spawn-chance-min: 25
spawn-chance-max: 75
entity-per-chunk-save-limit:
experience_orb: -1
snowball: -1
ender_pearl: -1
arrow: -1
fireball: -1
small_fireball: -1
despawn-ranges:
soft: 32
hard: 128
fishing-time-range:
MinimumTicks: 100
MaximumTicks: 600
lootables:
auto-replenish: false
restrict-player-reloot: true
reset-seed-on-fill: true
max-refills: -1
refresh-min: 12h
refresh-max: 2d
spawn-limits:
monsters: -1
animals: -1
water-animals: -1
water-ambient: -1
ambient: -1
alt-item-despawn-rate:
enabled: false
items:
COBBLESTONE: 300
mob-effects:
undead-immune-to-certain-effects: true
spiders-immune-to-poison-effect: true
immune-to-wither-effect:
wither: true
wither-skeleton: true
tick-rates:
sensor:
villager:
secondarypoisensor: 40
behavior:
villager:
validatenearbypoi: -1
door-breaking-difficulty:
zombie:
- HARD
vindicator:
- NORMAL
- HARD
feature-seeds:
generate-random-seeds-for-all: false
anti-xray:
enabled: false
engine-mode: 1
max-block-height: 64
update-radius: 2
lava-obscures: false
use-permission: false
hidden-blocks:
- copper_ore
- deepslate_copper_ore
- gold_ore
- deepslate_gold_ore
- iron_ore
- deepslate_iron_ore
- 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
replacement-blocks:
- stone
- oak_planks
- deepslate
viewdistances:
no-tick-view-distance: 128
generator-settings:
flat-bedrock: false
unsupported-settings:
fix-invulnerable-end-crystal-exploit: true
squid-spawn-height:
maximum: 0.0
/Users/flgr/Desktop/PaperServer/cwa-verify_2021-11-09_16-08-07.json
# bStats collects some data for plugin authors like how many servers are using their plugins.
# To honor their work, you should not disable it.
# This has nearly no effect on the server performance!
# Check out https://bStats.org/ to learn more :)
enabled: true
serverUuid: be3ff7d2-18f7-482a-b5b6-479486e105fe
logFailedRequests: false
#Minecraft server properties
#Wed Jan 19 10:00:05 CET 2022
enable-jmx-monitoring=false
rcon.port=25575
gamemode=survival
enable-command-block=false
enable-query=false
level-name=world
motd=A Minecraft Server
query.port=25565
pvp=true
generate-structures=false
difficulty=easy
network-compression-threshold=256
max-tick-time=60000
require-resource-pack=false
max-players=20
use-native-transport=true
online-mode=true
enable-status=true
allow-flight=false
broadcast-rcon-to-ops=true
view-distance=128
max-build-height=8000
server-ip=
resource-pack-prompt=
allow-nether=true
server-port=25565
enable-rcon=false
sync-chunk-writes=true
op-permission-level=4
prevent-proxy-connections=false
resource-pack=
entity-broadcast-range-percentage=100
rcon.password=
player-idle-timeout=0
debug=false
force-gamemode=false
rate-limit=0
hardcore=false
white-list=false
broadcast-console-to-ops=true
spawn-npcs=false
spawn-animals=false
snooper-enabled=true
function-permission-level=2
level-type=FLAT
text-filtering-config=
spawn-monsters=false
enforce-whitelist=false
resource-pack-sha1=
spawn-protection=1
max-world-size=29999984
# 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 IRC or drop by our forums and leave a post.
#
# IRC: #spigot @ irc.spi.gt ( http://www.spigotmc.org/pages/irc/ )
# Forums: http://www.spigotmc.org/
config-version: 12
settings:
debug: 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: true
restart-script: ./start.sh
netty-threads: 4
log-villager-deaths: true
log-named-deaths: true
bungeecord: false
attribute:
maxHealth:
max: 2048.0
movementSpeed:
max: 2048.0
attackDamage:
max: 2048.0
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
commands:
log: true
tab-complete: 0
send-namespaced: true
spam-exclusions:
- /skill
silent-commandblock-console: false
replace-commands:
- setblock
- summon
- testforblock
- tellraw
stats:
disable-saving: false
forced-stats: {}
advancements:
disable-saving: false
disabled:
- minecraft:story/disabled
players:
disable-saving: false
world-settings:
default:
thunder-chance: 100000
verbose: false
enable-zombie-pigmen-portal-spawns: true
item-despawn-rate: 6000
view-distance: 128
mob-spawn-range: 8
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
max-tnt-per-tick: 100
zombie-aggressive-towards-villager: true
nerf-spawner-mobs: false
arrow-despawn-rate: 1200
trident-despawn-rate: 1200
hanging-tick-frequency: 100
end-portal-sound-radius: 0
wither-spawn-sound-radius: 0
max-entity-collisions: 8
entity-tracking-range:
players: 48
animals: 48
monsters: 48
misc: 32
other: 64
merge-radius:
item: 2.5
exp: 3.0
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
entity-activation-range:
animals: 32
monsters: 32
raiders: 48
misc: 16
water: 16
villagers: 32
flying-monsters: 32
villagers-work-immunity-after: 100
villagers-work-immunity-for: 20
villagers-active-for-panic: true
tick-inactive-villagers: true
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
ticks-per:
hopper-transfer: 8
hopper-check: 1
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-tick-time:
tile: 50
entity: 50
squid-spawn-range:
min: 45.0
worldeditregentempworld:
verbose: false
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment