diff --git a/README.md b/README.md index 4bcfa7522..42abf342b 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,7 @@ Current services and exposed ports are: | proxy | 25565 | TCP, Minecraft | | | paper | | | | | pvp | | | | +| gamma | | | | | mariadb | 3306 | TCP, Database | | | postgres | 5432 | TCP, Database | | | rabbitmq | 5672 | TCP, AMQP | | diff --git a/ansible/build.gradle.kts b/ansible/build.gradle.kts index 097cc4654..c90314905 100644 --- a/ansible/build.gradle.kts +++ b/ansible/build.gradle.kts @@ -1,4 +1,5 @@ val paperPlugin by configurations.creating +val gammaPlugin by configurations.creating val pvpPlugin by configurations.creating val proxyPlugin by configurations.creating @@ -28,6 +29,30 @@ dependencies { paperPlugin(project(path = ":plugins:simpleadminhacks-paper")) paperPlugin(project(path = ":plugins:heliodor-paper")) + gammaPlugin(project(path = ":plugins:banstick-paper", configuration = "shadow")) + gammaPlugin(project(path = ":plugins:bastion-paper")) + gammaPlugin(project(path = ":plugins:castlegates-paper")) + gammaPlugin(project(path = ":plugins:citadel-paper")) + gammaPlugin(project(path = ":plugins:civchat2-paper")) + gammaPlugin(project(path = ":plugins:civduties-paper")) + gammaPlugin(project(path = ":plugins:civmodcore-paper", configuration = "shadow")) + gammaPlugin(project(path = ":plugins:finale-paper")) + gammaPlugin(project(path = ":plugins:combattagplus-paper")) + gammaPlugin(project(path = ":plugins:donum-paper")) + gammaPlugin(project(path = ":plugins:essenceglue-paper")) + gammaPlugin(project(path = ":plugins:exilepearl-paper")) + gammaPlugin(project(path = ":plugins:factorymod-paper")) + gammaPlugin(project(path = ":plugins:hiddenore-paper")) + gammaPlugin(project(path = ":plugins:itemexchange-paper")) + gammaPlugin(project(path = ":plugins:jukealert-paper", configuration = "shadow")) + gammaPlugin(project(path = ":plugins:namecolors-paper")) + gammaPlugin(project(path = ":plugins:namelayer-paper")) + gammaPlugin(project(path = ":plugins:railswitch-paper")) + gammaPlugin(project(path = ":plugins:randomspawn-paper")) + gammaPlugin(project(path = ":plugins:realisticbiomes2-paper")) + gammaPlugin(project(path = ":plugins:simpleadminhacks-paper")) + gammaPlugin(project(path = ":plugins:heliodor-paper")) + pvpPlugin(project(path = ":plugins:banstick-paper", configuration = "shadow")) pvpPlugin(project(path = ":plugins:civduties-paper")) pvpPlugin(project(path = ":plugins:civmodcore-paper", configuration = "shadow")) @@ -67,6 +92,18 @@ val copyPvpPlugins = tasks.register("copyPvpPlugins") { into("$projectDir/build/pvp-plugins") } +val copyGammaPlugins = tasks.register("copyGammaPlugins") { + dependsOn(gammaPlugin) + + doFirst { + project.delete(files("$projectDir/build/gamma-plugins")) + } + + from("$projectDir/src/gamma-plugins") + from(gammaPlugin.resolvedConfiguration.resolvedArtifacts.map { it.file }) + into("$projectDir/build/gamma-plugins") +} + val copyProxyPlugins = tasks.register("copyProxyPlugins") { dependsOn(proxyPlugin) @@ -82,6 +119,7 @@ val copyProxyPlugins = tasks.register("copyProxyPlugins") { // TODO: Is build the right name? tasks.register("build") { dependsOn(copyPaperPlugins) + dependsOn(copyGammaPlugins) dependsOn(copyPvpPlugins) dependsOn(copyProxyPlugins) } diff --git a/ansible/files/gamma-config/bukkit.yml b/ansible/files/gamma-config/bukkit.yml new file mode 100644 index 000000000..facbdcabb --- /dev/null +++ b/ansible/files/gamma-config/bukkit.yml @@ -0,0 +1,34 @@ +settings: + allow-end: false + 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: + axolotls: 1 + monsters: 12 + animals: 7 + water-animals: 5 + water-ambient: 3 + water-underground-creature: 3 + ambient: 0 +chunk-gc: + period-in-ticks: 400 +ticks-per: + axolotl-spawns: 4800 + animal-spawns: 4800 + monster-spawns: 100 + water-spawns: 1200 + water-ambient-spawns: 4800 + water-underground-creature-spawns: 7200 + ambient-spawns: 7200 + autosave: 6000 +aliases: now-in-commands.yml +worlds: + world: + generator: ${CIV_WORLD_GENERATOR} diff --git a/ansible/files/gamma-config/civpaper.jar b/ansible/files/gamma-config/civpaper.jar new file mode 100644 index 000000000..665ef0e32 Binary files /dev/null and b/ansible/files/gamma-config/civpaper.jar differ diff --git a/ansible/files/gamma-config/config/paper-global.yml b/ansible/files/gamma-config/config/paper-global.yml new file mode 100644 index 000000000..ab00fd208 --- /dev/null +++ b/ansible/files/gamma-config/config/paper-global.yml @@ -0,0 +1,172 @@ +# 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 +# +# Docs: https://docs.papermc.io/ +# Discord: https://discord.gg/papermc +# Website: https://papermc.io/ + +_version: 29 +anticheat: + obfuscation: + items: + all-models: + also-obfuscate: [] + dont-obfuscate: + - minecraft:lodestone_tracker + sanitize-count: true + # don't enable until paper fixes issues + # https://github.com/PaperMC/Paper/issues/12294 + enable-item-obfuscation: false + model-overrides: + minecraft:elytra: + also-obfuscate: [] + dont-obfuscate: + - minecraft:damage + sanitize-count: true + minecraft:filled_map: + also-obfuscate: [] + dont-obfuscate: + - minecraft:map_id + - minecraft:map_decorations + - minecraft:map_color + 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: + autoconfig-send-distance: true + enable-frustum-priority: false + global-max-chunk-load-rate: -1.0 + global-max-chunk-send-rate: -1.0 + global-max-concurrent-loads: 500.0 + max-concurrent-sends: 2 + min-load-radius: 2 + player-max-concurrent-loads: 20.0 + target-player-chunk-send-rate: 100.0 +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: + gen-parallelism: default + io-threads: -1 + worker-threads: -1 +collisions: + enable-player-collisions: true + send-full-pos-for-hard-colliding-entities: true +commands: + fix-target-selector-tag-completion: true + 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: true +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: + connection-throttle: Connection throttled! Please wait before reconnecting. + flying-player: + flying-vehicle: + no-permission: 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 + fix-entity-position-desync: true + lag-compensate-block-breaking: true + load-permissions-yml-before-plugins: true + max-joins-per-tick: 3 + region-file-cache-size: 256 + strict-advancement-dimension-check: false + use-alternative-luck-formula: false + use-dimension-type-for-custom-spawners: false +packet-limiter: + all-packets: + action: KICK + interval: 7.0 + max-packet-rate: 2000.0 + kick-message: + overrides: + ServerboundPlaceRecipePacket: + 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: true + online-mode: true + secret: '${CIV_FORWARDING_SECRET}' +scoreboards: + save-empty-scoreboard-teams: false + 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 +timings: + enabled: true + hidden-config-entries: + - database + - settings.bungeecord-addresses + - settings.velocity-support.secret + - proxies.velocity.secret + history-interval: 300 + history-length: 3600 + server-name: CivMC + server-name-privacy: false + url: https://timings.aikar.co/ + verbose: true +unsupported-settings: + allow-headless-pistons: false + allow-permanent-block-break-exploits: false + allow-piston-duplication: false + allow-tripwire-disarming-exploits: false + allow-unsafe-end-portal-teleportation: false + compression-format: ZLIB + perform-username-validation: true + skip-vanilla-damage-tick-when-shield-blocked: false +watchdog: + early-warning-delay: 10000 + early-warning-every: 5000 diff --git a/ansible/files/gamma-config/config/paper-world-defaults.yml b/ansible/files/gamma-config/config/paper-world-defaults.yml new file mode 100644 index 000000000..5a7c0766e --- /dev/null +++ b/ansible/files/gamma-config/config/paper-world-defaults.yml @@ -0,0 +1,378 @@ +# 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. +# +# 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 + - 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 + lava-obscures: false + max-block-height: 64 + replacement-blocks: + - stone + - oak_planks + - deepslate + update-radius: 2 + use-permission: false + obfuscation: + items: + hide-durability: true + hide-itemmeta: false + hide-itemmeta-with-visual-effects: 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: 6 + prevent-moving-into-unloaded-chunks: true + random-tick-scale: 10 +collisions: + allow-player-cramming-damage: false + allow-vehicle-collisions: true + fix-climbing-bypassing-cramming-rule: false + max-entity-collisions: 2 + only-players-collide: false +command-blocks: + force-follow-perm-level: true + permissions-level: 2 +entities: + armor-stands: + do-collision-entity-lookups: true + tick: false + behavior: + allow-spider-world-border-climbing: true + baby-zombie-movement-modifier: 0.5 + disable-chest-cat-detection: true + disable-creeper-lingering-effect: false + disable-player-crits: false + door-breaking-difficulty: + husk: + - HARD + vindicator: [] + zombie: [] + 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.05 + spawn-delay: + per-player: false + ticks: 12000 + start: + day: 20 + per-player: false + player-insomnia-start-ticks: 72000 + should-remove-dragon: false + spawner-nerfed-mobs-should-jump: false + zombie-villager-infection-chance: default + zombies-target-turtle-eggs: true + entities-target-with-follow-range: false + 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 + despawn-time: + llama_spit: 1200 + snowball: 1200 + fireball: 1200 + dragon_fireball: 1200 + small_fireball: 1200 + arrow: 3000 + shulker_bullet: 3000 + wither_skull: 3000 + trident: 3000 + alt-item-despawn-rate: + enabled: true + items: + ancient_debris: 12000 + cactus: 1200 + cobbled_deepslate: 3000 + cobblestone: 3000 + deepslate: 3000 + deepslate_diamond_ore: 12000 + diamond: 12000 + diamond_axe: 12000 + diamond_block: 12000 + diamond_boots: 12000 + diamond_chestplate: 12000 + diamond_helmet: 12000 + diamond_leggings: 12000 + diamond_ore: 12000 + diamond_pickaxe: 12000 + diamond_shovel: 12000 + diamond_sword: 12000 + dirt: 1200 + netherite_axe: 12000 + netherite_block: 12000 + netherite_boots: 12000 + netherite_chestplate: 12000 + netherite_helmet: 12000 + netherite_hoe: 12000 + netherite_ingot: 12000 + netherite_leggings: 12000 + netherite_pickaxe: 12000 + netherite_scrap: 12000 + netherite_shovel: 12000 + netherite_sword: 12000 + stone: 3000 + count-all-mobs-for-spawning: false + creative-arrow-despawn-rate: '60' + despawn-range-shape: ELLIPSOID + despawn-ranges: + ambient: + hard: + horizontal: 36 + vertical: 96 + soft: 24 + axolotls: + hard: + horizontal: 36 + vertical: 128 + soft: 24 + creature: + hard: + horizontal: 36 + vertical: 128 + soft: 24 + misc: + hard: + horizontal: 36 + vertical: 96 + soft: 24 + monster: + hard: + horizontal: 36 + vertical: 128 + soft: 24 + underground_water_creature: + hard: + horizontal: 36 + vertical: 96 + soft: 24 + water_ambient: + hard: + horizontal: 36 + vertical: 96 + soft: 24 + water_creature: + hard: + horizontal: 36 + vertical: 96 + soft: 24 + disable-mob-spawner-spawn-egg-transformation: true + 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 + - SleepingX + - SleepingY + - SleepingZ + iron-golems-can-spawn-in-air: false + monster-spawn-max-light-level: default + non-player-arrow-despawn-rate: '60' + per-player-mob-spawns: true + scan-for-legacy-ender-dragon: true + skeleton-horse-thunder-spawn-chance: 0.001 + 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: 5 + spawn-chance-max: 75 + spawn-chance-min: 25 + spawn-day-length: 72000 + spawn-minute-length: 1200 + wateranimal-spawn-height: + maximum: default + minimum: default + tracking-range-y: + enabled: false + animal: 64 + display: 64 + misc: default + monster: 64 + other: 64 + player: default +environment: + disable-explosion-knockback: false + disable-ice-and-snow: false + disable-teleportation-suffocation-check: false + disable-thunder: false + fire-tick-delay: 30 + frosted-ice: + delay: + max: 40 + min: 20 + enabled: true + generate-flat-bedrock: true + locate-structures-outside-world-border: false + max-block-ticks: 65536 + max-fluid-ticks: 65536 + nether-ceiling-void-damage-height: 128 + optimize-explosions: true + portal-create-radius: 16 + portal-search-radius: 128 + portal-search-vanilla-dimension-scaling: true + treasure-maps: + enabled: false + find-already-discovered: + loot-tables: 'false' + 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: true + falling-block-height-nerf: disabled + fix-items-merging-through-walls: false + prevent-tnt-from-moving-in-water: false + remove-corrupt-tile-entities: 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: 160 +max-growth-height: + bamboo: + max: 10 + min: 6 + cactus: 3 + reeds: 3 +misc: + alternate-current-update-order: HORIZONTAL_FIRST_OUTWARD + disable-end-credits: false + disable-relative-projectile-velocity: false + disable-sprint-interruption-on-attack: false + light-queue-size: 20 + max-leash-distance: 10.0 + redstone-implementation: EIGENCRAFT + shield-blocking-delay: 5 + show-sign-click-command-failure-msgs-to-player: false + update-pathfinding-on-block-update: false + legacy-ender-pearl-behavior: true +scoreboards: + allow-non-player-entities-on-scoreboards: false + use-vanilla-world-scoreboard-name-coloring: false +spawn: + allow-using-signs-inside-spawn-protection: false + keep-spawn-loaded: false + keep-spawn-loaded-range: 10 +tick-rates: + behavior: + villager: + validatenearbypoi: -1 + container-update: 3 + dry-farmland: 3 + grass-spread: 2 + mob-spawner: 2 + sensor: + villager: + secondarypoisensor: 40 + wet-farmland: 3 +unsupported-settings: + disable-world-ticking-when-empty: false + fix-invulnerable-end-crystal-exploit: true diff --git a/ansible/files/gamma-config/libti.so b/ansible/files/gamma-config/libti.so new file mode 100755 index 000000000..e0d353146 Binary files /dev/null and b/ansible/files/gamma-config/libti.so differ diff --git a/ansible/files/gamma-config/ops.json b/ansible/files/gamma-config/ops.json new file mode 100644 index 000000000..095e9ad81 --- /dev/null +++ b/ansible/files/gamma-config/ops.json @@ -0,0 +1,26 @@ +[ + { + "uuid": "771e81cd-2f11-43b4-bd86-731fe468f131", + "name": "Wingzero54", + "level": 4, + "bypassesPlayerLimit": true + }, + { + "uuid": "82569b12-c44c-4864-8a73-85a9192ee8f9", + "name": "RedDevel", + "level": 4, + "bypassesPlayerLimit": true + }, + { + "uuid": "2c7c20f7-8472-4780-9b35-4cd4fae460c6", + "name": "Okx", + "level": 4, + "bypassesPlayerLimit": true + }, + { + "uuid": "7d4af441-a721-4e4c-9848-4e92a679f182", + "name": "HaKr_", + "level": 4, + "bypassesPlayerLimit": true + } +] diff --git a/ansible/files/gamma-config/plugins/Aqua/config.yml b/ansible/files/gamma-config/plugins/Aqua/config.yml new file mode 100644 index 000000000..2e776b75f --- /dev/null +++ b/ansible/files/gamma-config/plugins/Aqua/config.yml @@ -0,0 +1,17 @@ +# Experimental - detection of auto fishing mods based on movement +autoFishDetection: false + +# Use & for format codes +messages: + # For admin messages + messagePrefix: "&8[&bAqua&8] " + + afkForPlayer: "&cAFK fishing is not allowed on this server" + # %p% %u% placeholders for username and uuid required + afkForAdmin: "&3Detected player &a%p%&3 for &aAFK Fishing machine \n&3 UUID: (%u%)" + + autoForPlayer: "&aAuto fishing is not allowed on this server" + # %p% %u% placeholders for username and uuid required + autoForAdmin: "&3Kicked player &a%p%&3 for &aAuto Fishing \n&3 UUID: (%u%)" + +configVersionDoNotModify: 1.1 \ No newline at end of file diff --git a/ansible/files/gamma-config/plugins/BanStick/config.yml b/ansible/files/gamma-config/plugins/BanStick/config.yml new file mode 100644 index 000000000..870eab903 --- /dev/null +++ b/ansible/files/gamma-config/plugins/BanStick/config.yml @@ -0,0 +1,169 @@ +# Define here the database connection primitives. +# poolsize: How many connections to maintain at maximum +# connectionTimeout: In milliseconds, how long to wait for replies before timing out +# idleTimeout: In milliseconds, how long to let a connection stay open, idle +# maxLifetime: In milliseconds, how long to keep a connection in the pool +database: + host: ${CIV_MYSQL_HOST} + port: 3306 + database: banstick # shared (TODO is this safe?) + user: ${CIV_MYSQL_USERNAME} + password: ${CIV_MYSQL_PASSWORD} + poolsize: 15 + connectionTimeout: 3000 + idleTimeout: 600000 + maxLifetime: 7200000 + # Do we want to preload all data into memory (recommended) or if enabled: false, wait for on-demand? + # Batch: Size of batch (usually limited by DB software) + # Period: in ticks, how long inbetween batches, shared evenly across all data types + # Delay: in ticks, how long to wait until first batch, shared evenly across all data types + preload: + enabled: true + batch: 100 + period: 50 + delay: 100 + # This is always enabled. Updates to data are done batch-wise; period and delay are in ticks and define how long to wait inbetween update saves + dirtysave: + period: 12000 + delay: 6000 +import: + enable: false + # IP-Check import. Delay to set how long in ticks to wait after startup to import. Should be idempotent, _no_ guarantee whatsoever. + ipcheck: + delay: 1000 + enable: false + database: + host: localhost + port: + database: ipcheck + user: + password: + poolsize: 3 + connectionTimeout: 3000 + idleTimeout: 600000 + maxLifetime: 7200000 +# All bans and unbans are separately logged in an audit-log fashion. They are batched for insertion. +# maxBatch: maximum batch size to use +# delay: delay in ticks before beginning after server start +# period: time in ticks between commits +log: + maxBatch: 100 + delay: 120 + period: 1200 +# Event based checks and autoban configuration +# proxy - threshold: value in the database above which an IP Data record is considered a proxy source +# proxy - banMessage: if proxy bans enabled, the message to use +# share - threshold: How many accounts in addition to a player's main account are they allowed to connect with? 0 for no alts, 1 for one alt, etc. +# share - banMessage: if share bans enabled, the message to use +# enable: +# - ipBans: If banstick should autoban players for existing, standing IP bans. +# - subnetBans: If banstick should autoban players for existing, standing bans on subnets containing the connecting IP +# - proxyKicks: If banstick should autokick players for existing, standing banable proxies (does not issue ban) +# - proxyBans: If banstick should autoban players for existing, standing bans of known proxies (enable proxyKicks to also kick) +# - newProxyBans: If banstick should check the proxy threshold and create new bans for proxies if non already exists (leave true even if only kicking) +# - transitiveBans: If banstick should apply bans transitive across IPs +# Usage notes: To ban AND kick on new proxy detection, turn on proxyKicks, proxyBans, and newProxyBans. +# To ban but not kick, turn on proxyBans, and newProxyBans. +# To kick but not ban, turn on proxyKicks and newProxyBans. +# To only leverage existing proxy bans (direct import?) use either proxyKicks or proxyBans but leave newProxyBans off. +# +# - shareBans: If banstick should enforce the share threshold with bans. +# Usage notes: Set share.threshold to > 0 to allow some multiaccounting. If exceeded, will ban only the newest. +events: + proxy: + threshold: 2.8 + banMessage: 'VPS / VPN Proxy use is generally prohibited. Issue a ticket at support in the CivMC Discord to discuss: https://discord.gg/nDnsU6vJqg' + share: + threshold: 0 + banMessage: 'Multiaccounting is not generally allowed. Issue a ticket at support in the CivMC Discord to discuss/resolve: https://discord.gg/nDnsU6vJqg' + enable: + ipBans: true + subnetBans: true + proxyKicks: true + proxyBans: false + newProxyBans: true + shareBans: true + transitiveBans: true + lovetapOnJoin: true + proxyCheckRegistrar: true +# Configure the data source for VPS / VPN proxy list grabs. +# For cloud9: +# ban.length is in millisecond +# period and delay are in ticks +# defaultScore is the proxy threshold value to assign by default +proxy: + enable: true + cloud9: + enable: true + defaultScore: 3.0 + ban: + length: 163800000 + message: 'VPS / VPN Proxy use is generally prohibited. Issue a ticket at support in the CivMC Discord to discuss: https://discord.gg/nDnsU6vJqg' + url: https://raw.githubusercontent.com/client9/ipcat/master/datacenters.csv + period: 576000 + delay: 4200 +# Configure the tor check source; set autoban to true to not only track tor usage but also pre-set bans for tor users +tor: + check: true + autoban: true + # A number of flat lists exists. For each, you can define a ban message and ban length in milliseconds. Indicate + # if its a CIDR ban or specific IP ban list. The period and delay are in ticks, as discussed previously + lists: + danxxx: + ban: + length: 86400000 + message: TOR node use is generally prohibited. Modmail to www.reddit.com/r/CivMC to discuss + address: https://www.dan.me.uk/torlist/?exit + period: 72000 + delay: 3000 + cidr: false + torproject: + ban: + length: 86400000 + message: TOR node use is generally prohibited. Modmail to www.reddit.com/r/CivMC to discuss + address: https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=8.26.94.198&port=25565 + period: 72000 + delay: 3600 + cidr: false +# Configure the IP-API lookup for geoip data. By specs maxBatch must not exceed 100; don't exceed a total +# request count of more then 150 / min. Period is in ticks as is cooldownTicks. +# FailureCap defines how many errors from IP-API to ignore before coolingdown / stopped +# Set cooldownTicks to 0 to disable cooldown +# Defaults are safe for non-commercial use. +iplookup: + enable: true + maxBatch: 50 + period: 120 + failureCap: 5 + cooldownTicks: 72000 +# Configure the IPHub.info lookup for proxy/vpn/vps data. By specs you must not exceed 50 reqs / min unless on +# a more permissive plan. Default achieves this. +# request count of more then 50 / min. Period is in ticks as is cooldownTicks. +# FailureCap defines how many errors from IPHub.info to ignore before coolingdown / stopped +# Set cooldownTicks to 0 to disable cooldown. +# Batching is not apparently supported atm. +# Defaults match free account limits. +iphub: + enable: false + key: skey + period: 40 + failureCap: 5 + cooldownTicks: 72000 +# Configure the Scrapers to harvest public or anonymous proxies to prevent use in connecting +# freeproxylist binds to the ScrapeFreeProxyList scraper; delay, period, jitter, and errorCooldown are in ticks. +# jitter randomizes a bit the length of time inbetween requests, to reduce likelihood of your server being +# blacklisted +# maxErrors configures how many errors to ignore before engaging errorCooldown time (0 to just stop trying on errors) +# ban: fields define ban length in milliseconds and a ban message to use. +scrapers: + enable: true + freeproxylist: + enable: true + delay: 3300 + period: 72000 + jitter: 12000 + maxErrors: 10 + errorCooldown: 144000 + ban: + length: 86400000 + message: Anonymous Proxy connections are generally prohibited. Modmail to www.reddit.com/r/CivMC to discuss diff --git a/ansible/files/gamma-config/plugins/Bastion/config.yml b/ansible/files/gamma-config/plugins/Bastion/config.yml new file mode 100644 index 000000000..a0f558eb7 --- /dev/null +++ b/ansible/files/gamma-config/plugins/Bastion/config.yml @@ -0,0 +1,103 @@ +mysql: + user: ${CIV_MYSQL_USERNAME} + password: ${CIV_MYSQL_PASSWORD} + host: ${CIV_MYSQL_HOST} + database: ${CIV_DATABASE_PREFIX}bastion + port: 3306 + poolsize: 10 + connectionTimeout: 10000 + idleTimout: 600000 + maxLifetime: 7200000 + savesPerDay: 64 +commonSettings: + cancelReinforcementModeInBastionField: false + listBastionTimeout: 2000 + cancelPlacementAndDamage: + - SCAFFOLDING +bastions: +#The first bastion in this list will be used as the default type +#This only really matters the first time your start it up when converting from old bastion +#All bastions in the db will be flagged as, in this instance, citybastion + basic: + block: + material: SPONGE + durability: 0 + name: Bastion + lore: + - This bastion will protect you from grief + - It will also block pearls when they land + - As well as stop elytra + squarefield: true + effectRadius: 10 + includeY: true + startScaleFactor: 250 + finalScaleFactor: 1 + warmupTime: 86400000 + erosionPerDay: 0 + regenPerDay: 5 + blocksToErode: -1 + placementCooldown: 2000 + destroyOnRemove: true + onlyDirectDestroy: false + blockReinforcements: true + destroyOnRemoveWhileImmature: true #doesn't matter anyway if destroyOnRemove=true + proximityDamageRange: 18 + proximityDamageFactor: 1.2 + overlay_name: Va + pearls: + block: true + blockMidair: false + scaleFactor: 1 + requireMaturity: true + consumeOnBlock: false + damageFirstBastion: true + allowPearlingOut: true + elytra: + block: true + scaleFactor: 1 + requireMaturity: true + destroyOnBlock: false + damageOnBlock: true + explodeOnBlock: true + explodeOnBlockStrength: 0 + city: + block: + material: BONE_BLOCK + durability: 0 + name: City Bastion + lore: + - City bastions block reinforcements and elytra + squarefield: true + effectRadius: 50 + includeY: true + startScaleFactor: 250 + finalScaleFactor: 1 + warmupTime: 86400000 + erosionPerDay: 0 + regenPerDay: 5 + blocksToErode: -1 + placementCooldown: 2000 + destroyOnRemove: false + onlyDirectDestroy: true + blockReinforcements: true + destroyOnRemoveWhileImmature: true + proximityDamageRange: 25 + proximityDamageFactor: 0.6 + overlay_name: Ci + pearls: + block: false + blockMidair: false + scaleFactor: 1 + requireMaturity: true + consumeOnBlock: true + damageFirstBastion: true + allowPearlingOut: true + elytra: + block: true + scaleFactor: 1 + requireMaturity: true + destroyOnBlock: false + damageOnBlock: true + damageFirstBastion: true + explodeOnBlock: true + explodeOnBlockStrength: 0 diff --git a/ansible/files/gamma-config/plugins/Brewery/config.yml b/ansible/files/gamma-config/plugins/Brewery/config.yml new file mode 100644 index 000000000..65772e467 --- /dev/null +++ b/ansible/files/gamma-config/plugins/Brewery/config.yml @@ -0,0 +1,1202 @@ +# config for Brewery.jar + + +# -- Settings -- +# Defaults are written in [] + +# Languagefile to be used (found in plugins/Brewery/languages) +language: en + +# If the player wakes up at /home when logging in after excessive drinking (/home plugin must be installed!) [true] +enableHome: true + +# Type of the home-teleport: ['cmd: home'] +# bed = Player will be teleported to his spawn bed +# 'cmd: home' = /home will be executed by the player. He has to have permissions for it without any delay! +# 'cmd: spawn' = /spawn will be executed by the player. +# 'cmd: whatever' = /whatever will be executed by the player. +homeType: 'cmd: home' + +# If the player "wakes up" at a random place when offline for some time while drinking (the places have to be defined with '/brew Wakeup add' through an admin) +# The Player wakes at the nearest of two random places of his world [true] +enableWake: true + +# If the Player may have to try multiple times when logging in while extremely drunk [true] +enableLoginDisallow: true + +# If the Player faints shortly (gets kicked from the server) if he drinks the max amount of alcohol possible [false] +enableKickOnOverdrink: false + +# If the Player vomits on high drunkeness (drops item defined below) [true] +# The item can not be collected and stays on the ground until it despawns. +enablePuke: true + +# Item that is dropped multiple times uncollectable when puking [Soul_Sand] +pukeItem: Soul_Sand + +# Time in seconds until the pukeitems despawn, (mc default is 300 = 5 min) [60] +# If the item despawn time was changed in the spigot.yml, the pukeDespawntime changes as well. +pukeDespawntime: 60 + +# How much the Player stumbles depending on the amount of alcohol he drank. Can be set to 0 and higher than 100 [100] +stumblePercent: 100 + +# Display his drunkeness to the player when he drinks a brew or eats a drainItem [true] +showStatusOnDrink: true + +# Consumable Item/strength. Decreases the alcohol level by when consumed. (list) +drainItems: + - Bread/4 + - Milk_Bucket/2 + +# Show Particles over Cauldrons when they have ingredients and a heat source. [true] +# The changing color of the particles can help with timing some recipes +enableCauldronParticles: true +# If Cauldron Particles should be reduced to the bare minimum [false] +minimalParticles: false + +# If crafting and using of the Brew Sealing Table is enabled (2 Bottles over 4 Planks) [true, true] +craftSealingTable: true +enableSealingTable: true + +# Always show the 1-5 stars on the item depending on the quality. If false, they will only appear when brewing [true] +alwaysShowQuality: true + +# Always show the alcohol content on the item. If false, it will only show in the brewing stand [false] +alwaysShowAlc: false + +# If aging in -Minecraft- Barrels in enabled [true] and how many Brewery drinks can be put into them [6] +ageInMCBarrels: true +maxBrewsInMCBarrels: 6 + +# The used Ingredients and other brewing-data is saved to all Brewery Items. To prevent +# hacked clients from reading what exactly was used to brew an item, the data can be encoded/scrambled. +# This is a fast process to stop players from hacking out recipes, once they get hold of a brew. +# Only drawback: brew items can only be used on another server with the same encodeKey. +# When using Brews on multiple (BungeeCord) Servers, define a shared Database below at 'multiServerDB' +# So enable this if you want to make recipe cheating harder, but don't share any brews by world download, schematics, or other means. [false] +enableEncode: false +encodeKey: 1397717000355423911 + +# Enable checking for Updates, Checks the curseforge api for updates to Brewery [true] +# If an Update is found a Message is logged on Server-start and displayed to OPs joining the game +updateCheck: true + +# Autosave interval in minutes [3] +autosave: 3 + +# Show debug messages in log [false] +debug: false + +# Config Version +version: '3.1' + + + +# -- Define custom items -- +# The defined id can then be used in recipes + +# matchAny: true if it is already enough if one of the info matches +# material: Which type the item has to be +# name: Which name the item has to be (Formatting codes possible: such as &6) +# lore: What has to be in the lore of the item + +customItems: + # Three Example Items + ex-item: + # A Barrier item called Wall and has the given line in its lore + material: Barrier + name: 'Wall' + lore: + - '&7Very well protected' + + ex-item2: + # Using matchAny only one of the following has to match. + # In this case on of the door types, or an item called Beechwood Door, or an item with 'A door' in its lore + matchAny: true + material: + - Acacia_Door + - Oak_Door + - Spruce_Door + name: + - 'Beechwood Door' + lore: + - 'A door' + + rasp: + name: '&cRaspberry' + + blue-flowers: + matchAny: true + material: + - cornflower + - blue_orchid + + +# -- Ingredients in the Cauldron -- +# Which Ingredients are accepted by the Cauldron and the base potion resulting from them +# You only need to add something here if you want to specify a custom name or color for the base potion + + # name: Name of the base potion coming out of the Cauldron (Formatting codes possible: such as &6) + # ingredients: List of 'material/amount' + # With an item in your hand, use /brew ItemName to get its material for use in a recipe + # (Item-ids instead of material are not supported by bukkit anymore and will not work) + # A list of materials can be found here: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html + # color: Color of the base potion from a cauldron. Defaults to CYAN + # Usable Colors: DARK_RED, RED, BRIGHT_RED, ORANGE, YELLOW, PINK, PURPLE, BLUE, CYAN, WATER, TEAL, OLIVE, GREEN, LIME, BLACK, GREY, BRIGHT_GREY, WHITE + # Or RGB colors (hex: for example '99FF33') (with '') (search for "HTML color" on the internet) + # cookParticles: + # Color of the Particles above the cauldron at different cooking-times + # Color and minute during which each color should appear, i.e. one color at 8 minutes fading to another at 18 minutes. + # As List, each Color as name or RGB, see above. Written as 'Color/Minute' + # It will fade to the last color in the end, if there is only one color in the list, it will fade to grey + # lore: List of additional text on the base potion. (Formatting codes possible: such as &6) + # customModelData: Custom Model Data Tag. This is a number that can be used to add custom textures to the item. + +cauldron: + # Example with all possible entries + ex: + name: Example + ingredients: + - Bedrock/2 + - Diamond + color: BLACK + cookParticles: + - 'RED/5' + - 'WHITE/10' + - '800000/25' # maroon + lore: + - An example for a Base Potion + - This is how it comes out of a Cauldron + customModelData: 545 + + # -- One Ingredient: -- + wheat: + name: Fermented wheat + ingredients: Wheat + cookParticles: + - '2d8686/8' # Dark Aqua + + sugarcane: + name: Sugar brew + ingredients: Sugar_Cane + color: 'f1ffad' # yellowish green + cookParticles: + - 'f1ffad/4' + - '858547/10' # dark olive + + sugar: + name: Sugarwater + ingredients: Sugar + cookParticles: + - 'WHITE/4' + - 'BRIGHT_GREY/25' + + apple: + name: Apple must + ingredients: Apple + + berries: + name: Grape must + ingredients: Sweet_Berries + color: RED + cookParticles: + - 'ff6666/2' # bright red + - 'RED/7' + - 'ac6553/13' # brown-red + + potato: + name: Potatomash + ingredients: Potato + + grass: + name: Boiled herbs + ingredients: Grass + color: '99ff66' # bright green + cookParticles: + - 'GREEN/2' + - '99ff99/20' # faded green + + rmushroom: + name: Mushroom brew + ingredients: Red_Mushroom + color: 'ff5c33' # amber red + cookParticles: + - 'fab09e/15' # faded red + + bmushroom: + name: Mushroom brew + ingredients: Brown_Mushroom + color: 'c68c53' # brighter brown + cookParticles: + - 'c68c53/15' + + cocoa: + name: Chocolately brew + ingredients: Cocoa_Beans + color: '804600' # mocca + cookParticles: + - 'a26011/1' + - '5c370a/3' + - '4d4133/8' # Gray-brown + + milk: + name: Milky water + ingredients: Milk_Bucket + color: BRIGHT_GREY + cookParticles: + - 'fbfbd0/1' # yellow-white + - 'WHITE/6' + + bl_flow: + name: Blueish brew + ingredients: blue-flowers + color: '0099ff' # sky blue + cookParticles: + - '0099ff' + + cactus: + name: Agave brew + ingredients: cactus + color: '00b300' # cactus green + cookParticles: + - '00b300/16' + + poi_potato: + name: Poisonous Broth + ingredients: Poisonous_Potato + + egg: + name: Sticky brew + ingredients: Egg + + + oak_sapling: + name: Stringy hebry broth + ingredients: Oak_Sapling + + vine: + name: Boiled herbs + ingredients: vine + color: '99ff66' # bright green + cookParticles: + - 'GREEN/2' + - '99ff99/20' # faded green + + rot_flesh: + name: Foul pest + ingredients: Rotten_Flesh + color: '263300' # brown green + cookParticles: + - '263300/8' + - 'BLACK/20' + + melon: + name: Melon juice + ingredients: melon_slice + + wheat_seeds: + name: Bitter brew + ingredients: Wheat_Seeds + + melon_seeds: + name: Bitter brew + ingredients: Melon_Seeds + + pumpkin_seeds: + name: Bitter brew + ingredients: Pumpkin_Seeds + + bone_meal: + name: Bony Brew + ingredients: bone_meal + color: BRIGHT_GREY + + cookie: + name: Chocolately sap + ingredients: Cookie + color: '804600' # mocca + cookParticles: + - 'a26011/1' + - '5c370a/3' + - '4d4133/8' # Gray-brown + + fer_spid_eye: + name: Fermented Eye + ingredients: Fermented_Spider_Eye + + ghast_tear: + name: Sad brew + ingredients: ghast_tear + + snowball: + name: Icewater + ingredients: Snowball + + Gold_Nugget: + name: Glistering brew + ingredients: Gold_Nugget + color: 'ffd11a' # gold + cookParticles: + - 'ffd11a' + + glowstone_dust: + name: Glowing brew + ingredients: Glowstone_Dust + color: 'ffff33' # bright yellow + cookParticles: + - 'ffff99/3' + - 'd9d926/15' # faded yellow + + # -- Multiple Ingredients: -- + applemead_base: + name: Apple-Sugar brew + ingredients: + - Sugar_Cane/3 + - Apple + color: 'e1ff4d' # greenish yellow + cookParticles: + - 'e1ff4d/4' + + poi_grass: + name: Boiled acidy herbs + ingredients: + - Grass + - Poisonous_Potato + color: '99ff66' # bright green + cookParticles: + - 'GREEN/2' + - '99ff99/20' # faded green + + juniper: + name: Juniper brew + ingredients: + - blue-flowers + - wheat + color: '00ccff' # aqua + cookParticles: + - '00ccff/8' + + gin_base: + name: Fruity juniper brew + ingredients: + - blue-flowers + - wheat + - apple + color: '66e0ff' # lighter aqua + cookParticles: + - '00ccff/5' + + eggnog_base: + name: Smooth egg mixture + ingredients: + - egg + - sugar + - milk_bucket + color: 'ffecb3' # yellow-orange + cookParticles: + - 'ffecb3/2' + + + +# -- Recipes for Potions -- + +# name: Different names for bad/normal/good (Formatting codes possible: such as &6) +# ingredients: List of 'material/amount' +# With an item in your hand, use /brew ItemName to get its material for use in a recipe +# (Item-ids instead of material are not supported by bukkit anymore and will not work) +# A list of materials can be found here: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html +# Plugin items with 'plugin:id' (Currently supporting ExoticGarden, Slimefun, MMOItems, Brewery) +# Or a custom item defined above +# cookingtime: Time in real minutes ingredients have to boil +# distillruns: How often it has to be distilled for full alcohol (0=without distilling) +# distilltime: How long (in seconds) one distill-run takes (0=Default time of 40 sec) MC Default would be 20 sec +# wood: Wood of the barrel 0=any 1=Birch 2=Oak 3=Jungle 4=Spruce 5=Acacia 6=Dark Oak 7=Crimson 8=Warped +# The Minecraft barrel is made of oak +# age: Time in Minecraft-days, the potion has to age in a barrel 0=no aging +# color: Color of the potion after distilling/aging. +# Usable Colors: DARK_RED, RED, BRIGHT_RED, ORANGE, YELLOW, PINK, PURPLE, BLUE, CYAN, WATER, TEAL, OLIVE, GREEN, LIME, BLACK, GREY, BRIGHT_GREY, WHITE +# Or RGB colors (hex: for example '99FF33') (with '') (search for "HTML color" on the internet) +# difficulty: 1-10 accuracy needed to get good quality (1 = unaccurate/easy, 10 = very precise/hard) +# alcohol: Absolute amount of alcohol 0-100 in a perfect potion (will be added directly to the player, where 100 means fainting) +# lore: List of additional text on the finished brew. (Formatting codes possible: such as &6) +# Specific lore for quality possible, using + bad, ++ normal, +++ good, added to the front of the line. +# servercommands: List of Commands executed by the -Server- when drinking the brew (Can use %player_name% %quality%) +# playercommands: List of Commands executed by the -Player- when drinking the brew (Can use %player_name% %quality%) +# Specific Commands for quality possible, using + bad, ++ normal, +++ good, added to the front of the line. +# drinkmessage: Chat-message to the Player when drinking the Brew +# drinktitle: Title on Screen to the Player when drinking the Brew +# customModelData: Custom Model Data Tag. This is a number that can be used to add custom textures to the item. +# Can specify one for all, or one for each quality, separated by / +# effects: List of effect/level/duration Special potion-effect when drinking, duration in sek. +# Possible Effects: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/potion/PotionEffectType.html +# Level or Duration ranges may be specified with a "-", ex. 'SPEED/1-2/30-40' = lvl 1 and 30 sec at worst and lvl 2 and 40 sec at best +# Ranges also work high-low, ex. 'POISON/3-1/20-5' for weaker effects at good quality. +# Highest possible Duration: 1638 sec. Instant Effects dont need any duration specified. + +recipes: + # Example Recipe with every possible entry first: + ex: + name: Bad Example/Example/Good Example + ingredients: + - Diamond/1 + - Spruce_Planks/8 + - Bedrock/1 + - Brewery:Wheatbeer/2 +# - ExoticGarden:Grape/3 + - ex-item/4 + cookingtime: 3 + distillruns: 2 + distilltime: 60 + wood: 4 + age: 11 + color: DARK_RED + difficulty: 3 + alcohol: 14 + lore: + - This is an examble brew + - ++Just a normal Example + - This text would be on the brew + - + Smells disgusting + - ++ Smells alright + - +++ Smells really good + servercommands: + - +++ weather clear + - + weather rain + playercommands: + - homes + drinkmessage: Tastes good + drinktitle: Warms you from inside + customModelData: 556/557/557 + effects: + - FIRE_RESISTANCE/20 + - HEAL/1 + - WEAKNESS/2-3/50-60 + - POISON/1-0/20-0 + + wheatbeer: + name: Skunky Wheatbeer/Wheatbeer/Fine Wheatbeer + ingredients: + - Wheat/3 + cookingtime: 8 + distillruns: 0 + wood: 1 + age: 2 + color: 'ffb84d' # Orange + difficulty: 1 + alcohol: 5 + lore: +++ &8Refreshing + + beer: + name: Skunky Beer/Beer/Fine Beer + ingredients: + - Wheat/6 + cookingtime: 8 + distillruns: 0 + wood: 0 + age: 3 + color: 'ffd333' # Bright Orange + difficulty: 1 + lore: + - +++ &8Crisp taste + alcohol: 6 + + darkbeer: + name: Skunky Darkbeer/Darkbeer/Fine Darkbeer + ingredients: + - Wheat/6 + cookingtime: 8 + distillruns: 0 + wood: 6 + age: 8 + color: '650013' # Dark Red-Brown + difficulty: 2 + lore: + - +++ &8Roasted taste + alcohol: 7 + + wine: + name: Red Wine + ingredients: + - Sweet_Berries/5 + cookingtime: 5 + distillruns: 0 + wood: 0 + age: 20 + color: RED + difficulty: 4 + alcohol: 8 + lore: + - '+ &8Harsh' + - '+ &8Corked' + - '++ &8Mellow' + - '+++ &8Full-Bodied' + + mead: + name: Awkward Mead/Mead/&6Golden Mead + ingredients: + - Sugar_Cane/6 + cookingtime: 3 + distillruns: 0 + wood: 2 + age: 4 + color: ORANGE + difficulty: 2 + lore: + - +++ Has a golden shine + alcohol: 9 + + ap_mead: + name: Apple Mead/Sweet Apple Mead/&6Sweet Golden Apple Mead + ingredients: + - Sugar_Cane/6 + - Apple/2 + cookingtime: 4 + distillruns: 0 + wood: 2 + age: 4 + color: ORANGE + difficulty: 4 + alcohol: 11 + lore: + - +Is there any Apple in this? + - ++Refreshing taste of Apple + - +++Sweetest hint of Apple + effects: + - WATER_BREATHING/1-2/150 + + cidre: + name: Poor Cidre/Apple Cider/Great Apple Cider + ingredients: + - Apple/14 + cookingtime: 7 + distillruns: 0 + wood: 0 + age: 3 + color: 'f86820' # Red-Orange + difficulty: 4 + alcohol: 7 + + apple_liquor: + name: Sour Apple Liquor/Apple Liquor/Calvados + ingredients: + - Apple/12 + cookingtime: 16 + distillruns: 3 + wood: 5 + age: 6 + color: BRIGHT_RED + difficulty: 5 + alcohol: 14 + lore: + - +Sour like Acid + - +++ Good Apple Liquor + + whiskey: + name: Unsightly Whiskey/Whiskey/Scotch Whiskey + ingredients: + - Wheat/10 + cookingtime: 10 + distillruns: 2 + distilltime: 50 + wood: 4 + age: 18 + color: ORANGE + difficulty: 7 + alcohol: 26 + lore: '&7Single Malt' + + rum: + name: Bitter Rum/Spicy Rum/&6Golden Rum + ingredients: + - Sugar_Cane/18 + cookingtime: 6 + distillruns: 2 + distilltime: 30 + wood: 2 + age: 14 + color: DARK_RED + difficulty: 6 + alcohol: 30 + effects: + - FIRE_RESISTANCE/1/20-100 + - POISON/1-0/30-0 + lore: + - +&8Too bitter to drink + - ++&8Spiced by the barrel + - +++&eSpiced Gold + + vodka: + name: Lousy Vodka/Vodka/Russian Vodka + ingredients: + - Potato/10 + cookingtime: 15 + distillruns: 3 + age: 0 + color: WHITE + difficulty: 4 + alcohol: 20 + lore: + &8Almost undrinkable + effects: + - WEAKNESS/15 + - POISON/10 + + shroom_vodka: + name: Mushroom Vodka/Mushroom Vodka/Glowing Mushroom Vodka + ingredients: + - Potato/10 + - Red_Mushroom/3 + - Brown_Mushroom/3 + cookingtime: 18 + distillruns: 5 + age: 0 + color: 'ff9999' # Pink-Red + difficulty: 7 + alcohol: 18 + lore: +++&aGlows in the dark + effects: + - WEAKNESS/80 + - CONFUSION/27 + - NIGHT_VISION/50-80 + - BLINDNESS/12-2 + - SLOW/10-3 + + gin: + name: Pale Gin/Gin/Old Tom Gin + ingredients: + - Wheat/9 + - blue-flowers/6 # Custom-Item: Blue Orchids or Cornflowers + - Apple/1 + cookingtime: 6 + distillruns: 2 + color: '99ddff' # Very light blue + difficulty: 6 + alcohol: 20 + lore: + - ++ With the + - ++ taste of juniper + - +++ Perfectly finished off + - +++ with juniper + + tequila: + name: Mezcal/Tequila/Tequila anejo + ingredients: + - cactus/8 + cookingtime: 15 + distillruns: 2 + color: 'f5f07e' # Green-Orange + difficulty: 5 + wood: 1 + age: 12 + alcohol: 20 + lore: Desert spirit + + absinthe: + name: Poor Absinthe/Absinthe/Strong Absinthe + ingredients: + - Grass/15 + cookingtime: 3 + distillruns: 6 + distilltime: 80 + color: GREEN + difficulty: 8 + alcohol: 42 + effects: + - POISON/15-25 + lore: '+++&8High proof liquor' + + gr_absinthe: + name: Poor Absinthe/Green Absinthe/Bright Green Absinthe + ingredients: + - Grass/17 + - Poisonous_Potato/2 + cookingtime: 5 + distillruns: 6 + distilltime: 85 + color: LIME + difficulty: 9 + alcohol: 46 + effects: + - POISON/25-40 + - HARM/2 + - NIGHT_VISION/40-60 + lore: '&aLooks poisonous' + + potato_soup: + name: Potato soup + ingredients: + - Potato/5 + - Grass/3 + cookingtime: 3 + color: ORANGE + difficulty: 1 + effects: + - HEAL/0-1 + + coffee: + name: Stale Coffee/Coffee/Strong Coffee + ingredients: + - Cocoa_Beans/12 + - Milk_Bucket/2 + cookingtime: 2 + color: BLACK + difficulty: 3 + alcohol: -6 + lore: + &8Probably a week old + effects: + - REGENERATION/1/2-5 + - SPEED/1/30-140 + + eggnog: + name: Egg Liquor/Eggnog/Advocaat + ingredients: + - Egg/5 + - Sugar/2 + - Milk_Bucket/1 + cookingtime: 2 + color: 'ffe680' + difficulty: 4 + alcohol: 10 + wood: 0 + age: 3 + lore: Made with raw egg + + + + +# I don't want to add more Recipes to the default config, as they would be public and viewable by users to cheat. +# It is up to the Serveradmin to change and add Recipes, so players cannot cheat from the default config. +# Some suggestions for recipes you could use: + + # g_vodka: + # name: 'Rancid Vodka/&6Golden Vodka/&6Shimmering Golden Vodka' + # ingredients: + # - Potato/10 + # - Gold_Nugget/2 + # cookingtime: 18 + # distillruns: 3 + # age: 0 + # color: ORANGE + # difficulty: 6 + # alcohol: 20 + # effects: + # - WEAKNESS/28 + # - POISON/4 + + # fire_whiskey: + # name: Powdery Whiskey/Burning Whiskey/Blazing Whiskey + # ingredients: + # - Wheat/10 + # - Blaze_Powder/2 + # cookingtime: 12 + # distillruns: 3 + # distilltime: 55 + # wood: 4 + # age: 18 + # color: ORANGE + # difficulty: 7 + # alcohol: 28 + # drinkmessage: 'You get a burning feeling in your mouth' + +# Without Alcohol: + + # hot_choc: + # name: Hot Chocolate + # ingredients: + # - cookie/3 + # cookingtime: 2 + # color: DARK_RED + # difficulty: 2 + # effects: + # - FAST_DIGGING/40 + + # iced_coffee: + # name: Watery Coffee/Iced Coffee/Strong Iced Coffee + # ingredients: + # - cookie/8 + # - snowball/4 + # - milk_bucket/1 + # cookingtime: 1 + # color: BLACK + # difficulty: 4 + # alcohol: -8 + # effects: + # - REGENERATION/30 + # - SPEED/10 + + +# More Recipe ideas: +# Dandelion Liquor +# Beetroot Spirit, +# Poppy Liquor: Macum/Grand Poppy, +# Bamboo Liquor: Chu Yeh Ching, +# Cachaca, +# Cognac, +# Sake, +# Buorbon, +# Moonshine, +# Different Wines, +# Brandy, +# Amaretto, +# etc. as well as variations like, +# Pumpkin Spice Beer, +# Melon Vodka + +# There are a lot of items in Minecraft like Vines, Milk and items added by plugins that would make great ingredients. + + +# -- Plugin Compatibility -- + +# Enable checking of other Plugins (if installed) for Barrel Permissions [true] +# Plugins 'Landlord' and 'Protection Stones' use the WorldGuard Flag. 'ClaimChunk' is natively supported. +useWorldGuard: true +useLWC: true +useGriefPrevention: true +useTowny: true +useBlockLocker: true +useGMInventories: true + +# Use a virtual chest when opening a Barrel to check with all other protection plugins +# This could confuse Anti-Cheat plugins, but is otherwise good to use +# use this for 'Residence' Plugin and any others that don't check all cases in the PlayerInteractEvent +useVirtualChestPerms: false + + +# Enable the Logging of Barrel Inventories to LogBlock [true] +useLogBlock: true + + +# -- MultiServer/BungeeCord -- +# If Brewery is running on multiple connected Servers (via BungeeCord) +# a shared Database can be used here to synchronise drunkeness and to be able to use encoded brews between them. + +multiServerDB: + # If using the Database is enabled + enabled: false + # If the drunkeness of players should be synchronised between Servers + syncDrunkeness: true + host: localhost + port: '3306' + user: minec + password: xyz + database: base + + +# -- Various Other Settings -- + +# If items in Offhand should be added to the cauldron as well [false] +useOffhandForCauldron: false + +# If Barrel and Cauldron data can be loaded Async/in the Background [true] +loadDataAsync: true + +# Time (in days) that drunkeness-data stays in memory after a player goes offline, to apply hangover etc. [7] +hangoverDays: 7 + +# Color the Item information (lore) depending on quality while it is 1. in a barrel and/or 2. in a brewing stand [true, true] +colorInBarrels: true +colorInBrewer: true + +# If a Large Barrel can be opened by clicking on any of its blocks, not just Spigot or Sign. This is always true for Small Barrels. [true] +openLargeBarrelEverywhere: true + +# Allow emptying brews into hoppers to discard brews while keeping the glass bottle [true] +brewHopperDump: true + + +# -- Chat Distortion Settings -- + +# If written Chat is distorted when the Player is Drunk, so that it looks like drunk writing +# How much the chat is distorted depends on how drunk the Player is +# Below are settings for what and how changes in chat occur +enableChatDistortion: true + +# Log to the Serverlog what the player actually wrote, before his words were altered [false] +logRealChat: false + +# Text after specified commands will be distorted when drunk (list) [- /gl] +distortCommands: +- /gl +- /global +- /fl +- /s +- /letter +- /g +- /l +- /lokal +- /local +- /mail send +- /m +- /msg +- /w +- /whisper +- /reply +- /r +- /t +- /tell + +# Distort the Text written on a Sign while drunk [false] +distortSignText: false + +# Enclose a Chat text with these Letters to bypass Chat Distortion (Use "," as Separator) (list) [- '[,]'] +# Chat Example: Hello i am drunk *I am testing Brewery* +distortBypass: +- '*,*' +- '[,]' + +# words: Words and letters that will be altered when chatting while being drunk. +# Will be processed from first to last and a written sentece is altered in that order. + +# replace: Word or letter to be replaced. (Special: "-space": replaces space, "-random": insert into random position, "-all": everything, "-start": At Beginning, "-end": At the End.) +# to: What to replace it with. +# pre: Words and Letters before the wanted word (split with ",") +# match: true = one of the "pre"-Words has to be before the wanted Word, false = none of the "pre" Words is allowed before the wanted Word +# alcohol: 1-100 minimum drunkeness after which this word ist replaced +# percentage: Probability of replacing a Word in percent + +words: +- replace: s + to: sh + percentage: 90 + alcohol: 30 + +- replace: ch + to: sh + pre: u,s,o,a + match: false + alcohol: 10 + percentage: 70 + +- replace: h + to: hh + pre: sch,h,t + match: false + percentage: 60 + alcohol: 20 + +- replace: th + to: thl + percentage: 40 + alcohol: 30 + +- replace: sch + to: shk + percentage: 60 + alcohol: 40 + +- replace: u + to: uuh + percentage: 20 + +- replace: y + to: yy + percentage: 60 + alcohol: 15 + +- replace: e + to: ee + percentage: 40 + alcohol: 15 + +- replace: you + to: u + percentage: 40 + +- replace: u + to: uo + pre: u + match: false + percentage: 60 + +- replace: that + to: taht + percentage: 20 + alcohol: 40 + +- replace: p + to: b + percentage: 30 + +- replace: p + to: b + percentage: 70 + alcohol: 60 + +- replace: up + to: ubb + percentage: 80 + alcohol: 25 + +- replace: o + to: oh + percentage: 20 + +- replace: ei + to: i + percentage: 30 + alcohol: 15 + +- replace: b + to: bb + percentage: 80 + alcohol: 40 + +- replace: '!!!' + to: '!!!111!!!eleven!1!' + pre: '!' + match: false + percentage: 20 + alcohol: 70 + +- replace: '!' + to: '!!' + pre: '!' + match: false + percentage: 90 + +- replace: drunk + to: dhrkunn + pre: are + match: false + percentage: 70 + alcohol: 65 + +- replace: walk + to: whhealhk + pre: you can, you can still, you can not + match: false + percentage: 80 + alcohol: 30 + +- replace: wtf + to: wft + percentage: 20 + alcohol: 40 + +- replace: lol + to: loool + percentage: 80 + alcohol: 10 + +- replace: afk + to: aafkayyy + percentage: 30 + alcohol: 30 + +- replace: write + to: wreitt + pre: you can,you can still,you can not + match: false + percentage: 80 + alcohol: 50 + +- replace: drink + to: booze + percentage: 80 + alcohol: 70 + +- replace: '?' + to: '????' + pre: '?' + match: false + percentage: 80 + alcohol: 40 + +- replace: -space + to: '' + pre: h,g,w + match: true + alcohol: 10 + +- replace: -space + to: '' + percentage: 30 + alcohol: 35 + +- replace: -space + to: '' + percentage: 10 + +- replace: -start + to: dho + percentage: 15 + alcohol: 50 + +- replace: -start + to: hhn + percentage: 10 + alcohol: 50 + +- replace: -random + to: lu + percentage: 10 + +- replace: -random + to: lug + percentage: 10 + alcohol: 50 + +- replace: -random + to: blub + percentage: 20 + alcohol: 80 + +- replace: -random + to: lerg + percentage: 40 + alcohol: 85 + +- replace: -random + to: gul + percentage: 40 + alcohol: 80 + +- replace: -random + to: ' ' + percentage: 100 + alcohol: 70 + +- replace: -random + to: ' ' + percentage: 60 + alcohol: 40 + +- replace: -random + to: ' ' + percentage: 50 + alcohol: 30 + +- replace: -end + to: '!' + percentage: 40 + alcohol: 30 + +- replace: -random + to: ' *hic* ' + percentage: 80 + alcohol: 70 + +- replace: -random + to: ' *hic* ' + percentage: 15 + alcohol: 40 + +- replace: -space + to: ' *hic* ' + percentage: 5 + alcohol: 20 + +- replace: -end + to: ' *hic*' + percentage: 70 + alcohol: 50 + +- replace: -all + to: '*burp*' + percentage: 3 + alcohol: 60 + +- replace: -all + to: '*burp*' + percentage: 6 + alcohol: 80 \ No newline at end of file diff --git a/ansible/files/gamma-config/plugins/CastleGates/config.yml b/ansible/files/gamma-config/plugins/CastleGates/config.yml new file mode 100644 index 000000000..7fe0d96ba --- /dev/null +++ b/ansible/files/gamma-config/plugins/CastleGates/config.yml @@ -0,0 +1,898 @@ +Database: + Host: ${CIV_MYSQL_HOST} + Port: 3306 + Schema: ${CIV_DATABASE_PREFIX}castlegates + User: ${CIV_MYSQL_USERNAME} + Password: ${CIV_MYSQL_PASSWORD} +Settings: + AllowAutoCreate: true + InteractWithSnitches: true + MaxPowerTransfers: 32 + MaxBridgeLength: 16 + PlayerStateResetInSeconds: 300 + SwitchTimeout: 1000 + MaxRedstoneDistance: 7 + Timer: + Enabled: true + Min: 1 + Max: 60 + DefaultInterval: 5 + DefaultOperation: UNDRAW + GearblockMustBeReinforced: true + HorizontalLinkDisabled: true +Blocks: + GearMaterials: + - ACACIA_FENCE + - ACACIA_LOG + - ACACIA_PLANKS + - ACACIA_SLAB + - ACACIA_STAIRS + - ACACIA_WOOD + - AMETHYST_BLOCK + - ANDESITE + - ANDESITE_SLAB + - ANDESITE_STAIRS + - ANDESITE_WALL + - BASALT + - BAMBOO_BLOCK + - BAMBOO_PLANKS + - BAMBOO_MOSAIC + - BAMBOO_STAIRS + - BAMBOO_MOSAIC_STAIRS + - BAMBOO_SLAB + - BAMBOO_MOSAIC_SLAB + - BAMBOO_FENCE + - BIRCH_FENCE + - BIRCH_LOG + - BIRCH_PLANKS + - BIRCH_SLAB + - BIRCH_STAIRS + - BIRCH_WOOD + - BLACK_CONCRETE + - BLACK_GLAZED_TERRACOTTA + - BLACK_STAINED_GLASS + - BLACK_STAINED_GLASS_PANE + - BLACK_TERRACOTTA + - BLACK_WOOL + - BLACKSTONE + - BLACKSTONE_SLAB + - BLACKSTONE_STAIRS + - BLACKSTONE_WALL + - BLUE_CONCRETE + - BLUE_GLAZED_TERRACOTTA + - BLUE_STAINED_GLASS + - BLUE_STAINED_GLASS_PANE + - BLUE_TERRACOTTA + - BLUE_WOOL + - BOOKSHELF + - BRAIN_CORAL_BLOCK + - BRICK_SLAB + - BRICK_STAIRS + - BRICK_WALL + - BRICKS + - BROWN_CONCRETE + - BROWN_GLAZED_TERRACOTTA + - BROWN_STAINED_GLASS + - BROWN_STAINED_GLASS_PANE + - BROWN_TERRACOTTA + - BROWN_WOOL + - BUBBLE_CORAL_BLOCK + - CALCITE + - CHERRY_LOG + - CHERRY_PLANKS + - CHERRY_STAIRS + - CHERRY_SLAB + - CHERRY_FENCE + - CHISELED_COPPER + - CHISELED_DEEPSLATE + - CHISELED_NETHER_BRICKS + - CHISELED_POLISHED_BLACKSTONE + - CHISELED_QUARTZ_BLOCK + - CHISELED_RED_SANDSTONE + - CHISELED_SANDSTONE + - CHISELED_STONE_BRICKS + - CHISELED_TUFF + - CHISELED_TUFF_BRICKS + - COAL_BLOCK + - COBBLED_DEEPSLATE + - COBBLED_DEEPSLATE_SLAB + - COBBLED_DEEPSLATE_STAIRS + - COBBLED_DEEPSLATE_WALL + - COBBLESTONE + - COBBLESTONE_SLAB + - COBBLESTONE_WALL + - COPPER_BLOCK + - COPPER_BULB + - COPPER_GRATE + - CRACKED_DEEPSLATE_BRICKS + - CRACKED_DEEPSLATE_TILES + - CRACKED_NETHER_BRICKS + - CRACKED_POLISHED_BLACKSTONE_BRICKS + - CRACKED_STONE_BRICKS + - CRIMSON_FENCE + - CRIMSON_HYPHAE + - CRIMSON_PLANKS + - CRIMSON_SLAB + - CRIMSON_STAIRS + - CRIMSON_STEM + - CRYING_OBSIDIAN + - CUT_COPPER + - CUT_COPPER_SLAB + - CUT_COPPER_STAIRS + - CUT_RED_SANDSTONE + - CUT_RED_SANDSTONE_SLAB + - CUT_SANDSTONE + - CUT_SANDSTONE_SLAB + - CYAN_CONCRETE + - CYAN_GLAZED_TERRACOTTA + - CYAN_STAINED_GLASS + - CYAN_STAINED_GLASS_PANE + - CYAN_TERRACOTTA + - CYAN_WOOL + - DARK_OAK_FENCE + - DARK_OAK_LOG + - DARK_OAK_PLANKS + - DARK_OAK_SLAB + - DARK_OAK_STAIRS + - DARK_OAK_WOOD + - DARK_PRISMARINE + - DARK_PRISMARINE_SLAB + - DARK_PRISMARINE_STAIRS + - DEAD_BRAIN_CORAL_BLOCK + - DEAD_BUBBLE_CORAL_BLOCK + - DEAD_FIRE_CORAL_BLOCK + - DEAD_HORN_CORAL_BLOCK + - DEAD_TUBE_CORAL_BLOCK + - DEEPSLATE + - DEEPSLATE_BRICK_SLAB + - DEEPSLATE_BRICK_STAIRS + - DEEPSLATE_BRICK_WALL + - DEEPSLATE_BRICKS + - DEEPSLATE_TILE_SLAB + - DEEPSLATE_TILE_STAIRS + - DEEPSLATE_TILE_WALL + - DEEPSLATE_TILES + - DIAMOND_BLOCK + - DIORITE + - DIORITE_SLAB + - DIORITE_STAIRS + - DIORITE_WALL + - EMERALD_BLOCK + - END_STONE + - END_STONE_BRICK_SLAB + - END_STONE_BRICK_STAIRS + - END_STONE_BRICK_WALL + - END_STONE_BRICKS + - EXPOSED_COPPER + - EXPOSED_COPPER_BULB + - EXPOSED_COPPER_GRATE + - EXPOSED_CHISELED_COPPER + - EXPOSED_CUT_COPPER + - EXPOSED_CUT_COPPER_SLAB + - EXPOSED_CUT_COPPER_STAIRS + - FIRE_CORAL_BLOCK + - GILDED_BLACKSTONE + - GLASS + - GLASS_PANE + - GOLD_BLOCK + - GRANITE + - GRANITE_SLAB + - GRANITE_STAIRS + - GRANITE_WALL + - GRAY_CONCRETE + - GRAY_GLAZED_TERRACOTTA + - GRAY_STAINED_GLASS + - GRAY_STAINED_GLASS_PANE + - GRAY_TERRACOTTA + - GRAY_WOOL + - GREEN_CONCRETE + - GREEN_GLAZED_TERRACOTTA + - GREEN_STAINED_GLASS + - GREEN_STAINED_GLASS_PANE + - GREEN_TERRACOTTA + - GREEN_WOOL + - HAY_BLOCK + - HONEYCOMB_BLOCK + - HORN_CORAL_BLOCK + - IRON_BARS + - IRON_BLOCK + - JUNGLE_FENCE + - JUNGLE_LOG + - JUNGLE_PLANKS + - JUNGLE_SLAB + - JUNGLE_STAIRS + - JUNGLE_WOOD + - LAPIS_BLOCK + - LIGHT_BLUE_CONCRETE + - LIGHT_BLUE_GLAZED_TERRACOTTA + - LIGHT_BLUE_STAINED_GLASS + - LIGHT_BLUE_STAINED_GLASS_PANE + - LIGHT_BLUE_TERRACOTTA + - LIGHT_BLUE_WOOL + - LIGHT_GRAY_CONCRETE + - LIGHT_GRAY_GLAZED_TERRACOTTA + - LIGHT_GRAY_STAINED_GLASS + - LIGHT_GRAY_STAINED_GLASS_PANE + - LIGHT_GRAY_TERRACOTTA + - LIGHT_GRAY_WOOL + - LIME_CONCRETE + - LIME_GLAZED_TERRACOTTA + - LIME_STAINED_GLASS + - LIME_STAINED_GLASS_PANE + - LIME_TERRACOTTA + - LIME_WOOL + - MAGENTA_CONCRETE + - MAGENTA_GLAZED_TERRACOTTA + - MAGENTA_STAINED_GLASS + - MAGENTA_STAINED_GLASS_PANE + - MAGENTA_TERRACOTTA + - MAGENTA_WOOL + - MANGROVE_LOG + - MANGROVE_WOOD + - MANGROVE_STAIRs + - MANGROVE_SLAB + - MANGROVE_FENCE + - MOSS_BLOCK + - MOSSY_COBBLESTONE + - MOSSY_COBBLESTONE_SLAB + - MOSSY_COBBLESTONE_STAIRS + - MOSSY_COBBLESTONE_WALL + - MOSSY_STONE_BRICK_SLAB + - MOSSY_STONE_BRICK_STAIRS + - MOSSY_STONE_BRICK_WALL + - MOSSY_STONE_BRICKS + - MUD + - MUDDY_MANGROVE_ROOTS + - MUD_BRICKS + - MUD_BRICK_STAIRS + - MUD_BRICK_SLAB + - MUD_BRICK_WALL + - NETHER_BRICK_FENCE + - NETHER_BRICK_SLAB + - NETHER_BRICK_STAIRS + - NETHER_BRICK_WALL + - NETHER_BRICKS + - NETHERITE_BLOCK + - NETHER_WART_BLOCK + - NETHERRACK + - OAK_FENCE + - OAK_LOG + - OAK_PLANKS + - OAK_SLAB + - OAK_STAIRS + - OAK_WOOD + - OBSIDIAN + - OCHRE_FROGLIGHT + - ORANGE_CONCRETE + - ORANGE_GLAZED_TERRACOTTA + - ORANGE_STAINED_GLASS + - ORANGE_STAINED_GLASS_PANE + - ORANGE_TERRACOTTA + - ORANGE_WOOL + - OXIDIZED_COPPER + - OXIDIZED_COPPER_BULB + - OXIDIZED_COPPER_GRATE + - OXIDIZED_CHISELED_COPPER + - OXIDIZED_CUT_COPPER + - OXIDIZED_CUT_COPPER_SLAB + - OXIDIZED_CUT_COPPER_STAIRS + - PACKED_MUD + - PEARLESCENT_FROGLIGHT + - PETRIFIED_OAK_SLAB + - PINK_CONCRETE + - PINK_GLAZED_TERRACOTTA + - PINK_STAINED_GLASS + - PINK_STAINED_GLASS_PANE + - PINK_TERRACOTTA + - PINK_WOOL + - POLISHED_ANDESITE + - POLISHED_ANDESITE_SLAB + - POLISHED_ANDESITE_STAIRS + - POLISHED_BASALT + - POLISHED_BLACKSTONE + - POLISHED_BLACKSTONE_BRICK_SLAB + - POLISHED_BLACKSTONE_BRICK_STAIRS + - POLISHED_BLACKSTONE_BRICK_WALL + - POLISHED_BLACKSTONE_BRICKS + - POLISHED_BLACKSTONE_SLAB + - POLISHED_BLACKSTONE_STAIRS + - POLISHED_BLACKSTONE_WALL + - POLISHED_DEEPSLATE + - POLISHED_DEEPSLATE_SLAB + - POLISHED_DEEPSLATE_STAIRS + - POLISHED_DEEPSLATE_WALL + - POLISHED_DIORITE + - POLISHED_DIORITE_SLAB + - POLISHED_DIORITE_STAIRS + - POLISHED_GRANITE + - POLISHED_GRANITE_SLAB + - POLISHED_GRANITE_STAIRS + - POLISHED_TUFF + - POLISHED_TUFF_SLAB + - POLISHED_TUFF_STAIRS + - POLISHED_TUFF_WALL + - PRISMARINE + - PRISMARINE_BRICK_SLAB + - PRISMARINE_BRICK_STAIRS + - PRISMARINE_BRICKS + - PRISMARINE_SLAB + - PRISMARINE_STAIRS + - PRISMARINE_WALL + - PURPLE_CONCRETE + - PURPLE_GLAZED_TERRACOTTA + - PURPLE_STAINED_GLASS + - PURPLE_STAINED_GLASS_PANE + - PURPLE_TERRACOTTA + - PURPLE_WOOL + - PURPUR_BLOCK + - PURPUR_PILLAR + - PURPUR_SLAB + - PURPUR_STAIRS + - QUARTZ_BLOCK + - QUARTZ_BRICKS + - QUARTZ_PILLAR + - QUARTZ_SLAB + - QUARTZ_STAIRS + - RAW_COPPER_BLOCK + - RAW_GOLD_BLOCK + - RAW_IRON_BLOCK + - RED_CONCRETE + - RED_GLAZED_TERRACOTTA + - RED_NETHER_BRICKS + - RED_NETHER_BRICK_SLAB + - RED_NETHER_BRICK_STAIRS + - RED_NETHER_BRICK_WALL + - RED_SANDSTONE + - RED_SANDSTONE_SLAB + - RED_SANDSTONE_STAIRS + - RED_SANDSTONE_WALL + - RED_STAINED_GLASS + - RED_STAINED_GLASS_PANE + - RED_TERRACOTTA + - RED_WOOL + - REDSTONE_BLOCK + - SANDSTONE + - SANDSTONE_SLAB + - SANDSTONE_STAIRS + - SANDSTONE_WALL + - SCULK + - SEA_LANTERN + - SMOOTH_BASALT + - SMOOTH_QUARTZ + - SMOOTH_QUARTZ_SLAB + - SMOOTH_QUARTZ_STAIRS + - SMOOTH_RED_SANDSTONE + - SMOOTH_RED_SANDSTONE_SLAB + - SMOOTH_RED_SANDSTONE_STAIRS + - SMOOTH_SANDSTONE + - SMOOTH_SANDSTONE_SLAB + - SMOOTH_SANDSTONE_STAIRS + - SMOOTH_STONE + - SMOOTH_STONE_SLAB + - SPRUCE_FENCE + - SPRUCE_LOG + - SPRUCE_PLANKS + - SPRUCE_SLAB + - SPRUCE_STAIRS + - SPRUCE_WOOD + - STONE + - STONE_BRICK_SLAB + - STONE_BRICK_STAIRS + - STONE_BRICK_WALL + - STONE_BRICKS + - STONE_SLAB + - STONE_STAIRS + - STRIPPED_ACACIA_LOG + - STRIPPED_ACACIA_WOOD + - STRIPPED_BAMBOO_BLOCK + - STRIPPED_BIRCH_LOG + - STRIPPED_BIRCH_WOOD + - STRIPPED_CHERRY_LOG + - STRIPPED_CHERRY_WOOD + - STRIPPED_CRIMSON_HYPHAE + - STRIPPED_CRIMSON_STEM + - STRIPPED_DARK_OAK_LOG + - STRIPPED_DARK_OAK_WOOD + - STRIPPED_JUNGLE_LOG + - STRIPPED_JUNGLE_WOOD + - STRIPPED_MANGROVE_LOG + - STRIPPED_MANGROVE_WOOD + - STRIPPED_OAK_LOG + - STRIPPED_OAK_WOOD + - STRIPPED_SPRUCE_LOG + - STRIPPED_SPRUCE_WOOD + - STRIPPED_WARPED_HYPHAE + - STRIPPED_WARPED_STEM + - TERRACOTTA + - TINTED_GLASS + - TUBE_CORAL_BLOCK + - TUFF + - TUFF_STAIRS + - TUFF_SLAB + - TUFF_WALL + - TUFF_BRICKS + - TUFF_BRICK_STAIRS + - TUFF_BRICK_SLAB + - TUFF_BRICK_WALL + - VERDANT_FROGLIGHT + - WARPED_FENCE + - WARPED_HYPHAE + - WARPED_PLANKS + - WARPED_SLAB + - WARPED_STAIRS + - WARPED_STEM + - WAXED_COPPER_BLOCK + - WAXED_CUT_COPPER + - WAXED_CUT_COPPER_SLAB + - WAXED_CUT_COPPER_STAIRS + - WAXED_EXPOSED_COPPER + - WAXED_EXPOSED_CUT_COPPER + - WAXED_EXPOSED_CUT_COPPER_SLAB + - WAXED_EXPOSED_CUT_COPPER_STAIRS + - WAXED_OXIDIZED_COPPER + - WAXED_OXIDIZED_CUT_COPPER + - WAXED_OXIDIZED_CUT_COPPER_SLAB + - WAXED_OXIDIZED_CUT_COPPER_STAIRS + - WAXED_WEATHERED_COPPER + - WAXED_WEATHERED_CUT_COPPER + - WAXED_WEATHERED_CUT_COPPER_SLAB + - WAXED_WEATHERED_CUT_COPPER_STAIRS + - WEATHERED_COPPER + - WEATHERED_COPPER_BULB + - WEATHERED_COPPER_GRATE + - WEATHERED_CHISELED_COPPER + - WEATHERED_CUT_COPPER + - WEATHERED_CUT_COPPER_SLAB + - WEATHERED_CUT_COPPER_STAIRS + - WHITE_CONCRETE + - WHITE_GLAZED_TERRACOTTA + - WHITE_STAINED_GLASS + - WHITE_STAINED_GLASS_PANE + - WHITE_TERRACOTTA + - WHITE_WOOL + - YELLOW_CONCRETE + - YELLOW_GLAZED_TERRACOTTA + - YELLOW_STAINED_GLASS + - YELLOW_STAINED_GLASS_PANE + - YELLOW_TERRACOTTA + - YELLOW_WOOL + BridgeMaterials: + - ACACIA_FENCE + - ACACIA_LOG + - ACACIA_PLANKS + - ACACIA_SLAB + - ACACIA_STAIRS + - ACACIA_WOOD + - AMETHYST_BLOCK + - ANDESITE + - ANDESITE_SLAB + - ANDESITE_STAIRS + - ANDESITE_WALL + - BASALT + - BIRCH_FENCE + - BIRCH_LOG + - BIRCH_PLANKS + - BIRCH_SLAB + - BIRCH_STAIRS + - BIRCH_WOOD + - BLACK_CONCRETE + - BLACK_GLAZED_TERRACOTTA + - BLACK_STAINED_GLASS + - BLACK_STAINED_GLASS_PANE + - BLACK_TERRACOTTA + - BLACK_WOOL + - BLACKSTONE + - BLACKSTONE_SLAB + - BLACKSTONE_STAIRS + - BLACKSTONE_WALL + - BAMBOO_BLOCK + - BAMBOO_PLANKS + - BAMBOO_MOSAIC + - BAMBOO_STAIRS + - BAMBOO_MOSAIC_STAIRS + - BAMBOO_SLAB + - BAMBOO_MOSAIC_SLAB + - BAMBOO_FENCE + - BLUE_CONCRETE + - BLUE_GLAZED_TERRACOTTA + - BLUE_STAINED_GLASS + - BLUE_STAINED_GLASS_PANE + - BLUE_TERRACOTTA + - BLUE_WOOL + - BOOKSHELF + - BRAIN_CORAL_BLOCK + - BRICK_SLAB + - BRICK_STAIRS + - BRICK_WALL + - BRICKS + - BROWN_CONCRETE + - BROWN_GLAZED_TERRACOTTA + - BROWN_STAINED_GLASS + - BROWN_STAINED_GLASS_PANE + - BROWN_TERRACOTTA + - BROWN_WOOL + - BUBBLE_CORAL_BLOCK + - CALCITE + - CHERRY_LOG + - CHERRY_PLANKS + - CHERRY_STAIRS + - CHERRY_SLAB + - CHERRY_FENCE + - CHISELED_COPPER + - CHISELED_DEEPSLATE + - CHISELED_NETHER_BRICKS + - CHISELED_POLISHED_BLACKSTONE + - CHISELED_QUARTZ_BLOCK + - CHISELED_RED_SANDSTONE + - CHISELED_SANDSTONE + - CHISELED_STONE_BRICKS + - CHISELED_TUFF + - CHISELED_TUFF_BRICKS + - COAL_BLOCK + - COBBLED_DEEPSLATE + - COBBLED_DEEPSLATE_SLAB + - COBBLED_DEEPSLATE_STAIRS + - COBBLED_DEEPSLATE_WALL + - COBBLESTONE + - COBBLESTONE_SLAB + - COBBLESTONE_WALL + - COPPER_BLOCK + - COPPER_BULB + - COPPER_GRATE + - CRACKED_DEEPSLATE_BRICKS + - CRACKED_DEEPSLATE_TILES + - CRACKED_NETHER_BRICKS + - CRACKED_POLISHED_BLACKSTONE_BRICKS + - CRACKED_STONE_BRICKS + - CRIMSON_FENCE + - CRIMSON_HYPHAE + - CRIMSON_PLANKS + - CRIMSON_SLAB + - CRIMSON_STAIRS + - CRIMSON_STEM + - CUT_COPPER + - CUT_COPPER_SLAB + - CUT_COPPER_STAIRS + - CUT_RED_SANDSTONE + - CUT_RED_SANDSTONE_SLAB + - CUT_SANDSTONE + - CUT_SANDSTONE_SLAB + - CYAN_CONCRETE + - CYAN_GLAZED_TERRACOTTA + - CYAN_STAINED_GLASS + - CYAN_STAINED_GLASS_PANE + - CYAN_TERRACOTTA + - CYAN_WOOL + - DARK_OAK_FENCE + - DARK_OAK_LOG + - DARK_OAK_PLANKS + - DARK_OAK_SLAB + - DARK_OAK_STAIRS + - DARK_OAK_WOOD + - DARK_PRISMARINE + - DARK_PRISMARINE_SLAB + - DARK_PRISMARINE_STAIRS + - DEAD_BRAIN_CORAL_BLOCK + - DEAD_BUBBLE_CORAL_BLOCK + - DEAD_FIRE_CORAL_BLOCK + - DEAD_HORN_CORAL_BLOCK + - DEAD_TUBE_CORAL_BLOCK + - DEEPSLATE + - DEEPSLATE_BRICK_SLAB + - DEEPSLATE_BRICK_STAIRS + - DEEPSLATE_BRICK_WALL + - DEEPSLATE_BRICKS + - DEEPSLATE_TILE_SLAB + - DEEPSLATE_TILE_STAIRS + - DEEPSLATE_TILE_WALL + - DEEPSLATE_TILES + - DIAMOND_BLOCK + - DIORITE + - DIORITE_SLAB + - DIORITE_STAIRS + - DIORITE_WALL + - EMERALD_BLOCK + - END_STONE + - END_STONE_BRICK_SLAB + - END_STONE_BRICK_STAIRS + - END_STONE_BRICK_WALL + - END_STONE_BRICKS + - EXPOSED_COPPER + - EXPOSED_COPPER_BULB + - EXPOSED_COPPER_GRATE + - EXPOSED_CHISELED_COPPER + - EXPOSED_CUT_COPPER + - EXPOSED_CUT_COPPER_SLAB + - EXPOSED_CUT_COPPER_STAIRS + - FIRE_CORAL_BLOCK + - GILDED_BLACKSTONE + - GLASS + - GLASS_PANE + - GOLD_BLOCK + - GRANITE + - GRANITE_SLAB + - GRANITE_STAIRS + - GRANITE_WALL + - GRAY_CONCRETE + - GRAY_GLAZED_TERRACOTTA + - GRAY_STAINED_GLASS + - GRAY_STAINED_GLASS_PANE + - GRAY_TERRACOTTA + - GRAY_WOOL + - GREEN_CONCRETE + - GREEN_GLAZED_TERRACOTTA + - GREEN_STAINED_GLASS + - GREEN_STAINED_GLASS_PANE + - GREEN_TERRACOTTA + - GREEN_WOOL + - HAY_BLOCK + - HONEYCOMB_BLOCK + - HORN_CORAL_BLOCK + - IRON_BARS + - IRON_BLOCK + - JUNGLE_FENCE + - JUNGLE_LOG + - JUNGLE_PLANKS + - JUNGLE_SLAB + - JUNGLE_STAIRS + - JUNGLE_WOOD + - LAPIS_BLOCK + - LIGHT_BLUE_CONCRETE + - LIGHT_BLUE_GLAZED_TERRACOTTA + - LIGHT_BLUE_STAINED_GLASS + - LIGHT_BLUE_STAINED_GLASS_PANE + - LIGHT_BLUE_TERRACOTTA + - LIGHT_BLUE_WOOL + - LIGHT_GRAY_CONCRETE + - LIGHT_GRAY_GLAZED_TERRACOTTA + - LIGHT_GRAY_STAINED_GLASS + - LIGHT_GRAY_STAINED_GLASS_PANE + - LIGHT_GRAY_TERRACOTTA + - LIGHT_GRAY_WOOL + - LIME_CONCRETE + - LIME_GLAZED_TERRACOTTA + - LIME_STAINED_GLASS + - LIME_STAINED_GLASS_PANE + - LIME_TERRACOTTA + - LIME_WOOL + - MAGENTA_CONCRETE + - MAGENTA_GLAZED_TERRACOTTA + - MAGENTA_STAINED_GLASS + - MAGENTA_STAINED_GLASS_PANE + - MAGENTA_TERRACOTTA + - MAGENTA_WOOL + - MANGROVE_LOG + - MANGROVE_WOOD + - MANGROVE_STAIRs + - MANGROVE_SLAB + - MANGROVE_FENCE + - MOSS_BLOCK + - MOSSY_COBBLESTONE + - MOSSY_COBBLESTONE_SLAB + - MOSSY_COBBLESTONE_STAIRS + - MOSSY_COBBLESTONE_WALL + - MOSSY_STONE_BRICK_SLAB + - MOSSY_STONE_BRICK_STAIRS + - MOSSY_STONE_BRICK_WALL + - MOSSY_STONE_BRICKS + - MUD + - MUDDY_MANGROVE_ROOTS + - MUD_BRICKS + - MUD_BRICK_STAIRS + - MUD_BRICK_SLAB + - MUD_BRICK_WALL + - NETHER_BRICK_FENCE + - NETHER_BRICK_SLAB + - NETHER_BRICK_STAIRS + - NETHER_BRICK_WALL + - NETHER_BRICKS + - NETHER_WART_BLOCK + - NETHERRACK + - OAK_FENCE + - OAK_LOG + - OAK_PLANKS + - OAK_SLAB + - OAK_STAIRS + - OAK_WOOD + - OCHRE_FROGLIGHT + - ORANGE_CONCRETE + - ORANGE_GLAZED_TERRACOTTA + - ORANGE_STAINED_GLASS + - ORANGE_STAINED_GLASS_PANE + - ORANGE_TERRACOTTA + - ORANGE_WOOL + - OXIDIZED_COPPER + - OXIDIZED_COPPER_BULB + - OXIDIZED_COPPER_GRATE + - OXIDIZED_CHISELED_COPPER + - OXIDIZED_CUT_COPPER + - OXIDIZED_CUT_COPPER_SLAB + - OXIDIZED_CUT_COPPER_STAIRS + - PACKED_MUD + - PEARLESCENT_FROGLIGHT + - PETRIFIED_OAK_SLAB + - PINK_CONCRETE + - PINK_GLAZED_TERRACOTTA + - PINK_STAINED_GLASS + - PINK_STAINED_GLASS_PANE + - PINK_TERRACOTTA + - PINK_WOOL + - POLISHED_ANDESITE + - POLISHED_ANDESITE_SLAB + - POLISHED_ANDESITE_STAIRS + - POLISHED_BASALT + - POLISHED_BLACKSTONE + - POLISHED_BLACKSTONE_BRICK_SLAB + - POLISHED_BLACKSTONE_BRICK_STAIRS + - POLISHED_BLACKSTONE_BRICK_WALL + - POLISHED_BLACKSTONE_BRICKS + - POLISHED_BLACKSTONE_SLAB + - POLISHED_BLACKSTONE_STAIRS + - POLISHED_BLACKSTONE_WALL + - POLISHED_DEEPSLATE + - POLISHED_DEEPSLATE_SLAB + - POLISHED_DEEPSLATE_STAIRS + - POLISHED_DEEPSLATE_WALL + - POLISHED_DIORITE + - POLISHED_DIORITE_SLAB + - POLISHED_DIORITE_STAIRS + - POLISHED_GRANITE + - POLISHED_GRANITE_SLAB + - POLISHED_GRANITE_STAIRS + - POLISHED_TUFF + - POLISHED_TUFF_SLAB + - POLISHED_TUFF_STAIRS + - POLISHED_TUFF_WALL + - PRISMARINE + - PRISMARINE_BRICK_SLAB + - PRISMARINE_BRICK_STAIRS + - PRISMARINE_BRICKS + - PRISMARINE_SLAB + - PRISMARINE_STAIRS + - PRISMARINE_WALL + - PURPLE_CONCRETE + - PURPLE_GLAZED_TERRACOTTA + - PURPLE_STAINED_GLASS + - PURPLE_STAINED_GLASS_PANE + - PURPLE_TERRACOTTA + - PURPLE_WOOL + - PURPUR_BLOCK + - PURPUR_PILLAR + - PURPUR_SLAB + - PURPUR_STAIRS + - QUARTZ_BLOCK + - QUARTZ_BRICKS + - QUARTZ_PILLAR + - QUARTZ_SLAB + - QUARTZ_STAIRS + - RAW_COPPER_BLOCK + - RAW_GOLD_BLOCK + - RAW_IRON_BLOCK + - RED_CONCRETE + - RED_GLAZED_TERRACOTTA + - RED_NETHER_BRICKS + - RED_NETHER_BRICK_SLAB + - RED_NETHER_BRICK_STAIRS + - RED_NETHER_BRICK_WALL + - RED_SANDSTONE + - RED_SANDSTONE_SLAB + - RED_SANDSTONE_STAIRS + - RED_SANDSTONE_WALL + - RED_STAINED_GLASS + - RED_STAINED_GLASS_PANE + - RED_TERRACOTTA + - RED_WOOL + - REDSTONE_BLOCK + - SANDSTONE + - SANDSTONE_SLAB + - SANDSTONE_STAIRS + - SANDSTONE_WALL + - SCULK + - SEA_LANTERN + - SMOOTH_BASALT + - SMOOTH_QUARTZ + - SMOOTH_QUARTZ_SLAB + - SMOOTH_QUARTZ_STAIRS + - SMOOTH_RED_SANDSTONE + - SMOOTH_RED_SANDSTONE_SLAB + - SMOOTH_RED_SANDSTONE_STAIRS + - SMOOTH_SANDSTONE + - SMOOTH_SANDSTONE_SLAB + - SMOOTH_SANDSTONE_STAIRS + - SMOOTH_STONE + - SMOOTH_STONE_SLAB + - SPRUCE_FENCE + - SPRUCE_LOG + - SPRUCE_PLANKS + - SPRUCE_SLAB + - SPRUCE_STAIRS + - SPRUCE_WOOD + - STONE + - STONE_BRICK_SLAB + - STONE_BRICK_STAIRS + - STONE_BRICK_WALL + - STONE_BRICKS + - STONE_SLAB + - STONE_STAIRS + - STRIPPED_ACACIA_LOG + - STRIPPED_ACACIA_WOOD + - STRIPPED_BAMBOO_BLOCK + - STRIPPED_BIRCH_LOG + - STRIPPED_BIRCH_WOOD + - STRIPPED_CHERRY_LOG + - STRIPPED_CHERRY_WOOD + - STRIPPED_CRIMSON_HYPHAE + - STRIPPED_CRIMSON_STEM + - STRIPPED_DARK_OAK_LOG + - STRIPPED_DARK_OAK_WOOD + - STRIPPED_JUNGLE_LOG + - STRIPPED_JUNGLE_WOOD + - STRIPPED_MANGROVE_LOG + - STRIPPED_MANGROVE_WOOD + - STRIPPED_OAK_LOG + - STRIPPED_OAK_WOOD + - STRIPPED_SPRUCE_LOG + - STRIPPED_SPRUCE_WOOD + - STRIPPED_WARPED_HYPHAE + - STRIPPED_WARPED_STEM + - TERRACOTTA + - TINTED_GLASS + - TUBE_CORAL_BLOCK + - TUFF + - TUFF_STAIRS + - TUFF_SLAB + - TUFF_WALL + - TUFF_BRICKS + - TUFF_BRICK_STAIRS + - TUFF_BRICK_SLAB + - TUFF_BRICK_WALL + - VERDANT_FROGLIGHT + - WARPED_FENCE + - WARPED_HYPHAE + - WARPED_PLANKS + - WARPED_SLAB + - WARPED_STAIRS + - WARPED_STEM + - WAXED_COPPER_BLOCK + - WAXED_CUT_COPPER + - WAXED_CUT_COPPER_SLAB + - WAXED_CUT_COPPER_STAIRS + - WAXED_EXPOSED_COPPER + - WAXED_EXPOSED_CUT_COPPER + - WAXED_EXPOSED_CUT_COPPER_SLAB + - WAXED_EXPOSED_CUT_COPPER_STAIRS + - WAXED_OXIDIZED_COPPER + - WAXED_OXIDIZED_CUT_COPPER + - WAXED_OXIDIZED_CUT_COPPER_SLAB + - WAXED_OXIDIZED_CUT_COPPER_STAIRS + - WAXED_WEATHERED_COPPER + - WAXED_WEATHERED_CUT_COPPER + - WAXED_WEATHERED_CUT_COPPER_SLAB + - WAXED_WEATHERED_CUT_COPPER_STAIRS + - WEATHERED_COPPER + - WEATHERED_COPPER_BULB + - WEATHERED_COPPER_GRATE + - WEATHERED_CHISELED_COPPER + - WEATHERED_CUT_COPPER + - WEATHERED_CUT_COPPER_SLAB + - WEATHERED_CUT_COPPER_STAIRS + - WHITE_CONCRETE + - WHITE_GLAZED_TERRACOTTA + - WHITE_STAINED_GLASS + - WHITE_STAINED_GLASS_PANE + - WHITE_TERRACOTTA + - WHITE_WOOL + - YELLOW_CONCRETE + - YELLOW_GLAZED_TERRACOTTA + - YELLOW_STAINED_GLASS + - YELLOW_STAINED_GLASS_PANE + - YELLOW_TERRACOTTA + - YELLOW_WOOL +Items: + Tool: + material: STICK + lore: '' + CreationConsume: + material: GOLD_INGOT + amount: 1 + lore: '' diff --git a/ansible/files/gamma-config/plugins/Chunky/config.yml b/ansible/files/gamma-config/plugins/Chunky/config.yml new file mode 100644 index 000000000..6cfbade88 --- /dev/null +++ b/ansible/files/gamma-config/plugins/Chunky/config.yml @@ -0,0 +1,5 @@ +# Chunky Configuration +# https://github.com/pop4959/Chunky/wiki/Configuration +version: 1 +language: en +continue-on-restart: false diff --git a/ansible/files/gamma-config/plugins/ChunkyBorder/borders.json b/ansible/files/gamma-config/plugins/ChunkyBorder/borders.json new file mode 100644 index 000000000..e1c2c779d --- /dev/null +++ b/ansible/files/gamma-config/plugins/ChunkyBorder/borders.json @@ -0,0 +1,20 @@ +{ + "world": { + "world": "world", + "centerX": 0.5, + "centerZ": 0.5, + "radiusX": 4500.0, + "radiusZ": 4500.0, + "shape": "circle", + "wrap": false + }, + "world_nether": { + "world": "world_nether", + "centerX": 0.5, + "centerZ": 0.5, + "radiusX": 4500.0, + "radiusZ": 4500.0, + "shape": "circle", + "wrap": false + } +} diff --git a/ansible/files/gamma-config/plugins/ChunkyBorder/config.yml b/ansible/files/gamma-config/plugins/ChunkyBorder/config.yml new file mode 100644 index 000000000..c6c5873e8 --- /dev/null +++ b/ansible/files/gamma-config/plugins/ChunkyBorder/config.yml @@ -0,0 +1,22 @@ +version: 1 +border-options: + check-interval: 20 + message: '&cYou have reached the edge of this world.' + use-action-bar: true + effect: ender_signal + sound: entity_enderman_teleport + prevent-mob-spawns: true + prevent-enderpearl: true + visualizer-enabled: true + visualizer-range: 8 + visualizer-color: 20A0FF +map-options: + enable: + bluemap: true + dynmap: true + squaremap: true + label: World Border + hide-by-default: false + color: FF0000 + weight: 3 + priority: 0 diff --git a/ansible/files/gamma-config/plugins/Citadel/config.yml b/ansible/files/gamma-config/plugins/Citadel/config.yml new file mode 100644 index 000000000..920ff1d4d --- /dev/null +++ b/ansible/files/gamma-config/plugins/Citadel/config.yml @@ -0,0 +1,491 @@ +#Log when a player forcefully breaks reinforcements? +logHostileBreaks: true + +#Log when a player bypasses friendly reinforcements? +logFriendlyBreaks: true + +#Log every time damage is done to a reinforcement? Only recommended for debugging +logDamage: true + +#Log creation of reinforcements? +logCreation: true + +#Log message replies sent to users? Very useful +logMessages: true + +#General debug messages +debug: true + +#Still used in calculating the localized decay. The difference is localized decay uses different last activity timers for each region. +global_decay_timer: 6 weeks +global_decay_multiplier: 2.0 + +reinforcements: + stone: + id: 1 + item: + ==: org.bukkit.inventory.ItemStack + type: STONE + v: 1 + creation_effect: + type: PORTAL + speed: 0.8 + particleCount: 200 + offset: 0.0 + damage_effect: + type: SMOKE_NORMAL + speed: 0.06 + particleCount: 40 + offset: 0 + destruction_effect: + type: SMOKE_LARGE + speed: 0.04 + particleCount: 80 + offset: 0.0 + mature_time: 30m + acid_time: 30m + acid_priority: 2 + name: Stone + hit_points: 45 + allowed_worlds: + - world + netherbrick: + id: 4 + item: + ==: org.bukkit.inventory.ItemStack + v: 1 + type: NETHER_BRICK + creation_effect: + type: PORTAL + speed: 0.8 + particleCount: 200 + offset: 0.0 + damage_effect: + type: SMOKE_NORMAL + speed: 0.06 + particleCount: 40 + offset: 0 + destruction_effect: + type: SMOKE_LARGE + speed: 0.04 + particleCount: 80 + offset: 0.0 + mature_time: 30m + acid_time: 30m + acid_priority: 2 + name: Netherbrick + hit_points: 45 + allowed_worlds: + - world_nether + iron: + id: 2 + item: + ==: org.bukkit.inventory.ItemStack + v: 1 + type: IRON_INGOT + creation_effect: + type: ENCHANTMENT_TABLE + speed: 1 + particleCount: 100 + offset: 0.1 + damage_effect: + type: END_ROD + speed: 0.045 + particleCount: 15 + offset: 0.0 + destruction_effect: + type: END_ROD + speed: 0.13 + particleCount: 200 + offset: 0 + mature_time: 4h + acid_time: 6h + acid_priority: 5 + name: Iron + hit_points: 250 + allowed_worlds: + - world + gold: + id: 5 + item: + ==: org.bukkit.inventory.ItemStack + v: 1 + type: GOLD_INGOT + creation_effect: + type: ENCHANTMENT_TABLE + speed: 1 + particleCount: 100 + offset: 0.1 + damage_effect: + type: END_ROD + speed: 0.045 + particleCount: 15 + offset: 0.0 + destruction_effect: + type: END_ROD + speed: 0.13 + particleCount: 200 + offset: 0 + mature_time: 4h + acid_time: 6h + acid_priority: 5 + name: Gold + hit_points: 250 + allowed_worlds: + - world_nether + diamond: + id: 3 + item: + ==: org.bukkit.inventory.ItemStack + v: 1 + type: DIAMOND + creation_effect: + type: NAUTILUS + speed: 0.6 + particleCount: 100 + offset: 0.1 + damage_effect: + type: BUBBLE_POP + speed: 0.2 + particleCount: 100 + offset: 0.1 + destruction_effect: + type: BUBBLE_POP + speed: 0.5 + particleCount: 500 + offset: 0.1 + mature_time: 12h + acid_time: 24h + acid_priority: 10 + name: Diamond + hit_points: 1700 + allowed_worlds: + - world + gildedblackstone: + id: 6 + item: + ==: org.bukkit.inventory.ItemStack + v: 1 + type: GILDED_BLACKSTONE + creation_effect: + type: NAUTILUS + speed: 0.6 + particleCount: 100 + offset: 0.1 + damage_effect: + type: BUBBLE_POP + speed: 0.2 + particleCount: 100 + offset: 0.1 + destruction_effect: + type: BUBBLE_POP + speed: 0.5 + particleCount: 500 + offset: 0.1 + mature_time: 12h + acid_time: 24h + acid_priority: 10 + name: GildedBlackstone + hit_points: 1700 + allowed_worlds: + - world_nether + bedrock: + id: 10 + item: + ==: org.bukkit.inventory.ItemStack + v: 1 + type: BEDROCK + effect: + type: ENCHANTING_TABLE + speed: 0.5 + particleCount: 50 + mature_time: 1s + acid_time: 1s + name: Bedrock + hit_points: 420420420 + +acids: + gold: + material: GOLD_BLOCK + maturation_time_multiplier: 1 + faces: + - UP + diamond: + material: DIAMOND_BLOCK + maturation_time_multiplier: 2 + faces: + - UP + - DOWN + netherite: + material: NETHERITE_BLOCK + maturation_time_multiplier: 4 + faces: + - UP + - DOWN + - NORTH + - SOUTH + - EAST + - WEST + +non_reinforceables: + - BEDROCK + - END_PORTAL + - END_PORTAL_FRAME + - OAK_SAPLING + - BIRCH_SAPLING + - SPRUCE_SAPLING + - JUNGLE_SAPLING + - DARK_OAK_SAPLING + - ACACIA_SAPLING + - BAMBOO_SAPLING + - TALL_GRASS + - DEAD_BUSH + - PISTON + - STICKY_PISTON + - MOVING_PISTON + - PISTON_HEAD + - POPPY + - DANDELION + - BLUE_ORCHID + - ALLIUM + - RED_TULIP + - ORANGE_TULIP + - WHITE_TULIP + - PINK_TULIP + - OXEYE_DAISY + - CORNFLOWER + - LILY_OF_THE_VALLEY + - SUNFLOWER + - SEA_PICKLE + - LILAC + - PEONY + - ROSE_BUSH + - BROWN_MUSHROOM + - RED_MUSHROOM + - CRIMSON_FUNGUS + - WARPED_FUNGUS + - CRIMSON_ROOTS + - WARPED_ROOTS + - NETHER_SPROUTS + - WEEPING_VINES + - TWISTING_VINES + - TWISTING_VINES_PLANT + - WEEPING_VINES_PLANT + - TNT + - WHEAT + - BEETROOTS + - POTATOES + - CARROTS + - FERN + - LARGE_FERN + - GRASS + - SEAGRASS + - TALL_SEAGRASS + - BAMBOO + - SUGAR_CANE + - SWEET_BERRIES + - BROWN_MUSHROOM + - RED_MUSHROOM + - KELP + - NETHER_WART + - CHORUS_FRUIT + - FIRE + - SOUL_FIRE + - SNOW + - POWDER_SNOW + - ICE + - CACTUS + - KELP_PLANT + - NETHER_PORTAL + - CAKE + - PUMPKIN_STEM + - MELON_STEM + - VINE + - BRAIN_CORAL + - BRAIN_CORAL_FAN + - BRAIN_CORAL_WALL_FAN + - BUBBLE_CORAL + - BUBBLE_CORAL_FAN + - BUBBLE_CORAL_WALL_FAN + - FIRE_CORAL + - FIRE_CORAL_FAN + - FIRE_CORAL_WALL_FAN + - HORN_CORAL + - HORN_CORAL_FAN + - HORN_CORAL_WALL_FAN + - TUBE_CORAL + - TUBE_CORAL_FAN + - TUBE_CORAL_WALL_FAN + - DEAD_BRAIN_CORAL + - DEAD_BRAIN_CORAL_FAN + - DEAD_BRAIN_CORAL_WALL_FAN + - DEAD_BUBBLE_CORAL + - DEAD_BUBBLE_CORAL_FAN + - DEAD_BUBBLE_CORAL_WALL_FAN + - DEAD_FIRE_CORAL + - DEAD_FIRE_CORAL_FAN + - DEAD_FIRE_CORAL_WALL_FAN + - DEAD_HORN_CORAL + - DEAD_HORN_CORAL_FAN + - DEAD_HORN_CORAL_WALL_FAN + - DEAD_TUBE_CORAL + - DEAD_TUBE_CORAL_FAN + - DEAD_TUBE_CORAL_WALL_FAN + - SCAFFOLDING + - COBWEB + - GLOW_LICHEN + +# Determines whether hanging entities (such as Item Frames) can be protected by their host block +hangers_inherit_reinforcement: true + +# reinforcement_damageMultiplier is m where BlockDamage = 2 ^ (n/m) where n is equal to the number of days the group has been inactive +reinforcement_damageMultiplier: 365 + +# This will prevent reinforcements being made within a configurable distance of your border +# Supports 'circle' and 'square' world_border_shape's +world-border-buffers: + #Has to be the world name + world: + #'CIRCLE' or 'SQUARE' supported only + shape: CIRCLE + #Radius from border center you want the no reinforcement zone to kick in + starting_radius: 9900 + #Center of the border + center: + x: 0.0 + z: 0.0 + world_nether: + #'CIRCLE' or 'SQUARE' supported only + shape: CIRCLE + #Radius from border center you want the no reinforcement zone to kick in + starting_radius: 9900 + #Center of the border + center: + x: 0.0 + z: 0.0 + +# Set this to the unix timestamp in seconds when the activity feature is being added, +# this is the time used when a player has not entered a region yet +# activity-default: 1646588117 + +activity-map-worlds: + - world + - world_nether + +# Ideally should be a power of two +activity-map-resolution: 128 +# Radius around each area to also refresh +activity-map-radius: 3 + +database: + ==: vg.civcraft.mc.civmodcore.dao.DatabaseCredentials + plugin: Citadel + user: ${CIV_MYSQL_USERNAME} + password: ${CIV_MYSQL_PASSWORD} + host: ${CIV_MYSQL_HOST} + port: 3306 + database: ${CIV_DATABASE_PREFIX}citadel + poolsize: 20 + connection_timeout: 10000 + idle_timeout: 600000 + max_lifetime: 7200000 + +reinforcementBreakMultipliers: + - custom-key: meteoric_iron_axe + multipliers: + - multiplier: 2.5 + types: + - CHEST + - TRAPPED_CHEST + - JUKEBOX + - NOTE_BLOCK + - BARREL + - CRAFTING_TABLE + tags: + - FENCE_GATES + - WOODEN_PRESSURE_PLATES + - LOGS + - WOODEN_TRAPDOORS + - WOODEN_FENCES + - WOODEN_DOORS + - PLANKS + - WOODEN_SLABS + - WOODEN_STAIRS + - ALL_SIGNS + - WOODEN_BUTTONS + - multiplier: 2 + types: + - FURNACE + - IRON_DOOR + - IRON_TRAPDOOR + - IRON_BARS + - DISPENSER + - DROPPER + - HOPPER + - COPPER_TRAPDOOR + - EXPOSED_COPPER_TRAPDOOR + - OXIDIZED_COPPER_TRAPDOOR + - WEATHERED_COPPER_TRAPDOOR + - WAXED_COPPER_TRAPDOOR + - WAXED_EXPOSED_COPPER_TRAPDOOR + - WAXED_OXIDIZED_COPPER_TRAPDOOR + - WAXED_WEATHERED_COPPER_TRAPDOOR + - COPPER_DOOR + - EXPOSED_COPPER_DOOR + - OXIDIZED_COPPER_DOOR + - WEATHERED_COPPER_DOOR + - WAXED_COPPER_DOOR + - WAXED_EXPOSED_COPPER_DOOR + - WAXED_OXIDIZED_COPPER_DOOR + - WAXED_WEATHERED_COPPER_DOOR + - custom-key: meteoric_iron_axe_silk + multipliers: + - multiplier: 2.5 + types: + - CHEST + - TRAPPED_CHEST + - JUKEBOX + - NOTE_BLOCK + - BARREL + - CRAFTING_TABLE + tags: + - FENCE_GATES + - WOODEN_PRESSURE_PLATES + - LOGS + - WOODEN_TRAPDOORS + - WOODEN_FENCES + - WOODEN_DOORS + - PLANKS + - WOODEN_SLABS + - WOODEN_STAIRS + - ALL_SIGNS + - WOODEN_BUTTONS + - multiplier: 2 + types: + - FURNACE + - IRON_DOOR + - IRON_TRAPDOOR + - IRON_BARS + - DISPENSER + - DROPPER + - HOPPER + - COPPER_TRAPDOOR + - EXPOSED_COPPER_TRAPDOOR + - OXIDIZED_COPPER_TRAPDOOR + - WEATHERED_COPPER_TRAPDOOR + - WAXED_COPPER_TRAPDOOR + - WAXED_EXPOSED_COPPER_TRAPDOOR + - WAXED_OXIDIZED_COPPER_TRAPDOOR + - WAXED_WEATHERED_COPPER_TRAPDOOR + - COPPER_DOOR + - EXPOSED_COPPER_DOOR + - OXIDIZED_COPPER_DOOR + - WEATHERED_COPPER_DOOR + - WAXED_COPPER_DOOR + - WAXED_EXPOSED_COPPER_DOOR + - WAXED_OXIDIZED_COPPER_DOOR + - WAXED_WEATHERED_COPPER_DOOR + +# number of times a tool can break a reinforcement before it gets damaged by one durability +# set to 0 to disable +reinforcementBreaksPerToolDamage: 50 diff --git a/ansible/files/gamma-config/plugins/CivChat2/config.yml b/ansible/files/gamma-config/plugins/CivChat2/config.yml new file mode 100644 index 000000000..d4eb52dfe --- /dev/null +++ b/ansible/files/gamma-config/plugins/CivChat2/config.yml @@ -0,0 +1,43 @@ +chat: + #globalChatRange: The base chat distance that people will message across def=1000 + globalChatRange: 1000 + #defaultChatColor: The default chatcolor to use for global chat def=BLUE + defaultChatColor: WHITE + #color for console and OP "say" command + opChatColor: LIGHT_PURPLE + #yIncreaseDist: The Y-Level to increase chat at def=100 + yIncreaseDist: 100 + #yIncreaseScale: Scale to increase chat distance.. this value divided by 1000 + #so yIncreaseScale=10 will be 10 extra radius per block they go up, 1 would be 1 extra radius per block + #Coded formula globalChatRange = globalChatRange + (globalChatRange * ((yIncreaseScale/1000) * #blocksaboveydist))) + yIncreaseScale: 1 + killRange: 30000 + dynamicColoring: false + colors: + near: + range: 0 + color: WHITE + far: + range: 800 + color: GRAY + globalGroup: '!' + joinGlobalGroupByDefault: true +info: + #debug: lots of debugging logging will show up in the console def=false + debug: false + #groups: if NameLayer groups is enabled def=true + groups: true + #afkmessage: The default afk message people will get when player has afk toggled def=Player is currently AFK + afkmessage: Player is currently AFK + loginAnnounce: false + #chatRangeWarn: warns new players about the local chat limit. + chatRangeWarn: true +mysql: + host: ${CIV_MYSQL_HOST} + dbname: civchat2 + port: 3306 + username: ${CIV_MYSQL_USERNAME} + password: ${CIV_MYSQL_PASSWORD} + +# true if chat should be broadcasted to all servers via bungeecord +serverBroadcastChat: true diff --git a/ansible/files/gamma-config/plugins/CivDuties/config.yml b/ansible/files/gamma-config/plugins/CivDuties/config.yml new file mode 100644 index 000000000..2c080d479 --- /dev/null +++ b/ansible/files/gamma-config/plugins/CivDuties/config.yml @@ -0,0 +1,44 @@ +tiers: + default: + priority: 0 + diable_death_drops: true + enable_combattag_block: true + permission: civduties.superfriend + commands: + spectator: + syntax: gamemode spectator %PLAYER_NAME% + timing: ENABLE + executor: CONSOLE + survival: + syntax: gamemode survival %PLAYER_NAME% + timing: DISABLE + executor: CONSOLE + clear: + syntax: clear %PLAYER_NAME% + timing: ENABLE + executor: CONSOLE + vanish: + syntax: vanish on %PLAYER_NAME% + timing: ENABLE + executor: CONSOLE + unvanish: + syntax: vanish off %PLAYER_NAME% + timing: DISABLE + executor: CONSOLE + temporary: + permissions: + - jukealert.vanish + groups: + - dutied +database: + ==: vg.civcraft.mc.civmodcore.dao.DatabaseCredentials + plugin: CivDuties + user: ${CIV_MYSQL_USERNAME} + password: ${CIV_MYSQL_PASSWORD} + host: ${CIV_MYSQL_HOST} + port: 3306 + database: ${CIV_DATABASE_PREFIX}civduties + poolsize: 5 + connection_timeout: 10000 + idle_timeout: 600000 + max_lifetime: 7200000 diff --git a/ansible/files/gamma-config/plugins/CivModCore/config.yml b/ansible/files/gamma-config/plugins/CivModCore/config.yml new file mode 100644 index 000000000..f672dd5f0 --- /dev/null +++ b/ansible/files/gamma-config/plugins/CivModCore/config.yml @@ -0,0 +1,20 @@ +# Database connection details, should you want to have a database connection. +# Do NOT change the ==: value. +database: + ==: vg.civcraft.mc.civmodcore.dao.DatabaseCredentials + username: ${CIV_MYSQL_USERNAME} + password: ${CIV_MYSQL_PASSWORD} + host: ${CIV_MYSQL_HOST} + port: 3306 + database: ${CIV_DATABASE_PREFIX}civmodcore + poolsize: 20 + connection_timeout: 10000 + idle_timeout: 600000 + max_lifetime: 7200000 + +# Keep in mind that the header must be within "" as well as be no more than 16 characters in total text. +scoreboardHeader: "&2&lCivilization" + +# The number of threads to dedicate to downloading skins from Mojang. Keeping this value commented will automatically +# calculate the threads based on the number of available processors. +#skin-download-threads: 1 diff --git a/ansible/files/gamma-config/plugins/CivModCore/enchants.yml b/ansible/files/gamma-config/plugins/CivModCore/enchants.yml new file mode 100644 index 000000000..18c4aeacb --- /dev/null +++ b/ansible/files/gamma-config/plugins/CivModCore/enchants.yml @@ -0,0 +1,49 @@ +# Beta 1.9 +DAMAGE_ALL: "S" +DAMAGE_ARTHROPODS: "BoA" +DAMAGE_UNDEAD: "Sm" +DIG_SPEED: "E" +DURABILITY: "U" +FIRE_ASPECT: "FA" +KNOCKBACK: "K" +LOOT_BONUS_BLOCKS: "F" +LOOT_BONUS_MOBS: "L" +OXYGEN: "R" +PROTECTION_ENVIRONMENTAL: "P" +PROTECTION_EXPLOSIONS: "BP" +PROTECTION_FALL: "FF" +PROTECTION_FIRE: "FP" +PROTECTION_PROJECTILE: "PP" +SILK_TOUCH: "ST" +WATER_WORKER: "AA" +# 1.1 +ARROW_DAMAGE: "Po" +ARROW_FIRE: "Fl" +ARROW_INFINITE: "I" +ARROW_KNOCKBACK: "Pu" +# 1.4.6 +THORNS: "T" +# 1.7.2 +LUCK: "LS" +LURE: "Lu" +# 1.8 +DEPTH_STRIDER: "DS" +# 1.9 +FROST_WALKER: "FW" +MENDING: "M" +# 1.11 +BINDING_CURSE: "CoB" +VANISHING_CURSE: "CoV" +# 1.11.1 +SWEEPING_EDGE: "SE" +# 1.13 +CHANNELING: "Ch" +IMPALING: "Im" +LOYALTY: "Lo" +RIPTIDE: "RP" +# 1.14 +MULTISHOT: "MS" +PIERCING: "Pr" +QUICK_CHARGE: "QC" +# 1.16 +SOUL_SPEED: "SS" \ No newline at end of file diff --git a/ansible/files/gamma-config/plugins/CivSpy/config.yml b/ansible/files/gamma-config/plugins/CivSpy/config.yml new file mode 100644 index 000000000..3f3905719 --- /dev/null +++ b/ansible/files/gamma-config/plugins/CivSpy/config.yml @@ -0,0 +1,22 @@ +database: + host: ${CIV_POSTGRES_HOST} + port: 5432 + database: ${CIV_DATABASE_PREFIX}civspy + user: ${CIV_POSTGRES_USERNAME} + password: ${CIV_POSTGRES_PASSWORD} + poolsize: 10 + connectionTimeout: 10000 + idleTimeout: 600000 + maxLifetime: 7200000 +manager: + aggregation_period: 60000 + period_delay_count: 6 + period_future_count: 3 + worker_count: 5 + flow_capture_window_count: 60 + flow_capture_period: 1000 +batcher: + max_batch_size: 100 + max_batch_wait: 1000 + max_workers: 5 +server: ${CIV_SERVER_NAME} diff --git a/ansible/files/gamma-config/plugins/ClearLag/config.yml b/ansible/files/gamma-config/plugins/ClearLag/config.yml new file mode 100644 index 000000000..fe3ec8c7f --- /dev/null +++ b/ansible/files/gamma-config/plugins/ClearLag/config.yml @@ -0,0 +1,502 @@ +#--------------------------------------------------------------------# +# ClearLag Configuration File # +#--------------------------------------------------------------------# +# Configure to your liking, reload the config by tying: /lagg reload # +# - # +# Here is a helpful tutorial on this configuration setup! (Updated) # +# http://dev.bukkit.org/bukkit-plugins/clearlagg/pages/config-setup/ # +#--------------------------------------------------------------------# +# All possible mob names: https://goo.gl/cch8YK # +#--------------------------------------------------------------------# +config-version: 20 + +# -- 'use-internal-tps' Should clearlag just use the calculated internal TPS? (Improves accuracy) +# -- 'language' Clearlag supports multiple languages (https://github.com/bob7l/Clearlag-Languages) translated by the community +# -- 'use-internal-tps' Should Clearlag use Spigot's /tps? (Updated by minutes, much slower, but more accurate!) +settings: + language: English + auto-update: false + enable-api: true + use-internal-tps: true + +#Controls ALL of Clearlag's broadcasting. Disabling this will disable ALL broadcasting on Clearlag +# -- 'enabled' Should clearlag broadcast messages at all? (Example: Auto-removal, warnings, ect) +# -- 'async' Should messages be broadcasted on another thread +# -- 'use-permission-for-broadcasts' Should clearlag use permissions? +# -- 'permission' What is the permission? (By default, it's bukkit's default) +global-broadcasts: + enabled: true + async: false + use-permission-for-broadcasts: false + permission: bukkit.broadcast + +#Monitors your server's main thread for locking/freezing. Helps figure out what's causing lag-spikes +# NOTE: This will outprint mostly just stacktraces. It's up to YOU to interpret the stacktrace +# NOTE: (!Important!) Clearlag will print EVERYTHING to your Spigot/Bukkit server logs! +# NOTE: A large 'Garbage collection time' generally means the spike was caused by the Garbage collector (Memory issue basically..) +# -- 'enabled' Should this be enabled (Prints data to your logs, not ingame chat) +# -- 'min-elapsed-time' How long (IN MILLISECONDS) of a server-tick constitutes a freeze/lock? I don't recommend going under ~80 +# -- 'check-interval' How often (IN MILLISECONDS) should the server be checked? Lower the number, more accurate the timings +# -- 'follow-stack' Should Clearlag keep printing the stacktrace every time it changes (Can be very spammy)? +# Help-> https://dev.bukkit.org/projects/clearlagg/pages/finding-the-cause-of-lag-spikes +lag-spike-helper: + enabled: false + min-elapsed-time: 500 + check-interval: 100 + follow-stack: true + +#Limits the amount of item transfers for all the hoppers in a single chunk +# -- 'transfer-limit' How many transfers per check interval until the hopper should be disabled +# -- 'check-interval' In seconds, on what interval should the transfer limit be reset +hopper-limiter: + enabled: false + transfer-limit: 5 + check-interval: 1 + +#Meters your ram usage. If it goes above 'limit', run 'commands:' +# NOTE: It's perfectly normal for your server to be using a lot of memory. The JVM's garbage collector will automatically free memory. +# NOTE: Only use this if you have very little memory that can't support the server +# -- 'ram-limit' is in MB, do not set it exactly to your max allocated ram amount +# -- 'interval' is how often clearlag will check your ram usage +# -- 'commands' lists the commands that will be ran upon hitting your ram-limit +ram-meter: + enabled: false + interval: 20 + ram-limit: 5000 + commands: + - 'lagg killmobs' + - 'lagg clear' + +#Configure what the '/lagg halt' command does +# -- 'remove-entities' remove entities such as items, primed-tnt, and mobs +# -- 'disable-natural-entity-spawning' disables the server's natural world spawning +# -- 'halted' this section defines which actions should be halted during '/lagg halt' +halt-command: + remove-entities: false + disable-natural-entity-spawning: false + halted: + fire: false + fire-burn: false + explosion: false + decay: false + block-fade: false + block-form: false + block-spread: false + block-natural-change: false + +#This limits how fast a user can move by walking or flying in a single tick (20 ticks a second) +#I HIGHLY recommend you use this on servers with increased player-speed/fly to prevent chunk overload +#You may also use Spigot's internal speed limiters to achieve the same goal if present on your version (better performance) +# -- 'move-max-speed' Max speed on foot +# -- 'fly-max-speed' Max speed while flying +player-speed-limiter: + enabled: false + move-max-speed: 0.7 + fly-max-speed: 0.8 + +#Set the age of specific items when they're first spawned so they naturally despawn faster, or slower then others +#Recommended for servers with a lot of item-entities consisting mostly of useless items (Such as stone) +#Material list: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html +# -- 'items' Lists the material names of the entities with their spawn-age (In seconds) +item-spawn-age-setter: + enabled: false + items: + +#Should mobs be nerfed to prevent over-breeding to reduce CPU usage (And possibly raise TPS) +#When mobs are stuck too close, collisions are extremely intensive putting a pretty mean load on the server +# -- 'max-mobs' means how many bably/adult animals are allowed within the 'check-radius' +# -- 'check-radius' is the radius of what clearlag will check for 'max-mobs' +mob-breeding-limiter: + enabled: true + max-mobs: 16 + check-radius: 32 + +#Should clearlag purge logs under /logs when the server starts? +# -- 'days-old' means how many days old can the log be to be deleted +log-purger: + enabled: false + days-old: 3 + +#What type of entities SHOULD NOT be removed while doing /lagg area? +area-filter: + - Itemframe + - Minecart + - Wolf + - Villager + - Horse + - ARMOR_STAND + +#Should clearlag reset the config, or attempt to update your config on updates +# -- 'force-update' is whether or not clearlag will reset your config with a newer version +# -- settings this to false will make clearlag update your config rather then resetting +config-updater: + force-update: false + +#This limits the mob egg spawners so players cannot "overload" the server with them +# -- 'check-radius' is the radius clearlag will check for nearby entities +# -- 'max-mobs' is how many entities may be in the radius before the spawning is blocked +mobegg-limiter: + enabled: true + check-radius: 16 + max-mobs: 24 + +#Disable new chunk generation, or just put a cap on how many can load at once. +#May cause many bugs with Spigot 1.8+, not recommended! +# -- 'create-new-chunks' disables or enables chunk creation. false would disallow new chunks +# -- !UNSTABLE ON SPIGOT BUILDS! +chunk-limiter: + enabled: false + limit: 6000 + create-new-chunks: true + +#This modifies the view range of entities +# -- Lower it is, the better your entity tick will be and the more CPU cycles you'll save +# -- If it's too high, expect bugs / lots of lag +mob-range: + enabled: false + #zombie: 30 + #skeleton: 30 + #creeper: 20 + +#How long should items/Mobs be left on the ground +# -- live-time's go by ticks (20 ticks a second) +live-time: + enabled: false #Paper.yml can do item despawning + interval: 10 + mobtimer: false + itemtimer: false + arrowtimer: false + arrowkilltime: 15 + moblivetime: 600 + itemlivetime: 240 + +#This option disallows the placement of too many tnt-minecarts +# -- 'radius' is the radius clearlag will check for TNT-Minecarts +tnt-minecart: + enabled: true + max: 8 + radius: 8 + +#This option reduces global dispenser fire rate +# -- 'time' is in milliseconds +dispenser-reducer: + enabled: false + time: 100 + +#This option reduces the explosions of mass amounts of tnt, and reduces tnt lag +# -- 'check-radius' is the radius clearlag will check for primed TNT +# -- 'max-primed' is the max primed TNT within the radius allowed before clearlag begins to remove +tnt-reducer: + enabled: true + check-radius: 8 + max-primed: 12 + +#This option reduces fire spread rate +# -- 'time' is in milliseconds +firespread-reducer: + enabled: false + time: 9223372036854775807 + +#How many entities should one chunk be allowed to hold? +# -- 'entities' lists all the entities that will be counted +# and possibly removed. +chunk-entity-limiter: + enabled: false + limit: 12 + entities: + #- bat !hasName + #- bee !hasName + #- blaze !hasName + #- blaze liveTime=1200 + #- cave_spider !hasName + #- cave_spider liveTime=1200 + #- chicken !hasName + #- cod !hasName + #- cow !hasName + #- creeper !hasName + #- drowned !hasName + #- elder_guardian !hasName + #- enderman !hasName + #- endermite !hasName + #- fox !hasName + #- ghast !hasName + #- guardian !hasName + #- guardian liveTime=1200 + #- hoglin !hasName + #- horse !hasName + #- husk !hasName + #- illusioner !hasName + #- iron_golem !hasName + #- magma_cube !hasName + #- mule !hasName + #- mushroom_cow !hasName + #- ocelot !hasName + #- panda !hasName + #- phantom !hasName + #- pig !hasName + #- pillager !hasName + #- polar_bear !hasName + #- pufferfish !hasName + #- rabbit !hasName + #- salmon !hasName + #- sheep !hasName + #- silverfish !hasName + #- skeleton !hasName + #- skeleton_horse !hasName + #- snowman !hasName !hasName + #- spider !hasName + #- stray !hasName + #- strider !hasName + #- squid !hasName + #- tropical_fish !hasName + #- turtle !hasName + #- vex !hasName + #- villager !hasName + #- vindicator !hasName + #- wolf !hasName + #- zoglin !hasName + #- zombie !hasName + #- zombie liveTime=1200 + #- zombie_villager !hasName + #- zombified_piglin !hasName + #- zombified_piglin liveTime=1200 + #- Pig liveTime=100 <- This mob will be REMOVED if it's been alive for 100 ticks (5 seconds) + +#A per-entity chunk limiter. Very useful to limiting useless mobs like squid, but not zombies +# -- 'entity-limits' lists all the entities, their filters, and 'limit' to specify their limit +# to be removed/culled +# -- 'passive-purger' Enables random checking of chunks to see whether they're exceeding limits. +# -- Useful for when you want to prevent lag exploiting +# -- 'passive-cleaning-enabled' Enables the passive-purger +# -- 'check-interval' How often (in ticks, 50MS) should chunks be checked +# -- 'chunk-batch-size' How many chunks at once should be checked +per-entity-chunk-entity-limiter: + enabled: false + entity-limits: + #- COD limit:1 + #- ZOMBIFIED_PIGLIN limit:8 + #- GHAST limit:3 + #- ZOMBIE limit:8 + #- SPIDER limit:8 + #- CAVE_SPIDER limit:8 + #- SNOW_GOLEM limit:4 + passive-cleaner: + passive-cleaning-enabled: false + check-interval: 30 + chunk-batch-size: 20 + +#How many mobs should be allowed to spawn globally +# -- 'interval' is the check interval check the current spawn amounts +spawn-limiter: + enabled: false + interval: 15 + mobs: 5000 + animals: 4000 + +#Meters your TPS, if it goes to low, run the commands you wrote below! +# -- 'interval' is how often tps-meter will check the TPS +# -- 'tps-trigger' is at what TPS the commands will be ran at +# -- 'tps-recover' is at what TPS should the TPS be considered stable after 'tps-trigger' is executed +# -- 'commands' lists what commands will be executed when tps-tigger is reached +# -- 'recover-commands' lists what commands will be executed when tps-recover is reached +# -- 'trigger-broadcast-message' specifies which message should be broadcasted when tps-trigger runs +# -- 'recover-broadcast-message' specifies which message should be broadcasted when TPS recovers +# -- 'broadcast-enabled' defines whether or not tps-meter should broadcast +tps-meter: + enabled: false + trigger-broadcast-message: '&6[ClearLag] &cThe server is overloaded, executing lag-perventing measures' + recover-broadcast-message: '&6[ClearLag] &aThe server is no longer overloaded!' + broadcast-enabled: false + interval: 15 + tps-trigger: 14.0 + tps-recover: 19.0 + commands: + - 'lagg killmobs' + - 'lagg clear' + - 'lagg halt on' + recover-commands: + - 'lagg halt off' + +#This is /lagg killmobs, put what you DON'T want removed! +# -- 'remove-named', when FALSE entities with custom names will NOT be removed +# -- 'mob-filter' lists which mobs will be IGNORED during /lagg killmobs +kill-mobs: + remove-named: false + mob-filter: + - Villager + - Wolf + # - Pig !name="Test" <- This entity will filtered if the name does NOT equal "Test" + # - Zombie hasName <- This entity will be filtered if it HAS a name + - ARMOR_STAND + - Horse + +#This nerfs mob-spawners (Natural and player-made) +#------------------------------------------------- +#This goes by chunks rather then spawners. This is to prevent +#a large buildup of mob-spawners within a small region to "bypass" +#your set limit. It also allows for keys to be generated more easily +#increasing the performance +# -- 'max-spawn' is the maximum mobs allowed to spawn by a mob-spawner +# -- 'remove-mobs-on-chunk-unload' is whether or not Clearlag should remove +# -- the mobs spawned by the mobspawner upon chunk unload (Highly Recommended) +mobspawner: + enabled: false + max-spawn: 8 + remove-mobs-on-chunk-unload: true + +#Dont use if you have CB++ or Spigot! +item-merger: + enabled: false + radius: 6 + +#Auto-removal options +# -- warnings works like this; time = the time warning should be given, msg = warning message at that time +# -- NOTE: The below 'remove' section applies to this remover! +# -- NOTE: Putting the interval to low will cause issues! +# -- NOTE: To disable "warnings", set it to "warnings: []" +# -- NOTE: bukkit.broadcast.user permission will allow users to see broadcasts (If not enabled by default) +# +# !==[ All string values MUST be inside '']==! +# +# -- 'remove-entities' lists what entities should be REMOVED on removal +# -- 'warnings' list warnings to be given out at specified times +# -- 'item-filter' What ground-items should NOT be removed during removal +# -- 'remove-entities' What entities SHOULD be removed during removal +auto-removal: + enabled: false + broadcast-message: '&6[ClearLag] &aRemoved +RemoveAmount Entities!' + broadcast-removal: true + autoremoval-interval: 460 + world-filter: + # - this_world <-This world will be ignored during removal! + boat: false + falling-block: false + experience-orb: false + painting: false + projectile: false + item: false + itemframe: false + minecart: false + primed-tnt: false + item-filter: + # - Stone <-This item-id will be ignored during removal! + # - Grass + remove-entities: + - Arrow onGround + - Snowball + - Egg + - Fireball + - Boat !isMounted + - Minecart !isMounted + - MINECART_TNT + # - cow <- This mob-type will be REMOVED during removal! + # - MINECART_MOB_SPAWNER + # - Pig liveTime=100 <- This mob will be REMOVED if it's been alive for 100 ticks (5 seconds) + # - Minecart !isMounted <- This entity will be REMOVED if it's NOT mounted + # - Wolf !hasName <- This entity will be REMOVED if it doesn't have a name + warnings: + - 'time:400 msg:&4[ClearLag] &cWarning Ground items will be removed in &7+remaining &cseconds!' + - 'time:440 msg:&4[ClearLag] &cWarning Ground items will be removed in &7+remaining &cseconds!' + +#What should be removed during /lagg clear, nearly the same thing as auto-removal +command-remove: + world-filter: + # - this_world <-This world will be ignored during removal! + broadcast-removal: false + boat: false + falling-block: false + experience-orb: false + painting: false + projectile: false + item: false + itemframe: false + minecart: false + primed-tnt: false + item-filter: + # - Stone <-This item-id will be ignored during removal! + # - Grass + remove-entities: + # - cow <- This mob-type will be REMOVED during removal! + # - MINECART_MOB_SPAWNER + # - Pig liveTime=100 <- This mob will be REMOVED if it's been alive for 100 ticks (5 seconds) + # - Minecart !isMounted <- This entity will be REMOVED if it's NOT mounted + # - Wolf !hasName <- This entity will be REMOVED if it doesn't have a name + +#Very very old, but still works. Just specifies a global entity limit. I'd recommend 'custom-trigger-removal' instead +# -- 'max' max entities allowed before the entity removal is activated +limit: + enabled: false + max: 1000 + check-interval: 60 + broadcast-message: '&6[ClearLag] &aLimit reached, removed +RemoveAmount Entities!' + world-filter: + # - this_world <-This world will be ignored during removal! + broadcast-removal: false + boat: false + falling-block: false + experience-orb: false + painting: false + projectile: false + item: false + itemframe: false + minecart: false + primed-tnt: false + item-filter: + # - Stone + # - Grass <-This item-id will be ignored during removal! + + +# Create your own custom removal stuff! +# -- warnings works like this; time = the time warning should be given, msg = warning message at that time +# -- NOTE: The below 'remove' section applies to this remover! +# \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ +# > READ FOR HELP -> https://dev.bukkit.org/projects/clearlagg/pages/config-setup <- READ FOR HELP < +# /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ +custom-trigger-removal: + enabled: false + triggers: + trigger1: + trigger-type: tps-trigger + run-interval: 5 + tps-trigger: 14.0 + tps-recover: 19.0 + jobs: + command-executor: + commands: + - 'lagg killmobs' + - 'lagg clear' + - 'lagg halt' + recover-commands: + - 'lagg halt' + entity-clearer: + execute-job-time: 120 + warnings: + - 'time:60 msg:&4[ClearLag] &cEntities/drops will be purged in &7+remaining &cseconds!' + - 'time:100 msg:&4[ClearLag] &cEntities/drops will be purged in &720 &cseconds!' + - 'time:110 msg:&4[ClearLag] &cEntities/drops will be purged in &710 &cseconds!' + world-filter: + # - world <-This world will be ignored during removal + removeEntities: + - item + - zombie !hasName + - skeleton !hasName + - pig !hasName + - cow !hasName + trigger2: + trigger-type: entity-limit-trigger + run-interval: 25 + limit: 200 + world-filter: + # - world <-This world will be ignored during checking + entity-limits: + - zombie + - skeleton + - enderman + jobs: + entity-clearer: + world-filter: + # - world <-This world will be ignored during removal + remove-entities: + - zombie + - skeleton + - enderman diff --git a/ansible/files/gamma-config/plugins/CombatTagPlus/config.yml b/ansible/files/gamma-config/plugins/CombatTagPlus/config.yml new file mode 100644 index 000000000..a043f1e27 --- /dev/null +++ b/ansible/files/gamma-config/plugins/CombatTagPlus/config.yml @@ -0,0 +1,190 @@ +# Don't touch this. It's here to determine whether you need to refresh your config. +config-version: 25 + +# The duration in seconds that both the attacker and victim should be tagged in combat. +tag-duration: 15 + +# This message is displayed to both the attacker and victim when newly tagged. Set this to '' to display nothing. {opponent} is the other player. +tag-message: '&cYou have engaged in combat with &b{opponent}&c. Type &b/ct &cto check your timer.' + +# This message is displayed to both the attacker and victim when newly tagged if the opponent is unknown. Set this to '' to display nothing. +tag-unknown-message: '&cYou have engaged in combat. Type &b/ct &cto check your timer.' + +# This message is displayed the player when their tag expires. Set this to '' to display nothing. +untag-message: '&aYou are no longer in combat.' + +# This message is displayed to the player when they attempt to check the remaining time on their tag, while not being tagged +command-untag-message: '&aYou are not in combat.' + +# This message is displayed to the player when they check the remaining time on their tag via command. {time} will be replaced with the remaining tag time. +command-tag-message: '&c{time} seconds remaining on your combat timer.' + +# Resets the tag time when the tagged player throws an enderpearl. +reset-tag-on-pearl: false + +# Plays an effect when a player logs off during combat. +play-effect: true + +# Always spawns the NPC even without combat tagged to prevent any chance of running away. +always-spawn: true + +# Allows mobs to combat tag players. +mob-tagging: false + +# Duration in seconds the player must wait without movement to safely logout using the /logout command. +logout-wait-time: 10 + +# This message is displayed when the player has attempted to safely log out but moved or entered pvp. +logout-cancelled-message: '&cLogout cancelled due to movement or pvping.' + +# This message is displayed when the player has successfully performed a safe logout. +logout-success-message: '&aYou were logged out safely.' + +# This message is displayed every second when the player is pending a logout. {remaining} is the time remaining. +logout-pending-message: '&7Logging out safely in &b{remaining}&7...' + +# Instantly kills the player when logged in PvP. +instantly-kill: false + +# Untags the player if they are kicked from combat rather than logging. +untag-on-kick: false + +# If a player is kicked with a kick message that contains any of the following, they will not be untagged. +untag-on-kick-blacklist: + - disconnect.spam + +# Only the attacker will be tagged if this is set to true. +only-tag-attacker: false + +# Disables players being able to tag themselves. +disable-self-tagging: true + +# Prevent block editing while tagged. +disable-block-edit: false + +# This message is displayed when a player attempts to edit blocks within pvp if block editing is disabled in pvp. +disable-block-edit-message: '&bBlock editing &cis disabled in combat.' + +# Disable a player from accessing storage (like chests and brewing stands) in combat +disable-storage-access: false + +disable-storage-access-message: '&bAccess to storage &cis disabled in combat' + +# Prevent players in creative from getting tagged. +disable-creative-tags: true + +# Prevent tagged players throwing enderpearls while tagged. +disable-enderpearls: false + +# This message is displayed when a player attempts to enderpearl within pvp if enderpearls are disabled in pvp. +disable-enderpearls-message: '&bEnderpearls &care disabled in combat.' + +# Prevent tagged players from flying during combat. +disable-flying: false + +# This message is displayed when a player attempts to fly within pvp if flying is disabled in pvp. +disable-flying-message: '&bFlying &cis disabled in combat.' + +# Prevent tagged players from teleporting during combat. +disable-teleportation: false + +# Optionally untag a player if tagged and teleportation is caused by PLUGIN or UNKNOWN +# Players can avoid CombatTag by abusing some plugins like NoCheatPlus and WorldBorder s both can cause somewhat frequent UNKNOWN and PLUGIN teleport events. +# This allows server-owners to avoid these issues by keeping the player CombatTagged +untag-on-plugin-teleport: false + +# This message is displayed when a player attempts to teleport within pvp if teleportation is disabled in pvp. +disable-teleportation-message: '&bTeleportation &cis disabled in combat.' + +# Prevents tagged players from crafting during combat. +disable-crafting: false + +# This message is displayed when a player attempts to craft an item while in combat if crafting is disabled. +disable-crafting-message: '&bCrafting &cis disabled in combat.' + +# The duration in seconds to despawn the combat logger's NPC if it hasn't died. +npc-despawn-time: 60 + +# Should we reset the NPC despawn time when it gets hit? +reset-despawn-time-on-hit: true + +# Generates a random name for the NPC. Turn this off to use the player name (potentially unsafe!) +generate-random-name: false + +# This is the prefix to use for the random name. 12 characters max. +random-name-prefix: PvPLogger + +# This message is displayed when a player is killed by another player. Set this to '' to display nothing. +kill-message: '&8&l>> &c{victim} was slain by {attacker}' + +# Same as above, this is displayed when a player is killed by another player with an item in hand. +kill-message-item: '&8&l>> &c{victim} was slain by {attacker} with a {item}' + +# Enables BarAPI integration for displaying a boss bar counting down with the remaining tag time. +barapi: true + +# Message to be displayed on BarAPI when players' pvp timer has ended. +barapi-ended-message: '&aYou are no longer in combat!' + +# Message to be displayed on BarAPI when the player is still in pvp. +barapi-countdown-message: '&eCombatTag: &f{remaining}' + +# Deny movement into safezones from PVP enabled areas while combat tagged. +deny-safezone: true + +# Deny teleporting with enderpearls into safezones from PVP enabled areas while combat tagged. +deny-safezone-enderpearl: true + +# Enables force fields around Anti-PvP zones while in combat. +force-fields: true + +# Radius in blocks around the player that should be checked for forcefields (Higher numbers = more laggy) +force-field-radius: 10 + +# Material of the forcefield block type. +force-field-material: STAINED_GLASS + +# Damage value of the material specified above. +force-field-material-damage: 14 + +# Enables Factions integration for disabling combat tagging in regions with PVP disabled. +factions: true + +# Enables WorldGuard integration for disabling combat tagging in regions with PVP disabled. +worldguard: true + +# Enables Towny integration for disabling combat tagging in regions with PVP disabled. +towny: true + +# This is a list of worlds where combat tagging should be disabled. +disabled-worlds: [world_the_end] + +# This message is displayed when the player tries to execute a disabled command whilst in combat. +disabled-command-message: '&b{command}&c is disabled in combat.' + +# These commands are unusable by players who are combat tagged. Use '*' to blacklist all commands. +command-blacklist: + - ctlog + - logout + - ctlogout + - ctpluslogout + - sit + - lay + - bellyflop + +# Customize the words used to describe durations (both singular and plural) +duration-words: + day: "day" + days: "days" + hour: "hour" + hours: "hours" + minute: "minute" + minutes: "minutes" + second: "second" + seconds: "seconds" + +# These commands are exceptions to the blacklist. +command-whitelist: + - ct + - ctplus + - combattag diff --git a/ansible/files/gamma-config/plugins/CraftEnhance/guitemplates.yml b/ansible/files/gamma-config/plugins/CraftEnhance/guitemplates.yml new file mode 100644 index 000000000..909cedc7f --- /dev/null +++ b/ansible/files/gamma-config/plugins/CraftEnhance/guitemplates.yml @@ -0,0 +1,742 @@ +Menus: + RecipesViewer: + menu_settings: + name: 'Recipes viewer ' + fill-space: 0-44 + sound: BLOCK_NOTE_BLOCK_BASEDRUM + buttons: + '46': + action_type: PrvPage + extra: LIGHT_BLUE + material: STAINED_GLASS_PANE + name: '&aPrevious Page' + lore: + - '&fGo to the previous page' + glow: true + '48': + action_type: Search + material: PAPER + name: '&aSearch for a recipe' + lore: + - '&fSearch for same or similar recipes,' + - '&fit can be enough to type the first' + - '&fthree/four letters.' + glow: true + '49': + action_type: Back + material: GLOWSTONE_DUST + name: '&aBack' + lore: + - '&fGo back to the previous GUI' + glow: true + '52': + action_type: NxtPage + extra: LIGHT_BLUE + material: STAINED_GLASS_PANE + name: '&aNext Page' + lore: + - '&fGo to the next page' + glow: true + RecipesCategorys: + menu_settings: + name: Categorys + fill-space: 0-45 + sound: BLOCK_NOTE_BLOCK_BASEDRUM + buttons: + '46': + action_type: PrvPage + extra: LIGHT_BLUE + material: STAINED_GLASS_PANE + name: '&aPrevious Page' + lore: + - '&fGo to the previous page' + glow: true + '47': + action_type: NewCategory + passive: + material: BOOK + name: '&aNew category' + lore: + - '&fCan''t add category' + - '&flack of permission.' + glow: false + active: + material: BOOK + name: '&aNew category' + lore: + - '&fAdd new category' + glow: true + '49': + action_type: Back + material: GLOWSTONE_DUST + name: '&aBack' + lore: + - '&fGo back to the previous GUI' + glow: true + '51': + action_type: Search + material: PAPER + name: '&aSearch for a category' + lore: + - '&fSearch for same or similar' + - '&fcategorys, it can be enough' + - '&fto type the first three/four' + - '&fletters.' + glow: true + '52': + action_type: NxtPage + extra: LIGHT_BLUE + material: STAINED_GLASS_PANE + name: '&aNext Page' + lore: + - '&fGo to the next page' + glow: true + '-1': + action_type: FillItems + material: STONE + name: '&aCategory:&3 [display_name]' + lore: + - '&fLeftclick to open' + - '&fRightclick to edit Category' + glow: true + CategorysSettings: + menu_settings: + name: Category settings + sound: BLOCK_NOTE_BLOCK_BASEDRUM + buttons: + '10': + action_type: RemoveCategory + material: BARRIER + name: '&aRemove category' + lore: + - '&fRemove category it will' + - '&fmove all recipes to defult.' + glow: true + '12': + action_type: ChangeCategoryName + material: BOOK + name: '&aChange category name' + lore: + - '&fChange category name.' + glow: true + '14': + action_type: ChangeCategory + material: WRITTEN_BOOK + name: '&aChange category' + lore: + - '&fMove this category to' + - '&fnew category.' + glow: true + '16': + action_type: ChangeCategoryItem + material: STONE + name: '&aChange category item' + lore: + - '&fChange category item' + - '&fsome you use for this' + - '&fcategory.' + - '&7' + - '&fLeftclick to add your own item' + - '&fand rightclick to type in chat' + - '&fthe itemtype you want.' + glow: true + '18': + action_type: Back + material: GLOWSTONE_DUST + name: '&aBack' + lore: + - '&fGo back to the previous GUI' + glow: true + 0-8,9,11,13,15,17,19-26: + extra: GRAY + material: STAINED_GLASS_PANE + name: '' + lore: + - '' + glow: false + ChangeCategoryItem: + menu_settings: + name: Category item + fill-space: '13' + sound: BLOCK_NOTE_BLOCK_BASEDRUM + buttons: + '18': + action_type: Back + material: GLOWSTONE_DUST + name: '&aBack' + lore: + - '&fGo back to the previous GUI' + glow: true + '22': + action_type: Save + material: GOLD_INGOT + name: '&aSet item' + lore: + - '&fSet the the item' + - '&ffor the category.' + glow: true + 0-8,9-11,12,14-17,19-21,23-26: + extra: GRAY + material: STAINED_GLASS_PANE + name: '' + lore: + - '' + glow: false + CategoryList: + menu_settings: + name: Category list + fill-space: 0-45 + sound: BLOCK_NOTE_BLOCK_BASEDRUM + buttons: + '46': + action_type: PrvPage + extra: LIGHT_BLUE + material: STAINED_GLASS_PANE + name: '&aPrevious Page' + lore: + - '&fGo to the previous page' + glow: true + '48': + action_type: Search + material: PAPER + name: '&aSearch for a category' + lore: + - '&fSearch for same or similar' + - '&fcategorys, it can be enough' + - '&fto type the first three/four' + - '&fletters.' + glow: true + '49': + action_type: Back + material: GLOWSTONE_DUST + name: '&aBack' + lore: + - '&fGo back to the previous GUI' + glow: true + '52': + action_type: NxtPage + extra: LIGHT_BLUE + material: STAINED_GLASS_PANE + name: '&aNext Page' + lore: + - '&fGo to the next page' + glow: true + '-1': + action_type: FillItems + material: STONE + name: '&aCategory:&3 [display_name]' + lore: + - ' ' + - '&fLeftclick to open this Category' + - '&fRightclick to edit this Category' + glow: true + WBRecipeViewer: + menu_settings: + name: Workbench recipe + fill-space: 0-2,9-11,18-20,13 + sound: BLOCK_NOTE_BLOCK_BASEDRUM + buttons: + '12': + material: WORKBENCH + name: '&aCustom crafting table recipe' + lore: + - '&fThis is a example on how you add' + - '&fthe items in the real crafting table. If' + - '&fit shaped recipe you need put the items' + - '&fin exact same patern.' + - '&f' + - '&fThe recipe is &3[shaped]&f' + - '&fThe ingredients need &3[match meta]' + - '&fYou can craft this recipe in this worlds:' + - '&3[worlds]' + glow: true + '25': + action_type: edit_recipe + passive: + extra: GRAY + material: STAINED_GLASS_PANE + name: '&6' + lore: + - '&a' + glow: false + active: + material: DIAMOND_AXE + name: '&aEdit recipe' + lore: + - '&fYou can edit the recipe, if' + - '&fyou have this permission:' + - '&a[config_permission]' + glow: true + '26': + action_type: Back + material: GLOWSTONE_DUST + name: '&aBack' + lore: + - '&fGo back to the previous GUI' + glow: true + 3-8,14-17,21-25: + extra: GRAY + material: STAINED_GLASS_PANE + name: '' + lore: + - '' + glow: false + WBRecipeEditor: + menu_settings: + name: Recipe editor + fill-space: 0-2,9-11,18-20,13 + sound: BLOCK_NOTE_BLOCK_BASEDRUM + buttons: + '8': + action_type: DeleteRecipe + material: REDSTONE + name: '&cDelete the recipe' + lore: + - '&7&oNote that there''s no going back' + - '&7&oonce you delete your recipe.' + glow: true + '12': + material: WORKBENCH + name: '&3Enhanced crafting table recipe' + lore: + - '&fThe recipe is &3[shaped]&f' + - '&fThe ingredients need &3[match meta]' + - '&fThe key of the recipe is &3[key]' + - '&fThe permission of the recipe is &3[permission]' + glow: true + '17': + action_type: ResetRecipe + material: STONE + name: '&aReset the recipe' + lore: + - '' + glow: true + '24': + action_type: RecipeSettings + material: GOLD_INGOT + name: '&aSettings for recipe' + lore: + - '' + - '&fSet the settings for recipe.' + glow: true + '25': + action_type: SaveRecipe + material: EMERALD + name: '&aSave the recipe' + lore: + - '' + glow: true + '26': + action_type: Back + material: GLOWSTONE_DUST + name: '&aBack' + lore: + - '&fGo back to the previous GUI' + glow: true + 3-7,14-16,21-23: + extra: GRAY + material: STAINED_GLASS_PANE + name: '' + lore: + - '' + glow: false + RecipeDisabler: + menu_settings: + name: ' Server recipe toggler' + fill-space: 10-16,19-25,28-34,37-43 + sound: BLOCK_NOTE_BLOCK_BASEDRUM + buttons: + '47': + action_type: PrvPage + material: ARROW + name: '&aPrevious Page' + lore: + - '&fGo to the previous page' + glow: true + '48': + action_type: SwitchDisablerMode + material: LEVER + name: '&f[mode] &7-&f click to toggle' + glow: true + '50': + action_type: Search + material: WRITTEN_BOOK + name: '&fclick to search for recipe' + lore: + - '&fLeftclick to reset' + - '&fRightclick to search' + - '&6' + - '&fIt can be enough to type' + - '&fthe first three/four' + - '&fletters.' + glow: true + '51': + action_type: NxtPage + material: ARROW + name: '&aNext Page' + lore: + - '&fGo to the next page' + glow: true + 0-8,45-46,49,52-53: + extra: BLUE + material: STAINED_GLASS_PANE + name: '&f' + glow: false + 9,17,18,26,27,35,36,44: + extra: BLACK + material: STAINED_GLASS_PANE + name: '&f' + glow: false + FurnaceRecipeViewer: + menu_settings: + name: '[Recipe_type] recipe' + fill-space: 10,12 + sound: BLOCK_NOTE_BLOCK_BASEDRUM + buttons: + '11': + material: FURNACE + name: '&fEnhanced [Recipe_type] recipe' + lore: + - '&fThe recipe rewards &3[exp] &fexp' + - '&fThe cooking time is &3[duration] &fticks' + - '&fThe ingredients need &3[match meta]' + - '&fYou can use this recipe in this worlds:' + - '&3[worlds]' + glow: true + '25': + action_type: edit_recipe + passive: + extra: GRAY + material: STAINED_GLASS_PANE + name: '&6' + lore: + - '&a' + glow: false + active: + material: DIAMOND_AXE + name: '&aEdit recipe' + lore: + - '&fYou can edit the recipe, if' + - '&fyou have this permission:' + - '&a[config_permission]' + glow: true + '26': + action_type: Back + material: GLOWSTONE_DUST + name: '&aBack' + lore: + - '&fGo back to the previous GUI' + glow: true + 0-9,13-25: + extra: GRAY + material: STAINED_GLASS_PANE + name: '' + lore: + - '' + glow: false + FurnaceRecipeEditor: + menu_settings: + name: '[Recipe_type] editor' + fill-space: 10,12 + sound: BLOCK_NOTE_BLOCK_BASEDRUM + buttons: + '8': + action_type: DeleteRecipe + material: REDSTONE + name: '&cDelete &fthe recipe' + lore: + - '&7&oNote that there''s no going back' + - '&7&oonce you delete your recipe.' + glow: true + '11': + material: FURNACE + name: '&aEnhanced [Recipe_type] recipe' + lore: + - '&fThe ingredients need &3[match meta]' + - '&fThe key of the recipe is &3[key]' + - '&fThe permission of the recipe is &3[permission]' + glow: true + '17': + action_type: ResetRecipe + material: STONE + name: '&7Reset &fthe recipe' + lore: + - '' + glow: true + '24': + action_type: RecipeSettings + material: GOLD_INGOT + name: '&aSettings for recipe' + lore: + - '' + - '&fSet the settings for recipe.' + glow: true + '25': + action_type: SaveRecipe + material: EMERALD + name: '&aSave &fthe recipe' + lore: + - '' + glow: true + '26': + action_type: Back + material: GLOWSTONE_DUST + name: '&aBack' + lore: + - '&fGo back to the previous GUI' + glow: true + 0-7,9,13-16,18-23: + extra: GRAY + material: STAINED_GLASS_PANE + name: ' ' + lore: + - '' + glow: false + EditorTypeSelector: + menu_settings: + name: Select recipe type + sound: BLOCK_NOTE_BLOCK_BASEDRUM + buttons: + '2': + action_type: ChooseFurnaceType + material: FURNACE + name: '&fClick to create a furnace recipe' + lore: + - '' + glow: true + '6': + action_type: ChooseWorkbenchType + material: WORKBENCH + name: '&fClick to create a workbench recipe' + lore: + - '' + glow: true + '10': + action_type: ChooseBlastType + material: BLAST_FURNACE + name: '&fClick to create a blast recipe' + lore: + - '' + glow: true + '12': + action_type: ChooseSmokerType + material: SMOKER + name: '&fClick to create a smoker recipe' + lore: + - '' + glow: true + 0-1,3-5,7-9,11,13-26: + extra: GRAY + material: STAINED_GLASS_PANE + name: '' + lore: + - '' + glow: false + RecipeSettingsCrafting: + menu_settings: + name: Recipe settings + sound: BLOCK_NOTE_BLOCK_BASEDRUM + buttons: + '10': + action_type: changeCategory + material: WRITTEN_BOOK + name: '&aChange category' + lore: + - '&fChange category, if it not exist' + - '&fcreate new one.' + - '' + - '&fCurrently set category:&3 [category]' + glow: true + '12': + action_type: AllowedWorldsCraft + material: IRON_INGOT + name: '&aChange or set worlds' + lore: + - '&fChange or set world.' + - '' + - '&fRight-click to remove world.' + - '&fLeft-click to add world.' + - '&fShift and left-click to add world' + - '&fwithout check if the world is valid.' + - '' + - '&fCurrently set worlds:' + - '&3[worlds]' + glow: true + '14': + action_type: changeCategoryList + material: WRITABLE_BOOK + name: '&aChose categorys from list' + lore: + - '&fChose categorys you have' + - '&fcreated.All categorys' + - '&fis listed here.' + - '' + - '&fCurrently set category:&3 [category]' + glow: true + '16': + action_type: SetPermission + material: PAPER + name: '&aClick to set permission' + lore: + - '&fcurrent:&3 [permission]' + glow: true + '19': + action_type: SwitchHidden + material: DIAMOND + name: '&aClick to change: &3[hidden]' + glow: true + '21': + action_type: SwitchMatchMeta + material: ENCHANTED_BOOK + name: '&aClick to change: &3[match meta]' + lore: + - '' + glow: true + '23': + action_type: SwitchShaped + material: WEB + name: '&aClick to change: &3[shaped]' + lore: + - '' + glow: true + '25': + action_type: SetPosition + material: PAPER + name: '&aClick to set the position' + lore: + - '&fCurrent position' + - '&fSlot &3[slot]' + - '&fPage &3[page]' + glow: true + '28': + action_type: SetPartialMatch + material: PAPER + name: '&aClick to set similar match' + lore: + - '&fChange this setting if you want to' + - '&fprevent crafting similar Minecraft' + - '&foriginal recipes.' + - '&fCurrently set to:' + - '&3[partial_match]' + glow: true + '44': + action_type: Back + material: GLOWSTONE_DUST + name: '&aBack' + lore: + - '&fGo back to the previous GUI' + glow: true + 0-8,36-43: + extra: GRAY + material: STAINED_GLASS_PANE + name: '' + lore: + - '' + glow: false + RecipeSettingsFurnace: + menu_settings: + name: '[Recipe_type] settings' + fill-space: 10,12 + sound: BLOCK_NOTE_BLOCK_BASEDRUM + buttons: + '10': + action_type: changeCategory + material: WRITTEN_BOOK + name: '&aChange category' + lore: + - '&fChange category, if it not exist' + - '&fcreate new one.' + - '' + - '&fCurrently set category:&3 [category]' + glow: true + '12': + action_type: changeCategoryList + material: WRITABLE_BOOK + name: '&aChose categorys from list' + lore: + - '&fChose categorys you have' + - '&fcreated.All categorys' + - '&fis listed here.' + glow: true + '14': + action_type: SetPermission + material: PAPER + name: '&fClick to set permission' + lore: + - '&fcurrent:&3 [permission]' + glow: true + '16': + action_type: SetCookTime + material: CLOCK + name: '&fClick to set the cook time' + lore: + - '&fcurrent:&3 [duration]' + glow: true + '18': + action_type: SetExp + material: EXP_BOTTLE + name: '&aClick to set the rewarded exp amount' + lore: + - '&fcurrent:&3 [exp]' + glow: true + '20': + action_type: SwitchHidden + material: DIAMOND + name: '&fClick to change: &e[hidden]' + glow: true + '22': + action_type: SwitchMatchMeta + material: ENCHANTED_BOOK + name: '&fClick to change: &e[match meta]' + lore: + - '' + glow: true + '24': + action_type: SetPosition + material: PAPER + name: '&fClick to set the position' + lore: + - '&fCurrent position' + - '&fSlot &3[slot]' + - '&fPage &3[page]' + glow: true + '26': + action_type: AllowedWorldsCraft + material: IRON_INGOT + name: '&aChange or set worlds' + lore: + - '&fChange or set world.' + - '' + - '&fRight-click to remove world' + - '&fLeft-click to add world' + - '' + - '&fCurrently set worlds:' + - '&3 [worlds]' + glow: true + '28': + action_type: SetPartialMatch + material: PAPER + name: '&aClick to prevent similar match' + lore: + - '&fChange this setting if you want to' + - '&fprevent burn similar Minecraft' + - '&foriginal recipes.' + - '&fCurrently set to:' + - '&3[partial_match]' + glow: true + '35': + action_type: Back + material: GLOWSTONE_DUST + name: '&aBack' + lore: + - '&fGo back to the previous GUI' + glow: true + 0-8,27,29-34: + extra: GRAY + material: STAINED_GLASS_PANE + name: ' ' + lore: + - '' + glow: false +#Do not change this. +Version: 13 \ No newline at end of file diff --git a/ansible/files/gamma-config/plugins/CraftEnhance/items.yml b/ansible/files/gamma-config/plugins/CraftEnhance/items.yml new file mode 100644 index 000000000..3a97d792e --- /dev/null +++ b/ansible/files/gamma-config/plugins/CraftEnhance/items.yml @@ -0,0 +1,8 @@ +TALL_GRASS: + ==: org.bukkit.inventory.ItemStack + v: 2975 + type: TALL_GRASS +GRASS: + ==: org.bukkit.inventory.ItemStack + v: 2975 + type: GRASS diff --git a/ansible/files/gamma-config/plugins/CraftEnhance/recipes.yml b/ansible/files/gamma-config/plugins/CraftEnhance/recipes.yml new file mode 100644 index 000000000..ee6e19984 --- /dev/null +++ b/ansible/files/gamma-config/plugins/CraftEnhance/recipes.yml @@ -0,0 +1,19 @@ +recipe1: + ==: com.dutchjelly.craftenhance.crafthandling.recipes.WBRecipe + result: TALL_GRASS + hidden: false + recipe: + - null + - null + - null + - null + - GRASS + - null + - null + - GRASS + - null + permission: null + page: -1 + slot: -1 + matchmeta: true + shapeless: true diff --git a/ansible/files/gamma-config/plugins/CraftEnhance/server-recipes.yml b/ansible/files/gamma-config/plugins/CraftEnhance/server-recipes.yml new file mode 100644 index 000000000..e6c744046 --- /dev/null +++ b/ansible/files/gamma-config/plugins/CraftEnhance/server-recipes.yml @@ -0,0 +1,24 @@ +disabled: + - minecraft:netherite_scrap + - minecraft:netherite_scrap_from_blasting + - minecraft:netherite_ingot + - minecraft:lodestone + - minecraft:netherite_upgrade_smithing_template + - minecraft:sentry_armor_trim_smithing_template + - minecraft:vex_armor_trim_smithing_template + - minecraft:wild_armor_trim_smithing_template + - minecraft:coast_armor_trim_smithing_template + - minecraft:dune_armor_trim_smithing_template + - minecraft:wayfinder_armor_trim_smithing_template + - minecraft:raiser_armor_trim_smithing_template + - minecraft:shaper_armor_trim_smithing_template + - minecraft:host_armor_trim_smithing_template + - minecraft:ward_armor_trim_smithing_template + - minecraft:silence_armor_trim_smithing_template + - minecraft:tide_armor_trim_smithing_template + - minecraft:snout_armor_trim_smithing_template + - minecraft:rib_armor_trim_smithing_template + - minecraft:eye_armor_trim_smithing_template + - minecraft:spire_armor_trim_smithing_template + - minecraft:bolt_armor_trim_smithing_template + - minecraft:flow_armor_trim_smithing_template diff --git a/ansible/files/gamma-config/plugins/Donum/config.yml b/ansible/files/gamma-config/plugins/Donum/config.yml new file mode 100644 index 000000000..df4865e41 --- /dev/null +++ b/ansible/files/gamma-config/plugins/Donum/config.yml @@ -0,0 +1,17 @@ +#Url that can be opened in the delivery gui +complaintURL: https://www.reddit.com/message/compose?to=%2Fr%2FCivMC + +#Whether BetterShards player data API should be used for delivery inventories +useBetterShards: false + +#Debug logs when players take items from their delivery inventory. Handy to confirm cases of delivery failure +debug: false + + +#database credentials +database: + host: ${CIV_MYSQL_HOST} + database: ${CIV_DATABASE_PREFIX}donum + port: 3306 + password: ${CIV_MYSQL_PASSWORD} + user: ${CIV_MYSQL_USERNAME} diff --git a/ansible/files/gamma-config/plugins/EssenceGlue/config.yml b/ansible/files/gamma-config/plugins/EssenceGlue/config.yml new file mode 100644 index 000000000..4fc9c2b24 --- /dev/null +++ b/ansible/files/gamma-config/plugins/EssenceGlue/config.yml @@ -0,0 +1,59 @@ +debug: false + +max_streak: 1 +streak_delay: 20 hours +streak_grace_period: 1 day +#Needs to be a multiple of a full minute +online_for_reward: 30 minutes + +give_reward_to_pearled: false +multiply_pearl_cost: false + +physical: false +virtual_cap: 64 + +rewards: + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + +login_reward: 4 +voting_reward: 1 + +voting_sites: + minecraftmp: + voting_cooldown: 24 hours + voting_url: 'https://minecraft-mp.com/server/305231/vote/?username=%PLAYER%' + internal_key: 'Minecraft-MP.com' + name: 'minecraft-mp.com' + minecraftserverlist: + voting_cooldown: 20 hours + voting_url: 'https://minecraft-server-list.com/server/488241/vote/' + internal_key: 'MCSL' + name: 'minecraft-server-list.com' + minecraftservers: + voting_cooldown: 24 hours + voting_url: 'https://minecraftservers.org/vote/636677' + internal_key: 'MinecraftServers.org' + name: 'minecraftservers.org' + +database: + ==: vg.civcraft.mc.civmodcore.dao.DatabaseCredentials + plugin: EssenceGlue + username: ${CIV_MYSQL_USERNAME} + password: ${CIV_MYSQL_PASSWORD} + host: ${CIV_MYSQL_HOST} + port: 3306 + database: ${CIV_DATABASE_PREFIX}essenceglue + poolsize: 5 + connection_timeout: 10000 + idle_timeout: 600000 + max_lifetime: 7200000 diff --git a/ansible/files/gamma-config/plugins/ExilePearl/config.yml b/ansible/files/gamma-config/plugins/ExilePearl/config.yml new file mode 100644 index 000000000..a074afe42 --- /dev/null +++ b/ansible/files/gamma-config/plugins/ExilePearl/config.yml @@ -0,0 +1,355 @@ +# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * # +# STORAGE SETTINGS # +# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * # +# +# storage.type +# - What type of storage to use +# Options: +# 0: File storage (default) +# 1: MySQL storage +# 2: RAM storage (dev use only) +# +# storage.mysql.x +# - Connection options for a MySQL database +# +# storage.mysql.migrate_pp +# - When true, the MySQL storage will attempt to migrate PrisonPearl data +# when it connects for the first time. +# +# +# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * # +# GENERAL SETTINGS # +# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * # +# +# general.suicide_time_seconds +# - The timeout for the /suicide command before the player +# actually dies +# +# general.max_pearled_alts +# - Once a player has this many accounts pearled, any further BanStick alts will be prevented from logging in +# +# general.max_pearled_message +# - Message shown to altbanned accounts when they attempt to login +# +# general.can_elytra_with_pearls +# - Will prevent players opening an elytra with a pearl in their inventory, also disables picking up a pearl item +# while they are gliding. +# +# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * # +# PEARL SETTINGS # +# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * # +# +# pearls.autofree_worldborder +# - When true, pearls that are outside world-border will be freed during a +# decay operation +# +# pearls.free_by_throwing +# - When true, pearls can be freed by throwing them +# +# pearls.free_teleport +# - When true, freeing a prison pearled player teleports them to the freer +# +# pearls.hotbar_needed +# - When true, players will only be pearled if the killer has a pearl +# in their hotbar +# +# pearls.decay_interval_min +# - How often the decay task runs in minutes +# +# pearls.decay_amount +# - The raw health amount that is removed with each decay operation +# +# pearls.max_value +# - The maximum health value. +# - This will determine the displayed health percent value +# +# pearls.start_value +# - The starting health value of pearls when they are created +# +# pearls.TYPE.repair_materials +# - The materials used to repair pearls +# - The repair value is how many health points are repaired for each item +# +# pearls.bastion_harm_amount +# - The amount of damage to deal to players when they are inside a +# bastion field they don't have perms on. +# +# pearls.prison_world +# - The name of the world where prisoners should be sent +# pearls.main_world +# - The name of the world where freed prisoners should go +# +# pearls.upgrade_materials +# - The materials used to upgrade pearls from exile to prison +# The repair value is how many are required +# +# pearls.allow_pearl_stealing +# - Whether or not prison pearls can be stolen by killing a summoned player +# +# pearls.allow_summoning +# - Whether or not summoning is allowed +# +# pearls.cost_multiplier_days +# - Time frame after which the cost for repairing pearls is increased, set to 0 to disable +# +# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * # +# HELP ITEM SETTINGS # +# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * # +# +# help_item.enabled +# - When true, a help item is generated for pearled players on respawn +# +# help_item.item_name +# - The name given to the help item +# +# help_item.item_text +# - The help item text +# +# +# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * # +# DAMAGE LOG # +# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * # +# +# damage_log.enabled +# - When true, the damage log task is enabled to track who is awarded pearls +# If this is disabled, a pearl will only be awarded by a direct kill. +# +# damage_log.algorithm +# - The algorithm type to use when awarding pearls +# Options: +# 0: Most Recent - Use most recent damager to award the pearl +# 1: Most Damage - Use highest tracked damager to award the pearl# +# +# damage_log.tick_interval +# - The interval in ticks for how often the damage tracking task runs +# +# damage_log.decay_amount +# - The damage amount to remove at each run interval. +# Example: +# If tick_interval=20 and decay_amount=1, a player dealing 10 damage will +# be tracked for 10 seconds. (20t/second) +# +# damage_log.max_amount +# - The maximum damage amount to track for a given damager. +# +# damage_log.potion_damge +# - The base damage to apply for splash potions. This only applies to +# harming, poison, and weakness splash potions. +# An extended or upgraded potion has a 2x multiplier of this value. +# The potion intensity (0 - 1.0) is also used as a multiplier, so a player +# may not always be dealt the full potion damage amount. +# +# +# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * # +# EXILE RULES # +# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * # +# +# rules.pearl_radius +# - The radius around their pearl that an exiled player can't enter +# - Set this value to 0 to disable the radius +# +# rules.ignite +# - When false, exiled players can't set things on fire +# +# rules.use_bed +# - When false, exiled players can't use beds +# +# rules.spawn_reset +# - When true, resets the bed of an exiled player if killed by another player +# +# rules.use_bucket +# - When false, exiled players can't empty buckets or move them to other inventories +# +# rules.fill_bucket +# - When false, exiled players can't fill buckets (unless milk_cows is true) +# +# rules.milk_cows +# - When false, exiled players can't milk cows +# +# rules.fill_cauldron +# - When false, exiled players can't fill cauldrons from water buckets +# +# rules.use_potions +# - When false, exiled players can't use potions +# +# rules.throw_pearl +# - When false, exiled players can't throw ender pearls +# +# rules.pvp +# - When false, exiled players can't harm other players +# +# rules.kill_pets +# - When false, exiled players can't harm pet mobs +# +# rules.kill_mobs +# - When false, exiled players can't harm protected mobs +# +# rules.enchant +# - When false, exiled players can't enchant items +# +# rules.brew +# - When false, exiled players can't brew potions +# +# rules.drink_brews +# - When false, exiled players can't drink brewery brews +# +# rules.suicide +# - When true, exiled players can use the /suicide command +# +# rules.mine_blocks +# - When false, exiled players can't break any blocks +# +# rules.collect_xp +# - When false, exiled players can't collect xp orbs +# +# rules.use_anvil +# - When false, exiled players can't use anvils +# +# rules.place_tnt +# - When false, exiled players can't place TNT +# +# rules.chat_local +# - When false, exiled players can't chat locally. +# - Requires CivChat2 plugin +# +# rules.create_bastion +# - When false, exiled players can't create bastions +# - Requires Bastion plugin +# +# rules.damage_bastion +# - When false, exiled players can't damage bastions +# - Requires Bastion plugin +# +# rules.enter_bastion +# - When false, exiled players can't enter bastion fields that they +# aren't a member of +# - Requires Bastion plugin +# +# rules.damage_reinforcement +# - When false, exiled players can't damage reinforced blocks +# - Requires Citadel plugin +# +# rules.place_snitch +# - When false, exiled players can't place jukeboxes or noteblocks +# - Requires JukeAlert plugin +# +# rules.protected_mobs +# - Mobs that are protected when rules.kill_mobs is set to false +# +# rules.disallowed_worlds +# - Worlds that pearls are not allowed to be stored in +# +# +# Start Config +storage: + type: 1 + mysql: + host: ${CIV_MYSQL_HOST} + dbname: exilepearl + port: 3306 + username: ${CIV_MYSQL_USERNAME} + password: ${CIV_MYSQL_PASSWORD} + connection_timeout: 5000 + idle_timeout: 5000 + max_lifetime: 5000 + pool_size: 10 + migrate_pp: false + migrate_dbname: prisonpearl +general: + suicide_time_seconds: 180 + max_pearled_alts: 1 + max_pearled_message: 'You have too many imprisoned alts' + can_elytra_with_pearls: true + can_pearled_players_pearl_others: true +pearls: + autofree_worldborder: true + free_by_throwing: false + free_teleport: false + hotbar_needed: true + decay_interval_human: day + decay_interval_min_human: 1440 #This value is divided by decay_interval_min and repair cost to show essence cost per day (1440 = 1 day in minutes). + decay_interval_min: 60 + decay_amount: 1 + decay_timeout_min: 525600 # don't timeout until after a year + start_value: 48 #starting pearl health is 2 days + max_value: 336 #maximum pearl health is 14 days + cost_multiplier_days: 90 #increase pearl repair cost after 90 days + repair_materials: + PRISON: + mana: + material: ENDER_EYE + name: Player Essence + lore: + - Activity reward used to fuel pearls + repair: 12 #24 health is consumed per day, so two essence fuelds one pearl for a day +# EXILE: +# mana: +# material: ENDER_EYE +# name: Player Essence +# lore: +# - Activity reward used to fuel pearls +# repair: 144 #768 health is consumed per day, so 144 allows a player to fill 1.5 exile pearls of equal streak (768*1.5/8) + bastion_harm_amount: 2.0 + upgrade_materials: +# mana: +# material: ENDER_EYE +# name: Player Essence +# lore: +# - Activity reward used to fuel pearls +# repair: 149 + default_pearl_type: PRISON + allow_pearl_stealing: true + allow_summoning: true + prison_world: world_nether + main_world: world +help_item: + enabled: true + item_name: "You've been pearled!" + item_text: + - "You have been pearled." + - "" + - "Another player has imprisoned you in an ender pearl." + - "Your in-game actions will be limited until you are freed." + - "You can type /ep locate to see the location of your pearl." +damage_log: + enabled: true + algorithm: 1 + tick_interval: 20 + decay_amount: 1.0 + max_amount: 30.0 + potion_damge: 6.0 +rules: + pearl_radius: 1000 + ignite: false # Can exiles start a fire + use_bed: true # Can exiles use a bed + spawn_reset: true # reset exile player bed when killed by a player + use_bucket: true # Can exiles empty a bucket + fill_bucket: true # can exiles fill a bucket + milk_cows: true # can exiles milk a cow + use_potions: false # can exiles use potions + drink_brews: true # can exiles drink brews + fill_cauldron: true # can exiles fill a cauldron + throw_pearl: false # can exiles throw ender pearls + pvp: false # can exiles pvp + kill_pets: false # can exiles kill pets + kill_mobs: false # can exiles kill mobs + enchant: true # can exiles enchant items + brew: true # can exiles brew potions + suicide: true # can exiles /suicide + mine_blocks: true # can exiles break blocks + collect_xp: true # can exiles collect xp + use_anvil: true # can exiles use an anvil + place_tnt: false # can exiles place tnt + chat_local: true # can exiles speak in local chat + create_bastion: true # can exiles place bastion blocks + damage_bastion: false # can exiles damage bastions + enter_bastion: false # can exiles enter a bastion field + damage_reinforcement: false # can exiles break reinforced blocks + place_snitch: true # can exiles place snitches + protected_mobs: + - Sheep + - Cow + - Pig + - Horse + disallowed_worlds: + diff --git a/ansible/files/gamma-config/plugins/ExilePearl/pearls.yml b/ansible/files/gamma-config/plugins/ExilePearl/pearls.yml new file mode 100644 index 000000000..330ba2cbf --- /dev/null +++ b/ansible/files/gamma-config/plugins/ExilePearl/pearls.yml @@ -0,0 +1 @@ +pearls: {} diff --git a/ansible/files/gamma-config/plugins/FactoryMod/config.yml b/ansible/files/gamma-config/plugins/FactoryMod/config.yml new file mode 100644 index 000000000..3acccd8b4 --- /dev/null +++ b/ansible/files/gamma-config/plugins/FactoryMod/config.yml @@ -0,0 +1,16639 @@ +default_update_time: 1s +default_fuel: + charcoal: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHARCOAL +default_fuel_consumption_intervall: 1s +default_return_rate: 0.5 +default_break_grace_period: 1000d +decay_intervall: 1h +decay_amount: 21 +default_health: 10000 +disable_nether: false +use_recipe_yamlidentifiers: true +log_inventories: true +force_include_default: true +can_upgrade: true +factories: + meteoric_iron_sword: + type: FCC + name: Meteoric Iron Sword Smith + citadelBreakReduction: 1.0 + setupcost: + meteoric_iron_ingot: + custom-key: meteoric_iron_ingot + amount: 8 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 49 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + lapis_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_BLOCK + amount: 56 + recipes: + - make_meteoric_iron_sword + - make_meteoric_iron_sword_kb + - make_meteoric_iron_sword_kb1 + - repair_meteoric_iron_sword_factory + meteoric_iron_pickaxe: + type: FCC + name: Meteoric Iron Pickaxe Smith + citadelBreakReduction: 1.0 + setupcost: + meteoric_iron_ingot: + custom-key: meteoric_iron_ingot + amount: 12 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 77 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + lapis_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_BLOCK + amount: 88 + recipes: + - make_meteoric_iron_pickaxe_loot + - make_meteoric_iron_pickaxe_silk + - repair_meteoric_iron_pickaxe_factory + meteoric_iron_axe: + type: FCC + name: Meteoric Iron Axe Smith + citadelBreakReduction: 1.0 + setupcost: + meteoric_iron_ingot: + custom-key: meteoric_iron_ingot + amount: 11 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 70 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + lapis_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_BLOCK + amount: 80 + recipes: + - make_meteoric_iron_axe_loot + - make_meteoric_iron_axe_silk + - repair_meteoric_iron_axe_factory + meteoric_helm: + type: FCC + name: Meteoric Iron Helmet Smith + citadelBreakReduction: 1.0 + setupcost: + meteoric_iron_ingot: + custom-key: meteoric_iron_ingot + amount: 21 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 126 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + lapis_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_BLOCK + amount: 144 + recipes: + - make_meteoric_helm + - repair_meteoric_helm_factory + meteoric_chest: + type: FCC + name: Meteoric Iron Chestplate Smith + citadelBreakReduction: 1.0 + setupcost: + meteoric_iron_ingot: + custom-key: meteoric_iron_ingot + amount: 33 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 196 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + lapis_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_BLOCK + amount: 224 + recipes: + - make_meteoric_chest + - repair_meteoric_chest_factory + meteoric_legs: + type: FCC + name: Meteoric Iron Leggings Smith + citadelBreakReduction: 1.0 + setupcost: + meteoric_iron_ingot: + custom-key: meteoric_iron_ingot + amount: 30 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 168 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + lapis_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_BLOCK + amount: 192 + recipes: + - make_meteoric_legs + - repair_meteoric_legs_factory + meteoric_boots: + type: FCC + name: Meteoric Iron Boots Smith + citadelBreakReduction: 1.0 + setupcost: + meteoric_iron_ingot: + custom-key: meteoric_iron_ingot + amount: 17 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 98 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + lapis_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_BLOCK + amount: 112 + recipes: + - make_meteoric_boots + - repair_meteoric_boots_factory + gem_factory: + type: FCC + name: Gem Factory + citadelBreakReduction: 1.0 + setupcost: + gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_BLOCK + amount: 256 + emerald: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD_BLOCK + amount: 256 + lapis: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_BLOCK + amount: 512 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 256 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + recipes: + - facet_heliodor + - refill_heliodor + - finish_heliodor + - make_gem_kit + - repair_gem_factory + - repair_gem_factory_kit + stone_smelter: + type: FCC + name: Basic Smelter + citadelBreakReduction: 1.0 + setupcost: + stone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: STONE + amount: 512 + recipes: + - smelt_stone + - smelt_deepslate + - smelt_smooth_stone + - smelt_cracked_stone_bricks + - smelt_glass + - smelt_glass_red + - smelt_glass_soulsand + - smelt_bricks + - smelt_hard_clay + - smelt_sandstone + - smelt_smooth_sandstone + - smelt_red_sandstone + - smelt_smooth_red_sandstone + - repair_stone_smelter + nether_smelter: + type: FCC + name: Nether Smelter + citadelBreakReduction: 1.0 + setupcost: + netherbricks: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHER_BRICKS + amount: 128 + recipes: + - smelt_netherrack + - smelt_red_netherbrick + - make_nether_brick_fence + - smelt_nether_quartz + - smelt_quartz_blocks + - smelt_smooth_quartz + - smelt_smooth_basalt + - crush_disc_stal + - crush_disc_strad + - crush_disc_pigstep + - repair_nether_smelter + charcoal_factory: + type: FCC + name: Charcoal Maker + citadelBreakReduction: 1.0 + setupcost: + charcoal: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHARCOAL + amount: 512 + recipes: + - charcoal_from_oak_log + - charcoal_from_spruce_log + - charcoal_from_birch_log + - charcoal_from_jungle_log + - charcoal_from_acacia_log + - charcoal_from_dark_oak_log + - charcoal_from_cherry_log + - charcoal_from_mangrove_log + - charcoal_from_crimson_stem + - charcoal_from_warped_stem + - charcoal_from_coal + - crush_disc_relic + - crush_disc_5 + - crush_disc_11 + - crush_disc_mellohi + - repair_charcoal_factory + aesthetics: + type: FCC + name: Aesthetics Factory + citadelBreakReduction: 1.0 + setupcost: + stone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: STONE + amount: 256 + bone meal: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BONE_MEAL + amount: 32 + recipes: + - make_red_sand + - clean_red_sand + - make_packed_mud + - make_mud_bricks + - make_end_stone + - make_purpur + - make_prismarine_bricks + - make_dark_prismarine + - make_sea_lantern + - dye_froglight_verdant + - dye_froglight_ochre + - make_end_rods + - make_redstone_lamp + - make_flower_pot + - make_decorated_pot + - pack_ice + - pack_blue_ice + - crush_disc_chirp + - crush_disc_far + - crush_disc_mall + - repair_aesthetics + dye_wool: + type: FCC + name: Wool Dying Factory + citadelBreakReduction: 1.0 + setupcost: + white wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHITE_WOOL + amount: 128 + recipes: + - dye_wool_orange + - dye_wool_magenta + - dye_wool_light_blue + - dye_wool_yellow + - dye_wool_lime + - dye_wool_pink + - dye_wool_gray + - dye_wool_light_gray + - dye_wool_cyan + - dye_wool_purple + - dye_wool_blue + - dye_wool_brown + - dye_wool_green + - dye_wool_red + - dye_wool_black + - repair_wool + dye_clay: + type: FCC + name: Clay Dying Factory + citadelBreakReduction: 1.0 + setupcost: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TERRACOTTA + amount: 128 + recipes: + - dye_clay_white + - dye_clay_orange + - dye_clay_magenta + - dye_clay_light_blue + - dye_clay_yellow + - dye_clay_lime + - dye_clay_pink + - dye_clay_gray + - dye_clay_light_gray + - dye_clay_cyan + - dye_clay_purple + - dye_clay_blue + - dye_clay_brown + - dye_clay_green + - dye_clay_red + - dye_clay_black + - glaze_terracotta_white + - glaze_terracotta_orange + - glaze_terracotta_magenta + - glaze_terracotta_light_blue + - glaze_terracotta_yellow + - glaze_terracotta_lime + - glaze_terracotta_pink + - glaze_terracotta_gray + - glaze_terracotta_light_gray + - glaze_terracotta_cyan + - glaze_terracotta_purple + - glaze_terracotta_blue + - glaze_terracotta_brown + - glaze_terracotta_green + - glaze_terracotta_red + - glaze_terracotta_black + - repair_clay + dye_glass: + type: FCC + name: Glass Dying Factory + citadelBreakReduction: 1.0 + setupcost: + glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS + amount: 128 + recipes: + - dye_glass_white + - dye_glass_orange + - dye_glass_magenta + - dye_glass_light_blue + - dye_glass_yellow + - dye_glass_lime + - dye_glass_pink + - dye_glass_gray + - dye_glass_light_gray + - dye_glass_cyan + - dye_glass_purple + - dye_glass_blue + - dye_glass_brown + - dye_glass_green + - dye_glass_red + - dye_glass_black + - dye_glass_tinted + - repair_glass + grill: + type: FCC + name: Grill + citadelBreakReduction: 1.0 + setupcost: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 32 + brick: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BRICKS + amount: 32 + recipes: + - cook_beef + - cook_pork + - cook_chicken + - cook_mutton + - cook_rabbit + - cook_fish + - cook_salmon + - cook_cactus + - cook_kelp + - make_grill_kit + - repair_grill + - repair_grill_kit + bakery: + type: FCC + name: Bakery + citadelBreakReduction: 1.0 + setupcost: + brick: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BRICKS + amount: 64 + recipes: + - bake_bread + - bake_potatoes + - bake_cookies + - bake_pie + - repair_bakery + ore_smelter: + type: FCC + name: Ore Smelter + citadelBreakReduction: 1.0 + setupcost: + coal: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COAL + amount: 512 + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 256 + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 64 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 64 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + recipes: + - smelt_coal_ore + - smelt_raw_copper + - smelt_raw_iron + - smelt_diamond_ore + - smelt_deepslate_diamond_ore + - smelt_raw_gold + - smelt_nether_gold_ore + - smelt_redstone_ore + - smelt_deepslate_redstone_ore + - smelt_lapis_ore + - smelt_deepslate_lapis_ore + - make_refractor + - crack_fossil + - upgrade_to_adv_ore_smelter + - make_ore_smelter_kit + - repair_ore_smelter + - repair_ore_smelter_kit + adv_ore_smelter: + type: FCCUPGRADE + name: Advanced Ore Smelter + citadelBreakReduction: 1.0 + recipes: + - adv_smelt_ancient_debris + - smelt_coal_ore + - adv_smelt_raw_copper + - adv_smelt_raw_iron + - adv_smelt_diamond_ore + - adv_smelt_deepslate_diamond_ore + - adv_smelt_raw_gold + - adv_smelt_nether_gold_ore + - adv_smelt_redstone_ore + - adv_smelt_deepslate_redstone_ore + - adv_smelt_lapis_ore + - adv_smelt_deepslate_lapis_ore + - make_refractor + - crack_fossil + - upgrade_to_elite_ore_smelter + - make_adv_ore_smelter_kit + - repair_adv_ore_smelter + - repair_adv_ore_smelter_kit + elite_ore_smelter: + type: FCCUPGRADE + name: Elite Ore Smelter + citadelBreakReduction: 1.0 + recipes: + - smelt_meteoric_nuggets + - elite_smelt_ancient_debris + - smelt_coal_ore + - elite_smelt_raw_copper + - elite_smelt_raw_iron + - elite_smelt_diamond_ore + - elite_smelt_deepslate_diamond_ore + - elite_smelt_raw_gold + - elite_smelt_nether_gold_ore + - elite_smelt_redstone_ore + - elite_smelt_deepslate_redstone_ore + - elite_smelt_lapis_ore + - elite_smelt_deepslate_lapis_ore + - make_refractor + - crack_fossil + - make_elite_ore_smelter_kit + - repair_elite_ore_smelter + - repair_elite_ore_smelter_kit + diamond_helm: + type: FCC + name: Diamond Helmet Smith + citadelBreakReduction: 1.0 + setupcost: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 192 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 76 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + recipes: + - make_diamond_helm + - repair_diamond_helm_factory + diamond_chest: + type: FCC + name: Diamond Chestplate Smith + citadelBreakReduction: 1.0 + setupcost: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 320 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 128 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + recipes: + - make_diamond_chest + - repair_diamond_chest_factory + diamond_legs: + type: FCC + name: Diamond Leggings Smith + citadelBreakReduction: 1.0 + setupcost: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 256 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 100 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + recipes: + - make_diamond_legs + - repair_diamond_legs_factory + diamond_boots: + type: FCC + name: Diamond Boots Smith + citadelBreakReduction: 1.0 + setupcost: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 160 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 64 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + recipes: + - make_diamond_boots + - repair_diamond_boots_factory + netherite_helm: + type: FCC + name: Netherite Helmet Smith + citadelBreakReduction: 1.0 + setupcost: + netherite_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_INGOT + amount: 24 + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 48 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 32 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + recipes: + - make_netherite_helm + - repair_netherite_helm_factory + netherite_chest: + type: FCC + name: Netherite Chestplate Smith + citadelBreakReduction: 1.0 + setupcost: + netherite_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_INGOT + amount: 40 + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 80 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 64 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + recipes: + - make_netherite_chest + - repair_netherite_chest_factory + netherite_legs: + type: FCC + name: Netherite Leggings Smith + citadelBreakReduction: 1.0 + setupcost: + netherite_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_INGOT + amount: 32 + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 64 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 48 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + recipes: + - make_netherite_legs + - repair_netherite_legs_factory + netherite_boots: + type: FCC + name: Netherite Boots Smith + citadelBreakReduction: 1.0 + setupcost: + netherite_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_INGOT + amount: 20 + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 40 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 32 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + recipes: + - make_netherite_boots + - repair_netherite_boots_factory + diamond_pick: + type: FCC + name: Diamond Pickaxe Smith + citadelBreakReduction: 1.0 + setupcost: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 96 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 36 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + recipes: + - make_diamond_pick + - repair_diamond_pick_factory + diamond_sword: + type: FCC + name: Diamond Sword Smith + citadelBreakReduction: 1.0 + setupcost: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 80 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 32 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + recipes: + - make_diamond_sword + - repair_diamond_sword_factory + diamond_shovel: + type: FCC + name: Diamond Shovel Smith + citadelBreakReduction: 1.0 + setupcost: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 48 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 16 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + recipes: + - make_diamond_shovel + - repair_diamond_shovel_factory + diamond_axe: + type: FCC + name: Diamond Axe Smith + citadelBreakReduction: 1.0 + setupcost: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 64 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 24 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + recipes: + - make_diamond_axe + - repair_diamond_axe_factory + diamond_hoe: + type: FCC + name: Diamond Hoe Smith + citadelBreakReduction: 1.0 + setupcost: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 32 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 12 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + recipes: + - make_diamond_hoe + - repair_diamond_hoe_factory + netherite_sword: + type: FCC + name: Netherite Sword Smith + citadelBreakReduction: 1.0 + setupcost: + netherite_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_INGOT + amount: 10 + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 20 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 32 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + recipes: + - make_netherite_sword + - repair_netherite_sword_factory + netherite_pick: + type: FCC + name: Netherite Pickaxe Smith + citadelBreakReduction: 1.0 + setupcost: + netherite_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_INGOT + amount: 12 + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 24 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 36 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + recipes: + - make_netherite_pick + - repair_netherite_pick_factory + netherite_axe: + type: FCC + name: Netherite Axe Smith + citadelBreakReduction: 1.0 + setupcost: + netherite_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_INGOT + amount: 9 + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 9 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 16 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + recipes: + - make_netherite_axe + - repair_netherite_axe_factory + netherite_shovel: + type: FCC + name: Netherite Shovel Smith + citadelBreakReduction: 1.0 + setupcost: + netherite_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_INGOT + amount: 6 + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 4 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 16 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + recipes: + - make_netherite_shovel + - repair_netherite_shovel_factory + netherite_hoe: + type: FCC + name: Netherite Hoe Smith + citadelBreakReduction: 1.0 + setupcost: + netherite_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_INGOT + amount: 6 + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 4 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 12 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + recipes: + - make_netherite_hoe + - repair_netherite_hoe_factory + iron_tools: + type: FCC + name: Iron Tool Smith + citadelBreakReduction: 1.0 + setupcost: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 64 + recipes: + - make_iron_pick + - make_iron_sword + - make_iron_shovel + - make_iron_axe + - make_iron_hoe + - repair_iron_tools_factory + iron_armor: + type: FCC + name: Iron Armor Smith + citadelBreakReduction: 1.0 + setupcost: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 96 + recipes: + - make_iron_helm + - make_iron_chest + - make_iron_legs + - make_iron_boots + - repair_iron_armor_factory + carpentry: + type: FCC + name: Carpentry Factory + citadelBreakReduction: 1.0 + setupcost: + chest: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHEST + amount: 64 + recipes: + - make_ladders + - make_scaffolding + - make_bookshelves + - make_chiseled_bookshelves + - make_beehive + - make_casing + - make_crates + - sticks_to_chest + - chests_to_barrel + - make_fences + - make_fence_gates + - make_signs + - make_hanging_signs + - make_trapdoors + - make_wood_doors + - make_spruce_fences + - make_spruce_fence_gates + - make_spruce_signs + - make_spruce_hanging_signs + - make_spruce_trapdoors + - make_spruce_doors + - make_birch_fences + - make_birch_fence_gates + - make_birch_signs + - make_birch_hanging_signs + - make_birch_trapdoors + - make_birch_doors + - make_jungle_fences + - make_jungle_fence_gates + - make_jungle_signs + - make_jungle_hanging_signs + - make_jungle_trapdoors + - make_jungle_doors + - make_acacia_fences + - make_acacia_fence_gates + - make_acacia_signs + - make_acacia_hanging_signs + - make_acacia_trapdoors + - make_acacia_doors + - make_dark_oak_fences + - make_dark_oak_fence_gates + - make_dark_oak_signs + - make_dark_oak_hanging_signs + - make_dark_oak_trapdoors + - make_dark_oak_doors + - make_cherry_fences + - make_cherry_fence_gates + - make_cherry_signs + - make_cherry_hanging_signs + - make_cherry_trapdoors + - make_cherry_doors + - make_mangrove_fences + - make_mangrove_fence_gates + - make_mangrove_signs + - make_mangrove_hanging_signs + - make_mangrove_trapdoors + - make_mangrove_doors + - make_crimson_fences + - make_crimson_fence_gates + - make_crimson_signs + - make_crimson_hanging_signs + - make_crimson_trapdoors + - make_crimson_doors + - make_warped_fences + - make_warped_fence_gates + - make_warped_signs + - make_warped_hanging_signs + - make_warped_trapdoors + - make_warped_doors + - repair_carpentry + rails: + type: FCC + name: Rail Factory + citadelBreakReduction: 1.0 + setupcost: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 64 + redstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE + amount: 32 + gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_INGOT + amount: 8 + recipes: + - make_rail + - make_powered_rail + - make_detector_rail + - make_activator_rail + - make_minecart + - make_rails_kit + - repair_rails + - repair_rails_kit + husbandry: + type: FCC + name: Animal Husbandry + citadelBreakReduction: 1.0 + setupcost: + iron_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_BLOCK + amount: 32 + slime: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SLIME_BALL + amount: 16 + leather: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LEATHER + amount: 32 + recipes: + - make_saddle + - make_harness + - make_lead + - make_bio_component + - make_husbandry_kit + - repair_husbandry + - repair_husbandry_kit + iron_forge: + type: FCC + name: Iron Forge + citadelBreakReduction: 1.0 + setupcost: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 128 + lava_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAVA_BUCKET + amount: 4 + recipes: + - make_iron_fence + - make_obsidian + - make_chains + - make_anvil + - make_bucket + - make_iron_trapdoor + - make_iron_door + - make_tripwire + - make_shears + - make_radar + - make_cauldron + - make_lantern + - make_soul_lantern + - make_lodestone + - make_forge_kit + - repair_forge + - repair_forge_kit + redstone_mechanics: + type: FCC + name: Redstone Mechanics Factory + citadelBreakReduction: 1.0 + setupcost: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 64 + redstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE + amount: 256 + gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_INGOT + amount: 32 + recipes: + - make_torch + - make_hopper + - make_comparator + - make_repeater + - make_gearbox + - make_sculk_sensor + - make_redstone_kit + - repair_redstone + - repair_redstone_kit + bastion_factory: + type: FCC + name: Bastion Factory + citadelBreakReduction: 1.0 + setupcost: + casing: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_CHEST + amount: 32 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Casing + lore: + - Casing for bastion + gearbox: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CLOCK + amount: 32 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Gearbox + lore: + - Gear mechanism for bastion + radar: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COMPASS + amount: 32 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Radar + lore: + - Radar for detecting pearls + energizer: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD + amount: 32 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Energizer + lore: + - Power source for bastion + refractor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 32 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Refractor + lore: + - Refractor for bastion + bio_compoent: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MAGMA_CREAM + amount: 32 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Bio-Component + lore: + - Bio-Component for bastion + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 128 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + recipes: + - make_bastion + - make_city_bastion + - crush_disc_precipice + - crush_disc_creator + - crush_disc_creator_music_box + - make_bastion_kit + - repair_bastion + - repair_bastion_kit + basic_cauldron: + type: FCC + name: Basic Cauldron + citadelBreakReduction: 1.0 + setupcost: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 128 + gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_INGOT + amount: 32 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 32 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + recipes: + - basic_xp_1 + - basic_xp_2 + - basic_xp_3 + - basic_xp_4 + - basic_xp_5 + - wither_skull + - upgrade_to_advanced_cauldron + - make_basic_cauldron_kit + - repair_basic_cauldron + - repair_basic_cauldron_kit + advanced_cauldron: + type: FCCUPGRADE + name: Advanced Cauldron + citadelBreakReduction: 1.0 + recipes: + - adv_xp_1 + - adv_xp_2 + - adv_xp_3 + - adv_xp_4 + - wither_skull + - make_energizer + - make_advanced_cauldron_kit + - repair_advanced_cauldron + - repair_advanced_cauldron_kit + compactor: + type: FCC + name: Compactor + citadelBreakReduction: 0.8 + setupcost: + iron_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_BLOCK + amount: 32 + redstone_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE_BLOCK + amount: 16 + piston: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PISTON + amount: 64 + crate: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHEST + amount: 32 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Crate + recipes: + - compact + - decompact + - make_compact_repair_kit + - repair_compactor + - repair_compactor_kit + printing_press: + type: FCC + name: Printing Press + citadelBreakReduction: 0.1 + setupcost: + ink: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: INK_SAC + amount: 32 + paper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 64 + recipes: + - bind_books + - bind_writable_books + - craft_printing_plate + - craft_printing_plate_json + - print_book + - print_note + - print_secure_note + - craft_globe_banner_pattern + - craft_piglin_banner_pattern + - craft_creeper_banner_pattern + - craft_thing_banner_pattern + - craft_flow_banner_pattern + - craft_guster_banner_pattern + - make_printer_kit + - repair_printer + - repair_printer_kit + research_station: + type: FCC + name: Research Station + citadelBreakReduction: 1.0 + fuel: + fuelidentifier: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD + setupcost: + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 48 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + paper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 64 + ink: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: INK_SAC + amount: 4 + recipes: + - wordbank_item + - crack_easter_egg + - fabricate_netherite_upgrade + - fabricate_sentry_trim + - fabricate_vex_trim + - fabricate_wild_trim + - fabricate_coast_trim + - fabricate_dune_trim + - fabricate_wayfinder_trim + - fabricate_raiser_trim + - fabricate_shaper_trim + - fabricate_host_trim + - fabricate_ward_trim + - fabricate_silence_trim + - fabricate_tide_trim + - fabricate_snout_trim + - fabricate_rib_trim + - fabricate_eye_trim + - fabricate_spire_trim + - fabricate_bolt_trim + - fabricate_flow_trim + - make_station_kit + - repair_station + - repair_station_kit + concrete_mixer: + type: FCC + name: Concrete Mixer + citadelBreakReduction: 1.0 + setupcost: + sand: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SAND + amount: 256 + gravel: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAVEL + amount: 256 + recipes: + - mix_concrete_white + - mix_concrete_orange + - mix_concrete_magenta + - mix_concrete_light_blue + - mix_concrete_yellow + - mix_concrete_lime + - mix_concrete_pink + - mix_concrete_gray + - mix_concrete_light_gray + - mix_concrete_cyan + - mix_concrete_purple + - mix_concrete_blue + - mix_concrete_brown + - mix_concrete_green + - mix_concrete_red + - mix_concrete_black + - harden_concrete_white + - harden_concrete_orange + - harden_concrete_magenta + - harden_concrete_light_blue + - harden_concrete_yellow + - harden_concrete_lime + - harden_concrete_pink + - harden_concrete_gray + - harden_concrete_light_gray + - harden_concrete_cyan + - harden_concrete_purple + - harden_concrete_blue + - harden_concrete_brown + - harden_concrete_green + - harden_concrete_red + - harden_concrete_black + - crush_disc_ward + - crush_disc_wait + - crush_disc_otherside + - make_mixer_kit + - repair_mixer + - repair_mixer_kit + bio_factory: + type: FCC + name: Bio Factory + citadelBreakingReduction: 1.0 + fuel: + fuelidentifier: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BONE_MEAL + setupcost: + bone_blocks: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BONE_BLOCK + amount: 32 + dirt: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIRT + amount: 64 + recipes: + - splice_pale_oak_sapling + - grow_eyeblossom + - grow_pale_moss + - grow_pale_hanging_moss + - wake_creaking_heart + - grow_flowering_azalea_leaves + - grow_azalea_leaves + - grow_spore_blossom + - grow_pink_petals + - grow_big_dripleaf + - grow_small_dripleaf + - grow_lily_pad + - grow_red_mushroom_block + - grow_brown_mushroom_block + - grow_mushroom_stem + - grow_sculk + - grow_sculk_vein + - kill_bush + - root_dirt + - melt_ice + - form_tube_coral_block + - form_fire_coral_block + - form_horn_coral_block + - form_brain_coral_block + - form_bubble_coral_block + - crush_disc_13 + - crush_disc_cat + - crush_disc_blocks + - make_bio_kit + - repair_bio + - repair_bio_kit + gold_forge: + type: FCC + name: Gold Forge + citadelBreakReduction: 1.0 + setupcost: + gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_INGOT + amount: 64 + recipes: + - forge_gold_pickaxes + - forge_gold_shovels + - forge_gold_axes + - forge_gold_hoes + - forge_gold_swords + - forge_gold_helmets + - forge_gold_chestplates + - forge_gold_leggings + - forge_gold_boots + - make_bell + - repair_gold_forge + copper_workshop: + type: FCC + name: Copper Workshop + citadelBreakReduction: 1.0 + fuel: + fuelidentifier: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: AMETHYST_SHARD + setupcost: + copper_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COPPER_BLOCK + amount: 256 + honeycomb: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: HONEYCOMB + amount: 32 + recipes: + - wax_copper_block + - wax_exposed_copper + - wax_weathered_copper + - wax_oxidized_copper + - weather_copper_block + - weather_exposed_copper + - weather_weathered_copper + - make_copper_doors + - wax_copper_doors + - wax_exposed_copper_doors + - wax_weathered_copper_doors + - wax_oxidized_copper_doors + - weather_copper_doors + - weather_exposed_copper_doors + - weather_weathered_copper_doors + - make_copper_trapdoors + - wax_copper_trapdoors + - wax_exposed_copper_trapdoors + - wax_weathered_copper_trapdoors + - wax_oxidized_copper_trapdoors + - weather_copper_trapdoors + - weather_exposed_copper_trapdoors + - weather_weathered_copper_trapdoors + - make_copper_workshop_kit + - repair_copper_workshop + - repair_copper_workshop_kit +#RECIPES +recipes: + facet_heliodor: + production_time: 4s + name: Facet Heliodor Gem + type: HELIODOR_CREATE + input: + gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_BLOCK + amount: 128 + emerald: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD_BLOCK + amount: 128 + lapis: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_BLOCK + amount: 256 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 32 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + output_count: 128 + max_charge: 10 + refill_heliodor: + production_time: 4s + name: Refill Heliodor Gem + type: HELIODOR_REFILL + input: + emerald: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD_BLOCK + amount: 128 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 32 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + count: 128 + add_max_charge: 10 + finish_heliodor: + production_time: 4s + name: Polish Heliodor Gem + type: HELIODOR_FINISH + input: + brush: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BRUSH + amount: 1 + shears: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SHEARS + amount: 1 + input_count: 8 + output_count: 1 + smelt_stone: + production_time: 4s + name: Smelt Stone + type: PRODUCTION + input: + cobblestone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COBBLESTONE + amount: 64 + output: + stone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: STONE + amount: 96 + smelt_deepslate: + production_time: 4s + name: Smelt Deepslate + type: PRODUCTION + input: + cobbled_deepslate: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COBBLED_DEEPSLATE + amount: 64 + output: + deepslate: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DEEPSLATE + amount: 96 + smelt_smooth_stone: + production_time: 4s + name: Smelt Smooth Stone + type: PRODUCTION + input: + stone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: STONE + amount: 64 + output: + stone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SMOOTH_STONE + amount: 80 + smelt_cracked_stone_bricks: + production_time: 4s + name: Smelt Cracked Stone Bricks + type: PRODUCTION + input: + stone_bricks: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: STONE_BRICKS + amount: 64 + output: + cracked_stone_bricks: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CRACKED_STONE_BRICKS + amount: 80 + cook_beef: + production_time: 4s + name: Cook Beef + type: PRODUCTION + input: + raw_beef: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BEEF + amount: 32 + output: + cooked_beef: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COOKED_BEEF + amount: 48 + cook_chicken: + production_time: 4s + name: Cook Chicken + type: PRODUCTION + input: + raw_chicken: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHICKEN + amount: 32 + output: + cooked_chicken: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COOKED_CHICKEN + amount: 48 + cook_fish: + production_time: 4s + name: Cook Fish + type: PRODUCTION + input: + cod: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COD + amount: 32 + output: + cooked_fish: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COOKED_COD + amount: 48 + cook_mutton: + production_time: 4s + name: Cook Mutton + type: PRODUCTION + input: + raw_mutton: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUTTON + amount: 32 + output: + cooked_mutton: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COOKED_MUTTON + amount: 48 + cook_pork: + production_time: 4s + name: Cook Pork + type: PRODUCTION + input: + raw_pork: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PORKCHOP + amount: 32 + output: + cooked_pork: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COOKED_PORKCHOP + amount: 48 + cook_rabbit: + production_time: 4s + name: Cook Rabbit + type: PRODUCTION + input: + raw_rabbit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RABBIT + amount: 32 + output: + cooked_rabbit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COOKED_RABBIT + amount: 48 + cook_salmon: + production_time: 4s + name: Cook Salmon + type: PRODUCTION + input: + raw_salmon: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SALMON + amount: 32 + output: + cooked_salmon: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COOKED_SALMON + amount: 48 + cook_cactus: + production_time: 4s + name: Cook Cactus + type: PRODUCTION + input: + cactus: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CACTUS + amount: 32 + output: + green dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GREEN_DYE + amount: 48 + cook_kelp: + production_time: 4s + name: Cook Kelp + type: PRODUCTION + input: + kelp: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: KELP + amount: 32 + output: + dried kelp: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DRIED_KELP + amount: 48 + bake_bread: + production_time: 4s + fuel_consumption_intervall: 2s + name: Bake Bread + type: PRODUCTION + input: + wheat: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHEAT + amount: 64 + output: + bread: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BREAD + amount: 48 + bake_potatoes: + production_time: 4s + fuel_consumption_intervall: 2s + name: Bake Potatoes + type: PRODUCTION + input: + potato: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: POTATO + amount: 32 + output: + baked_potato: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BAKED_POTATO + amount: 48 + smelt_coal_ore: + production_time: 4s + name: Smelt Coal Ore + type: PRODUCTION + input: + coal_ore: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COAL_ORE + amount: 64 + output: + coal: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COAL + amount: 256 + smelt_raw_copper: + production_time: 4s + name: Smelt Copper Ore + type: PRODUCTION + input: + raw_copper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RAW_COPPER + amount: 128 + output: + copper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COPPER_BLOCK + amount: 16 + adv_smelt_raw_copper: + production_time: 4s + name: Advanced Smelt Copper Ore + type: PRODUCTION + input: + raw_copper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RAW_COPPER + amount: 128 + output: + copper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COPPER_BLOCK + amount: 20 + elite_smelt_raw_copper: + production_time: 4s + name: Elite Smelt Copper Ore + type: PRODUCTION + input: + raw_copper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RAW_COPPER + amount: 128 + output: + copper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COPPER_BLOCK + amount: 22 + smelt_raw_iron: + production_time: 4s + name: Smelt Iron Ore + type: PRODUCTION + input: + raw_iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RAW_IRON + amount: 48 + output: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 64 + adv_smelt_raw_iron: + production_time: 4s + name: Advanced Smelt Iron Ore + type: PRODUCTION + input: + raw_iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RAW_IRON + amount: 48 + output: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 80 + elite_smelt_raw_iron: + production_time: 4s + name: Elite Smelt Iron Ore + type: PRODUCTION + input: + raw_iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RAW_IRON + amount: 48 + output: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 88 + smelt_diamond_ore: + production_time: 4s + name: Smelt Diamond Ore + type: PRODUCTION + input: + diamond_ore: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND_ORE + amount: 16 + output: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 48 + smelt_deepslate_diamond_ore: + production_time: 4s + name: Smelt Deepslate Diamond Ore + type: PRODUCTION + input: + deepslate_diamond_ore: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DEEPSLATE_DIAMOND_ORE + amount: 16 + output: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 48 + adv_smelt_diamond_ore: + production_time: 4s + name: Advanced Smelt Diamond Ore + type: PRODUCTION + input: + diamond_ore: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND_ORE + amount: 16 + output: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 56 + elite_smelt_diamond_ore: + production_time: 4s + name: Elite Smelt Diamond Ore + type: PRODUCTION + input: + diamond_ore: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND_ORE + amount: 16 + output: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 60 + adv_smelt_deepslate_diamond_ore: + production_time: 4s + name: Advanced Smelt Deepslate Diamond Ore + type: PRODUCTION + input: + deepslate_diamond_ore: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DEEPSLATE_DIAMOND_ORE + amount: 16 + output: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 56 + elite_smelt_deepslate_diamond_ore: + production_time: 4s + name: Elite Smelt Deepslate Diamond Ore + type: PRODUCTION + input: + deepslate_diamond_ore: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DEEPSLATE_DIAMOND_ORE + amount: 16 + output: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 60 + smelt_raw_gold: + production_time: 4s + name: Smelt Gold Ore + type: PRODUCTION + input: + raw_gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RAW_GOLD + amount: 48 + output: + gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_INGOT + amount: 64 + smelt_nether_gold_ore: + production_time: 4s + name: Smelt Nether Gold Ore + type: PRODUCTION + input: + nether_gold_ore: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHER_GOLD_ORE + amount: 16 + output: + gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_INGOT + amount: 48 + adv_smelt_raw_gold: + production_time: 4s + name: Advanced Smelt Gold Ore + type: PRODUCTION + input: + raw_gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RAW_GOLD + amount: 48 + output: + gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_INGOT + amount: 80 + elite_smelt_raw_gold: + production_time: 4s + name: Elite Smelt Gold Ore + type: PRODUCTION + input: + raw_gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RAW_GOLD + amount: 48 + output: + gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_INGOT + amount: 88 + adv_smelt_nether_gold_ore: + production_time: 4s + name: Advanced Smelt Nether Gold Ore + type: PRODUCTION + input: + nether_gold_ore: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHER_GOLD_ORE + amount: 16 + output: + gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_INGOT + amount: 64 + elite_smelt_nether_gold_ore: + production_time: 4s + name: Elite Smelt Nether Gold Ore + type: PRODUCTION + input: + nether_gold_ore: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHER_GOLD_ORE + amount: 16 + output: + gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_INGOT + amount: 72 + smelt_redstone_ore: + production_time: 4s + name: Smelt Redstone Ore + type: PRODUCTION + input: + redstone_ore: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE_ORE + amount: 64 + output: + redstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE_BLOCK + amount: 48 + smelt_deepslate_redstone_ore: + production_time: 4s + name: Smelt Deepslate Redstone Ore + type: PRODUCTION + input: + deepslate_redstone_ore: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DEEPSLATE_REDSTONE_ORE + amount: 64 + output: + redstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE_BLOCK + amount: 48 + adv_smelt_redstone_ore: + production_time: 4s + name: Advanced Smelt Redstone Ore + type: PRODUCTION + input: + redstone_ore: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE_ORE + amount: 64 + output: + redstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE_BLOCK + amount: 64 + elite_smelt_redstone_ore: + production_time: 4s + name: Elite Smelt Redstone Ore + type: PRODUCTION + input: + redstone_ore: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE_ORE + amount: 64 + output: + redstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE_BLOCK + amount: 72 + adv_smelt_deepslate_redstone_ore: + production_time: 4s + name: Advanced Smelt Deepslate Redstone Ore + type: PRODUCTION + input: + deepslate_redstone_ore: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DEEPSLATE_REDSTONE_ORE + amount: 64 + output: + redstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE_BLOCK + amount: 64 + elite_smelt_deepslate_redstone_ore: + production_time: 4s + name: Elite Smelt Deepslate Redstone Ore + type: PRODUCTION + input: + deepslate_redstone_ore: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DEEPSLATE_REDSTONE_ORE + amount: 64 + output: + redstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE_BLOCK + amount: 72 + smelt_lapis_ore: + production_time: 4s + name: Smelt Lapis Ore + type: PRODUCTION + input: + lapis_ore: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_ORE + amount: 32 + output: + lapis: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_BLOCK + amount: 64 + smelt_deepslate_lapis_ore: + production_time: 4s + name: Smelt Deepslate Lapis Ore + type: PRODUCTION + input: + deepslate_lapis_ore: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DEEPSLATE_LAPIS_ORE + amount: 32 + output: + lapis: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_BLOCK + amount: 64 + adv_smelt_lapis_ore: + production_time: 4s + name: Advanced Smelt Lapis Ore + type: PRODUCTION + input: + lapis_ore: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_ORE + amount: 32 + output: + lapis: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_BLOCK + amount: 80 + elite_smelt_lapis_ore: + production_time: 4s + name: Elite Smelt Lapis Ore + type: PRODUCTION + input: + lapis_ore: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_ORE + amount: 32 + output: + lapis: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_BLOCK + amount: 88 + adv_smelt_deepslate_lapis_ore: + production_time: 4s + name: Advanced Smelt Deepslate Lapis Ore + type: PRODUCTION + input: + deepslate_lapis_ore: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DEEPSLATE_LAPIS_ORE + amount: 32 + output: + lapis: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_BLOCK + amount: 80 + elite_smelt_deepslate_lapis_ore: + production_time: 4s + name: Elite Smelt Deepslate Lapis Ore + type: PRODUCTION + input: + deepslate_lapis_ore: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DEEPSLATE_LAPIS_ORE + amount: 32 + output: + lapis: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_BLOCK + amount: 88 + adv_smelt_ancient_debris: + production_time: 4s + name: Smelt Ancient Debris + type: PRODUCTION + input: + ancient_debris: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ANCIENT_DEBRIS + amount: 12 + emerald: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD + amount: 24 + gold_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_INGOT + amount: 8 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 8 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + output: + netherite_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_INGOT + amount: 1 + elite_smelt_ancient_debris: + production_time: 4s + name: Elite Smelt Ancient Debris + type: PRODUCTION + input: + ancient_debris: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ANCIENT_DEBRIS + amount: 20 + emerald: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD + amount: 40 + gold_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_INGOT + amount: 12 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 12 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + output: + netherite_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_INGOT + amount: 2 + smelt_meteoric_nuggets: + production_time: 4s + name: Smelt Meteoric Iron Nuggets + type: PRODUCTION + input: + meteoric_iron_nugget: + custom-key: meteoric_iron_nugget + amount: 22 + output: + meteoric_iron_ingot: + custom-key: meteoric_iron_ingot + amount: 4 + upgrade_to_adv_ore_smelter: + production_time: 4s + name: Upgrade to Advanced Ore Smelter + type: UPGRADE + input: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 64 + emerald_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD_BLOCK + amount: 32 + ancient_debris: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ANCIENT_DEBRIS + amount: 32 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 64 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + factory: Advanced Ore Smelter + upgrade_to_elite_ore_smelter: + production_time: 4s + name: Upgrade to Elite Ore Smelter + type: UPGRADE + input: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 128 + emerald_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD_BLOCK + amount: 64 + meteoric_iron_ingot: + custom-key: meteoric_iron_ingot + amount: 16 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 96 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + factory: Elite Ore Smelter + smelt_glass: + type: PRODUCTION + production_time: 4s + name: Smelt Glass from Sand + input: + sand: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SAND + amount: 64 + output: + glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS + amount: 128 + smelt_glass_red: + type: PRODUCTION + production_time: 4s + name: Smelt Glass from Red Sand + input: + sand: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RED_SAND + amount: 64 + output: + glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS + amount: 128 + smelt_glass_soulsand: + type: PRODUCTION + production_time: 4s + name: Smelt Glass from Soul Sand + input: + soulsand: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SOUL_SAND + amount: 64 + output: + glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS + amount: 128 + smelt_netherrack: + production_time: 4s + name: Smelt Netherrack + type: PRODUCTION + input: + netherrack: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERRACK + amount: 64 + output: + netherbricks: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHER_BRICKS + amount: 64 + make_nether_brick_fence: + production_time: 4s + name: Make Fences + type: PRODUCTION + input: + netherrack: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERRACK + amount: 16 + output: + fence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHER_BRICK_FENCE + amount: 128 + smelt_red_netherbrick: + forceInclude: true + production_time: 4s + name: Smelt Red Netherbrick + type: PRODUCTION + input: + netherrack: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERRACK + amount: 32 + nether_wart: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHER_WART + amount: 32 + output: + red_netherbrick: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RED_NETHER_BRICKS + amount: 64 + smelt_nether_quartz: + production_time: 4s + name: Smelt Nether Quartz + type: PRODUCTION + input: + nether_quartz: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHER_QUARTZ_ORE + amount: 64 + output: + quartz: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: QUARTZ + amount: 192 + smelt_quartz_blocks: + production_time: 4s + name: Smelt Quartz Blocks + type: PRODUCTION + input: + quartz: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: QUARTZ + amount: 64 + output: + quartz_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: QUARTZ_BLOCK + amount: 96 + smelt_smooth_basalt: + production_time: 4s + name: Smelt Smooth Basalt + type: PRODUCTION + input: + basalt: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BASALT + amount: 64 + output: + smooth_basalt: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SMOOTH_BASALT + amount: 96 + charcoal_from_oak_log: + production_time: 4s + name: Make Charcoal from Oak Logs + type: PRODUCTION + input: + log: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: OAK_LOG + amount: 64 + output: + charcoal: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHARCOAL + amount: 128 + charcoal_from_spruce_log: + production_time: 4s + name: Make Charcoal from Spruce Logs + type: PRODUCTION + input: + log: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SPRUCE_LOG + amount: 64 + output: + charcoal: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHARCOAL + amount: 128 + charcoal_from_birch_log: + production_time: 4s + name: Make Charcoal from Birch Logs + type: PRODUCTION + input: + log: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BIRCH_LOG + amount: 64 + output: + charcoal: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHARCOAL + amount: 128 + charcoal_from_jungle_log: + production_time: 4s + name: Make Charcoal from Jungle Logs + type: PRODUCTION + input: + log: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: JUNGLE_LOG + amount: 64 + output: + charcoal: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHARCOAL + amount: 128 + charcoal_from_acacia_log: + production_time: 4s + name: Make Charcoal from Acacia Logs + type: PRODUCTION + input: + log: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ACACIA_LOG + amount: 64 + output: + charcoal: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHARCOAL + amount: 128 + charcoal_from_dark_oak_log: + production_time: 4s + name: Make Charcoal from Dark Oak Logs + type: PRODUCTION + input: + log: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DARK_OAK_LOG + amount: 64 + output: + charcoal: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHARCOAL + amount: 128 + charcoal_from_cherry_log: + production_time: 4s + name: Make Charcoal from Cherry Logs + type: PRODUCTION + input: + log: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHERRY_LOG + amount: 64 + output: + charcoal: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHARCOAL + amount: 128 + charcoal_from_mangrove_log: + production_time: 4s + name: Make Charcoal from Mangrove Logs + type: PRODUCTION + input: + log: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MANGROVE_LOG + amount: 64 + output: + charcoal: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHARCOAL + amount: 128 + charcoal_from_crimson_stem: + production_time: 4s + name: Make Charcoal from Crimson Stems + type: PRODUCTION + input: + stem: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CRIMSON_STEM + amount: 64 + output: + charcoal: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHARCOAL + amount: 256 + charcoal_from_warped_stem: + production_time: 4s + name: Make Charcoal from Warped Stems + type: PRODUCTION + input: + stem: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WARPED_STEM + amount: 64 + output: + charcoal: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHARCOAL + amount: 256 + charcoal_from_coal: + production_time: 4s + name: Make Charcoal from Coal + type: PRODUCTION + input: + coal: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COAL + amount: 64 + output: + charcoal: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHARCOAL + amount: 64 + make_red_sand: + production_time: 4s + name: Make Red Sand + type: PRODUCTION + input: + sand: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SAND + amount: 64 + flesh: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ROTTEN_FLESH + amount: 8 + output: + red_sand: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RED_SAND + amount: 64 + clean_red_sand: + forceInclude: true + production_time: 4s + name: Clean Red Sand + type: PRODUCTION + input: + red_sand: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RED_SAND + amount: 64 + water: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WATER_BUCKET + amount: 1 + output: + sand: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SAND + amount: 64 + bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUCKET + amount: 1 + make_packed_mud: + forceInclude: true + production_time: 4s + name: Make Packed Mud + type: PRODUCTION + input: + mud: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUD + amount: 64 + wheat: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHEAT + amount: 8 + output: + packed_mud: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PACKED_MUD + amount: 64 + make_mud_bricks: + forceInclude: true + production_time: 4s + name: Make Mud Bricks + type: PRODUCTION + input: + mud: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUD + amount: 64 + output: + mud_bricks: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUD_BRICKS + amount: 128 + make_end_stone: + production_time: 4s + name: Make End stone + type: PRODUCTION + input: + stone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: STONE + amount: 64 + yellow dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: YELLOW_DYE + amount: 8 + output: + end_stone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: END_STONE + amount: 64 + make_purpur: + production_time: 4s + name: Make Purpur + type: PRODUCTION + input: + stone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: STONE + amount: 64 + purple dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PURPLE_DYE + amount: 8 + output: + purpur: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PURPUR_BLOCK + amount: 64 + make_prismarine: + production_time: 4s + name: Make Prismarine + type: PRODUCTION + input: + stone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: STONE + amount: 64 + lapis: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_LAZULI + amount: 4 + output: + prismarine: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PRISMARINE + amount: 64 + make_prismarine_bricks: + production_time: 4s + name: Make Prismarine Bricks + type: PRODUCTION + input: + prismarine: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PRISMARINE + amount: 64 + output: + prismarine_bricks: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PRISMARINE_BRICKS + amount: 64 + make_dark_prismarine: + production_time: 4s + name: Make Dark Prismarine + type: PRODUCTION + input: + prismarine: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PRISMARINE + amount: 64 + ink: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLACK_DYE + amount: 4 + output: + dark_prismarine: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DARK_PRISMARINE + amount: 64 + make_sea_lantern: + production_time: 4s + name: Make Sea Lantern + type: PRODUCTION + input: + glowstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLOWSTONE + amount: 32 + lapis: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_LAZULI + amount: 4 + output: + sea_lantern: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SEA_LANTERN + amount: 32 + dye_froglight_verdant: + production_time: 4s + name: Dye Verdant Froglight + type: PRODUCTION + input: + pearlescent_froglight: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PEARLESCENT_FROGLIGHT + amount: 16 + lime_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIME_DYE + amount: 4 + output: + verdant_froglight: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: VERDANT_FROGLIGHT + amount: 16 + dye_froglight_ochre: + production_time: 4s + name: Dye Ochre Froglight + type: PRODUCTION + input: + pearlescent_froglight: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PEARLESCENT_FROGLIGHT + amount: 16 + orange_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ORANGE_DYE + amount: 4 + output: + Ochre_froglight: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: OCHRE_FROGLIGHT + amount: 16 + make_end_rods: + production_time: 4s + name: Make End Rods + type: PRODUCTION + input: + sea_lantern: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SEA_LANTERN + amount: 4 + blaze_rod: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLAZE_ROD + amount: 4 + output: + end_rod: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: END_ROD + amount: 16 + make_redstone_lamp: + forceInclude: true + production_time: 4s + name: Make Redstone Lamp + type: PRODUCTION + input: + glowstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLOWSTONE + amount: 32 + redstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLAZE_POWDER + amount: 8 + output: + redstone_lamp: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE_LAMP + amount: 32 + make_flower_pot: + forceInclude: true + production_time: 4s + name: Make Flower Pots + type: PRODUCTION + input: + clay_ball: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CLAY_BALL + amount: 64 + output: + flower_pot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: FLOWER_POT + amount: 24 + make_decorated_pot: + forceInclude: true + production_time: 4s + name: Make Decorated Pots + type: PRODUCTION + input: + clay_ball: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CLAY_BALL + amount: 64 + output: + decorated_pot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DECORATED_POT + amount: 16 + make_diamond_helm: + production_time: 4s + name: Make Diamond Helmets + type: PRODUCTION + input: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 25 + output: + diamond_helm: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND_HELMET + amount: 15 + make_diamond_chest: + production_time: 4s + name: Make Diamond Chestplates + type: PRODUCTION + input: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 40 + output: + diamond_chest: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND_CHESTPLATE + amount: 15 + make_diamond_legs: + production_time: 4s + name: Make Diamond Leggings + type: PRODUCTION + input: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 35 + output: + diamond_legs: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND_LEGGINGS + amount: 15 + make_diamond_boots: + production_time: 4s + name: Make Diamond Boots + type: PRODUCTION + input: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 20 + output: + diamond_boots: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND_BOOTS + amount: 15 + make_netherite_helm: + production_time: 4s + name: Make Netherite Helmets + type: PRODUCTION + input: + netherite_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_INGOT + amount: 5 + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 10 + output: + netherite_helm: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_HELMET + amount: 12 + make_netherite_chest: + production_time: 4s + name: Make Netherite Chestplates + type: PRODUCTION + input: + netherite_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_INGOT + amount: 7 + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 14 + output: + netherite_chest: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_CHESTPLATE + amount: 12 + make_netherite_legs: + production_time: 4s + name: Make Netherite Leggings + type: PRODUCTION + input: + netherite_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_INGOT + amount: 6 + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 12 + output: + netherite_legs: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_LEGGINGS + amount: 12 + make_netherite_boots: + production_time: 4s + name: Make Netherite Boots + type: PRODUCTION + input: + netherite_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_INGOT + amount: 4 + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 8 + output: + netherite_boots: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_BOOTS + amount: 12 + make_diamond_axe: + production_time: 4s + name: Make Diamond Axe + type: PRODUCTION + input: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 15 + output: + diamond_axe: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND_AXE + amount: 30 + make_diamond_sword: + production_time: 4s + name: Make Diamond Sword + type: PRODUCTION + input: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 10 + output: + diamond_sword: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND_SWORD + amount: 15 + make_diamond_pick: + production_time: 4s + name: Make Diamond Pick + type: PRODUCTION + input: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 15 + output: + diamond_pick: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND_PICKAXE + amount: 15 + make_diamond_hoe: + production_time: 4s + name: Make Diamond Hoe + type: PRODUCTION + input: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 10 + output: + diamond_hoe: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND_HOE + amount: 30 + make_diamond_shovel: + production_time: 4s + name: Make Diamond Shovel + type: PRODUCTION + input: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 5 + output: + diamond_shovel: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND_SHOVEL + amount: 15 + make_netherite_sword: + production_time: 4s + name: Make Netherite Sword + type: PRODUCTION + input: + netherite_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_INGOT + amount: 2 + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 4 + output: + netherite_sword: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_SWORD + amount: 5 + make_netherite_pick: + production_time: 4s + name: Make Netherite Pick + type: PRODUCTION + input: + netherite: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_INGOT + amount: 3 + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 6 + output: + netherite_pick: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_PICKAXE + amount: 8 + make_netherite_axe: + production_time: 4s + name: Make Netherite Axe + type: PRODUCTION + input: + netherite: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_INGOT + amount: 3 + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 6 + output: + netherite_pick: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_AXE + amount: 8 + make_netherite_shovel: + production_time: 4s + name: Make Netherite Shovel + type: PRODUCTION + input: + netherite: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_INGOT + amount: 2 + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 4 + output: + netherite_pick: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_SHOVEL + amount: 6 + make_netherite_hoe: + production_time: 4s + name: Make Netherite Hoe + type: PRODUCTION + input: + netherite: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_INGOT + amount: 2 + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 4 + output: + netherite_pick: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_HOE + amount: 6 + make_bastion: + production_time: 4s + name: Make Bastion + type: PRODUCTION + input: + casing: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_CHEST + amount: 16 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Casing + lore: + - Casing for bastion + gearbox: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CLOCK + amount: 16 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Gearbox + lore: + - Gear mechanism for bastion + radar: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COMPASS + amount: 16 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Radar + lore: + - Radar for detecting pearls + energizer: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD + amount: 16 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Energizer + lore: + - Power source for bastion + refractor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 16 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Refractor + lore: + - Refractor for bastion + bio_compoent: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MAGMA_CREAM + amount: 16 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Bio-Component + lore: + - Bio-Component for bastion + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 64 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + output: + bastion: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SPONGE + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Bastion + lore: + - This bastion will protect you from grief + - It will also block pearls when they land + - As well as stop elytra + amount: 16 + make_city_bastion: + forceInclude: true + production_time: 1s + name: Make City Bastion + type: PRODUCTION + input: + casing: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_CHEST + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Casing + lore: + - Casing for bastion + gearbox: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CLOCK + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Gearbox + lore: + - Gear mechanism for bastion + radar: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COMPASS + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Radar + lore: + - Radar for detecting pearls + energizer: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Energizer + lore: + - Power source for bastion + refractor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Refractor + lore: + - Refractor for bastion + bio_compoent: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MAGMA_CREAM + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Bio-Component + lore: + - Bio-Component for bastion + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 4 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + output: + city_bastion: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BONE_BLOCK + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: City Bastion + lore: + - City bastions block reinforcements and elytra + amount: 4 + make_tall_snitch: + forceInclude: true + production_time: 1s + name: Make Tall Snitch + type: PRODUCTION + input: + casing: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_CHEST + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Casing + lore: + - Casing for bastion + gearbox: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CLOCK + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Gearbox + lore: + - Gear mechanism for bastion + radar: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COMPASS + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Radar + lore: + - Radar for detecting pearls + energizer: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Energizer + lore: + - Power source for bastion + refractor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Refractor + lore: + - Refractor for bastion + bio_compoent: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MAGMA_CREAM + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Bio-Component + lore: + - Bio-Component for bastion + output: + tall_snitch: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NOTE_BLOCK + name: Tall Snitch + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Tall snitch that extends 50 blocks up and down + amount: 4 + dye_clay_white: + production_time: 4s + name: Dye Clay White + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TERRACOTTA + amount: 64 + white_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHITE_DYE + amount: 4 + output: + white_terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHITE_TERRACOTTA + amount: 64 + dye_clay_orange: + production_time: 4s + name: Dye Clay Orange + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TERRACOTTA + amount: 64 + orange_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ORANGE_DYE + amount: 4 + output: + orange_terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ORANGE_TERRACOTTA + amount: 64 + dye_clay_magenta: + production_time: 4s + name: Dye Clay Magenta + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TERRACOTTA + amount: 64 + magenta_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MAGENTA_DYE + amount: 4 + output: + magenta_terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MAGENTA_TERRACOTTA + amount: 64 + dye_clay_light_blue: + production_time: 4s + name: Dye Clay Light Blue + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TERRACOTTA + amount: 64 + light_blue_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIGHT_BLUE_DYE + amount: 4 + output: + light_blue_terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIGHT_BLUE_TERRACOTTA + amount: 64 + dye_clay_yellow: + production_time: 4s + name: Dye Clay Yellow + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TERRACOTTA + amount: 64 + yellow_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: YELLOW_DYE + amount: 4 + output: + yellow_terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: YELLOW_TERRACOTTA + amount: 64 + dye_clay_lime: + production_time: 4s + name: Dye Clay Lime + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TERRACOTTA + amount: 64 + lime_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIME_DYE + amount: 4 + output: + lime_terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIME_TERRACOTTA + amount: 64 + dye_clay_pink: + production_time: 4s + name: Dye Clay Pink + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TERRACOTTA + amount: 64 + pink_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PINK_DYE + amount: 4 + output: + pink_terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PINK_TERRACOTTA + amount: 64 + dye_clay_gray: + production_time: 4s + name: Dye Clay Gray + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TERRACOTTA + amount: 64 + gray_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAY_DYE + amount: 4 + output: + gray_clay: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAY_TERRACOTTA + amount: 64 + dye_clay_light_gray: + production_time: 4s + name: Dye Clay Light Gray + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TERRACOTTA + amount: 64 + light_gray_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIGHT_GRAY_DYE + amount: 4 + output: + light_gray_terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIGHT_GRAY_TERRACOTTA + amount: 64 + dye_clay_cyan: + production_time: 4s + name: Dye Clay Cyan + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TERRACOTTA + amount: 64 + cyan_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CYAN_DYE + amount: 4 + output: + cyan_terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CYAN_TERRACOTTA + amount: 64 + dye_clay_purple: + production_time: 4s + name: Dye Clay Purple + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TERRACOTTA + amount: 64 + purple_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PURPLE_DYE + amount: 4 + output: + purple_terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PURPLE_TERRACOTTA + amount: 64 + dye_clay_blue: + production_time: 4s + name: Dye Clay Blue + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TERRACOTTA + amount: 64 + lapis: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLUE_DYE + amount: 4 + output: + blue_terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLUE_TERRACOTTA + amount: 64 + dye_clay_brown: + production_time: 4s + name: Dye Clay Brown + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TERRACOTTA + amount: 64 + cocoa: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BROWN_DYE + amount: 4 + output: + brown_terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BROWN_TERRACOTTA + amount: 64 + dye_clay_green: + production_time: 4s + name: Dye Clay Green + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TERRACOTTA + amount: 64 + cactus green: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GREEN_DYE + amount: 4 + output: + green_terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GREEN_TERRACOTTA + amount: 64 + dye_clay_red: + production_time: 4s + name: Dye Clay Red + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TERRACOTTA + amount: 64 + rose: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RED_DYE + amount: 4 + output: + red_clay: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RED_TERRACOTTA + amount: 64 + dye_clay_black: + production_time: 4s + name: Dye Clay Black + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TERRACOTTA + amount: 64 + ink sac: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLACK_DYE + amount: 4 + output: + black_terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLACK_TERRACOTTA + amount: 64 + glaze_terracotta_white: + production_time: 4s + name: Glaze White Terracotta + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHITE_TERRACOTTA + amount: 64 + output: + Glazed Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHITE_GLAZED_TERRACOTTA + amount: 64 + glaze_terracotta_orange: + production_time: 4s + name: Glaze Orange Terracotta + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ORANGE_TERRACOTTA + amount: 64 + output: + Glazed Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ORANGE_GLAZED_TERRACOTTA + amount: 64 + glaze_terracotta_magenta: + production_time: 4s + name: Glaze Magenta Terracotta + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MAGENTA_TERRACOTTA + amount: 64 + output: + Glazed Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MAGENTA_GLAZED_TERRACOTTA + amount: 64 + glaze_terracotta_light_blue: + production_time: 4s + name: Glaze Light Blue Terracotta + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIGHT_BLUE_TERRACOTTA + amount: 64 + output: + Glazed Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIGHT_BLUE_GLAZED_TERRACOTTA + amount: 64 + glaze_terracotta_yellow: + production_time: 4s + name: Glaze Yellow Terracotta + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: YELLOW_TERRACOTTA + amount: 64 + output: + Glazed Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: YELLOW_GLAZED_TERRACOTTA + amount: 64 + glaze_terracotta_lime: + production_time: 4s + name: Glaze Lime Terracotta + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIME_TERRACOTTA + amount: 64 + output: + Glazed Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIME_GLAZED_TERRACOTTA + amount: 64 + glaze_terracotta_pink: + production_time: 4s + name: Glaze Pink Terracotta + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PINK_TERRACOTTA + amount: 64 + output: + Glazed Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PINK_GLAZED_TERRACOTTA + amount: 64 + glaze_terracotta_gray: + production_time: 4s + name: Glaze Gray Terracotta + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAY_TERRACOTTA + amount: 64 + output: + Glazed Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAY_GLAZED_TERRACOTTA + amount: 64 + glaze_terracotta_light_gray: + production_time: 4s + name: Glaze Light Gray Terracotta + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIGHT_GRAY_TERRACOTTA + amount: 64 + output: + Glazed Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIGHT_GRAY_GLAZED_TERRACOTTA + amount: 64 + glaze_terracotta_cyan: + production_time: 4s + name: Glaze Cyan Terracotta + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CYAN_TERRACOTTA + amount: 64 + output: + Glazed Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CYAN_GLAZED_TERRACOTTA + amount: 64 + glaze_terracotta_purple: + production_time: 4s + name: Glaze Purple Terracotta + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PURPLE_TERRACOTTA + amount: 64 + output: + Glazed Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PURPLE_GLAZED_TERRACOTTA + amount: 64 + glaze_terracotta_blue: + production_time: 4s + name: Glaze Blue Terracotta + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLUE_TERRACOTTA + amount: 64 + output: + Glazed Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLUE_GLAZED_TERRACOTTA + amount: 64 + glaze_terracotta_brown: + production_time: 4s + name: Glaze Brown Terracotta + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BROWN_TERRACOTTA + amount: 64 + output: + Glazed Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BROWN_GLAZED_TERRACOTTA + amount: 64 + glaze_terracotta_green: + production_time: 4s + name: Glaze Green Terracotta + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GREEN_TERRACOTTA + amount: 64 + output: + Glazed Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GREEN_GLAZED_TERRACOTTA + amount: 64 + glaze_terracotta_red: + production_time: 4s + name: Glaze Red Terracotta + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RED_TERRACOTTA + amount: 64 + output: + Glazed Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RED_GLAZED_TERRACOTTA + amount: 64 + glaze_terracotta_black: + production_time: 4s + name: Glaze Black Terracotta + type: PRODUCTION + input: + Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLACK_TERRACOTTA + amount: 64 + output: + Glazed Terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLACK_GLAZED_TERRACOTTA + amount: 64 + dye_wool_orange: + production_time: 4s + name: Dye Wool Orange + type: PRODUCTION + input: + wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHITE_WOOL + amount: 64 + orange_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ORANGE_DYE + amount: 4 + output: + orange_wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ORANGE_WOOL + amount: 64 + dye_wool_magenta: + production_time: 4s + name: Dye Wool Magenta + type: PRODUCTION + input: + wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHITE_WOOL + amount: 64 + magenta_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MAGENTA_DYE + amount: 4 + output: + magenta_wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MAGENTA_WOOL + amount: 64 + dye_wool_light_blue: + production_time: 4s + name: Dye Wool Light Blue + type: PRODUCTION + input: + wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHITE_WOOL + amount: 64 + light_blue_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIGHT_BLUE_DYE + amount: 4 + output: + light_blue_wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIGHT_BLUE_WOOL + amount: 64 + dye_wool_yellow: + production_time: 4s + name: Dye Wool Yellow + type: PRODUCTION + input: + wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHITE_WOOL + amount: 64 + yellow_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: YELLOW_DYE + amount: 4 + output: + yellow_wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: YELLOW_WOOL + amount: 64 + dye_wool_lime: + production_time: 4s + name: Dye Wool Lime + type: PRODUCTION + input: + wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHITE_WOOL + amount: 64 + lime_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIME_DYE + amount: 4 + output: + lime_wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIME_WOOL + amount: 64 + dye_wool_pink: + production_time: 4s + name: Dye Wool Pink + type: PRODUCTION + input: + wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHITE_WOOL + amount: 64 + pink_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PINK_DYE + amount: 4 + output: + pink_wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PINK_WOOL + amount: 64 + dye_wool_gray: + production_time: 4s + name: Dye Wool Gray + type: PRODUCTION + input: + wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHITE_WOOL + amount: 64 + gray_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAY_DYE + amount: 4 + output: + gray_wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAY_WOOL + amount: 64 + dye_wool_light_gray: + production_time: 4s + name: Dye Wool Light Gray + type: PRODUCTION + input: + wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHITE_WOOL + amount: 64 + light_gray_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIGHT_GRAY_DYE + amount: 4 + output: + light_gray_wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIGHT_GRAY_WOOL + amount: 64 + dye_wool_cyan: + production_time: 4s + name: Dye Wool Cyan + type: PRODUCTION + input: + wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHITE_WOOL + amount: 64 + cyan_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CYAN_DYE + amount: 4 + output: + cyan_wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CYAN_WOOL + amount: 64 + dye_wool_purple: + production_time: 4s + name: Dye Wool Purple + type: PRODUCTION + input: + wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHITE_WOOL + amount: 64 + purple_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PURPLE_DYE + amount: 4 + output: + purple_wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PURPLE_WOOL + amount: 64 + dye_wool_blue: + production_time: 4s + name: Dye Wool Blue + type: PRODUCTION + input: + wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHITE_WOOL + amount: 64 + lapis: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLUE_DYE + amount: 4 + output: + blue_wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLUE_WOOL + amount: 64 + dye_wool_brown: + production_time: 4s + name: Dye Wool Brown + type: PRODUCTION + input: + wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHITE_WOOL + amount: 64 + cocoa: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BROWN_DYE + amount: 4 + output: + brown_wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BROWN_WOOL + amount: 64 + dye_wool_green: + production_time: 4s + name: Dye Wool Green + type: PRODUCTION + input: + wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHITE_WOOL + amount: 64 + cactus green: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GREEN_DYE + amount: 4 + output: + green_wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GREEN_WOOL + amount: 64 + dye_wool_red: + production_time: 4s + name: Dye Wool Red + type: PRODUCTION + input: + wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHITE_WOOL + amount: 64 + rose red: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RED_DYE + amount: 4 + output: + red_wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RED_WOOL + amount: 64 + dye_wool_black: + production_time: 4s + name: Dye Wool Black + type: PRODUCTION + input: + wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHITE_WOOL + amount: 64 + ink sac: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLACK_DYE + amount: 4 + output: + black_wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLACK_WOOL + amount: 64 + dye_glass_white: + production_time: 4s + name: Dye Glass White + type: PRODUCTION + input: + glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS + amount: 64 + white_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHITE_DYE + amount: 4 + output: + white_glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHITE_STAINED_GLASS + amount: 64 + dye_glass_orange: + production_time: 4s + name: Dye Glass Orange + type: PRODUCTION + input: + glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS + amount: 64 + orange_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ORANGE_DYE + amount: 4 + output: + orange_glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ORANGE_STAINED_GLASS + amount: 64 + dye_glass_magenta: + production_time: 4s + name: Dye Glass Magenta + type: PRODUCTION + input: + glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS + amount: 64 + magenta_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MAGENTA_DYE + amount: 4 + output: + magenta_glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MAGENTA_STAINED_GLASS + amount: 64 + dye_glass_light_blue: + production_time: 4s + name: Dye Glass Light Blue + type: PRODUCTION + input: + glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS + amount: 64 + light_blue_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIGHT_BLUE_DYE + amount: 4 + output: + light_blue_glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIGHT_BLUE_STAINED_GLASS + amount: 64 + dye_glass_yellow: + production_time: 4s + name: Dye Glass Yellow + type: PRODUCTION + input: + glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS + amount: 64 + yellow_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: YELLOW_DYE + amount: 4 + output: + yellow_glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: YELLOW_STAINED_GLASS + amount: 64 + dye_glass_lime: + production_time: 4s + name: Dye Glass Lime + type: PRODUCTION + input: + glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS + amount: 64 + lime_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIME_DYE + amount: 4 + output: + lime_glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIME_STAINED_GLASS + amount: 64 + dye_glass_pink: + production_time: 4s + name: Dye Glass Pink + type: PRODUCTION + input: + glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS + amount: 64 + pink_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PINK_DYE + amount: 4 + output: + pink_glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PINK_STAINED_GLASS + amount: 64 + dye_glass_gray: + production_time: 4s + name: Dye Glass Gray + type: PRODUCTION + input: + glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS + amount: 64 + gray_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAY_DYE + amount: 4 + output: + gray_glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAY_STAINED_GLASS + amount: 64 + dye_glass_light_gray: + production_time: 4s + name: Dye Glass Light Gray + type: PRODUCTION + input: + glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS + amount: 64 + light_gray_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIGHT_GRAY_DYE + amount: 4 + output: + light_gray_glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIGHT_GRAY_STAINED_GLASS + amount: 64 + dye_glass_cyan: + production_time: 4s + name: Dye Glass Cyan + type: PRODUCTION + input: + glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS + amount: 64 + cyan_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CYAN_DYE + amount: 4 + output: + cyan_glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CYAN_STAINED_GLASS + amount: 64 + dye_glass_purple: + production_time: 4s + name: Dye Glass Purple + type: PRODUCTION + input: + glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS + amount: 64 + purple_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PURPLE_DYE + amount: 4 + output: + purple_glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PURPLE_STAINED_GLASS + amount: 64 + dye_glass_blue: + production_time: 4s + name: Dye Glass Blue + type: PRODUCTION + input: + glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS + amount: 64 + blue_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLUE_DYE + amount: 4 + output: + blue_glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLUE_STAINED_GLASS + amount: 64 + dye_glass_brown: + production_time: 4s + name: Dye Glass Brown + type: PRODUCTION + input: + glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS + amount: 64 + brown_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BROWN_DYE + amount: 4 + output: + brown_glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BROWN_STAINED_GLASS + amount: 64 + dye_glass_green: + production_time: 4s + name: Dye Glass Green + type: PRODUCTION + input: + glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS + amount: 64 + green_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GREEN_DYE + amount: 4 + output: + green_glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GREEN_STAINED_GLASS + amount: 64 + dye_glass_red: + production_time: 4s + name: Dye Glass Red + type: PRODUCTION + input: + glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS + amount: 64 + red_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RED_DYE + amount: 4 + output: + red_glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RED_STAINED_GLASS + amount: 64 + dye_glass_black: + production_time: 4s + name: Dye Glass Black + type: PRODUCTION + input: + glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS + amount: 64 + black_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLACK_DYE + amount: 4 + output: + black_glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLACK_STAINED_GLASS + amount: 64 + dye_glass_tinted: + production_time: 4s + name: Dye Glass Tinted + type: PRODUCTION + input: + glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS + amount: 64 + amethyst_shard: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: AMETHYST_SHARD + amount: 4 + output: + tinted_glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TINTED_GLASS + amount: 64 + mix_concrete_white: + production_time: 4s + name: Mix White Concrete + type: PRODUCTION + input: + sand: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SAND + amount: 16 + gravel: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAVEL + amount: 16 + white_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHITE_DYE + amount: 4 + output: + white_concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHITE_CONCRETE_POWDER + amount: 64 + mix_concrete_orange: + production_time: 4s + name: Mix Orange Concrete + type: PRODUCTION + input: + sand: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SAND + amount: 16 + gravel: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAVEL + amount: 16 + orange_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ORANGE_DYE + amount: 4 + output: + orange_concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ORANGE_CONCRETE_POWDER + amount: 64 + mix_concrete_magenta: + production_time: 4s + name: Mix Magenta Concrete + type: PRODUCTION + input: + sand: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SAND + amount: 16 + gravel: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAVEL + amount: 16 + magenta_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MAGENTA_DYE + amount: 4 + output: + magenta_concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MAGENTA_CONCRETE_POWDER + amount: 64 + mix_concrete_light_blue: + production_time: 4s + name: Mix Light Blue Concrete + type: PRODUCTION + input: + sand: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SAND + amount: 16 + gravel: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAVEL + amount: 16 + light_blue_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIGHT_BLUE_DYE + amount: 4 + output: + light_blue_concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIGHT_BLUE_CONCRETE_POWDER + amount: 64 + mix_concrete_yellow: + production_time: 4s + name: Mix Yellow Concrete + type: PRODUCTION + input: + sand: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SAND + amount: 16 + gravel: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAVEL + amount: 16 + yellow_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: YELLOW_DYE + amount: 4 + output: + yellow_concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: YELLOW_CONCRETE_POWDER + amount: 64 + mix_concrete_lime: + production_time: 4s + name: Mix Lime Concrete + type: PRODUCTION + input: + sand: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SAND + amount: 16 + gravel: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAVEL + amount: 16 + lime_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIME_DYE + amount: 4 + output: + lime_concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIME_CONCRETE_POWDER + amount: 64 + mix_concrete_pink: + production_time: 4s + name: Mix Pink Concrete + type: PRODUCTION + input: + sand: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SAND + amount: 16 + gravel: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAVEL + amount: 16 + pink_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PINK_DYE + amount: 4 + output: + pink_concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PINK_CONCRETE_POWDER + amount: 64 + mix_concrete_gray: + production_time: 4s + name: Mix Gray Concrete + type: PRODUCTION + input: + sand: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SAND + amount: 16 + gravel: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAVEL + amount: 16 + gray_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAY_DYE + amount: 4 + output: + gray_concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAY_CONCRETE_POWDER + amount: 64 + mix_concrete_light_gray: + production_time: 4s + name: Mix Light Gray Concrete + type: PRODUCTION + input: + sand: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SAND + amount: 16 + gravel: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAVEL + amount: 16 + light_gray_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIGHT_GRAY_DYE + amount: 4 + output: + light_gray_concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIGHT_GRAY_CONCRETE_POWDER + amount: 64 + mix_concrete_cyan: + production_time: 4s + name: Mix Cyan Concrete + type: PRODUCTION + input: + sand: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SAND + amount: 16 + gravel: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAVEL + amount: 16 + cyan_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CYAN_DYE + amount: 4 + output: + cyan_concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CYAN_CONCRETE_POWDER + amount: 64 + mix_concrete_purple: + production_time: 4s + name: Mix Purple Concrete + type: PRODUCTION + input: + sand: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SAND + amount: 16 + gravel: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAVEL + amount: 16 + purple_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PURPLE_DYE + amount: 4 + output: + purple_concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PURPLE_CONCRETE_POWDER + amount: 64 + mix_concrete_blue: + production_time: 4s + name: Mix Blue Concrete + type: PRODUCTION + input: + sand: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SAND + amount: 16 + gravel: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAVEL + amount: 16 + blue_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLUE_DYE + amount: 4 + output: + blue_concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLUE_CONCRETE_POWDER + amount: 64 + mix_concrete_brown: + production_time: 4s + name: Mix Brown Concrete + type: PRODUCTION + input: + sand: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SAND + amount: 16 + gravel: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAVEL + amount: 16 + brown_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BROWN_DYE + amount: 4 + output: + brown_concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BROWN_CONCRETE_POWDER + amount: 64 + mix_concrete_green: + production_time: 4s + name: Mix Green Concrete + type: PRODUCTION + input: + sand: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SAND + amount: 16 + gravel: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAVEL + amount: 16 + green_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GREEN_DYE + amount: 4 + output: + green_concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GREEN_CONCRETE_POWDER + amount: 64 + mix_concrete_red: + production_time: 4s + name: Mix Red Concrete + type: PRODUCTION + input: + sand: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SAND + amount: 16 + gravel: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAVEL + amount: 16 + red_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RED_DYE + amount: 4 + output: + red_concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RED_CONCRETE_POWDER + amount: 64 + mix_concrete_black: + production_time: 4s + name: Mix Black Concrete + type: PRODUCTION + input: + sand: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SAND + amount: 16 + gravel: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAVEL + amount: 16 + black_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLACK_DYE + amount: 4 + output: + black_concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLACK_CONCRETE_POWDER + amount: 64 + harden_concrete_white: + production_time: 4s + fuel_consumption_intervall: 8s + name: Harden White Concrete + type: PRODUCTION + input: + concrete_powder: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHITE_CONCRETE_POWDER + amount: 64 + water_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WATER_BUCKET + amount: 1 + output: + concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHITE_CONCRETE + amount: 64 + empty_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUCKET + amount: 1 + harden_concrete_orange: + production_time: 4s + fuel_consumption_intervall: 8s + name: Harden Orange Concrete + type: PRODUCTION + input: + concrete_powder: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ORANGE_CONCRETE_POWDER + amount: 64 + water_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WATER_BUCKET + amount: 1 + output: + concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ORANGE_CONCRETE + amount: 64 + empty_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUCKET + amount: 1 + harden_concrete_magenta: + production_time: 4s + fuel_consumption_intervall: 8s + name: Harden Magenta Concrete + type: PRODUCTION + input: + concrete_powder: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MAGENTA_CONCRETE_POWDER + amount: 64 + water_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WATER_BUCKET + amount: 1 + output: + concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MAGENTA_CONCRETE + amount: 64 + empty_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUCKET + amount: 1 + harden_concrete_light_blue: + production_time: 4s + fuel_consumption_intervall: 8s + name: Harden Light Blue Concrete + type: PRODUCTION + input: + concrete_powder: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIGHT_BLUE_CONCRETE_POWDER + amount: 64 + water_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WATER_BUCKET + amount: 1 + output: + concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIGHT_BLUE_CONCRETE + amount: 64 + empty_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUCKET + amount: 1 + harden_concrete_yellow: + production_time: 4s + fuel_consumption_intervall: 8s + name: Harden Yellow Concrete + type: PRODUCTION + input: + concrete_powder: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: YELLOW_CONCRETE_POWDER + amount: 64 + water_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WATER_BUCKET + amount: 1 + output: + concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: YELLOW_CONCRETE + amount: 64 + empty_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUCKET + amount: 1 + harden_concrete_lime: + production_time: 4s + fuel_consumption_intervall: 8s + name: Harden Lime Concrete + type: PRODUCTION + input: + concrete_powder: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIME_CONCRETE_POWDER + amount: 64 + water_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WATER_BUCKET + amount: 1 + output: + concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIME_CONCRETE + amount: 64 + empty_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUCKET + amount: 1 + harden_concrete_pink: + production_time: 4s + fuel_consumption_intervall: 8s + name: Harden Pink Concrete + type: PRODUCTION + input: + concrete_powder: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PINK_CONCRETE_POWDER + amount: 64 + water_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WATER_BUCKET + amount: 1 + output: + concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PINK_CONCRETE + amount: 64 + empty_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUCKET + amount: 1 + harden_concrete_gray: + production_time: 4s + fuel_consumption_intervall: 8s + name: Harden Gray Concrete + type: PRODUCTION + input: + concrete_powder: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAY_CONCRETE_POWDER + amount: 64 + water_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WATER_BUCKET + amount: 1 + output: + concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAY_CONCRETE + amount: 64 + empty_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUCKET + amount: 1 + harden_concrete_light_gray: + production_time: 4s + fuel_consumption_intervall: 8s + name: Harden Light Gray Concrete + type: PRODUCTION + input: + concrete_powder: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIGHT_GRAY_CONCRETE_POWDER + amount: 64 + water_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WATER_BUCKET + amount: 1 + output: + concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LIGHT_GRAY_CONCRETE + amount: 64 + empty_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUCKET + amount: 1 + harden_concrete_cyan: + production_time: 4s + fuel_consumption_intervall: 8s + name: Harden Cyan Concrete + type: PRODUCTION + input: + concrete_powder: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CYAN_CONCRETE_POWDER + amount: 64 + water_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WATER_BUCKET + amount: 1 + output: + concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CYAN_CONCRETE + amount: 64 + empty_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUCKET + amount: 1 + harden_concrete_purple: + production_time: 4s + fuel_consumption_intervall: 8s + name: Harden Purple Concrete + type: PRODUCTION + input: + concrete_powder: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PURPLE_CONCRETE_POWDER + amount: 64 + water_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WATER_BUCKET + amount: 1 + output: + concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PURPLE_CONCRETE + amount: 64 + empty_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUCKET + amount: 1 + harden_concrete_blue: + production_time: 4s + fuel_consumption_intervall: 8s + name: Harden Blue Concrete + type: PRODUCTION + input: + concrete_powder: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLUE_CONCRETE_POWDER + amount: 64 + water_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WATER_BUCKET + amount: 1 + output: + concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLUE_CONCRETE + amount: 64 + empty_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUCKET + amount: 1 + harden_concrete_brown: + production_time: 4s + fuel_consumption_intervall: 8s + name: Harden Brown Concrete + type: PRODUCTION + input: + concrete_powder: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BROWN_CONCRETE_POWDER + amount: 64 + water_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WATER_BUCKET + amount: 1 + output: + concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BROWN_CONCRETE + amount: 64 + empty_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUCKET + amount: 1 + harden_concrete_green: + production_time: 4s + fuel_consumption_intervall: 8s + name: Harden Green Concrete + type: PRODUCTION + input: + concrete_powder: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GREEN_CONCRETE_POWDER + amount: 64 + water_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WATER_BUCKET + amount: 1 + output: + concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GREEN_CONCRETE + amount: 64 + empty_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUCKET + amount: 1 + harden_concrete_red: + production_time: 4s + fuel_consumption_intervall: 8s + name: Harden Red Concrete + type: PRODUCTION + input: + concrete_powder: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RED_CONCRETE_POWDER + amount: 64 + water_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WATER_BUCKET + amount: 1 + output: + concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RED_CONCRETE + amount: 64 + empty_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUCKET + amount: 1 + harden_concrete_black: + production_time: 4s + fuel_consumption_intervall: 8s + name: Harden Black Concrete + type: PRODUCTION + input: + concrete_powder: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLACK_CONCRETE_POWDER + amount: 64 + water_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WATER_BUCKET + amount: 1 + output: + concrete: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLACK_CONCRETE + amount: 64 + empty_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUCKET + amount: 1 + make_gem_kit: + production_time: 4s + name: Make Gem Factory Repair Kit + type: PRODUCTION + input: + gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_BLOCK + amount: 16 + emerald: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD_BLOCK + amount: 16 + lapis: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_BLOCK + amount: 32 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 8 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + output: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Gem Factory Repair Kit + lore: + - One kit will repair a Gem Factory to full health. + repair_gem_factory: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_BLOCK + amount: 16 + emerald: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD_BLOCK + amount: 16 + lapis: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_BLOCK + amount: 32 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 8 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + health_gained: 10000 + repair_gem_factory_kit: + production_time: 4s + name: Repair Factory using Repair Kit + type: REPAIR + input: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Gem Factory Repair Kit + lore: + - One kit will repair a Gem Factory to full health. + health_gained: 10000 + repair_stone_smelter: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + stone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: STONE + amount: 48 + health_gained: 10000 + repair_nether_smelter: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + netherbricks: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHER_BRICKS + amount: 12 + health_gained: 10000 + repair_charcoal_factory: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + charcoal: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHARCOAL + amount: 48 + health_gained: 10000 + repair_aesthetics: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + stone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: STONE + amount: 32 + health_gained: 10000 + repair_wool: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHITE_WOOL + amount: 16 + health_gained: 10000 + repair_clay: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + clay: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TERRACOTTA + amount: 16 + health_gained: 10000 + repair_glass: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS + amount: 16 + health_gained: 10000 + make_mixer_kit: + production_time: 4s + name: Make Concrete Mixer Repair Kit + type: PRODUCTION + input: + sand: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SAND + amount: 24 + gravel: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAVEL + amount: 24 + output: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Concrete Mixer Repair Kit + lore: + - One kit will repair a Concrete Mixer to full health. + repair_mixer: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + sand: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SAND + amount: 24 + gravel: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAVEL + amount: 24 + health_gained: 10000 + repair_mixer_kit: + production_time: 4s + name: Repair Factory using Repair Kit + type: REPAIR + input: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Concrete Mixer Repair Kit + lore: + - One kit will repair a Concrete Mixer to full health. + health_gained: 10000 + make_grill_kit: + production_time: 4s + name: Make Grill Factory Repair Kit + type: PRODUCTION + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 8 + bricks: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BRICKS + amount: 8 + output: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Grill Factory Repair Kit + lore: + - One kit will repair a Grill Factory to full health. + repair_grill: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 8 + bricks: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BRICKS + amount: 8 + health_gained: 10000 + repair_grill_kit: + production_time: 4s + name: Repair Factory using Repair Kit + type: REPAIR + input: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Grill Factory Repair Kit + lore: + - One kit will repair a Grill Factory to full health. + health_gained: 10000 + repair_bakery: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + bricks: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BRICKS + amount: 16 + health_gained: 10000 + make_ore_smelter_kit: + production_time: 4s + name: Make Ore Smelter Repair Kit + type: PRODUCTION + input: + coal: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COAL + amount: 48 + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 24 + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 6 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 8 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + output: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Ore Smelter Repair Kit + lore: + - One kit will repair an Ore Smelter to full health. + repair_ore_smelter: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + coal: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COAL + amount: 48 + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 24 + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 6 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 8 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + health_gained: 10000 + repair_ore_smelter_kit: + production_time: 4s + name: Repair Factory using Repair Kit + type: REPAIR + input: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Ore Smelter Repair Kit + lore: + - One kit will repair an Ore Smelter to full health. + health_gained: 10000 + make_adv_ore_smelter_kit: + production_time: 4s + name: Make Advanced Ore Smelter Repair Kit + type: PRODUCTION + input: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 8 + emerald: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD + amount: 8 + ancient_debris: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ANCIENT_DEBRIS + amount: 1 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 4 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + output: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Advanced Ore Smelter Repair Kit + lore: + - One kit will repair an Advanced Ore Smelter to full health. + repair_adv_ore_smelter: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 8 + emerald: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD + amount: 8 + ancient_debris: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ANCIENT_DEBRIS + amount: 1 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 4 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + health_gained: 10000 + repair_adv_ore_smelter_kit: + production_time: 4s + name: Repair Factory using Repair Kit + type: REPAIR + input: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Advanced Ore Smelter Repair Kit + lore: + - One kit will repair an Advanced Ore Smelter to full health. + health_gained: 10000 + make_elite_ore_smelter_kit: + production_time: 4s + name: Make Elite Ore Smelter Repair Kit + type: PRODUCTION + input: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 16 + emerald: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD + amount: 16 + meteoric_iron_ingot: + custom-key: meteoric_iron_ingot + amount: 1 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 8 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + output: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Elite Ore Smelter Repair Kit + lore: + - One kit will repair an Elite Ore Smelter to full health. + repair_elite_ore_smelter: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 16 + emerald: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD + amount: 16 + meteoric_iron_ingot: + custom-key: meteoric_iron_ingot + amount: 1 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 8 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + health_gained: 10000 + repair_elite_ore_smelter_kit: + production_time: 4s + name: Repair Factory using Repair Kit + type: REPAIR + input: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Elite Ore Smelter Repair Kit + lore: + - One kit will repair an Elite Ore Smelter to full health. + health_gained: 10000 + make_fences: + production_time: 4s + name: Make Fences + type: PRODUCTION + input: + chest: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHEST + amount: 8 + output: + fence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: OAK_FENCE + amount: 128 + make_signs: + production_time: 4s + name: Make Signs + type: PRODUCTION + input: + chest: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHEST + amount: 12 + output: + sign: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: OAK_SIGN + amount: 128 + make_hanging_signs: + production_time: 4s + name: Make Hanging Signs + type: PRODUCTION + input: + chest: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHEST + amount: 12 + iron_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 4 + output: + sign: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: OAK_HANGING_SIGN + amount: 128 + make_ladders: + production_time: 4s + name: Make Ladders + type: PRODUCTION + input: + chest: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHEST + amount: 6 + output: + ladder: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LADDER + amount: 128 + make_scaffolding: + production_time: 4s + name: Make Scaffolding + type: PRODUCTION + input: + chest: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHEST + amount: 6 + output: + ladder: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SCAFFOLDING + amount: 64 + make_bookshelves: + production_time: 4s + name: Make Bookshelves + type: PRODUCTION + input: + paper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 64 + chest: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHEST + amount: 8 + output: + bookshelves: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BOOKSHELF + amount: 64 + make_chiseled_bookshelves: + production_time: 4s + name: Make Chiseled Bookshelves + type: PRODUCTION + input: + chest: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHEST + amount: 12 + output: + bookshelves: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHISELED_BOOKSHELF + amount: 64 + make_trapdoors: + production_time: 4s + name: Make Trap Doors + type: PRODUCTION + input: + chest: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHEST + amount: 16 + output: + trapdoor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: OAK_TRAPDOOR + amount: 128 + make_wood_doors: + production_time: 4s + name: Make Wood Doors + type: PRODUCTION + input: + chest: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHEST + amount: 12 + output: + door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: OAK_DOOR + amount: 128 + make_fence_gates: + production_time: 4s + name: Make Fence Gates + type: PRODUCTION + input: + chest: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHEST + amount: 8 + output: + door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: OAK_FENCE_GATE + amount: 128 + make_beehive: + production_time: 4s + name: Make Beehive + type: PRODUCTION + input: + chest: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHEST + amount: 32 + membrane: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: HONEYCOMB + amount: 16 + output: + beehive: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BEEHIVE + amount: 16 + sticks_to_chest: + production_time: 4s + name: Reconstitute Sticks to Chests + type: PRODUCTION + input: + stick: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: STICK + amount: 64 + output: + chest: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHEST + amount: 4 + chests_to_barrel: + production_time: 4s + name: Reform Chests to Barrels + type: PRODUCTION + input: + stick: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHEST + amount: 16 + output: + barrel: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 20 + repair_carpentry: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + chest: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHEST + amount: 8 + health_gained: 10000 + make_spruce_fences: + production_time: 4s + name: Make Fences + type: PRODUCTION + input: + SPRUCE_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SPRUCE_LOG + amount: 16 + output: + fence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SPRUCE_FENCE + amount: 128 + make_spruce_signs: + production_time: 4s + name: Make Signs + type: PRODUCTION + input: + SPRUCE_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SPRUCE_LOG + amount: 24 + output: + sign: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SPRUCE_SIGN + amount: 128 + make_spruce_hanging_signs: + production_time: 4s + name: Make Spruce Hanging Signs + type: PRODUCTION + input: + chest: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SPRUCE_LOG + amount: 24 + iron_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 4 + output: + sign: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SPRUCE_HANGING_SIGN + amount: 128 + make_spruce_trapdoors: + production_time: 4s + name: Make Trap Doors + type: PRODUCTION + input: + SPRUCE_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SPRUCE_LOG + amount: 32 + output: + trapdoor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SPRUCE_TRAPDOOR + amount: 128 + make_spruce_doors: + production_time: 4s + name: Make Doors + type: PRODUCTION + input: + SPRUCE_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SPRUCE_LOG + amount: 24 + output: + door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SPRUCE_DOOR + amount: 128 + make_spruce_fence_gates: + production_time: 4s + name: Make Fence Gates + type: PRODUCTION + input: + SPRUCE_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SPRUCE_LOG + amount: 16 + output: + door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SPRUCE_FENCE_GATE + amount: 128 + make_birch_fences: + production_time: 4s + name: Make Fences + type: PRODUCTION + input: + BIRCH_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BIRCH_LOG + amount: 16 + output: + fence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BIRCH_FENCE + amount: 128 + make_birch_signs: + production_time: 4s + name: Make Signs + type: PRODUCTION + input: + BIRCH_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BIRCH_LOG + amount: 24 + output: + sign: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BIRCH_SIGN + amount: 128 + make_birch_hanging_signs: + production_time: 4s + name: Make Birch Hanging Signs + type: PRODUCTION + input: + chest: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BIRCH_LOG + amount: 24 + iron_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 4 + output: + sign: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BIRCH_HANGING_SIGN + amount: 128 + make_birch_trapdoors: + production_time: 4s + name: Make Trap Doors + type: PRODUCTION + input: + BIRCH_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BIRCH_LOG + amount: 32 + output: + trapdoor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BIRCH_TRAPDOOR + amount: 128 + make_birch_doors: + production_time: 4s + name: Make Doors + type: PRODUCTION + input: + BIRCH_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BIRCH_LOG + amount: 24 + output: + door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BIRCH_DOOR + amount: 128 + make_birch_fence_gates: + production_time: 4s + name: Make Fence Gates + type: PRODUCTION + input: + BIRCH_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BIRCH_LOG + amount: 16 + output: + door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BIRCH_FENCE_GATE + amount: 128 + make_jungle_fences: + production_time: 4s + name: Make Fences + type: PRODUCTION + input: + JUNGLE_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: JUNGLE_LOG + amount: 16 + output: + fence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: JUNGLE_FENCE + amount: 128 + make_jungle_signs: + production_time: 4s + name: Make Signs + type: PRODUCTION + input: + JUNGLE_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: JUNGLE_LOG + amount: 24 + output: + sign: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: JUNGLE_SIGN + amount: 128 + make_jungle_hanging_signs: + production_time: 4s + name: Make Jungle Hanging Signs + type: PRODUCTION + input: + chest: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: JUNGLE_LOG + amount: 24 + iron_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 4 + output: + sign: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: JUNGLE_HANGING_SIGN + amount: 128 + make_jungle_trapdoors: + production_time: 4s + name: Make Trap Doors + type: PRODUCTION + input: + JUNGLE_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: JUNGLE_LOG + amount: 32 + output: + trapdoor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: JUNGLE_TRAPDOOR + amount: 128 + make_jungle_doors: + production_time: 4s + name: Make Doors + type: PRODUCTION + input: + JUNGLE_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: JUNGLE_LOG + amount: 24 + output: + door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: JUNGLE_DOOR + amount: 128 + make_jungle_fence_gates: + production_time: 4s + name: Make Fence Gates + type: PRODUCTION + input: + JUNGLE_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: JUNGLE_LOG + amount: 16 + output: + door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: JUNGLE_FENCE_GATE + amount: 128 + make_acacia_fences: + production_time: 4s + name: Make Fences + type: PRODUCTION + input: + ACACIA_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ACACIA_LOG + amount: 16 + output: + fence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ACACIA_FENCE + amount: 128 + make_acacia_signs: + production_time: 4s + name: Make Signs + type: PRODUCTION + input: + ACACIA_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ACACIA_LOG + amount: 24 + output: + sign: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ACACIA_SIGN + amount: 128 + make_acacia_hanging_signs: + production_time: 4s + name: Make Acacia Hanging Signs + type: PRODUCTION + input: + chest: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ACACIA_LOG + amount: 24 + iron_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 4 + output: + sign: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ACACIA_HANGING_SIGN + amount: 128 + make_acacia_trapdoors: + production_time: 4s + name: Make Trap Doors + type: PRODUCTION + input: + ACACIA_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ACACIA_LOG + amount: 32 + output: + trapdoor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ACACIA_TRAPDOOR + amount: 128 + make_acacia_doors: + production_time: 4s + name: Make Doors + type: PRODUCTION + input: + ACACIA_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ACACIA_LOG + amount: 24 + output: + door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ACACIA_DOOR + amount: 128 + make_acacia_fence_gates: + production_time: 4s + name: Make Fence Gates + type: PRODUCTION + input: + ACACIA_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ACACIA_LOG + amount: 16 + output: + door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ACACIA_FENCE_GATE + amount: 128 + make_dark_oak_fences: + production_time: 4s + name: Make Fences + type: PRODUCTION + input: + DARK_OAK_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DARK_OAK_LOG + amount: 16 + output: + fence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DARK_OAK_FENCE + amount: 128 + make_dark_oak_signs: + production_time: 4s + name: Make Signs + type: PRODUCTION + input: + DARK_OAK_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DARK_OAK_LOG + amount: 24 + output: + sign: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DARK_OAK_SIGN + amount: 128 + make_dark_oak_hanging_signs: + production_time: 4s + name: Make Dark Oak Hanging Signs + type: PRODUCTION + input: + chest: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DARK_OAK_LOG + amount: 24 + iron_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 4 + output: + sign: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DARK_OAK_HANGING_SIGN + amount: 128 + make_dark_oak_trapdoors: + production_time: 4s + name: Make Trap Doors + type: PRODUCTION + input: + DARK_OAK_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DARK_OAK_LOG + amount: 32 + output: + trapdoor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DARK_OAK_TRAPDOOR + amount: 128 + make_dark_oak_doors: + production_time: 4s + name: Make Doors + type: PRODUCTION + input: + DARK_OAK_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DARK_OAK_LOG + amount: 24 + output: + door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DARK_OAK_DOOR + amount: 128 + make_dark_oak_fence_gates: + production_time: 4s + name: Make Fence Gates + type: PRODUCTION + input: + DARK_OAK_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DARK_OAK_LOG + amount: 16 + output: + door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DARK_OAK_FENCE_GATE + amount: 128 + make_cherry_fences: + production_time: 4s + name: Make Fences + type: PRODUCTION + input: + CHERRY_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHERRY_LOG + amount: 16 + output: + fence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHERRY_FENCE + amount: 128 + make_cherry_signs: + production_time: 4s + name: Make Signs + type: PRODUCTION + input: + CHERRY_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHERRY_LOG + amount: 24 + output: + sign: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHERRY_SIGN + amount: 128 + make_cherry_hanging_signs: + production_time: 4s + name: Make Spruce Hanging Signs + type: PRODUCTION + input: + chest: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHERRY_LOG + amount: 24 + iron_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 4 + output: + sign: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHERRY_HANGING_SIGN + amount: 128 + make_cherry_trapdoors: + production_time: 4s + name: Make Trap Doors + type: PRODUCTION + input: + CHERRY_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHERRY_LOG + amount: 32 + output: + trapdoor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHERRY_TRAPDOOR + amount: 128 + make_cherry_doors: + production_time: 4s + name: Make Doors + type: PRODUCTION + input: + CHERRY_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHERRY_LOG + amount: 24 + output: + door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHERRY_DOOR + amount: 128 + make_cherry_fence_gates: + production_time: 4s + name: Make Fence Gates + type: PRODUCTION + input: + CHERRY_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHERRY_LOG + amount: 16 + output: + door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHERRY_FENCE_GATE + amount: 128 + make_mangrove_fences: + production_time: 4s + name: Make Fences + type: PRODUCTION + input: + MANGROVE_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MANGROVE_LOG + amount: 16 + output: + fence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MANGROVE_FENCE + amount: 128 + make_mangrove_signs: + production_time: 4s + name: Make Signs + type: PRODUCTION + input: + MANGROVE_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MANGROVE_LOG + amount: 24 + output: + sign: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MANGROVE_SIGN + amount: 128 + make_mangrove_hanging_signs: + production_time: 4s + name: Make Spruce Hanging Signs + type: PRODUCTION + input: + chest: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MANGROVE_LOG + amount: 24 + iron_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 4 + output: + sign: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MANGROVE_HANGING_SIGN + amount: 128 + make_mangrove_trapdoors: + production_time: 4s + name: Make Trap Doors + type: PRODUCTION + input: + MANGROVE_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MANGROVE_LOG + amount: 32 + output: + trapdoor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MANGROVE_TRAPDOOR + amount: 128 + make_mangrove_doors: + production_time: 4s + name: Make Doors + type: PRODUCTION + input: + MANGROVE_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MANGROVE_LOG + amount: 24 + output: + door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MANGROVE_DOOR + amount: 128 + make_mangrove_fence_gates: + production_time: 4s + name: Make Fence Gates + type: PRODUCTION + input: + MANGROVE_LOG: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MANGROVE_LOG + amount: 16 + output: + door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MANGROVE_FENCE_GATE + amount: 128 + make_crimson_fences: + production_time: 4s + name: Make Fences + type: PRODUCTION + input: + CRIMSON_STEM: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CRIMSON_STEM + amount: 16 + output: + fence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CRIMSON_FENCE + amount: 128 + make_crimson_signs: + production_time: 4s + name: Make Signs + type: PRODUCTION + input: + CRIMSON_STEM: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CRIMSON_STEM + amount: 24 + output: + sign: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CRIMSON_SIGN + amount: 128 + make_crimson_hanging_signs: + production_time: 4s + name: Make Crimson Hanging Signs + type: PRODUCTION + input: + chest: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CRIMSON_STEM + amount: 24 + iron_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 4 + output: + sign: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CRIMSON_HANGING_SIGN + amount: 128 + make_crimson_trapdoors: + production_time: 4s + name: Make Trap Doors + type: PRODUCTION + input: + CRIMSON_STEM: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CRIMSON_STEM + amount: 32 + output: + trapdoor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CRIMSON_TRAPDOOR + amount: 128 + make_crimson_doors: + production_time: 4s + name: Make Doors + type: PRODUCTION + input: + CRIMSON_STEM: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CRIMSON_STEM + amount: 24 + output: + door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CRIMSON_DOOR + amount: 128 + make_crimson_fence_gates: + production_time: 4s + name: Make Fence Gates + type: PRODUCTION + input: + CRIMSON_STEM: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CRIMSON_STEM + amount: 16 + output: + door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CRIMSON_FENCE_GATE + amount: 128 + make_warped_fences: + production_time: 4s + name: Make Fences + type: PRODUCTION + input: + WARPED_STEM: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WARPED_STEM + amount: 16 + output: + fence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WARPED_FENCE + amount: 128 + make_warped_signs: + production_time: 4s + name: Make Signs + type: PRODUCTION + input: + WARPED_STEM: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WARPED_STEM + amount: 24 + output: + sign: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WARPED_SIGN + amount: 128 + make_warped_hanging_signs: + production_time: 4s + name: Make Warped Hanging Signs + type: PRODUCTION + input: + chest: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WARPED_STEM + amount: 24 + iron_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 4 + output: + sign: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WARPED_HANGING_SIGN + amount: 128 + make_warped_trapdoors: + production_time: 4s + name: Make Trap Doors + type: PRODUCTION + input: + WARPED_STEM: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WARPED_STEM + amount: 32 + output: + trapdoor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WARPED_TRAPDOOR + amount: 128 + make_warped_doors: + production_time: 4s + name: Make Doors + type: PRODUCTION + input: + WARPED_STEM: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WARPED_STEM + amount: 24 + output: + door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WARPED_DOOR + amount: 128 + make_warped_fence_gates: + production_time: 4s + name: Make Fence Gates + type: PRODUCTION + input: + WARPED_STEM: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WARPED_STEM + amount: 16 + output: + door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WARPED_FENCE_GATE + amount: 128 + make_rail: + production_time: 4s + name: Make Rails + type: PRODUCTION + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 128 + stick: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: STICK + amount: 16 + output: + rails: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RAIL + amount: 576 + make_powered_rail: + production_time: 4s + name: Make Powered Rails + type: PRODUCTION + input: + gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_INGOT + amount: 64 + redstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE + amount: 8 + output: + powered_rail: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: POWERED_RAIL + amount: 128 + make_detector_rail: + production_time: 4s + name: Make Detector Rails + type: PRODUCTION + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 18 + redstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE + amount: 2 + output: + detector_rail: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DETECTOR_RAIL + amount: 32 + make_activator_rail: + production_time: 4s + name: Make Activator Rails + type: PRODUCTION + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 18 + redstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE + amount: 2 + output: + activator_rail: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ACTIVATOR_RAIL + amount: 32 + make_minecart: + production_time: 4s + name: Make Minecarts + type: PRODUCTION + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 64 + output: + minecart: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MINECART + amount: 27 + make_rails_kit: + production_time: 4s + name: Make Rail Factory Repair Kit + type: PRODUCTION + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 6 + redstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE + amount: 1 + output: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Rail Factory Repair Kit + lore: + - One kit will repair a Rail Factory to full health. + repair_rails: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 6 + redstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE + amount: 1 + health_gained: 10000 + repair_rails_kit: + production_time: 4s + name: Repair Factory using Repair Kit + type: REPAIR + input: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Rail Factory Repair Kit + lore: + - One kit will repair a Rail Factory to full health. + health_gained: 10000 + make_saddle: + production_time: 4s + name: Make Saddles + type: PRODUCTION + input: + leather: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LEATHER + amount: 16 + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 3 + output: + saddle: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SADDLE + amount: 8 + make_harness: + production_time: 4s + name: Make Harnesses + type: PRODUCTION + input: + leather: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LEATHER + amount: 16 + glass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS + amount: 6 + wool: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHITE_WOOL + amount: 3 + output: + saddle: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHITE_HARNESS + amount: 8 + make_torch: + production_time: 4s + name: Make Redstone Torches + type: PRODUCTION + input: + stick: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: STICK + amount: 64 + redstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE + amount: 64 + output: + redstone_torch: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE_TORCH + amount: 128 + make_hopper: + production_time: 4s + name: Make Hoppers + type: PRODUCTION + input: + chests: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHEST + amount: 32 + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 192 + output: + hopper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: HOPPER + amount: 64 + make_comparator: + production_time: 4s + name: Make Comparators + type: PRODUCTION + input: + redstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE + amount: 32 + stone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: STONE + amount: 128 + quartz: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: QUARTZ + amount: 1 + output: + comparator: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COMPARATOR + amount: 32 + make_repeater: + production_time: 4s + name: Make Repeaters + type: PRODUCTION + input: + redstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE + amount: 128 + stone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: STONE + amount: 128 + output: + repeater: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REPEATER + amount: 96 + make_sculk_sensor: + production_time: 4s + name: Make Sculk sensor + type: PRODUCTION + input: + note_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NOTE_BLOCK + amount: 8 + redstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE + amount: 16 + experience_bottle: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EXPERIENCE_BOTTLE + amount: 32 + output: + sculk_sensor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SCULK_SENSOR + amount: 4 + make_redstone_kit: + production_time: 4s + name: Make Redstone Factory Repair Kit + type: PRODUCTION + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 6 + redstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE + amount: 25 + gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_INGOT + amount: 3 + output: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Redstone Factory Repair Kit + lore: + - One kit will repair a Redstone Factory to full health. + repair_redstone: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 6 + redstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE + amount: 25 + gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_INGOT + amount: 3 + health_gained: 10000 + repair_redstone_kit: + production_time: 4s + name: Repair Factory using Repair Kit + type: REPAIR + input: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Redstone Factory Repair Kit + lore: + - One kit will repair a Redstone Factory to full health. + health_gained: 10000 + make_iron_helm: + production_time: 4s + name: Make Iron Helmets + type: PRODUCTION + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 25 + output: + iron_helm: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_HELMET + amount: 15 + make_iron_chest: + production_time: 4s + name: Make Iron Chestplates + type: PRODUCTION + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 40 + output: + iron_chest: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_CHESTPLATE + amount: 15 + make_iron_legs: + production_time: 4s + name: Make Iron Leggings + type: PRODUCTION + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 35 + output: + iron_legs: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_LEGGINGS + amount: 15 + make_iron_boots: + production_time: 4s + name: Make Iron Boots + type: PRODUCTION + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 20 + output: + iron_boots: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_BOOTS + amount: 15 + make_iron_axe: + production_time: 4s + name: Make Iron Axe + type: PRODUCTION + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 15 + output: + iron_axe: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_AXE + amount: 30 + make_iron_sword: + production_time: 4s + name: Make Iron Sword + type: PRODUCTION + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 10 + output: + iron_sword: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_SWORD + amount: 15 + make_iron_pick: + production_time: 4s + name: Make Iron Pick + type: PRODUCTION + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 15 + output: + iron_pick: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_PICKAXE + amount: 15 + make_iron_hoe: + production_time: 4s + name: Make Iron Hoe + type: PRODUCTION + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 10 + output: + iron_hoe: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_HOE + amount: 30 + make_iron_shovel: + production_time: 4s + name: Make Iron Shovel + type: PRODUCTION + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 5 + output: + iron_shovel: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_SHOVEL + amount: 15 + repair_diamond_helm_factory: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 19 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 8 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + health_gained: 10000 + repair_diamond_chest_factory: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 32 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 12 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + health_gained: 10000 + repair_diamond_legs_factory: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 25 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 10 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + health_gained: 10000 + repair_diamond_boots_factory: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 16 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 6 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + health_gained: 10000 + repair_netherite_helm_factory: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + netherite_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_INGOT + amount: 2 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 8 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + health_gained: 10000 + repair_netherite_chest_factory: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + netherite_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_INGOT + amount: 4 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 12 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + health_gained: 10000 + repair_netherite_legs_factory: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + netherite_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_INGOT + amount: 3 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 10 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + health_gained: 10000 + repair_netherite_boots_factory: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + netherite_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_INGOT + amount: 2 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 6 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + health_gained: 10000 + repair_diamond_pick_factory: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 9 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 10 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + health_gained: 10000 + repair_diamond_sword_factory: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 8 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 10 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + health_gained: 10000 + repair_diamond_shovel_factory: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 5 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 3 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + health_gained: 10000 + repair_diamond_axe_factory: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 6 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 2 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + health_gained: 10000 + repair_diamond_hoe_factory: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 3 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 10 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + health_gained: 10000 + repair_netherite_sword_factory: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + netherite_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_INGOT + amount: 1 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 10 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + health_gained: 10000 + repair_netherite_pick_factory: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + netherite: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_INGOT + amount: 1 + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 3 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 3 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + health_gained: 10000 + repair_netherite_axe_factory: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + netherite: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_INGOT + amount: 1 + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 1 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 3 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + health_gained: 10000 + repair_netherite_shovel_factory: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + debris: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ANCIENT_DEBRIS + amount: 8 + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 1 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 3 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + health_gained: 10000 + repair_netherite_hoe_factory: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + debris: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ANCIENT_DEBRIS + amount: 8 + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 1 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 2 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + health_gained: 10000 + make_bastion_kit: + production_time: 4s + name: Make Bastion Factory Repair Kit + type: PRODUCTION + input: + casing: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_CHEST + amount: 4 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Casing + lore: + - Casing for bastion + gearbox: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CLOCK + amount: 4 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Gearbox + lore: + - Gear mechanism for bastion + radar: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COMPASS + amount: 3 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Radar + lore: + - Radar for detecting pearls + energizer: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD + amount: 3 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Energizer + lore: + - Power source for bastion + refractor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 3 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Refractor + lore: + - Refractor for bastion + bio_component: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MAGMA_CREAM + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Bio-Component + lore: + - Bio-Component for bastion + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 16 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + output: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Bastion Factory Repair Kit + lore: + - One kit will repair a Bastion Factory to full health. + repair_bastion: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + casing: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_CHEST + amount: 4 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Casing + lore: + - Casing for bastion + gearbox: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CLOCK + amount: 4 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Gearbox + lore: + - Gear mechanism for bastion + radar: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COMPASS + amount: 3 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Radar + lore: + - Radar for detecting pearls + energizer: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD + amount: 3 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Energizer + lore: + - Power source for bastion + refractor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 3 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Refractor + lore: + - Refractor for bastion + bio_component: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MAGMA_CREAM + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Bio-Component + lore: + - Bio-Component for bastion + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 16 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + health_gained: 10000 + repair_bastion_kit: + production_time: 4s + name: Repair Factory using Repair Kit + type: REPAIR + input: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Bastion Factory Repair Kit + lore: + - One kit will repair a Bastion Factory to full health. + health_gained: 10000 + make_iron_fence: + production_time: 4s + name: Make Iron Bars + type: PRODUCTION + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 24 + output: + iron_bars: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_BARS + amount: 256 + make_obsidian: + production_time: 8s + name: Cast Obsidian + type: PRODUCTION + input: + iron_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 6 + lava_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAVA_BUCKET + amount: 4 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + output: + obsidian: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: OBSIDIAN + amount: 128 + bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUCKET + amount: 2 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + make_chains: + production_time: 4s + name: Make Chains + type: PRODUCTION + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 20 + output: + chain: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHAIN + amount: 64 + make_lantern: + production_time: 4s + name: Make Lanterns + type: PRODUCTION + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 12 + torch: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TORCH + amount: 16 + output: + lantern: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LANTERN + amount: 64 + make_soul_lantern: + production_time: 4s + name: Make Soul Lanterns + type: PRODUCTION + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 12 + soul_torch: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SOUL_TORCH + amount: 16 + output: + soul_lantern: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SOUL_LANTERN + amount: 64 + make_lodestone: + production_time: 4s + name: Make Lodestone + type: PRODUCTION + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 5 + gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_INGOT + amount: 5 + output: + lodestone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LODESTONE + amount: 1 + make_anvil: + production_time: 4s + name: Make Anvils + type: PRODUCTION + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 256 + output: + anvil: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ANVIL + amount: 16 + make_bucket: + production_time: 4s + name: Make Buckets + type: PRODUCTION + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 96 + output: + bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUCKET + amount: 64 + make_iron_trapdoor: + production_time: 4s + name: Make Iron Trapdoors + type: PRODUCTION + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 48 + output: + iron_trapdoor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_TRAPDOOR + amount: 16 + make_iron_door: + production_time: 4s + name: Make Iron Doors + type: PRODUCTION + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 24 + output: + iron_door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_DOOR + amount: 18 + make_cauldron: + production_time: 4s + name: Make Cauldrons + type: PRODUCTION + forceInclude: true + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 32 + output: + cauldron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CAULDRON + amount: 10 + make_tripwire: + production_time: 4s + name: Make Tripwire Hooks + type: PRODUCTION + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 16 + output: + tripwire_hook: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TRIPWIRE_HOOK + amount: 64 + make_shears: + production_time: 4s + name: Make Shears + type: PRODUCTION + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 16 + output: + shears: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SHEARS + amount: 16 + make_forge_kit: + production_time: 4s + name: Make Iron Forge Repair Kit + type: PRODUCTION + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 12 + lava_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAVA_BUCKET + amount: 1 + output: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Iron Forge Repair Kit + lore: + - One kit will repair an Iron Forge to full health. + repair_forge: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 12 + lava_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAVA_BUCKET + amount: 1 + health_gained: 10000 + repair_forge_kit: + production_time: 4s + name: Repair Factory using Repair Kit + type: REPAIR + input: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Iron Forge Repair Kit + lore: + - One kit will repair an Iron Forge to full health. + health_gained: 10000 + make_lead: + production_time: 4s + name: Make Leads + type: PRODUCTION + input: + string: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: STRING + amount: 16 + slime: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SLIME_BALL + amount: 4 + output: + leads: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LEAD + amount: 12 + make_husbandry_kit: + production_time: 4s + name: Make Animal Husbandry Repair Kit + type: PRODUCTION + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_BLOCK + amount: 3 + slime: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SLIME_BALL + amount: 2 + leather: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LEATHER + amount: 3 + output: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Animal Husbandry Repair Kit + lore: + - One kit will repair an Animal Husbandry to full health. + repair_husbandry: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_BLOCK + amount: 3 + slime: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SLIME_BALL + amount: 2 + leather: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LEATHER + amount: 3 + health_gained: 10000 + repair_husbandry_kit: + production_time: 4s + name: Repair Factory using Repair Kit + type: REPAIR + input: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Animal Husbandry Repair Kit + lore: + - One kit will repair an Animal Husbandry to full health. + health_gained: 10000 + smelt_bricks: + production_time: 4s + name: Bake Bricks + type: PRODUCTION + input: + clay: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CLAY_BALL + amount: 128 + output: + bricks: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BRICKS + amount: 256 + smelt_hard_clay: + production_time: 4s + name: Make Hard Clay + type: PRODUCTION + input: + clay_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CLAY + amount: 128 + output: + terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TERRACOTTA + amount: 256 + smelt_sandstone: + forceInclude: true + production_time: 4s + name: Make Sandstone + type: PRODUCTION + input: + sand: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SAND + amount: 128 + output: + sandstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SANDSTONE + amount: 128 + smelt_smooth_sandstone: + forceInclude: true + production_time: 4s + name: Make Smooth Sandstone + type: PRODUCTION + input: + sandstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SANDSTONE + amount: 64 + output: + smooth_sandstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SMOOTH_SANDSTONE + amount: 64 + smelt_red_sandstone: + forceInclude: true + production_time: 4s + name: Make Red Sandstone + type: PRODUCTION + input: + red_sand: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RED_SAND + amount: 128 + output: + red_sandstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RED_SANDSTONE + amount: 128 + smelt_smooth_red_sandstone: + forceInclude: true + production_time: 4s + name: Make Smooth Red Sandstone + type: PRODUCTION + input: + red_sandstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RED_SANDSTONE + amount: 64 + output: + smooth_red_sandstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SMOOTH_RED_SANDSTONE + amount: 64 + smelt_smooth_quartz: + forceInclude: true + production_time: 4s + name: Make Smooth Quartz + type: PRODUCTION + input: + quartz_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: QUARTZ_BLOCK + amount: 64 + output: + smooth_quartz: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SMOOTH_QUARTZ + amount: 64 + repair_iron_tools_factory: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 6 + health_gained: 10000 + repair_iron_armor_factory: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 9 + health_gained: 10000 + make_refractor: + production_time: 4s + name: Make Refractor + type: PRODUCTION + input: + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 6 + quartz: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: QUARTZ + amount: 48 + lapis_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_BLOCK + amount: 32 + output: + refractor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 2 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Refractor + lore: + - Refractor for bastion + make_radar: + production_time: 4s + name: Make Radar + type: PRODUCTION + input: + raw_iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RAW_IRON + amount: 48 + redstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE + amount: 16 + raw_copper_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RAW_COPPER_BLOCK + amount: 42 + output: + radar: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COMPASS + amount: 8 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Radar + lore: + - Radar for detecting pearls + make_casing: + production_time: 4s + name: Make Casings + type: PRODUCTION + input: + chest: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHEST + amount: 64 + raw_iron_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RAW_IRON_BLOCK + amount: 5 + obsidian: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: OBSIDIAN + amount: 64 + output: + casing: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_CHEST + amount: 4 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Casing + lore: + - Casing for bastion + make_gearbox: + production_time: 4s + name: Make Gearbox + type: PRODUCTION + input: + raw_gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RAW_GOLD + amount: 24 + raw_iron_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RAW_IRON_BLOCK + amount: 5 + redstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE + amount: 32 + output: + gearbox: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CLOCK + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Gearbox + lore: + - Gear mechanism for bastion + make_energizer: + production_time: 4s + name: Make Energizer + type: PRODUCTION + input: + emerald: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD + amount: 6 + charcoal: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHARCOAL + amount: 32 + gunpowder: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GUNPOWDER + amount: 6 + output: + energizer: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Energizer + lore: + - Power source for bastion + make_bio_component: + production_time: 4s + name: Make Bio-Component + type: PRODUCTION + input: + slime: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SLIME_BALL + amount: 3 + ice: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ICE + amount: 32 + grass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRASS_BLOCK + amount: 16 + lava: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAVA_BUCKET + amount: 1 + output: + bio_component: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MAGMA_CREAM + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Bio-Component + lore: + - Bio-Component for bastion + bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUCKET + amount: 1 + make_bell: + forceInclude: true + production_time: 4s + name: Make Bell + type: PRODUCTION + input: + gold_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_INGOT + amount: 8 + wood: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHEST + amount: 1 + output: + bell: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BELL + amount: 1 + basic_xp_1: + production_time: 4s + name: Make Exp 1 + type: PRODUCTION + input: + glass_bottle: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS_BOTTLE + amount: 32 + beetroot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BEETROOT + amount: 512 + pumpkin: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PUMPKIN + amount: 128 + potato: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: POTATO + amount: 128 + coal: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COAL + amount: 16 + spruce_sapling: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SPRUCE_SAPLING + amount: 16 + rotten_flesh: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ROTTEN_FLESH + amount: 16 + output: + exp: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EXPERIENCE_BOTTLE + amount: 64 + basic_xp_2: + production_time: 4s + name: Make Exp 2 + type: PRODUCTION + input: + glass_bottle: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS_BOTTLE + amount: 32 + melon: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MELON + amount: 384 + cactus: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CACTUS + amount: 384 + raw_copper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RAW_COPPER + amount: 16 + birch_sapling: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BIRCH_SAPLING + amount: 16 + bone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BONE + amount: 16 + output: + exp: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EXPERIENCE_BOTTLE + amount: 64 + basic_xp_3: + production_time: 4s + name: Make Exp 3 + type: PRODUCTION + input: + glass_bottle: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS_BOTTLE + amount: 32 + wheat: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHEAT + amount: 512 + carrot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CARROT + amount: 256 + redstone_dust: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE + amount: 16 + oak_sapling: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: OAK_SAPLING + amount: 32 + spider_eye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SPIDER_EYE + amount: 8 + output: + exp: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EXPERIENCE_BOTTLE + amount: 64 + basic_xp_4: + production_time: 4s + name: Make Exp 4 + type: PRODUCTION + input: + glass_bottle: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS_BOTTLE + amount: 32 + sugar_cane: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SUGAR_CANE + amount: 512 + cocoa_beans: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COCOA_BEANS + amount: 128 + vine: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: VINE + amount: 128 + lapis_lazuli: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_LAZULI + amount: 16 + jungle_sapling: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: JUNGLE_SAPLING + amount: 16 + gunpowder: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GUNPOWDER + amount: 16 + output: + exp: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EXPERIENCE_BOTTLE + amount: 64 + basic_xp_5: + production_time: 4s + name: Make Exp 5 + type: PRODUCTION + input: + glass_bottle: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS_BOTTLE + amount: 32 + nether_wart: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHER_WART + amount: 384 + weeping_vines: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WEEPING_VINES + amount: 192 + twisting_vines: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TWISTING_VINES + amount: 192 + quartz: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: QUARTZ + amount: 16 + crimson_stem: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CRIMSON_STEM + amount: 256 + warped_stem: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WARPED_STEM + amount: 256 + blaze_rod: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLAZE_ROD + amount: 16 + output: + exp: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EXPERIENCE_BOTTLE + amount: 64 + wither_skull: + forceInclude: true + production_time: 2s + name: Forge Nether Star + type: PRODUCTION + input: + wither_skull: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WITHER_SKELETON_SKULL + amount: 3 + output: + nether_star: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHER_STAR + amount: 1 + make_basic_cauldron_kit: + production_time: 4s + name: Make Basic Cauldron Repair Kit + type: PRODUCTION + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 12 + gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_INGOT + amount: 3 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 5 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + output: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Basic Cauldron Repair Kit + lore: + - One kit will repair a Basic Cauldron to full health. + repair_basic_cauldron: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 12 + gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_INGOT + amount: 3 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 5 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + health_gained: 10000 + repair_basic_cauldron_kit: + production_time: 4s + name: Repair Factory using Repair Kit + type: REPAIR + input: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Basic Cauldron Repair Kit + lore: + - One kit will repair a Basic Cauldron to full health. + health_gained: 10000 + adv_xp_1: + production_time: 4s + name: Make Exp 1 + type: PRODUCTION + input: + potato: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: POTATO + amount: 256 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + carrot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CARROT + amount: 128 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + melon: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MELON + amount: 128 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + cocoa_beans: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COCOA_BEANS + amount: 128 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + kelp: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: KELP + amount: 64 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + red_mushroom: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RED_MUSHROOM + amount: 32 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + twitsing_vines: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TWISTING_VINES + amount: 64 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + nether_wart: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHER_WART + amount: 64 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 32 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + coal: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COAL + amount: 3 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + oak_sapling: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: OAK_SAPLING + amount: 32 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + bone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BONE + amount: 2 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + glass_bottle: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS_BOTTLE + amount: 128 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + output: + exp: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD_BLOCK + amount: 2 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + adv_xp_2: + production_time: 4s + name: Make Exp 2 + type: PRODUCTION + input: + cactus: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CACTUS + amount: 256 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + vine: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: VINE + amount: 128 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + pumpkin: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PUMPKIN + amount: 128 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + wheat: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHEAT + amount: 128 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + bamboo: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BAMBOO + amount: 64 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + brown_mushroom: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BROWN_MUSHROOM + amount: 32 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + weeping_vines: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WEEPING_VINES + amount: 64 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + nether_wart: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHER_WART + amount: 64 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 32 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + redstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE + amount: 3 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + spruce_sapling: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SPRUCE_SAPLING + amount: 16 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + spider_eye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SPIDER_EYE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + glass_bottle: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS_BOTTLE + amount: 128 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + output: + exp: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD_BLOCK + amount: 2 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + adv_xp_3: + production_time: 4s + name: Make Exp 3 + type: PRODUCTION + input: + carrot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CARROT + amount: 256 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + beetroot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BEETROOT + amount: 128 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + melon: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MELON + amount: 128 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + cocoa_beans: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COCOA_BEANS + amount: 128 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + sweet_berries: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SWEET_BERRIES + amount: 64 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + bamboo: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BAMBOO + amount: 64 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + twisting_vines: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TWISTING_VINES + amount: 64 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + crimson_stem: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CRIMSON_STEM + amount: 32 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 32 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + raw_copper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RAW_COPPER + amount: 3 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + birch_sapling: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BIRCH_SAPLING + amount: 32 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + gunpowder: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GUNPOWDER + amount: 2 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + glass_bottle: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS_BOTTLE + amount: 128 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + output: + exp: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD_BLOCK + amount: 2 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + adv_xp_4: + production_time: 4s + name: Make Exp 4 + type: PRODUCTION + input: + sugar_cane: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SUGAR_CANE + amount: 256 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + cactus: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CACTUS + amount: 128 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + wheat: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHEAT + amount: 128 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + potato: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: POTATO + amount: 128 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + sweet_berries: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SWEET_BERRIES + amount: 64 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + kelp: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: KELP + amount: 64 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + weeping_vines: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WEEPING_VINES + amount: 64 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + warped_stem: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WARPED_STEM + amount: 32 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 32 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + lapis_lazuli: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_LAZULI + amount: 3 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + jungle_sapling: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: JUNGLE_SAPLING + amount: 16 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + rotten_flesh: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ROTTEN_FLESH + amount: 2 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + glass_bottle: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLASS_BOTTLE + amount: 128 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + output: + exp: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD_BLOCK + amount: 2 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Compacted Item + upgrade_to_advanced_cauldron: + production_time: 4s + name: Upgrade to Advanced Cauldron + type: UPGRADE + input: + emerald_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD_BLOCK + amount: 128 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 128 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + wither_skull: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WITHER_SKELETON_SKULL + amount: 1 + factory: Advanced Cauldron + make_advanced_cauldron_kit: + production_time: 4s + name: Make Advanced Cauldron Repair Kit + type: PRODUCTION + input: + emerald_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD_BLOCK + amount: 16 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 16 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + output: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Advanced Cauldron Repair Kit + lore: + - One kit will repair a Advanced Cauldron to full health. + repair_advanced_cauldron: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + emerald_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD_BLOCK + amount: 16 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 16 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + health_gained: 10000 + repair_advanced_cauldron_kit: + production_time: 4s + name: Repair Factory using Repair Kit + type: REPAIR + input: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Advanced Cauldron Repair Kit + lore: + - One kit will repair a Advanced Cauldron to full health. + health_gained: 10000 + compact: + production_time: 1s + fuel_consumption_intervall: 4s + name: Compact + type: COMPACT + input: + crate: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHEST + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Crate + compact_lore: Compacted Item + excluded_materials: + - BOOK + decompact: + production_time: 1s + fuel_consumption_intervall: 4s + name: Decompact + type: DECOMPACT + input: + compact_lore: Compacted Item + repair_compactor: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + iron_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_BLOCK + amount: 4 + redstone_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE_BLOCK + amount: 2 + piston: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PISTON + amount: 6 + crate: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHEST + amount: 3 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Crate + health_gained: 10000 + repair_compactor_kit: + production_time: 4s + name: Repair Factory using Repair Kit + type: REPAIR + input: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Compact Repair Kit + lore: + - One kit will repair a compactor to full health. + health_gained: 10000 + make_compact_repair_kit: + production_time: 4s + name: Make Compact Repair Kit + type: PRODUCTION + input: + iron_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_BLOCK + amount: 4 + redstone_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE_BLOCK + amount: 2 + piston: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PISTON + amount: 6 + crate: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHEST + amount: 3 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Crate + output: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Compact Repair Kit + lore: + - One kit will repair a compactor to full health. + make_crates: + production_time: 4s + name: Make Crates + type: PRODUCTION + input: + chest: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHEST + amount: 128 + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 3 + output: + crate: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHEST + amount: 128 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Crate + bake_cookies: + forceInclude: true + type: PRODUCTION + name: Bake Cookies + production_time: 32s + fuel_consumption_intervall: 2s + input: + wheat: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHEAT + amount: 128 + cocoa: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COCOA_BEANS + amount: 64 + output: + cookie: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COOKIE + amount: 1024 + bake_pie: + forceInclude: true + type: PRODUCTION + name: Bake Pumpkin Pie + production_time: 32s + fuel_consumption_intervall: 2s + input: + sugar: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SUGAR + amount: 192 + egg: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EGG + amount: 96 + pumpkin: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PUMPKIN + amount: 192 + output: + pie: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PUMPKIN_PIE + amount: 256 + pack_ice: + forceInclude: true + type: PRODUCTION + name: Pack Ice + production_time: 4s + input: + ice: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ICE + amount: 512 + output: + packed_ice: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PACKED_ICE + amount: 512 + pack_blue_ice: + forceInclude: true + type: PRODUCTION + name: Pack Blue Ice + production_time: 4s + input: + packed_ice: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PACKED_ICE + amount: 512 + output: + blue_ice: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLUE_ICE + amount: 64 + bind_books: + type: PRODUCTION + name: Bind Books + production_time: 4s + input: + paper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 18 + leather: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LEATHER + amount: 6 + output: + books: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BOOK + amount: 12 + bind_writable_books: + type: PRODUCTION + name: Bind Writable Books + production_time: 4s + input: + paper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 18 + leather: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LEATHER + amount: 6 + ink: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: INK_SAC + amount: 6 + output: + books: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WRITABLE_BOOK + amount: 12 + craft_printing_plate: + type: PRINTINGPLATE + name: Craft Printing Plate + production_time: 4s + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 1 + output: + plate: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: OAK_TRAPDOOR + amount: 1 + craft_printing_plate_json: + type: PRINTINGPLATEJSON + name: Craft JSON Printing Plate + production_time: 4s + input: + iron: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 1 + output: + plate: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: OAK_TRAPDOOR + amount: 1 + fabricate_netherite_upgrade: + type: PRODUCTION + name: Fabricate Netherite Upgrade + production_time: 4s + input: + netherrack: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERRACK + amount: 42 + torchflower: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TORCHFLOWER + amount: 6 + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 7 + output: + netherite_upgrade_smithing_template: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: NETHERITE_UPGRADE_SMITHING_TEMPLATE + amount: 1 + fabricate_sentry_trim: + type: PRODUCTION + name: Fabricate Sentry Trim + production_time: 4s + input: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 2 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Plains Trim Fragment + lore: + - Used to produce trims in the Research Station + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 168 + iron_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_BLOCK + amount: 64 + dark_oak_log: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DARK_OAK_LOG + amount: 64 + output: + trim: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SENTRY_ARMOR_TRIM_SMITHING_TEMPLATE + amount: 32 + fabricate_vex_trim: + type: PRODUCTION + name: Fabricate Vex Trim + production_time: 4s + input: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 2 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Plains Trim Fragment + lore: + - Used to produce trims in the Research Station + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 168 + allium: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ALLIUM + amount: 64 + dark_oak_sapling: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DARK_OAK_SAPLING + amount: 64 + output: + trim: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: VEX_ARMOR_TRIM_SMITHING_TEMPLATE + amount: 32 + fabricate_wild_trim: + type: PRODUCTION + name: Fabricate Wild Trim + production_time: 4s + input: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 2 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Plains Trim Fragment + lore: + - Used to produce trims in the Research Station + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 168 + mossy_cobblestone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MOSSY_COBBLESTONE + amount: 64 + bamboo: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BAMBOO + amount: 64 + output: + trim: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WILD_ARMOR_TRIM_SMITHING_TEMPLATE + amount: 32 + fabricate_coast_trim: + type: PRODUCTION + name: Fabricate Coast Trim + production_time: 4s + input: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 2 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Relic Trim Fragment + lore: + - Used to produce trims in the Research Station + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 168 + poisonous_potato: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: POISONOUS_POTATO + amount: 64 + leather: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LEATHER + amount: 64 + output: + trim: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COAST_ARMOR_TRIM_SMITHING_TEMPLATE + amount: 32 + fabricate_dune_trim: + type: PRODUCTION + name: Fabricate Dune Trim + production_time: 4s + input: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 2 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Arid Trim Fragment + lore: + - Used to produce trims in the Research Station + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 168 + string: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: STRING + amount: 64 + chiseled_red_sandstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHISELED_RED_SANDSTONE + amount: 64 + output: + trim: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DUNE_ARMOR_TRIM_SMITHING_TEMPLATE + amount: 32 + fabricate_wayfinder_trim: + type: PRODUCTION + name: Fabricate Wayfinder Trim + production_time: 4s + input: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 2 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Forest Trim Fragment + lore: + - Used to produce trims in the Research Station + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 168 + lead: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LEAD + amount: 64 + terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TERRACOTTA + amount: 64 + output: + trim: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WAYFINDER_ARMOR_TRIM_SMITHING_TEMPLATE + amount: 32 + fabricate_raiser_trim: + type: PRODUCTION + name: Fabricate Raiser Trim + production_time: 4s + input: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 2 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Forest Trim Fragment + lore: + - Used to produce trims in the Research Station + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 168 + lead: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LEAD + amount: 64 + packed_mud: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PACKED_MUD + amount: 64 + output: + trim: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RAISER_ARMOR_TRIM_SMITHING_TEMPLATE + amount: 32 + fabricate_shaper_trim: + type: PRODUCTION + name: Fabricate Shaper Trim + production_time: 4s + input: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 2 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Forest Trim Fragment + lore: + - Used to produce trims in the Research Station + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 168 + lead: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LEAD + amount: 64 + coarse_dirt: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COARSE_DIRT + amount: 64 + output: + trim: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SHAPER_ARMOR_TRIM_SMITHING_TEMPLATE + amount: 32 + fabricate_host_trim: + type: PRODUCTION + name: Fabricate Host Trim + production_time: 4s + input: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 2 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Forest Trim Fragment + lore: + - Used to produce trims in the Research Station + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 168 + lead: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LEAD + amount: 64 + flower_pot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: FLOWER_POT + amount: 64 + output: + trim: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: HOST_ARMOR_TRIM_SMITHING_TEMPLATE + amount: 32 + fabricate_ward_trim: + type: PRODUCTION + name: Fabricate Ward Trim + production_time: 4s + input: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 2 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Relic Trim Fragment + lore: + - Used to produce trims in the Research Station + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 168 + amethyst_shard: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: AMETHYST_SHARD + amount: 64 + compass: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COMPASS + amount: 64 + output: + trim: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WARD_ARMOR_TRIM_SMITHING_TEMPLATE + amount: 32 + fabricate_silence_trim: + type: PRODUCTION + name: Fabricate Silence Trim + production_time: 4s + input: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 2 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Relic Trim Fragment + lore: + - Used to produce trims in the Research Station + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 168 + sculk: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SCULK + amount: 64 + glow_berries: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLOW_BERRIES + amount: 64 + output: + trim: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SILENCE_ARMOR_TRIM_SMITHING_TEMPLATE + amount: 32 + fabricate_tide_trim: + type: PRODUCTION + name: Fabricate Tide Trim + production_time: 4s + input: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 2 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Barren Trim Fragment + lore: + - Used to produce trims in the Research Station + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 168 + wet_sponge: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WET_SPONGE + amount: 1 + ink_sak: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: INK_SAC + amount: 64 + output: + trim: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TIDE_ARMOR_TRIM_SMITHING_TEMPLATE + amount: 32 + fabricate_snout_trim: + type: PRODUCTION + name: Fabricate Snout Trim + production_time: 4s + input: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 2 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Arid Trim Fragment + lore: + - Used to produce trims in the Research Station + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 168 + blackstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLACKSTONE + amount: 64 + magma_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MAGMA_BLOCK + amount: 64 + output: + trim: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SNOUT_ARMOR_TRIM_SMITHING_TEMPLATE + amount: 32 + fabricate_rib_trim: + type: PRODUCTION + name: Fabricate Rib Trim + production_time: 4s + input: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 2 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Arid Trim Fragment + lore: + - Used to produce trims in the Research Station + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 168 + blaze_rod: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLAZE_ROD + amount: 64 + soul_sand: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SOUL_SAND + amount: 64 + output: + trim: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RIB_ARMOR_TRIM_SMITHING_TEMPLATE + amount: 32 + fabricate_eye_trim: + type: PRODUCTION + name: Fabricate Eye Trim + production_time: 4s + input: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 2 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Barren Trim Fragment + lore: + - Used to produce trims in the Research Station + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 168 + cobweb: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COBWEB + amount: 64 + apple: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: APPLE + amount: 64 + output: + trim: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EYE_ARMOR_TRIM_SMITHING_TEMPLATE + amount: 32 + fabricate_spire_trim: + type: PRODUCTION + name: Fabricate Spire Trim + production_time: 4s + input: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 2 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Barren Trim Fragment + lore: + - Used to produce trims in the Research Station + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 168 + beetroot_seeds: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BEETROOT_SEEDS + amount: 64 + ender_chest: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_CHEST + amount: 64 + output: + trim: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SPIRE_ARMOR_TRIM_SMITHING_TEMPLATE + amount: 32 + fabricate_bolt_trim: + type: PRODUCTION + name: Fabricate Bolt Trim + production_time: 4s + input: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 2 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Tricky Trim Fragment + lore: + - Used to produce trims in the Research Station + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 168 + honey_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: HONEY_BLOCK + amount: 64 + copper_bulb: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COPPER_BULB + amount: 64 + output: + trim: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BOLT_ARMOR_TRIM_SMITHING_TEMPLATE + amount: 32 + fabricate_flow_trim: + type: PRODUCTION + name: Fabricate Flow Trim + production_time: 4s + input: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 2 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Tricky Trim Fragment + lore: + - Used to produce trims in the Research Station + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 168 + slime_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SLIME_BLOCK + amount: 64 + armadillo_scute: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ARMADILLO_SCUTE + amount: 64 + output: + trim: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: FLOW_ARMOR_TRIM_SMITHING_TEMPLATE + amount: 32 + wordbank_item: + type: WORDBANK + name: Generate item name + production_time: 4s + fuel_consumption_intervall: 4s + word_count: 3 + seed: "${CIV_WORDBANK_SEED}" + colors: + - YELLOW + - LIGHT_PURPLE + - BLUE + - RED + - GREEN + - AQUA + - WHITE + - DARK_GREEN + - GOLD + - DARK_AQUA + - GRAY + path: words.txt + print_book: + type: PRINTBOOK + name: Print Book + production_time: 4s + outputamount: 6 + input: + paper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 18 + ink: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: INK_SAC + amount: 1 + printingplate: + plate: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: OAK_TRAPDOOR + amount: 1 + crack_easter_egg: + type: RANDOM + name: Crack Easter Egg + production_time: 1s + fuel_consumption_intervall: 4s + input: + easteregg: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EGG + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: §dEaster Egg + lore: + - Crack it open for a surprise! + outputs: + #Food--- 60% + egg: + chance: 0.15 + egg: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EGG + amount: 8 + carrot: + chance: 0.15 + carrot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CARROT + amount: 16 + apple: + chance: 0.15 + apple: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: APPLE + amount: 8 + bread: + chance: 0.15 + bread: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BREAD + amount: 8 + #Good Loot--- 30% + ironingot: + chance: 0.0375 + ironingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 2 + goldingot: + chance: 0.0375 + goldingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_INGOT + amount: 2 + copperblock: + chance: 0.0375 + copperblock: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COPPER_BLOCK + amount: 1 + rabbitfoot: + chance: 0.0375 + rabbitfoot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RABBIT_FOOT + amount: 1 + turtleegg: + chance: 0.0375 + turtleegg: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TURTLE_EGG + amount: 1 + rabbitspawnegg: + chance: 0.0375 + rabbitspawnegg: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RABBIT_SPAWN_EGG + amount: 1 + goldencarrot: + chance: 0.0375 + goldencarrot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_CARROT + amount: 16 + goldenapple: + chance: 0.0375 + goldenapple: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_APPLE + amount: 4 + #Unique--- 10% + recipe1: + chance: 0.01 + recipe1: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: §dEaster Bread Recipe + lore: + - Milk + - Yeast + - Salt + - Egg + - Butter + - Flour + recipe2: + chance: 0.01 + recipe2: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: §dCandied Carrots Recipe + lore: + - Carrots + - Sugar + - Salt + - Black Pepper + - Butter + recipe3: + chance: 0.01 + recipe3: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: §dDyed Eggs Recipe + lore: + - Egg + - Pink dye + recipe4: + chance: 0.01 + recipe4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: §dCarrot Cake Recipe + lore: + - Egg + - Olive Oil + - Sugar + - Vanilla extract + - Flour + - Cinnamon + - Salt + - Carrot + - Walnuts + recipe5: + chance: 0.01 + recipe5: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: §dDeviled Eggs + lore: + - Egg + - Mayonnaise + - Mustard + - Paprika + - Salt + - Pepper + recipe6: + chance: 0.01 + recipe6: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: §dEggnog Recipe + lore: + - Egg + - Sugar + - Milk + - Cloves + - Cinnamon + - Nutmeg + - Vanilla Extract + - Rum + recipe7: + chance: 0.01 + recipe7: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: §dAdvocaat Recipe + lore: + - Egg + - Sugar + - Salt + - Vanilla Extract + - Vodka + rabbitpunch: + chance: 0.01 + rabbitkick: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RABBIT_FOOT + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Rabbit Kick! + enchants: + knockback: 2 + diamond: + chance: 0.01 + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 1 + emerald: + chance: 0.01 + emerald: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD + amount: 1 + print_note: + type: PRINTNOTE + name: Print Note + production_time: 4s + securenote: false + title: Pamphlet + outputamount: 3 + input: + paper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 5 + printingplate: + plate: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: OAK_TRAPDOOR + amount: 1 + print_secure_note: + type: PRINTNOTE + name: Print Secure Note + production_time: 4s + securenote: true + title: Secure Note + outputamount: 3 + input: + paper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 5 + printingplate: + plate: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: OAK_TRAPDOOR + amount: 1 + craft_globe_banner_pattern: + type: PRODUCTION + name: Craft Globe Banner Pattern + production_time: 4s + input: + paper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 1 + emerald_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD_BLOCK + amount: 1 + villager_spawn_egg: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: VILLAGER_SPAWN_EGG + amount: 1 + output: + globe_banner_pattern: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GLOBE_BANNER_PATTERN + amount: 1 + villager_spawn_egg: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: VILLAGER_SPAWN_EGG + amount: 1 + craft_piglin_banner_pattern: + type: PRODUCTION + name: Craft Piglin Banner Pattern + production_time: 4s + input: + paper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 1 + gold_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_BLOCK + amount: 1 + chiseled_polished_blackstone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHISELED_POLISHED_BLACKSTONE + amount: 64 + output: + piglin_banner_pattern: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PIGLIN_BANNER_PATTERN + amount: 1 + craft_creeper_banner_pattern: + type: PRODUCTION + name: Craft Creeper Banner Pattern + production_time: 4s + input: + paper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 1 + creeper_spawn_egg: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CREEPER_SPAWN_EGG + amount: 2 + trident: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TRIDENT + amount: 1 + water_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WATER_BUCKET + amount: 1 + output: + creeper_banner_pattern: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CREEPER_BANNER_PATTERN + amount: 1 + trident: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TRIDENT + amount: 1 + bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUCKET + amount: 1 + craft_thing_banner_pattern: + type: PRODUCTION + name: Craft Thing Banner Pattern + production_time: 4s + input: + paper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 1 + gold_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_BLOCK + amount: 8 + apple: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: APPLE + amount: 1 + output: + thing_banner_pattern: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MOJANG_BANNER_PATTERN + amount: 1 + craft_guster_banner_pattern: + type: PRODUCTION + name: Craft Guster Banner Pattern + production_time: 4s + input: + paper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 1 + armadillo_spawn_egg: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ARMADILLO_SPAWN_EGG + amount: 1 + pitcher_plant: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PITCHER_PLANT + amount: 8 + output: + guster_banner_pattern: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GUSTER_BANNER_PATTERN + amount: 1 + craft_flow_banner_pattern: + type: PRODUCTION + name: Craft Flow Banner Pattern + production_time: 4s + input: + paper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 1 + blaze_rod: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLAZE_ROD + amount: 8 + flow_template: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: FLOW_ARMOR_TRIM_SMITHING_TEMPLATE + amount: 1 + output: + flow_banner_pattern: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: FLOW_BANNER_PATTERN + amount: 1 + make_printer_kit: + production_time: 4s + name: Make Printer Factory Repair Kit + type: PRODUCTION + input: + ink: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: INK_SAC + amount: 3 + paper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 6 + output: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Printer Factory Repair Kit + lore: + - One kit will repair a Printer Factory to full health. + repair_printer: + forceInclude: true + type: REPAIR + name: Repair Printer + production_time: 4s + input: + ink: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: INK_SAC + amount: 3 + paper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 6 + health_gained: 10000 + repair_printer_kit: + production_time: 4s + name: Repair Factory using Repair Kit + type: REPAIR + input: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Printer Factory Repair Kit + lore: + - One kit will repair a Printer Factory to full health. + health_gained: 10000 + make_station_kit: + production_time: 4s + name: Make Research Station Repair Kit + type: PRODUCTION + input: + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 8 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + paper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 16 + ink: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: INK_SAC + amount: 2 + output: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Research Station Repair Kit + lore: + - One kit will repair a Research Station to full health. + repair_station: + forceInclude: true + type: REPAIR + name: Repair Station + production_time: 4s + fuel_consumption_intervall: 4s + input: + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 8 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + paper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 16 + ink: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: INK_SAC + amount: 2 + health_gained: 10000 + repair_station_kit: + production_time: 4s + name: Repair Factory using Repair Kit + type: REPAIR + input: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Research Station Repair Kit + lore: + - One kit will repair a Research Station to full health. + health_gained: 10000 + wax_copper_block: + production_time: 4s + name: Wax Copper Block + type: PRODUCTION + input: + copper_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COPPER_BLOCK + amount: 64 + honeycomb: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: HONEYCOMB + amount: 16 + output: + waxed_copper_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WAXED_COPPER_BLOCK + amount: 64 + wax_exposed_copper: + production_time: 4s + name: Wax Exposed Copper + type: PRODUCTION + input: + exposed_copper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EXPOSED_COPPER + amount: 64 + honeycomb: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: HONEYCOMB + amount: 16 + output: + waxed_exposed_copper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WAXED_EXPOSED_COPPER + amount: 64 + wax_weathered_copper: + production_time: 4s + name: Wax Weathered Copper + type: PRODUCTION + input: + weathered_copper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WEATHERED_COPPER + amount: 64 + honeycomb: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: HONEYCOMB + amount: 16 + output: + waxed_weathered_copper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WAXED_WEATHERED_COPPER + amount: 64 + wax_oxidized_copper: + production_time: 4s + name: Wax Oxidized Copper + type: PRODUCTION + input: + oxidized_copper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: OXIDIZED_COPPER + amount: 64 + honeycomb: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: HONEYCOMB + amount: 16 + output: + waxed_oxidized_copper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WAXED_OXIDIZED_COPPER + amount: 64 + weather_copper_block: + production_time: 4s + fuel_consumption_intervall: 2s + name: Weather Copper Block + type: PRODUCTION + input: + copper_Block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COPPER_BLOCK + amount: 64 + water_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WATER_BUCKET + amount: 1 + output: + exposed_copper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EXPOSED_COPPER + amount: 64 + bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUCKET + amount: 1 + weather_exposed_copper: + production_time: 6s + fuel_consumption_intervall: 2s + name: Weather Exposed Copper + type: PRODUCTION + input: + exposed_copper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EXPOSED_COPPER + amount: 64 + water_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WATER_BUCKET + amount: 1 + output: + weathered_copper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WEATHERED_COPPER + amount: 64 + bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUCKET + amount: 1 + weather_weathered_copper: + production_time: 8s + fuel_consumption_intervall: 2s + name: Weather Weathered Copper + type: PRODUCTION + input: + weathered_copper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WEATHERED_COPPER + amount: 64 + water_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WATER_BUCKET + amount: 1 + output: + oxidized_copper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: OXIDIZED_COPPER + amount: 64 + bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUCKET + amount: 1 + make_copper_doors: + production_time: 4s + name: Make Copper Doors + type: PRODUCTION + input: + copper_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COPPER_BLOCK + amount: 12 + output: + copper_door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COPPER_DOOR + amount: 80 + wax_copper_doors: + production_time: 4s + name: Wax Copper Doors + type: PRODUCTION + input: + copper_door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COPPER_DOOR + amount: 64 + honeycomb: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: HONEYCOMB + amount: 16 + output: + waxed_copper_door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WAXED_COPPER_DOOR + amount: 64 + wax_exposed_copper_doors: + production_time: 4s + name: Wax Exposed Copper Doors + type: PRODUCTION + input: + exposed_copper_door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EXPOSED_COPPER_DOOR + amount: 64 + honeycomb: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: HONEYCOMB + amount: 16 + output: + waxed_exposed_copper_door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WAXED_EXPOSED_COPPER_DOOR + amount: 64 + wax_weathered_copper_doors: + production_time: 4s + name: Wax Weathered Copper Doors + type: PRODUCTION + input: + weathered_copper_door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WEATHERED_COPPER_DOOR + amount: 64 + honeycomb: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: HONEYCOMB + amount: 16 + output: + waxed_weathered_copper_door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WAXED_WEATHERED_COPPER_DOOR + amount: 64 + wax_oxidized_copper_doors: + production_time: 4s + name: Wax Oxidized Copper Doors + type: PRODUCTION + input: + oxidized_copper_door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: OXIDIZED_COPPER_DOOR + amount: 64 + honeycomb: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: HONEYCOMB + amount: 16 + output: + waxed_oxidized_copper_door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WAXED_OXIDIZED_COPPER_DOOR + amount: 64 + weather_copper_doors: + production_time: 4s + fuel_consumption_intervall: 2s + name: Weather Copper Doors + type: PRODUCTION + input: + copper_door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COPPER_DOOR + amount: 64 + water_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WATER_BUCKET + amount: 1 + output: + exposed_copper_door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EXPOSED_COPPER_DOOR + amount: 64 + bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUCKET + amount: 1 + weather_exposed_copper_doors: + production_time: 6s + fuel_consumption_intervall: 2s + name: Weather Exposed Copper Doors + type: PRODUCTION + input: + exposed_copper_door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EXPOSED_COPPER_DOOR + amount: 64 + water_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WATER_BUCKET + amount: 1 + output: + weathered_copper_door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WEATHERED_COPPER_DOOR + amount: 64 + bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUCKET + amount: 1 + weather_weathered_copper_doors: + production_time: 8s + fuel_consumption_intervall: 2s + name: Weather Weathered Copper Doors + type: PRODUCTION + input: + weathered_copper_door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WEATHERED_COPPER_DOOR + amount: 64 + water_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WATER_BUCKET + amount: 1 + output: + oxidized_copper_door: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: OXIDIZED_COPPER_DOOR + amount: 64 + bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUCKET + amount: 1 + make_copper_trapdoors: + production_time: 4s + name: Make Copper Trap Doors + type: PRODUCTION + input: + copper_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COPPER_BLOCK + amount: 16 + output: + copper_trapdoor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COPPER_TRAPDOOR + amount: 48 + wax_copper_trapdoors: + production_time: 4s + name: Wax Copper Trap Doors + type: PRODUCTION + input: + copper_trapdoor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COPPER_TRAPDOOR + amount: 64 + honeycomb: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: HONEYCOMB + amount: 16 + output: + waxed_copper_trapdoor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WAXED_COPPER_TRAPDOOR + amount: 64 + wax_exposed_copper_trapdoors: + production_time: 4s + name: Wax Exposed Copper Trap Doors + type: PRODUCTION + input: + exposed_copper_trapdoor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EXPOSED_COPPER_TRAPDOOR + amount: 64 + honeycomb: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: HONEYCOMB + amount: 16 + output: + waxed_exposed_copper_trapdoor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WAXED_EXPOSED_COPPER_TRAPDOOR + amount: 64 + wax_weathered_copper_trapdoors: + production_time: 4s + name: Wax Weathered Copper Trap Doors + type: PRODUCTION + input: + weathered_copper_trapdoor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WEATHERED_COPPER_TRAPDOOR + amount: 64 + honeycomb: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: HONEYCOMB + amount: 16 + output: + waxed_weathered_copper_trapdoor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WAXED_WEATHERED_COPPER_TRAPDOOR + amount: 64 + wax_oxidized_copper_trapdoors: + production_time: 4s + name: Wax Oxidized Copper Trap Doors + type: PRODUCTION + input: + oxidized_copper_trapdoor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: OXIDIZED_COPPER_TRAPDOOR + amount: 64 + honeycomb: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: HONEYCOMB + amount: 16 + output: + waxed_oxidized_copper_trapdoor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WAXED_OXIDIZED_COPPER_TRAPDOOR + amount: 64 + weather_copper_trapdoors: + production_time: 4s + fuel_consumption_intervall: 2s + name: Weather Copper Trap Doors + type: PRODUCTION + input: + copper_trapdoor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COPPER_TRAPDOOR + amount: 64 + water_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WATER_BUCKET + amount: 1 + output: + exposed_copper_trapdoor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EXPOSED_COPPER_TRAPDOOR + amount: 64 + bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUCKET + amount: 1 + weather_exposed_copper_trapdoors: + production_time: 6s + fuel_consumption_intervall: 2s + name: Weather Exposed Copper Trap Doors + type: PRODUCTION + input: + exposed_copper_trapdoor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EXPOSED_COPPER_TRAPDOOR + amount: 64 + water_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WATER_BUCKET + amount: 1 + output: + weathered_copper_trapdoor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WEATHERED_COPPER_TRAPDOOR + amount: 64 + bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUCKET + amount: 1 + weather_weathered_copper_trapdoors: + production_time: 8s + fuel_consumption_intervall: 2s + name: Weather Weathered Copper Trap Doors + type: PRODUCTION + input: + weathered_copper_trapdoor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WEATHERED_COPPER_TRAPDOOR + amount: 64 + water_bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WATER_BUCKET + amount: 1 + output: + oxidized_copper_trapdoor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: OXIDIZED_COPPER_TRAPDOOR + amount: 64 + bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUCKET + amount: 1 + make_copper_workshop_kit: + production_time: 4s + name: Make Copper Workshop Repair Kit + type: PRODUCTION + input: + copper_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COPPER_BLOCK + amount: 64 + honeycomb: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: HONEYCOMB + amount: 16 + output: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Copper Workshop Repair Kit + lore: + - One kit will repair a Copper Workshop to full health. + repair_copper_workshop: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + copper_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COPPER_BLOCK + amount: 64 + honeycomb: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: HONEYCOMB + amount: 16 + health_gained: 10000 + repair_copper_workshop_kit: + production_time: 4s + name: Repair Factory using Repair Kit + type: REPAIR + input: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Copper Workshop Repair Kit + lore: + - One kit will repair a Copper Workshop to full health. + health_gained: 10000 + crack_fossil: + type: RANDOM + name: Crack Fossil + production_time: 1s + fuel_consumption_intervall: 4s + input: + fossil: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PRISMARINE_SHARD + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: §3Fossil + lore: + - Crack me in a factory for a prize! + outputs: + # Trash - 70% of total (0.175 each) + cobblestone: + chance: 0.175 + cobblestone: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COBBLESTONE + amount: 1 + sand: + chance: 0.175 + sand: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SAND + amount: 1 + gravel: + chance: 0.175 + gravel: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GRAVEL + amount: 1 + terracotta: + chance: 0.175 + terracotta: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TERRACOTTA + amount: 1 + # Spawn eggs - 2% of total (0.00045454545 each) + vindicator: + chance: 0.00045454545 + vindicator: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: VINDICATOR_SPAWN_EGG + amount: 1 + entity_data: + id: "minecraft:vindication_illager" + vex: + chance: 0.00045454545 + vex: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: VEX_SPAWN_EGG + amount: 1 + entity_data: + id: "minecraft:vex" + silverfish: + chance: 0.00045454545 + silverfish: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SILVERFISH_SPAWN_EGG + amount: 1 + entity_data: + id: "minecraft:silverfish" + endermite: + chance: 0.00045454545 + endermite: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDERMITE_SPAWN_EGG + amount: 1 + entity_data: + id: "minecraft:endermite" + zombiehorse: + chance: 0.00045454545 + zombiehorse: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ZOMBIE_HORSE_SPAWN_EGG + amount: 1 + entity_data: + id: "minecraft:zombie_horse" + skeletonhorse: + chance: 0.00045454545 + skeletonhorse: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SKELETON_HORSE_SPAWN_EGG + amount: 1 + entity_data: + id: "minecraft:skeleton_horse" + donkey: + chance: 0.00045454545 + donkey: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DONKEY_SPAWN_EGG + amount: 1 + entity_data: + id: "minecraft:donkey" + polarbear: + chance: 0.00045454545 + polarbear: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: POLAR_BEAR_SPAWN_EGG + amount: 1 + entity_data: + id: "minecraft:polar_bear" + parrot: + chance: 0.00045454545 + parrot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PARROT_SPAWN_EGG + amount: 1 + entity_data: + id: "minecraft:parrot" + llama: + chance: 0.00045454545 + llama: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LLAMA_SPAWN_EGG + amount: 1 + entity_data: + id: "minecraft:llama" + fox: + chance: 0.00045454545 + fox: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: FOX_SPAWN_EGG + amount: 1 + cat: + chance: 0.00045454545 + cat: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CAT_SPAWN_EGG + amount: 1 + mooshroom: + chance: 0.00045454545 + mooshroom: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MOOSHROOM_SPAWN_EGG + amount: 1 + horse: + chance: 0.00045454545 + horse: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: HORSE_SPAWN_EGG + amount: 1 + rabbit: + chance: 0.00045454545 + rabbit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RABBIT_SPAWN_EGG + amount: 1 + ocelot: + chance: 0.00045454545 + ocelot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: OCELOT_SPAWN_EGG + amount: 1 + squid: + chance: 0.00045454545 + squid: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SQUID_SPAWN_EGG + amount: 1 + wolf: + chance: 0.00045454545 + wolf: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WOLF_SPAWN_EGG + amount: 1 + axolotl: + chance: 0.00045454545 + axolotl: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: AXOLOTL_SPAWN_EGG + amount: 1 + bee: + chance: 0.00045454545 + bee: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BEE_SPAWN_EGG + amount: 1 + panda: + chance: 0.00045454545 + panda: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PANDA_SPAWN_EGG + amount: 1 + dolphin: + chance: 0.00045454545 + dolphin: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DOLPHIN_SPAWN_EGG + amount: 1 + stray: + chance: 0.00045454545 + stray: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: STRAY_SPAWN_EGG + amount: 1 + strider: + chance: 0.00045454545 + strider: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: STRIDER_SPAWN_EGG + amount: 1 + hoglin: + chance: 0.00045454545 + hoglin: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: HOGLIN_SPAWN_EGG + amount: 1 + creeper: + chance: 0.00045454545 + creeper: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CREEPER_SPAWN_EGG + amount: 1 + zombie: + chance: 0.00045454545 + zombie: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ZOMBIE_SPAWN_EGG + amount: 1 + skeleton: + chance: 0.00045454545 + skeleton: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SKELETON_SPAWN_EGG + amount: 1 + spider: + chance: 0.00045454545 + spider: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SPIDER_SPAWN_EGG + amount: 1 + blaze: + chance: 0.00045454545 + blaze: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BLAZE_SPAWN_EGG + amount: 1 + ghast: + chance: 0.00045454545 + ghast: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GHAST_SPAWN_EGG + amount: 1 + guardian: + chance: 0.00045454545 + guardian: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GUARDIAN_SPAWN_EGG + amount: 1 + magmacube: + chance: 0.00045454545 + magmacube: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MAGMA_CUBE_SPAWN_EGG + amount: 1 + slime: + chance: 0.00045454545 + slime: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SLIME_SPAWN_EGG + amount: 1 + witch: + chance: 0.00045454545 + witch: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WITCH_SPAWN_EGG + amount: 1 + villager: + chance: 0.00045454545 + villager: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: VILLAGER_SPAWN_EGG + amount: 1 + cavespider: + chance: 0.00045454545 + cavespider: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CAVE_SPIDER_SPAWN_EGG + amount: 1 + enderman: + chance: 0.00045454545 + enderman: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDERMAN_SPAWN_EGG + amount: 1 + zombiepigman: + chance: 0.00045454545 + zombiepigman: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ZOMBIFIED_PIGLIN_SPAWN_EGG + amount: 1 + Camel: + chance: 0.00045454545 + Camel: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CAMEL_SPAWN_EGG + amount: 1 + Frog: + chance: 0.00045454545 + Frog: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: FROG_SPAWN_EGG + amount: 1 + Sniffer: + chance: 0.00045454545 + Sniffer: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SNIFFER_EGG + amount: 1 + Armadillo: + chance: 0.00045454545 + Armadillo: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ARMADILLO_SPAWN_EGG + amount: 1 + Bogged: + chance: 0.00045454545 + Bogged: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ARMADILLO_SPAWN_EGG + amount: 1 + # Music Disks - 1% of total (0.000476 each) + record_13: + chance: 0.000476 + record_13: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_13 + amount: 1 + record_cats: + chance: 0.000476 + record_cats: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_CAT + amount: 1 + record_blocks: + chance: 0.000476 + record_blocks: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_BLOCKS + amount: 1 + record_chirp: + chance: 0.000476 + record_chirp: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_CHIRP + amount: 1 + record_far: + chance: 0.000476 + record_far: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_FAR + amount: 1 + record_mall: + chance: 0.000476 + record_mall: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_MALL + amount: 1 + record_mellohi: + chance: 0.000476 + record_mellohi: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_MELLOHI + amount: 1 + record_stal: + chance: 0.000476 + record_stal: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_STAL + amount: 1 + record_strad: + chance: 0.000476 + record_strad: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_STRAD + amount: 1 + record_ward: + chance: 0.000476 + record_ward: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_WARD + amount: 1 + record_11: + chance: 0.000476 + record_11: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_11 + amount: 1 + record_wait: + chance: 0.000476 + record_wait: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_WAIT + amount: 1 + record_pigstep: + chance: 0.000476 + record_pigstep: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_PIGSTEP + amount: 1 + record_otherside: + chance: 0.000476 + record_otherside: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_OTHERSIDE + amount: 1 + record_relic: + chance: 0.000476 + record_relic: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_RELIC + amount: 1 + record_5: + chance: 0.000476 + record_5: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_5 + amount: 1 + record_precipice: + chance: 0.000476 + record_5: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_PRECIPICE + amount: 1 + record_creator: + chance: 0.000476 + record_5: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_CREATOR + amount: 1 + record_creator_music_box: + chance: 0.000476 + record_5: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_CREATOR_MUSIC_BOX + amount: 1 + record_tears: + chance: 0.000476 + record_5: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_TEARS + amount: 1 + record_lava_chicken: + chance: 0.000476 + record_5: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_LAVA_CHICKEN + amount: 1 + #Resources - 25% (Divided seperately over all below) + iron_ingot: + chance: 0.051 + iron_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_INGOT + amount: 1 + Gold_ingot: + chance: 0.0125 + iron_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_INGOT + amount: 1 + diamond: + chance: 0.0025 + diamond: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND + amount: 1 + lapis_lazuli: + chance: 0.0125 + lapis_lazuli: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_LAZULI + amount: 1 + Redstone_dust: + chance: 0.025 + Redstone_dust: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE + amount: 1 + Copper_ingot: + chance: 0.0375 + Copper_ingot: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COPPER_INGOT + amount: 1 + coal: + chance: 0.0375 + coal: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COAL + amount: 1 + emerald: + chance: 0.00125 + emerald: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD + amount: 1 + iron_block: + chance: 0.016875 + iron_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_BLOCK + amount: 1 + Gold_block: + chance: 0.0125 + iron_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_BLOCK + amount: 1 + diamond_block: + chance: 0.000625 + diamond_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND_BLOCK + amount: 1 + lapis_block: + chance: 0.00625 + lapis_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_BLOCK + amount: 1 + Redstone_block: + chance: 0.00625 + Redstone_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: REDSTONE_BLOCK + amount: 1 + Copper_block: + chance: 0.0125 + Copper_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COPPER_BLOCK + amount: 1 + coal_block: + chance: 0.015 + coal_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: COAL_BLOCK + amount: 1 + emerald_block: + chance: 0.00025 + emerald_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD_BLOCK + amount: 1 + # Tools/enchanting books - 1% (0.0005 each) + diamond_sword: + chance: 0.0005 + diamond_sword: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND_SWORD + amount: 1 + diamond_pickaxe: + chance: 0.0005 + diamond_pickaxe: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND_PICKAXE + amount: 1 + diamond_axe: + chance: 0.0005 + diamond_axe: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND_AXE + amount: 1 + diamond_shovel: + chance: 0.0005 + diamond_shovel: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND_SHOVEL + amount: 1 + diamond_hoe: + chance: 0.0005 + diamond_hoe: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND_HOE + amount: 1 + diamond_chestplate: + chance: 0.0005 + diamond_chestplate: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND_CHESTPLATE + amount: 1 + diamond_leggings: + chance: 0.0005 + diamond_leggings: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND_LEGGINGS + amount: 1 + diamond_helmet: + chance: 0.0005 + diamond_helmet: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND_HELMET + amount: 1 + diamond_boots: + chance: 0.0005 + diamond_boots: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND_BOOTS + amount: 1 + unbreaking_3_book: + chance: 0.0005 + power_5_book: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENCHANTED_BOOK + amount: 1 + meta: + meta-type: ENCHANTED + ==: ItemMeta + stored-enchants: + unbreaking: 3 + efficiency_5_book: + chance: 0.0005 + efficiency_5_book: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENCHANTED_BOOK + amount: 1 + meta: + meta-type: ENCHANTED + ==: ItemMeta + stored-enchants: + efficiency: 5 + silk_touch_book: + chance: 0.0005 + silk_touch_book: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENCHANTED_BOOK + amount: 1 + meta: + meta-type: ENCHANTED + ==: ItemMeta + stored-enchants: + silk_touch: 1 + sharpness_book: + chance: 0.0005 + sharpness_book: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENCHANTED_BOOK + amount: 1 + meta: + meta-type: ENCHANTED + ==: ItemMeta + stored-enchants: + sharpness: 5 + power_5_book: + chance: 0.0005 + power_5_book: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENCHANTED_BOOK + amount: 1 + meta: + meta-type: ENCHANTED + ==: ItemMeta + stored-enchants: + power: 5 + fortune_3_book: + chance: 0.0005 + fortune_3_book: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENCHANTED_BOOK + amount: 1 + meta: + meta-type: ENCHANTED + ==: ItemMeta + stored-enchants: + fortune: 3 + protection_4_book: + chance: 0.0005 + protection_4_book: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENCHANTED_BOOK + amount: 1 + meta: + meta-type: ENCHANTED + ==: ItemMeta + stored-enchants: + protection: 4 + depth_strider_3_book: + chance: 0.0005 + depth_strider_3_book: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENCHANTED_BOOK + amount: 1 + meta: + meta-type: ENCHANTED + ==: ItemMeta + stored-enchants: + depth_strider: 3 + aqua_affinity_book: + chance: 0.0005 + aqua_affinity_book: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENCHANTED_BOOK + amount: 1 + meta: + meta-type: ENCHANTED + ==: ItemMeta + stored-enchants: + aqua_affinity: 1 + infinity_book: + chance: 0.0005 + infinity_book: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENCHANTED_BOOK + amount: 1 + meta: + meta-type: ENCHANTED + ==: ItemMeta + stored-enchants: + infinity: 1 + looting_3_book: + chance: 0.0005 + looting_3_book: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENCHANTED_BOOK + amount: 1 + meta: + meta-type: ENCHANTED + ==: ItemMeta + stored-enchants: + looting: 3 + # special - 1% (Divided seperatly over all below) + dragon_egg: + chance: 0.0000000001 + dragon_egg: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DRAGON_EGG + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Egg of Creation + apollo_bow: + chance: 0.00005 + apollo_bow: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BOW + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Apollo's Bow + enchants: + power: 5 + punch: 2 + unbreaking: 3 + flame: 1 + infinity: 1 + excalibur_sword: + chance: 0.00005 + excalibur_sword: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND_SWORD + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Excalibur! + enchants: + sharpness: 5 + fire_aspect: 2 + unbreaking: 3 + looting: 3 + imcando_pick: + chance: 0.00005 + imcando_pick: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND_PICKAXE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + lore: + - Imcando Pickaxe + enchants: + efficiency: 5 + unbreaking: 3 + city_bastion: + chance: 0.00005 + city_bastion: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BONE_BLOCK + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: City Bastion + lore: + - City bastions block reinforcements and elytra + amount: 1 + bastion: + chance: 0.0000125 + bastion: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SPONGE + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Bastion + lore: + - This bastion will protect you from grief + - It will also block pearls when they land + - As well as stop elytra + amount: 1 + beacon: + chance: 0.00001 + beacon: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BEACON + amount: 1 + diamond_horse_armor: + chance: 0.00012 + diamond_horse_armor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIAMOND_HORSE_ARMOR + amount: 1 + golden_horse_armor: + chance: 0.00012 + golden_horse_armor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_HORSE_ARMOR + amount: 1 + iron_horse_armor: + chance: 0.00012 + iron_horse_armor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: IRON_HORSE_ARMOR + amount: 1 + leather_horse_armor: + chance: 0.00012 + leather_horse_armor: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LEATHER_HORSE_ARMOR + amount: 1 + jukebox: + chance: 0.0092974999 + jukebox: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: JUKEBOX + amount: 1 + make_bio_kit: + production_time: 4s + name: Make Bio Factory Repair Kit + type: PRODUCTION + input: + bone_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BONE_BLOCK + amount: 8 + dirt: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIRT + amount: 16 + output: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Bio Factory Repair Kit + lore: + - One kit will repair a Bio Factory to full health. + repair_bio: + production_time: 4s + fuel_consumption_intervall: 1s + name: Repair Factory + type: REPAIR + input: + bone_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BONE_BLOCK + amount: 8 + dirt: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIRT + amount: 16 + health_gained: 10000 + repair_bio_kit: + production_time: 4s + name: Repair Factory using Repair Kit + type: REPAIR + input: + kit: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BARREL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Bio Factory Repair Kit + lore: + - One kit will repair a Bio Factory to full health. + health_gained: 10000 + repair_gold_forge: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_INGOT + amount: 16 + health_gained: 10000 + splice_pale_oak_sapling: + production_time: 4s + fuel_consumption_intervall: 1s + name: Splice pale oak sapling + type: PRODUCTION + input: + dark_oak_sapling: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DARK_OAK_SAPLING + amount: 32 + white_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHITE_DYE + amount: 16 + output: + pale_oak_sapling: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PALE_OAK_SAPLING + amount: 32 + grow_eyeblossom: + production_time: 4s + fuel_consumption_intervall: 1s + name: Grow Eyeblossom + type: PRODUCTION + input: + wither_rose: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WITHER_ROSE + amount: 8 + resin_clump: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RESIN_CLUMP + amount: 8 + output: + open_eyeblossom: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: OPEN_EYEBLOSSOM + amount: 8 + grow_pale_moss: + production_time: 4s + fuel_consumption_intervall: 1s + name: Grow pale moss block + type: PRODUCTION + input: + moss_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MOSS_BLOCK + amount: 32 + white_dye: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WHITE_DYE + amount: 16 + output: + pale_moss_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PALE_MOSS_BLOCK + amount: 32 + grow_pale_hanging_moss: + production_time: 4s + fuel_consumption_intervall: 1s + name: Grow pale hanging moss + type: PRODUCTION + input: + pale_moss_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PALE_MOSS_BLOCK + amount: 32 + output: + pale_hanging_moss: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PALE_HANGING_MOSS + amount: 32 + wake_creaking_heart: + production_time: 4s + fuel_consumption_intervall: 1s + name: Wake creaking heart + type: PRODUCTION + input: + pale_oak_log: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PALE_OAK_LOG + amount: 8 + shroomlight: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SHROOMLIGHT + amount: 4 + output: + creaking_heart: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CREAKING_HEART + amount: 4 + grow_flowering_azalea_leaves: + production_time: 4s + fuel_consumption_intervall: 1s + name: Grow flowering Azalea leaves + type: PRODUCTION + input: + oak_leaves: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: OAK_LEAVES + amount: 64 + allium: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ALLIUM + amount: 4 + output: + flowering_azalea_leaves: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: FLOWERING_AZALEA_LEAVES + amount: 64 + grow_azalea_leaves: + production_time: 4s + fuel_consumption_intervall: 1s + name: Grow Azalea leaves + type: PRODUCTION + input: + oak_leaves: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: OAK_LEAVES + amount: 64 + output: + azalea_leaves: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: AZALEA_LEAVES + amount: 64 + grow_spore_blossom: + production_time: 4s + fuel_consumption_intervall: 1s + name: Grow spore blossom + type: PRODUCTION + input: + moss_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MOSS_BLOCK + amount: 16 + peony: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PEONY + amount: 4 + output: + spore_blossom: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SPORE_BLOSSOM + amount: 4 + grow_pink_petals: + production_time: 4s + fuel_consumption_intervall: 1s + name: Grow pink petals + type: PRODUCTION + input: + cherry_sapling: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: CHERRY_SAPLING + amount: 8 + output: + pink_petals: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PINK_PETALS + amount: 32 + grow_big_dripleaf: + production_time: 4s + fuel_consumption_intervall: 1s + name: Grow big Dripleaf + type: PRODUCTION + input: + kelp: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: KELP + amount: 64 + output: + big_dripleaf: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BIG_DRIPLEAF + amount: 8 + grow_small_dripleaf: + production_time: 4s + fuel_consumption_intervall: 1s + name: Grow small Dripleaf + type: PRODUCTION + input: + kelp: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: KELP + amount: 32 + output: + big_dripleaf: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SMALL_DRIPLEAF + amount: 8 + grow_lily_pad: + production_time: 4s + fuel_consumption_intervall: 1s + name: Grow Lily pad + type: PRODUCTION + input: + kelp: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: KELP + amount: 16 + output: + lily_pad: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LILY_PAD + amount: 8 + grow_red_mushroom_block: + production_time: 4s + fuel_consumption_intervall: 1s + name: Grow red Mushroom block + type: PRODUCTION + input: + red_mushroom: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RED_MUSHROOM + amount: 64 + output: + red_mushroom_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RED_MUSHROOM_BLOCK + amount: 16 + grow_brown_mushroom_block: + production_time: 4s + fuel_consumption_intervall: 1s + name: Grow brown Mushroom block + type: PRODUCTION + input: + brown_mushroom: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BROWN_MUSHROOM + amount: 64 + output: + brown_mushroom_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BROWN_MUSHROOM_BLOCK + amount: 16 + grow_mushroom_stem: + production_time: 4s + fuel_consumption_intervall: 1s + name: Grow Mushroom stem + type: PRODUCTION + input: + red_mushroom: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RED_MUSHROOM + amount: 32 + brown_mushroom: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BROWN_MUSHROOM + amount: 32 + output: + mushroom_stem: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSHROOM_STEM + amount: 16 + grow_sculk: + production_time: 4s + fuel_consumption_intervall: 1s + name: Grow Sculk + type: PRODUCTION + input: + red_mushroom: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RED_MUSHROOM + amount: 16 + brown_mushroom: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BROWN_MUSHROOM + amount: 16 + emerald: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD + amount: 1 + output: + sculk: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SCULK + amount: 64 + grow_sculk_vein: + production_time: 4s + fuel_consumption_intervall: 1s + name: Grow Sculk Vein + type: PRODUCTION + input: + red_mushroom: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: RED_MUSHROOM + amount: 8 + brown_mushroom: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BROWN_MUSHROOM + amount: 8 + emerald: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: EMERALD + amount: 1 + output: + sculk_vein: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: SCULK_VEIN + amount: 64 + kill_bush: + production_time: 4s + fuel_consumption_intervall: 1s + name: Kill bush + type: PRODUCTION + input: + sticks: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: STICK + amount: 64 + output: + dead_bush: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DEAD_BUSH + amount: 16 + root_dirt: + production_time: 4s + fuel_consumption_intervall: 1s + name: Root dirt + type: PRODUCTION + input: + dirt: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: DIRT + amount: 64 + sticks: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: STICK + amount: 16 + output: + rooted_dirt: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ROOTED_DIRT + amount: 64 + melt_ice: + production_time: 1s + fuel_consumption_intervall: 2s + name: Melt Ice + type: PRODUCTION + input: + ice: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ICE + amount: 1 + bucket: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUCKET + amount: 1 + output: + rooted_dirt: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: WATER_BUCKET + amount: 1 + form_tube_coral_block: + production_time: 4s + fuel_consumption_intervall: 1s + name: Form tube coral block + type: PRODUCTION + input: + tube_coral: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TUBE_CORAL + amount: 64 + output: + tube_coral_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: TUBE_CORAL_BLOCK + amount: 16 + form_fire_coral_block: + production_time: 4s + fuel_consumption_intervall: 1s + name: Form fire coral block + type: PRODUCTION + input: + fire_coral: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: FIRE_CORAL + amount: 64 + output: + tube_coral_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: FIRE_CORAL_BLOCK + amount: 16 + form_horn_coral_block: + production_time: 4s + fuel_consumption_intervall: 1s + name: Form horn coral block + type: PRODUCTION + input: + horn_coral: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: HORN_CORAL + amount: 64 + output: + horn_coral_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: HORN_CORAL_BLOCK + amount: 16 + form_brain_coral_block: + production_time: 4s + fuel_consumption_intervall: 1s + name: Form brain coral block + type: PRODUCTION + input: + brain_coral: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BRAIN_CORAL + amount: 64 + output: + brain_coral_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BRAIN_CORAL_BLOCK + amount: 16 + form_bubble_coral_block: + production_time: 4s + fuel_consumption_intervall: 1s + name: Form bubble coral block + type: PRODUCTION + input: + bubble_coral: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUBBLE_CORAL + amount: 64 + output: + bubble_coral_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: BUBBLE_CORAL_BLOCK + amount: 16 + forge_gold_pickaxes: + type: RANDOM + name: Forge Gold Pickaxes + production_time: 2s + input: + gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_INGOT + amount: 1 + outputs: + ub3_eff4: + chance: 0.20000000000000000 + ub3_eff4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_PICKAXE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + efficiency: 4 + ub3_for3: + chance: 0.15000000000000000 + ub3_for3: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_PICKAXE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + fortune: 3 + ub3_silk: + chance: 0.15000000000000000 + ub3_silk: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_PICKAXE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + silk_touch: 1 + ub3: + chance: 0.10000000000000000 + ub3: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_PICKAXE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + ub3_for3_eff4: + chance: 0.10000000000000000 + ub3_for3_eff4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_PICKAXE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + fortune: 3 + efficiency: 4 + ub3_silk_eff4: + chance: 0.10000000000000000 + ub3_silk_eff4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_PICKAXE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + silk_touch: 1 + efficiency: 4 + ub3_eff5: + chance: 0.10000000000000000 + ub3_eff5: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_PICKAXE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + efficiency: 5 + ub3_for3_eff5: + chance: 0.050000000000000000 + ub3_for3_eff5: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_PICKAXE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + fortune: 3 + efficiency: 5 + ub3_silk_eff5: + chance: 0.050000000000000000 + ub3_silk_eff5: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_PICKAXE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + silk_touch: 1 + efficiency: 5 + forge_gold_shovels: + type: RANDOM + name: Forge Gold Shovels + production_time: 2s + input: + gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_NUGGET + amount: 3 + outputs: + ub3_eff4: + chance: 0.20000000000000000 + ub3_eff4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_SHOVEL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + efficiency: 4 + ub3_for3: + chance: 0.15000000000000000 + ub3_for3: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_SHOVEL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + fortune: 3 + ub3_silk: + chance: 0.15000000000000000 + ub3_silk: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_SHOVEL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + silk_touch: 1 + ub3: + chance: 0.10000000000000000 + ub3: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_SHOVEL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + ub3_for3_eff4: + chance: 0.10000000000000000 + ub3_for3_eff4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_SHOVEL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + fortune: 3 + efficiency: 4 + ub3_silk_eff4: + chance: 0.10000000000000000 + ub3_silk_eff4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_SHOVEL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + silk_touch: 1 + efficiency: 4 + ub3_eff5: + chance: 0.10000000000000000 + ub3_eff5: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_SHOVEL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + fortune: 3 + efficiency: 5 + ub3_for3_eff5: + chance: 0.050000000000000000 + ub3_for3_eff5: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_SHOVEL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + fortune: 3 + efficiency: 5 + ub3_silk_eff5: + chance: 0.050000000000000000 + ub3_silk_eff5: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_SHOVEL + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + silk_touch: 1 + efficiency: 5 + forge_gold_axes: + type: RANDOM + name: Forge Gold Axes + production_time: 2s + input: + gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_INGOT + amount: 1 + outputs: + ub3_eff4: + chance: 0.16000000000000000 + ub3_eff4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_AXE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + efficiency: 4 + ub3_for3: + chance: 0.07000000000000000 + ub3_for3: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_AXE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + fortune: 3 + ub3_silk: + chance: 0.07000000000000000 + ub3_silk: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_AXE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + silk_touch: 1 + ub3_sha4: + chance: 0.07000000000000000 + ub3_sha4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_AXE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + sharpness: 4 + ub3_boa4: + chance: 0.07000000000000000 + ub3_boa4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_AXE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + bane_of_arthropods: 4 + ub3_smi4: + chance: 0.06000000000000000 + ub3_smi4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_AXE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + smite: 4 + ub3: + chance: 0.050000000000000000 + ub3: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_AXE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + ub3_for3_eff4: + chance: 0.050000000000000000 + ub3_for3_eff4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_AXE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + fortune: 3 + efficiency: 4 + ub3_silk_eff4: + chance: 0.050000000000000000 + ub3_silk_eff4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_AXE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + silk_touch: 1 + efficiency: 4 + ub3_eff5: + chance: 0.050000000000000000 + ub3_eff5: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_AXE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + fortune: 3 + efficiency: 5 + ub3_for3_eff5: + chance: 0.0500000000000000 + ub3_for3_eff5: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_AXE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + fortune: 3 + efficiency: 5 + ub3_silk_eff5: + chance: 0.0500000000000000 + ub3_silk_eff5: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_AXE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + silk_touch: 1 + efficiency: 5 + ub3_sha5: + chance: 0.0300000000000000 + ub3_sha5: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_AXE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + sharpness: 5 + ub3_boa5: + chance: 0.0300000000000000 + ub3_boa5: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_AXE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + bane_of_arthropods: 5 + ub3_smi5: + chance: 0.0300000000000000 + ub3_smi5: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_AXE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + smite: 5 + ub3_eff4_sha5: + chance: 0.0400000000000000 + ub3_eff4_sha5: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_AXE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + efficiency: 4 + sharpness: 5 + ub3_eff4_boa5: + chance: 0.0400000000000000 + ub3_eff4_boa5: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_AXE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + efficiency: 4 + bane_of_arthropods: 5 + ub3_eff4_smi5: + chance: 0.0300000000000000 + ub3_eff4_smi5: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_AXE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + efficiency: 4 + smite: 5 + forge_gold_hoes: + type: RANDOM + name: Forge Gold Hoes + production_time: 2s + input: + gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_NUGGET + amount: 6 + outputs: + ub3_eff4: + chance: 0.10000000000000000 + ub3_eff4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_HOE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + efficiency: 4 + ub3_for3: + chance: 0.10000000000000000 + ub3_for3: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_HOE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + fortune: 3 + ub3_silk: + chance: 0.10000000000000000 + ub3_silk: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_HOE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + silk_touch: 1 + ub3: + chance: 0.30000000000000000 + ub3: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_HOE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + ub3_for3_eff4: + chance: 0.10000000000000000 + ub3_for3_eff4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_HOE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + fortune: 3 + efficiency: 4 + ub3_silk_eff4: + chance: 0.10000000000000000 + ub3_silk_eff4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_HOE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + silk_touch: 1 + efficiency: 4 + ub3_eff5: + chance: 0.10000000000000000 + ub3_eff5: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_HOE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + fortune: 3 + efficiency: 5 + ub3_for3_eff5: + chance: 0.050000000000000000 + ub3_for3_eff5: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_HOE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + fortune: 3 + efficiency: 5 + ub3_silk_eff5: + chance: 0.050000000000000000 + ub3_silk_eff5: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_HOE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + silk_touch: 1 + efficiency: 5 + forge_gold_swords: + type: RANDOM + name: Forge Gold Swords + production_time: 2s + input: + gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_NUGGET + amount: 6 + outputs: + ub3_sha4: + chance: 0.1000000000000000 + ub3_sha4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_SWORD + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + sharpness: 4 + ub3_boa4: + chance: 0.1000000000000000 + ub3_boa4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_SWORD + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + bane_of_arthropods: 4 + ub3_smi4: + chance: 0.1000000000000000 + ub3_smi4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_SWORD + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + smite: 4 + ub3_fa3: + chance: 0.1000000000000000 + ub3_smi4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_SWORD + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + FIRE_ASPECT: 2 + ub3_sha5: + chance: 0.1000000000000000 + ub3_sha5: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_SWORD + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + sharpness: 5 + ub3_boa5: + chance: 0.1000000000000000 + ub3_boa5: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_SWORD + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + bane_of_arthropods: 5 + ub3_smi5: + chance: 0.1000000000000000 + ub3_smi5: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_SWORD + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + smite: 5 + ub3_swe3: + chance: 0.0700000000000000 + ub3_swe3: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_SWORD + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + sweeping: 3 + ub3_swe3_sha5: + chance: 0.0300000000000000 + ub3_swe3_sha5: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_SWORD + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + sweeping: 3 + sharpness: 5 + ub3_kb2: + chance: 0.0700000000000000 + ub3_kb2: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_SWORD + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + KNOCKBACK: 2 + ub3_kb2_sha5: + chance: 0.0300000000000000 + ub3_kb2_sha5: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_SWORD + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + KNOCKBACK: 2 + sharpness: 5 + ub3_loo3: + chance: 0.1000000000000000 + ub3_loo3: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_SWORD + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + looting: 3 + forge_gold_helmets: + type: RANDOM + name: Forge Gold Helmets + production_time: 2s + input: + gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_INGOT + amount: 1 + gold_nug: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_NUGGET + amount: 6 + outputs: + ub3_prot4: + chance: 0.2000000000000000 + ub3_prot4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_HELMET + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + protection: 4 + ub3_proj4: + chance: 0.1000000000000000 + ub3_proj4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_HELMET + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + projectile_protection: 4 + ub3_fire4: + chance: 0.1000000000000000 + ub3_fire4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_HELMET + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + fire_protection: 4 + ub3_blast4: + chance: 0.1000000000000000 + ub3_blast4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_HELMET + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + blast_protection: 4 + ub3_aqaf: + chance: 0.1000000000000000 + ub3_aqaf: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_HELMET + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + aqua_affinity: 1 + ub3_resp3: + chance: 0.1000000000000000 + ub3_resp3: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_HELMET + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + respiration: 3 + ub3_tho3: + chance: 0.1000000000000000 + ub3_tho3: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_HELMET + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + THORNS: 3 + ub3_prot4_aqaf: + chance: 0.0700000000000000 + ub3_prot4_aqaf: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_HELMET + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + protection: 4 + aqua_affinity: 1 + ub3_prot4_resp3: + chance: 0.0700000000000000 + ub3_prot4_resp3: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_HELMET + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + protection: 4 + respiration: 3 + ub3_prot4_aqaf_resp3: + chance: 0.0600000000000000 + ub3_prot4_aqaf_resp3: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_HELMET + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + protection: 4 + aqua_affinity: 1 + respiration: 3 + forge_gold_chestplates: + type: RANDOM + name: Forge Gold Chestplates + production_time: 2s + input: + gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_INGOT + amount: 2 + gold_nug: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_NUGGET + amount: 6 + outputs: + ub3_prot4: + chance: 0.3000000000000000 + ub3_prot4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_CHESTPLATE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + protection: 4 + ub3_proj4: + chance: 0.1000000000000000 + ub3_proj4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_CHESTPLATE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + projectile_protection: 4 + ub3_proj4_prot4: + chance: 0.0750000000000000 + ub3_proj4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_CHESTPLATE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + projectile_protection: 4 + protection: 4 + ub3_fire4: + chance: 0.1000000000000000 + ub3_fire4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_CHESTPLATE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + fire_protection: 4 + ub3_fire4_prot4: + chance: 0.0750000000000000 + ub3_fire4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_CHESTPLATE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + fire_protection: 4 + protection: 4 + ub3_blast4: + chance: 0.1000000000000000 + ub3_blast4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_CHESTPLATE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + blast_protection: 4 + ub3_blast4_prot4: + chance: 0.0750000000000000 + ub3_blast4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_CHESTPLATE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + blast_protection: 4 + protection: 4 + ub3_tho3: + chance: 0.1000000000000000 + ub3_tho3: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_CHESTPLATE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + THORNS: 3 + ub3_tho3_prot4: + chance: 0.0750000000000000 + ub3_tho3: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_CHESTPLATE + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + THORNS: 3 + protection: 4 + forge_gold_leggings: + type: RANDOM + name: Forge Gold Leggings + production_time: 2s + input: + gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_INGOT + amount: 2 + gold_nug: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_NUGGET + amount: 3 + outputs: + ub3_prot4: + chance: 0.3000000000000000 + ub3_prot4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_LEGGINGS + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + protection: 4 + ub3_proj4: + chance: 0.1000000000000000 + ub3_proj4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_LEGGINGS + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + projectile_protection: 4 + ub3_proj4_prot4: + chance: 0.0750000000000000 + ub3_proj4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_LEGGINGS + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + projectile_protection: 4 + protection: 4 + ub3_fire4: + chance: 0.1000000000000000 + ub3_fire4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_LEGGINGS + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + fire_protection: 4 + ub3_fire4_prot4: + chance: 0.0750000000000000 + ub3_fire4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_LEGGINGS + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + fire_protection: 4 + protection: 4 + ub3_blast4: + chance: 0.1000000000000000 + ub3_blast4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_LEGGINGS + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + blast_protection: 4 + ub3_blast4_prot4: + chance: 0.0750000000000000 + ub3_blast4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_LEGGINGS + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + blast_protection: 4 + protection: 4 + ub3_tho3: + chance: 0.1000000000000000 + ub3_tho3: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_LEGGINGS + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + THORNS: 3 + ub3_tho3_prot4: + chance: 0.0750000000000000 + ub3_tho3: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_LEGGINGS + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + THORNS: 3 + protection: 4 + forge_gold_boots: + type: RANDOM + name: Forge Gold Boots + production_time: 2s + input: + gold: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_INGOT + amount: 1 + gold_nug: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLD_NUGGET + amount: 3 + outputs: + ub3_prot4: + chance: 0.2000000000000000 + ub3_prot4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_BOOTS + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + protection: 4 + ub3_proj4: + chance: 0.1000000000000000 + ub3_proj4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_BOOTS + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + projectile_protection: 4 + ub3_fire4: + chance: 0.1000000000000000 + ub3_fire4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_BOOTS + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + fire_protection: 4 + ub3_blast4: + chance: 0.1000000000000000 + ub3_blast4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_BOOTS + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + blast_protection: 4 + ub3_ff4: + chance: 0.1000000000000000 + ub3_ff4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_BOOTS + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + feather_falling: 4 + ub3_ds3: + chance: 0.1000000000000000 + ub3_ds3: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_BOOTS + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + DEPTH_STRIDER: 3 + ub3_tho3: + chance: 0.1000000000000000 + ub3_tho3: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_BOOTS + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + THORNS: 3 + ub3_prot4_ff4: + chance: 0.0700000000000000 + ub3_prot4_ff4: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_BOOTS + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + protection: 4 + feather_falling: 4 + ub3_prot4_ds3: + chance: 0.0700000000000000 + ub3_prot4_ds3: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_BOOTS + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + protection: 4 + DEPTH_STRIDER: 3 + ub3_prot4_ff4_ds3: + chance: 0.0600000000000000 + ub3_prot4_ff4_ds3: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: GOLDEN_BOOTS + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + enchants: + unbreaking: 3 + protection: 4 + feather_falling: 4 + DEPTH_STRIDER: 3 + crush_disc_13: + production_time: 4s + fuel_consumption_intervall: 1s + name: 'Crush ''13'' disc' + type: PRODUCTION + input: + disc: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_13 + amount: 1 + output: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Plains Trim Fragment + lore: + - Used to produce trims in the Research Station + crush_disc_cat: + production_time: 4s + fuel_consumption_intervall: 1s + name: 'Crush ''Cat'' disc' + type: PRODUCTION + input: + disc: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_CAT + amount: 1 + output: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Plains Trim Fragment + lore: + - Used to produce trims in the Research Station + crush_disc_blocks: + production_time: 4s + fuel_consumption_intervall: 1s + name: 'Crush ''Blocks'' disc' + type: PRODUCTION + input: + disc: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_BLOCKS + amount: 1 + output: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Plains Trim Fragment + lore: + - Used to produce trims in the Research Station + crush_disc_chirp: + production_time: 4s + fuel_consumption_intervall: 1s + name: 'Crush ''Chirp'' disc' + type: PRODUCTION + input: + disc: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_CHIRP + amount: 1 + output: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Relic Trim Fragment + lore: + - Used to produce trims in the Research Station + crush_disc_far: + production_time: 4s + fuel_consumption_intervall: 1s + name: 'Crush ''Far'' disc' + type: PRODUCTION + input: + disc: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_FAR + amount: 1 + output: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Relic Trim Fragment + lore: + - Used to produce trims in the Research Station + crush_disc_relic: + production_time: 4s + fuel_consumption_intervall: 1s + name: 'Crush ''Relic'' disc' + type: PRODUCTION + input: + disc: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_RELIC + amount: 1 + output: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Relic Trim Fragment + lore: + - Used to produce trims in the Research Station + crush_disc_stal: + production_time: 4s + fuel_consumption_intervall: 1s + name: 'Crush ''Stal'' disc' + type: PRODUCTION + input: + disc: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_STAL + amount: 1 + output: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Arid Trim Fragment + lore: + - Used to produce trims in the Research Station + crush_disc_strad: + production_time: 4s + fuel_consumption_intervall: 1s + name: 'Crush ''Strad'' disc' + type: PRODUCTION + input: + disc: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_STRAD + amount: 1 + output: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Arid Trim Fragment + lore: + - Used to produce trims in the Research Station + crush_disc_pigstep: + production_time: 4s + fuel_consumption_intervall: 1s + name: 'Crush ''Pigstep'' disc' + type: PRODUCTION + input: + disc: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_PIGSTEP + amount: 1 + output: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Arid Trim Fragment + lore: + - Used to produce trims in the Research Station + crush_disc_ward: + production_time: 4s + fuel_consumption_intervall: 1s + name: 'Crush ''Ward'' disc' + type: PRODUCTION + input: + disc: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_WARD + amount: 1 + output: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Barren Trim Fragment + lore: + - Used to produce trims in the Research Station + crush_disc_wait: + production_time: 4s + fuel_consumption_intervall: 1s + name: 'Crush ''Wait'' disc' + type: PRODUCTION + input: + disc: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_WAIT + amount: 1 + output: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Barren Trim Fragment + lore: + - Used to produce trims in the Research Station + crush_disc_otherside: + production_time: 4s + fuel_consumption_intervall: 1s + name: 'Crush ''Otherside'' disc' + type: PRODUCTION + input: + disc: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_OTHERSIDE + amount: 1 + output: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Barren Trim Fragment + lore: + - Used to produce trims in the Research Station + crush_disc_mall: + production_time: 4s + fuel_consumption_intervall: 1s + name: 'Crush ''Mall'' disc' + type: PRODUCTION + input: + disc: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_MALL + amount: 1 + output: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Forest Trim Fragment + lore: + - Used to produce trims in the Research Station + crush_disc_5: + production_time: 4s + fuel_consumption_intervall: 1s + name: 'Crush ''5'' disc' + type: PRODUCTION + input: + disc: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_5 + amount: 1 + output: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Forest Trim Fragment + lore: + - Used to produce trims in the Research Station + crush_disc_11: + production_time: 4s + fuel_consumption_intervall: 1s + name: 'Crush ''11'' disc' + type: PRODUCTION + input: + disc: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_11 + amount: 1 + output: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Forest Trim Fragment + lore: + - Used to produce trims in the Research Station + crush_disc_mellohi: + production_time: 4s + fuel_consumption_intervall: 1s + name: 'Crush ''Mellohi'' disc' + type: PRODUCTION + input: + disc: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_MELLOHI + amount: 1 + output: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Forest Trim Fragment + lore: + - Used to produce trims in the Research Station + crush_disc_precipice: + production_time: 4s + fuel_consumption_intervall: 1s + name: 'Crush ''Precipice'' disc' + type: PRODUCTION + input: + disc: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_PRECIPICE + amount: 1 + output: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Tricky Trim Fragment + lore: + - Used to produce trims in the Research Station + crush_disc_creator: + production_time: 4s + fuel_consumption_intervall: 1s + name: 'Crush ''Creator'' disc' + type: PRODUCTION + input: + disc: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_CREATOR + amount: 1 + output: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Tricky Trim Fragment + lore: + - Used to produce trims in the Research Station + crush_disc_creator_music_box: + production_time: 4s + fuel_consumption_intervall: 1s + name: 'Crush ''Creator (Music Box)'' disc' + type: PRODUCTION + input: + disc: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: MUSIC_DISC_CREATOR_MUSIC_BOX + amount: 1 + output: + fragment: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: PAPER + amount: 1 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Tricky Trim Fragment + lore: + - Used to produce trims in the Research Station + make_meteoric_iron_sword: + production_time: 4s + name: Make Meteoric Iron Sword + type: PRODUCTION + input: + meteoric_iron_ingot: + custom-key: meteoric_iron_ingot + amount: 6 + output: + meteoric_iron_sword: + custom-key: meteoric_iron_sword + amount: 5 + make_meteoric_iron_sword_kb: + production_time: 4s + name: Make Meteoric Iron Knockback Sword + type: PRODUCTION + input: + meteoric_iron_ingot: + custom-key: meteoric_iron_ingot + amount: 6 + amesthyst_shard: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: AMETHYST_SHARD + amount: 10 + output: + meteoric_iron_sword_kb: + custom-key: meteoric_iron_sword_knockback + amount: 5 + make_meteoric_iron_sword_kb1: + production_time: 4s + name: Make Meteoric Iron Knockback 1 Sword + type: PRODUCTION + input: + meteoric_iron_ingot: + custom-key: meteoric_iron_ingot + amount: 6 + amesthyst_shard: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: AMETHYST_SHARD + amount: 5 + output: + meteoric_iron_sword_kb1: + custom-key: meteoric_iron_sword_knockback1 + amount: 5 + repair_meteoric_iron_sword_factory: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + meteoric_iron_ingot: + custom-key: meteoric_iron_ingot + amount: 1 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 7 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + lapis_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_BLOCK + amount: 28 + health_gained: 10000 + make_meteoric_iron_pickaxe_loot: + production_time: 4s + name: Make Meteoric Iron Pickaxe + type: PRODUCTION + input: + meteoric_iron_ingot: + custom-key: meteoric_iron_ingot + amount: 10 + output: + meteoric_iron_pickaxe: + custom-key: meteoric_iron_pickaxe + amount: 5 + make_meteoric_iron_pickaxe_silk: + production_time: 4s + name: Make Meteoric Iron Silk-Touch Pickaxe + type: PRODUCTION + input: + meteoric_iron_ingot: + custom-key: meteoric_iron_ingot + amount: 10 + amesthyst_shard: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: AMETHYST_SHARD + amount: 10 + output: + meteoric_iron_pickaxe_silk: + custom-key: meteoric_iron_pickaxe_silk + amount: 5 + repair_meteoric_iron_pickaxe_factory: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + meteoric_iron_ingot: + custom-key: meteoric_iron_ingot + amount: 1 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 11 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + lapis_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_BLOCK + amount: 44 + health_gained: 10000 + make_meteoric_iron_axe_loot: + production_time: 4s + name: Make Meteoric Iron Axe + type: PRODUCTION + input: + meteoric_iron_ingot: + custom-key: meteoric_iron_ingot + amount: 9 + output: + meteoric_iron_axe: + custom-key: meteoric_iron_axe + amount: 5 + make_meteoric_iron_axe_silk: + production_time: 4s + name: Make Meteoric Iron Silk-Touch Axe + type: PRODUCTION + input: + meteoric_iron_ingot: + custom-key: meteoric_iron_ingot + amount: 9 + amesthyst_shard: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: AMETHYST_SHARD + amount: 10 + output: + meteoric_iron_axe: + custom-key: meteoric_iron_axe_silk + amount: 5 + repair_meteoric_iron_axe_factory: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + meteoric_iron_ingot: + custom-key: meteoric_iron_ingot + amount: 1 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 10 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + lapis_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_BLOCK + amount: 40 + health_gained: 10000 + make_meteoric_helm: + production_time: 4s + name: Make Meteoric Helmet + type: PRODUCTION + input: + meteoric_iron_ingot: + custom-key: meteoric_iron_ingot + amount: 15 + output: + meteoric_iron_helm: + custom-key: meteoric_iron_helmet + amount: 5 + repair_meteoric_helm_factory: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + meteoric_iron_ingot: + custom-key: meteoric_iron_ingot + amount: 1 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 18 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + lapis_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_BLOCK + amount: 72 + health_gained: 10000 + make_meteoric_chest: + production_time: 4s + name: Make Meteoric Chestplate + type: PRODUCTION + input: + meteoric_iron_ingot: + custom-key: meteoric_iron_ingot + amount: 24 + output: + meteoric_iron_chest: + custom-key: meteoric_iron_chestplate + amount: 5 + repair_meteoric_chest_factory: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + meteoric_iron_ingot: + custom-key: meteoric_iron_ingot + amount: 1 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 28 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + lapis_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_BLOCK + amount: 112 + health_gained: 10000 + make_meteoric_legs: + production_time: 4s + name: Make Meteoric Leggings + type: PRODUCTION + input: + meteoric_iron_ingot: + custom-key: meteoric_iron_ingot + amount: 21 + output: + meteoric_iron_legs: + custom-key: meteoric_iron_leggings + amount: 5 + repair_meteoric_legs_factory: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + meteoric_iron_ingot: + custom-key: meteoric_iron_ingot + amount: 1 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 24 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + lapis_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_BLOCK + amount: 96 + health_gained: 10000 + make_meteoric_boots: + production_time: 4s + name: Make Meteoric Boots + type: PRODUCTION + input: + meteoric_iron_ingot: + custom-key: meteoric_iron_ingot + amount: 12 + output: + meteoric_iron_boots: + custom-key: meteoric_iron_boots + amount: 5 + repair_meteoric_boots_factory: + production_time: 4s + name: Repair Factory + type: REPAIR + input: + meteoric_iron_ingot: + custom-key: meteoric_iron_ingot + amount: 1 + essence: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: ENDER_EYE + amount: 14 + meta: + meta-type: UNSPECIFIC + ==: ItemMeta + display-name: Player Essence + lore: + - Activity reward used to fuel pearls + lapis_block: + v: 3839 + ==: org.bukkit.inventory.ItemStack + type: LAPIS_BLOCK + amount: 56 + health_gained: 10000 diff --git a/ansible/files/gamma-config/plugins/FactoryMod/words.txt b/ansible/files/gamma-config/plugins/FactoryMod/words.txt new file mode 100644 index 000000000..d85289cca --- /dev/null +++ b/ansible/files/gamma-config/plugins/FactoryMod/words.txt @@ -0,0 +1,48413 @@ +##Wordlist created with help of: RedDevel, Solitaire, ArtificialDriver, Bronnakus, Tuomasz, Britishwanderer, Hakr, Drekamor and Wingzero + +--- +(´˘`) +(´꒳`) +(˘³˘) +(˘ε˘) +(˘ω˘) +(˘ሠ˘) +(˘ᵕ˘) +(ᵘʷᵘ) +(ᵘﻌᵘ) +(⑅˘꒳˘) +(◡ w ◡) +(◡ ω ◡) +(◡ ሠ ◡) +(◡ ꒳ ◡) +*^_^* +0 +0,0's +0Eleven11 +0Eleven11's +0PFOR +0PFOR's +0_____________0 +0_____________0's +0bsidianPearl +0bsidianPearl's +0samaBidLaden69 +0samaBidLaden69's +1.0 +1111111111111000 +1111111111111000's +1234fireball +1234fireball's +1drop +1drop's +1ssa +1ssa's +2 Consuls +2 Consuls's +2 Dukes +2 Dukes's +2 Princes +2 Princes's +2.0 +2344523432 +2344523432's +2545.com +2545.com's +3.0 +40mm +40mm's +42Sav +42Sav's +4788888 +4788888's +4pocalypse4risen +4pocalypse4risen's +5a6y +5a6y's +6114 +6114's +6xde +6xde's +7289 +7289's +7_Misun +7_Misun's +7misun +7misun's +84841 +84841's +867five309 +867five309's +:( +:) +:Glad: +:chad: +:glad: +:really: +:sad: +:violence: +<3 +>:) +A +A5hF +A5hF's +ABHone +ABHone's +ACCoker +ACCoker's +ADH +AD’s +AFFLlCTED +AFFLlCTED's +AGR3SSION +AGR3SSION's +AJmoviemaker +AJmoviemaker's +AK +AK's +AK47rabbi +AK47rabbi's +AKJanklin +AKJanklin's +AMiller_72 +AMiller_72's +ASomb +ASomb's +AWildVulpix +AWildVulpix's +A_Killcrafter +A_Killcrafter's +Aaliyah +Aamon +Aamon's +Aaren +Aaron +AaronBonehart +AaronBonehart's +Abandon +Abandoned +Abandoning +Abandonment +Abaraikanji +Abashed +Abate +Abated +Abatement +Abazu +Abazu's +Abbreviate +Abbreviated +Abbreviation +Abbreviations +Abby +AbbyShapiro +AbbyShapiro's +Abbyshore +Abc +Abcd +Abcs +Abdicate +Abdicated +Abdication +Abdomen +Abdominal +Abduct +Abducted +Abduction +Abductions +Abdul +Abdullah +Abe +Abel +Abelard +Aberdeen +Aberration +Aberrations +Abet +Abetted +Abetting +Abettors +Abeyance +Abhor +Abhorred +Abhorrence +Abhorrent +Abide +Abided +Abides +Abiding +AbientAle +AbientAle's +Abigail +Abilities +Ability +Abject +AbjectPovertyCraft +Ablaze +Abnormal +Abnormalities +Abnormally +Aboard +Abode +Abodes +Aboi +Abolish +Abolished +Abolishes +Abolishing +Abolition +Abolitionist +Abolitionists +Abomb +Abominably +Abomination +Abominations +Abort +Aborted +Aborting +Abortion +Abosrbed +Abound +Abounded +Abounding +Abounds +About +Aboutism +Above +Aboveboard +Aboveground +Abracadaver +Abraham +Abrasive +Abrasiveness +Abridge +Abridged +Abroad +Abrupt +Abruptly +Abruptness +Abs +Abscess +Abscessed +Absconded +Absence +Absences +Absent +Absentee +Absentia +Absinthe +Absolute +Absolutely +Absolutes +Absolution +Absolutism +Absolutist +Absolve +Absolved +Absorb +Absorbed +Absorbent +Absorbing +Absorption +Abstain +Abstained +Abstaining +Abstainments +Abstinence +Abstract +Abstracted +Abstraction +Abstractions +Abstractly +Abstracts +Abstruse +Absudrly +Absurd +Absurdities +Absurdity +Abundance +Abundant +Abundantly +Abusable +Abuse +Abuseable +Abused +Abuser +Abusing +Abusive +Abyss +Abyssal +AbyssalSire +Abyssals +Abyssalsire +Acacia +Academia +Academic +Academical +Academically +Academics +Acadia +Accede +Acceded +Accedently +Accelerant +Accelerate +Accelerated +Accelerates +Accelerating +Acceleration +Accelerationist +Accelerators +Accent +Accents +Accentually +Accentuate +Accentuated +Accept +Acceptability +Acceptable +Acceptably +Acceptance +Acceptant +Acceptation +Accepted +Accepting +Acception +Acceptions +Acces +Accesable +Accesible +Access +Accessability +Accessed +Accesses +Accessibility +Accessible +Accessorial +Accessories +Accessory +Acceted +Accident +Accidental +Accidentally +Accidential +Accidents +Acclaim +Acclaimed +Acclimate +Accociated +Accolade +Accomlplices +Accommodate +Accommodated +Accommodates +Accommodating +Accommodation +Accommodations +Accomodate +Accompanied +Accompanies +Accompany +Accompanying +Accomplice +Accomplices +Accomplish +Accomplished +Accomplishes +Accomplishing +Accomplishment +Accomplishments +Accord +Accordance +Accordant +According +Accordingly +Accordion +Accords +Accost +Accosted +Account +Accountability +Accountable +Accountant +Accountants +Accounted +Accounting +Accounts +Accoutability +Accreditation +Accredited +Accross +Accrue +Accrued +Accrues +Accruing +Accsess +Acctivity +Accuastion +Accumilate +Accumulated +Accumulates +Accumulating +Accumulation +Accuracy +Accurate +Accurately +Accuring +Accursed +Accusation +Accusations +Accusatory +Accuse +Accused +Accuser +Accusers +Accuses +Accusiations +Accusing +Accustom +Accustomed +Acdc +Ace +Acer +Ache +Aches +Acheyla +Achieve +Achieveable +Achieved +Achievement +Achievements +Achievers +Achieves +Achieving +Achiuwa +Acid +Acidblock +Acidblocking +Acidblocks +Acidic +Aciding +Acidity +Acids +Acknowledge +Acknowledged +Acknowledgement +Acknowledges +Acknowledging +Acknowledgment +Ackshually +Acktually +Acne +Acomplish +Acomplished +Aconians +Acorn +Acornicopia +Acotiation +Acoustic +Acoustics +Acquaintance +Acquaintances +Acquaintanceship +Acquainted +Acquiesce +Acquiescing +Acquire +Acquired +Acquirement +Acquires +Acquiring +Acquisition +Acquisitions +Acquit +Acquittal +Acquitted +Acre +Acres +Acrid +Acrimonious +Acrimony +Acrobat +Acronym +Acronyms +Acropolis +Across +Acrylic +Act +Actaully +Actavis +Acted +Acting +Action +Actionable +Actioned +Actions +Activate +Activated +Activates +Activating +Activation +Activationrange +Activations +Activator +Active +Actively +Actives +Activety +Activies +Activism +Activist +Activists +Activities +Activity +Actor +Actors +Actress +Acts +Actual +Actuality +Actualization +Actualize +Actually +Actuallythinking +Actuated +Acurate +Acusations +Acute +Acutely +Acuteness +Ad-hominem +Ada +Adafruit +Adage +Adalaran +Adaline +Adalyn +Adam +AdamJN_ +AdamJN_'s +Adamant +Adamantine +Adamantium +Adamantly +Adapt +Adaptability +Adaptable +Adaptation +Adaptations +Adapted +Adapter +Adapters +Adapting +Adaption +Adaptive +Adaptor +Adar +Adasia +Adblock +Adcrims +Add +Addapt +Added +Addelepated +Addendum +Adder +Addgun +Addict +Addicted +Addicting +Addiction +Addictive +Addictivesombrero +Addicts +Adding +Addison +Addition +Additional +Additionally +Additions +Additive +Additively +Addled +Addmitted +Addon +Addons +Address +Addressed +Addresses +Addressing +Adeadhead +Adeadhead's +Adelaide +Adeline +Adept +Adequacy +Adequate +Adequately +Adfly +Adhd +Adhere +Adhered +Adherence +Adherent +Adherents +Adheres +Adhering +Adhesion +Adhesive +Adhominem +Adidas +Adiministrator +Adina +Adinian +Adios +Adipex +Adira +Aditya +Adjective +Adjectives +Adjourn +Adjourned +Adjournment +Adjudicate +Adjudication +Adjudicator +Adjunct +Adjust +Adjustable +Adjusted +Adjusting +Adjustment +Adjustments +Adjusts +Adjutant +Admims +Admin +AdminCrimes +AdminCrimes's +Admincraft +Admincrime +Admincrimes +Administation +Administer +Administered +Administering +Administrate +Administrated +Administrating +Administration +Administrations +Administrative +Administratively +Administrator +Administrators +Adminphobia +Admins +Admins's +Admintime +Admirable +Admirably +Admiral +AdmiralBang +AdmiralBang's +AdmiralDuc5 +AdmiralDuc5's +Admiration +Admire +Admired +Admirer +Admirers +Admires +Admiringly +Admissible +Admission +Admissions +Admit +Admits +Admittably +Admittance +Admitted +Admittedly +Admitting +Admixture +Admonish +Admonished +Admonishment +Admonition +Adnan +Adobe +Adolescence +Adolescent +Adolescents +Adonis +Adopt +Adopted +Adopter +Adopters +Adopting +Adoption +Adoptive +Adora +Adorable +Adorably +Adore +Adored +Adorer +Adoring +AdorkableHazardd +AdorkableHazardd's +Adorned +Adornment +Adraxis +Adrenalin +Adrenaline +Adria +Adria's +Adrian +Adriel +Adrift +Adroit +Adroitly +Adsense +Adulation +Adult +Adulterous +Adultery +Adulthood +Adults +Advance +Advanced +Advancedmacros +Advanceduploader +Advancement +Advancements +Advances +Advancing +Advantage +Advantaged +Advantageous +Advantages +Advantaging +Advent +Adventista +Adventitious +Adventrues +Adventure +Adventurer +Adventurers +Adventures +Adventuring +Adventurism +Adventurists +Adventurous +Adverb +Adverbs +Adversaries +Adversary +Adverse +Adversely +Adversities +Adversity +Advert +Adverted +Adverting +Advertise +Advertised +Advertisement +Advertisements +Advertiser +Advertisers +Advertising +Advertisment +Advertisments +Advewsawies +Advice +Advices +Advil +Advisability +Advisable +Advise +Advised +Advisement +Adviser +Advisers +Advises +Advising +Advisor +Advisors +Advisory +Advocaate +Advocacy +Advocate +Advocated +Advocates +Advocating +Advocatus +Aegina +Aegis +Aegiss +Aelfstan +Aeon +Aeonites +Aeons +Aerda +Aerial +Aero +Aerobe +Aerobics +Aerobicsex +Aerodynamic +Aerologista +Aerondight +Aeroplane +Aeros +Aeros_Endeem +Aeros_Endeem's +Aerospace +Aesthetic +Aesthetically +Aesthetics +Aether +Aetherix +Aetherix's +Afaik +Afar +Afarm +Affable +Affably +Affair +Affairs +Affect +Affected +Affecting +Affection +Affects +Afficiated +Affiliate +Affiliated +Affiliates +Affiliation +Affiliations +Affilitation +Affinities +Affinity +Affirm +Affirmation +Affirmative +Affirmed +Affirming +Affirms +Affix +Affliate +Affliated +Afflict +Afflicted +Affliction +Afflicts +Affluence +Affluent +Afford +Affordable +Afforded +Affording +Affords +Affray +Affront +Affronted +Afghanestan +Afghanistan +Aficionado +Afire +Afk +Afkability +Afkable +Afked +Afker +Afkers +Afking +Aflame +Afloat +Afoot +Aforementioned +Afoul +Afraid +Afreeca +Africa +African +Afrikaans +Afro +After +Afterall +Afterbirth +Aftereffects +Afterlife +Aftermarket +Aftermath +Afternoon +Afternoons +Afterthought +Afterward +Afterwards +Afterword +Afterwords +Aftwerwards +Afwaid +Agaaaaaaaaain +Again +Against +Agape +Agastya +Agatha +Age +Aged +Agedlikemilk +Ageing +Ageis +Agencies +Agency +Agenda +Agendas +Agent +Agentburkin +Agentburkin's +Agentextortion +Ageold +Agglomeration +Aggrandizement +Aggravate +Aggravated +Aggravates +Aggravating +Aggravation +Aggreement +Aggregate +Aggregated +Aggregating +Aggregation +Aggresion +Aggresison +Aggresive +Aggresiveness +Aggresors +Aggress +Aggressed +Aggresses +Aggressing +Aggression +Aggressions +Aggressive +Aggressively +Aggressiveness +Aggressor +Aggressors +Aggrieved +Aggrivating +Aggro +Aggroing +Agile +Agility +Agitate +Agitated +Agitating +Agitation +Agitator +Agitators +Aglow +Agnew +Agni +Agnostic +Agonised +Agonising +Agonista +Agonized +Agonizing +Agony +Agora +Agoran +Agorans +Agorism +Agrarian +Agree +Agreeable +Agreeably +Agreed +Agreeeeeed +Agreeing +Agreement +Agreements +Agrees +Agricultural +Agriculture +Agro +Agrocultral +Agronaught +Agronaut +Agronauts +Aground +Aha +Ahahahahahahahahaha +Ahamsandwich +Ahead +Ahem +Ahintoflemon +Ahit +Ahmad +Ahme63 +Ahme63's +Ahmed +Ahold +Aholderith +Ahora +Ahorita +Ahoy +Ahri +Ahrimanne +Ahrimanne's +AiXyZ +AiXyZ's +Aided +Aiden +Aides +Aiding +Aids +Aight +Ail +Ailed +Aileen +Ailerons +Ailing +Ailment +Ails +Aim +AimanBOss66 +AimanBOss66's +Aimbot +Aimbots +Aimbotting +Aimed +Aiming +Aimless +Aimlessly +Aimlock +Aimuari +Aimuaris +Aimurai +Ains +Ainsley +Air +Air Bud Republic +Airakazz +Airakazz's +Airbender +Airblock +Airbnb +Airbrushed +Airbud +Aircraft +Aired +Airflow +Airforce +Airhaven +Airhead +Airing +Airline +Airospace +Airplane +Airplanes +Airpods +Airport +Airports +Airship +Airships +Airspace +Airstrikes +Airstrip +Airtight +Airwar +Airwaves +Airways +Aisha +Aisle +Aivius +Aivius's +Ajar +Ajax +Akai +Akiba +Akihabara +Akihabaran +Akihabaras +Akihara +Akihibara +Akimaya +Akimbo +Akin +Akira +Akiyama64 +Akiyama64's +Akkadia +Akkadian +Aknowledge +Aknowledged +Akritia +Akritia's +Akschually +Aksed +Akshay +Al Arabiyah as Suudiyah +Al Bahrayn +Al Imarat al Arabiyah al Muttahidah +Al Jaza'ir +Al Kuwayt +Al Maghrib +Al Yaman +Al-Quitya +Alabama +Aladdin +Alaia +Alain +Alaina +Alakaslam, Bond of Hell's Games +Alamanni +Alamo +Alamy +Alan +Alana +Alani +Alaric +Alarm +Alarmed +Alarming +Alarmingly +Alarmist +Alarmista +Alarms +Alas +Alaska +Alaskan +Alayna +Albania +Albanian +Albany +Albedo +Albeit +Albert +Alberta +Albion +Album +Albums +Albuquerque +Alcatraz +AlchemicalAngel +AlchemicalAngel's +Alchemist +Alchemists +Alchemy +Alcohol +Alcoholic +Alcoholics +Alcoholism +Alcove +Alcuahtl +Alcyone +Aldean +Alden +Aldenfult +Alder +Alderman +Aldnoah +Ale +Aleandyar +Alec +Aleena +Alegbraintheass +Alejandro +Aleksey +Alemannia +Alena +Alephian +Alephites +Aleppo +Alert +Alerted +Alerting +Alertness +Alerts +Alessandra +Aletheiad +Aletheiad's +Alex +Alex Cristal +Alex Cristal's +Alex9002 +Alex9002's +Alexa +Alexander +AlexanderTheBest +AlexanderTheBest's +Alexanderjac +Alexanderjac's +Alexandra +Alexandria +Alexis +Alexjones +Alfie +Alfonso +Alfred +Algae +Algebra +Algebraic +Algebrista +Algeria +Algeria +Algiers +Algorithm +Algorithmic +Algorithmically +Algorithms +Alhamdulillah +Alhenna +Ali +Alialmans +Alialmans's +Alias +Aliased +Aliases +Aliasing +Alibaba +Alibi +Alibis +Alice +Alicia +Alien +Alienate +Alienated +Alienates +Alienating +Alienation +Aliens +Alight +Align +Aligned +Aligning +Alignment +Alignments +Aligns +Alike +Alimony +Alina +Alisa +Alison +Alittle +Alive +Aliyah +Aliza +Alkaid +Alkaline +All +AllFather +Allah +Allan +Allay +Allcaps +Alleb +Alledged +Allegation +Allegations +Allege +Alleged +Allegedly +Alleges +Allegiance +Allegiances +Alleging +Allegorical +Allegories +Allegory +Allegra +Alleiviate +Allen +AllenY +AllenY's +Allenism +Allenist +Alleny +Allergic +Allergies +Allergy +Alles +Alleviate +Alleviated +Alleviates +Alleviating +Alley +Alleys +Alleyway +Alleyways +Alliance +Alliances +Allied +Allies +Alligator +Alligators +Allign +Alligned +Allison +Alliterates +Alliteration +Alliterra +Allium +Alliums +Allocate +Allocated +Allocates +Allocating +Allocation +Allot +Allotment +Allotted +Allow +Allowable +Allowance +Allowances +Allowed +Allowing +Allows +Alloy +Alloys +Allraw +Allrawrgrafix +Allready +Allright +Alls +Allspice +Alltalk +Alltogether +Allude +Alluded +Alludes +Alluding +Allure +Allurement +Alluring +Allusion +Allusions +Ally +AllyEspy +AllyEspy's +Allying +Alma +Almanac +Almighty +Almond +Almonds +Almost +Almostalive +Aloft +Aloha +Alola +Alone +Along +Alongside +Aloof +Aloofness +Alora +Alost +Alot +Aloud +Alpha +Alpha_Duck_Bot +Alpha_Duck_Bot's +Alphabet +Alphabetical +Alphabetically +Alphabetised +Alphanumerically +Alphas +Alpine +Alpinista +Alpista +Alpoko +Alpolko +Alponia +Alrakis +Already +Alright +Alrighty +Alrite +Also +Alt +Altaccounts +Altaid +Altair +Altar +Altars +Altban +Altbanned +Altbanning +Altbans +Altbergburg +Altbot +Altbots +Alted +Alter +Alteration +Alterations +Altercation +Altercations +Altered +Altering +Alternate +Alternated +Alternatehistory +Alternately +Alternates +Alternating +Alternation +Alternative +Alternatively +Alternatives +Alters +Altgriefed +Although +Altijd +Alting +Altitude +Altitudes +Altless +Altlist +Altmanager +Altname +Alto +Altogether +Alton +Altplay +Altraid +Altraided +Altraider +Altraiders +Altraiding +Altraids +Altruism +Altruistic +Altruistically +Alts +Altsharing +Altvault +Altvaulted +Altvaulting +Altvaults +Altviewer +Alucard1997 +Alucard1997's +Alum +Alumina +Aluminium +Aluminum +Alumni +Alvertex +Alvertex's +Alvin +Always +Alyssa +Amadeus +Amal +Amalgamated +Amalgamation +Amalure +Amalures +Aman +Amanda +AmandaCC +AmandaCC's +Amandir1 +Amandir1's +Amani +Amara +Amaris +Amass +Amassed +Amassing +Amaya +Amaze +Amazeballs +Amazed +Amazement +Amazes +Amazing +Amazingly +Amazon +Amazonia +Amazonian +Amazons +Ambasdor +Ambassador +Ambassadors +Amber +AmberSolberg205 +AmberSolberg205's +Ambergris +Amberlamps +Ambiance +Ambien +Ambiences +Ambient +Ambiguity +Ambiguous +Ambiguously +Ambition +Ambitions +Ambitious +Ambitiously +Ambivalent +Amboise +Ambrosia +Ambulance +Ambush +Ambushed +Ambushes +Ambushing +Amedy +Amedy's +Amelia +Amelie +Ameliorate +Ameliorates +Ameliorating +Amelioration +Amelorate +Amelorate's +Amelorates +Amen +Amenable +Amend +Amended +Amendement +Amending +Amendment +Amendments +Amends +Amenities +Ameriburgers +America +American +American Samoa +American Samoa +Americana +Americanism +Americanized +Americanrhetoric +Americans +Americas +Amethyst +Amethystblade +Amiability +Amiable +Amiably +Amicable +Amicably +Amidala +Amidships +Amidst +Amigo +Amigos +Amina +Amir +Amira +Amirah +Amirite +Amiss +Ammonia +Ammonium +Ammount +Ammounts +Ammunition +Amnesia +Amnesia, Foe of Storms +Amnesty +Amogus +Among +Among Us +Amongst +Amonymouse +Amor +Amora +Amoral +Amorphous +Amos +Amount +Amounted +Amounting +Amounts +Amp +Amped +Amphetamine_King +Amphetamine_King's +Amphetamines +Amphibian +Amphibious +Amphitheater +Amphitheatre +Amping +Ampland +Ample +Amplified +Amplifier +Amplifiers +Amplifies +Amplify +Amplitude +Ampryn +Ampryn's +Amps +Amputation +Amputee +Amputees +Amsterdam +Amtrak +Amulet +Amunak +Amuse +Amused +Amusement +Amuses +Amusing +Amusingly +Amuza +Amy +Amy_Ku +Amy_Ku's +Amyr +Amyra +AnCap +Ana +Anachronism +Anaconda +Anagram +Anaheim +Anais +Anakin +Anal +Analagous +Analism +Analog +Analogous +Analogue +Analogy +Analyse +Analysed +Analyses +Analysing +Analysis +Analyst +Analysts +Analytic +Analytical +Analytically +Analytics +Anarchials +Anarchic +Anarchism +Anarchist +Anarchist Madagascar +Anarchistic +Anarchists +Anarcho +Anarchocapitalism +Anarchocapitalist +Anarchocapitalists +Anarchocommunism +Anarchomaniac +Anarchy +Anarco +Anastasia +Anastasia_Steele +Anastasia_Steele's +Anatomical +Anatomically +Anatomopatologista +Anatomy +Anaylised +AnbuBlack0ps +AnbuBlack0ps's +Anburon +Ancap +AncapMinecraft +Ancapistan +Ancapminecraft +Ancaps +Ancestor +Ancestors +Ancestral +Ancestry +Anchor +Anchorage +Anchored +Anchoring +Anchovy +Anchsluss +Ancient +Ancientfriend +Ancients +Ancile +Ancillary +Ancom_ThePolpot +Ancom_ThePolpot's +Andalusia +Andcomplain +Anderson +Andesite +Andorra +Andorra +Andover +Andre +Andrea +Andrew +Andrewribbit +Andrewribbit's +Androgynous +Android +Androidcentral +Androids +Andromeda +Andustria +Andy +AndyDeRandy +AndyDeRandy's +Anecdotal +Anecdotally +Anecdote +Anecdotes +Anesthetics +Aneurist +Aneurist's +Aneurysm +Aneurysms +Anew +Anexionista +Anexxed +Angard +Angel +Angel's +Angela +Angelic +Angelina +Angels +Anger +Angered +Angerey +Angering +Angers +Angkor +Angle +Angled +Angler +Angles +Anglia +Anglish +Anglo +Anglocentrist +Anglophiles +Anglophone +Anglophones +Anglos +Anglosphere +Angola +Angola +Angolan +Angrier +Angriest +Angrily +Angry +Angryface +Angrywalk +Angryyyyy +Angst +Angsty +Anguilla +Anguilla +Anguish +Anguish' Maple Crossfire +Animal +Animal Crossing +Animalfarm +Animalistic +Animals +Animate +Animated +Animates +Animating +Animation +Animations +Animator +Anime +AnimeReviewer +AnimeReviewer's +Animeme +Animemer +Animemes +Animes +Animial +Animista +Animosity +Animu +Animus +Anisha +Anita +Ankle +Ankles +Ann +Anna +Annabelle +Annalise +Annals +Anne +Annex +Annexation +Annexations +Annexed +Annexes +Annexing +Annexs +Annexxed +Annhilator +Annie +Annihalated +Annihilate +Annihilated +Annihilating +Annihilation +Annika +Anniversaries +Anniversary +Annonymous +Annotated +Annotation +Annotations +Annouced +Annoucement +Annoucing +Annoucment +Announce +Announced +Announcement +Announcements +Announcer +Announces +Announcing +Annoy +Annoyance +Annoyances +Annoyed +Annoying +Annoying_And_OBN +Annoying_And_OBN's +Annoyingly +Annoyingness +Annoys +Annual +Annually +Annuity +Annul +Annulled +Annunciation +Annwyn +Anny +Anoint +Anointed +Anointing +Anology +Anomalies +Anomalous +Anomaly +Anon +Anon00014 +Anon00014's +Anons +Anonymity +Anonymization +Anonymize +Anonymized +Anonymoose +Anonymous +Anonymously +Anor Londo X +Another +Anotherhermit +Anothertarget +Anprim +Ansamble +Ansible +Answer +Answerable +Answerd +Answering +Answers +Ant +Antagonise +Antagonising +Antagonism +Antagonisms +Antagonist +Antagonistic +Antagonists +Antagonize +Antagonized +Antagonizing +Antarctic +Antarctica +Antarctica +Antea4204 +Antea4204's +Antelope +Antenna +Antennas +Anthea +Anthem +Anthems +Anthology +Anthony +Anthropod +Anthropodegg +Anthropods +Anthropologist +Anthropology +Anthropomorphic +Anti +Antibiotics +Antibodies +Antibody +Anticheat +Anticheats +Antichrist +Anticipate +Anticipated +Anticipating +Anticipation +Anticlima +Anticlimactic +Anticlockwise +Anticommunism +Antics +Antidepressants +Antidote +Antifa +Antigposting +Antigrump +Antigua +Antigua and Barbuda +Antigua and Barbuda +Antiguan +Antihero +Antikb +Antilonia +Antimana +Antimateriel +Antimony +Antioch +Antiochs +Antipathy +Antipodean Union +Antipodes +Antipope +Antipositivism +Antipsychotics +Antiqua +Antiquarian +Antiquary +Antiquated +Antique +Antiques +Antiquity +Antirrealist +Antisocial +Antithesis +Antithetical +Antitradicionalist +Antiunionist +Antivenom +Antivirus +Antlers +Antmore +Antoinette +Antonio +Antonius +Antonym +Antropologista +Ants +Antshare +Antshares +Antsy +Antwoord +Anubis +Anul +Anus +Anvil +Anvil's +Anvils +Anxieties +Anxiety +Anxious +Anxiously +Anya +Anyakova +Anybody +Anyday +Anyhow +Anymore +Anyone +Anyones +Anyother +Anyplace +Anything +Anytime +Anyway +Anyways +Anywhere +Anywhere Key +Anywho +Aolepān Aorōkin Ṃajeḷ +Aomen +Aotearoa +ApLogan +ApLogan's +Apache +Apaches +Apart +Apartment +Apartments +ApateSy +ApateSy's +Apathetic +Apathy +Aperture +Apes +Apeshit +Apex +Aphorism +Aphorisms +Aphrodite +Api +Apiece +Aping +Apiss +Aplenty +Apocalypse +Apocalypses +Apocalyptic +Apocch +Apocolypse +Apocryphal +Apoland +Apoland's +Apolitical +Apollo +Apologetic +Apologey +Apologies +Apologising +Apologism +Apologist +Apologist's +Apologists +Apologize +Apologized +Apologizes +Apologizing +Apology +Apoo +Apoplectic +Apostasy +Apostate +Apostles +Apostolic +Apostrophe +Apostrophes +Apothecary +Apotheosis +App +Appalled +Appalling +Appallingly +Apparantly +Apparatus +Apparel +Apparent +Apparently +Apparitions +Appartment +Appdata +Appeal +Appealed +Appealing +Appealingly +Appeals +Appear +Appearance +Appearances +Appeared +Appearently +Appearing +Appears +Appease +Appeased +Appeasement +Appeasers +Appeases +Appeasing +Appellation +Append +Appendage +Appendages +Appended +Appending +Appendix +Appetite +Appetizing +Applaud +Applauded +Applauding +Applause +Apple +AppleRadiation +AppleRadiation's +Applease +Applenuggets +Apples +Applesauce +Appliable +Appliance +Appliances +Appliants +Applicability +Applicable +Applicant +Applicants +Application +Applications +Applied +Appliedmemetics +Apply +Applying +Appoint +Appointed +Appointing +Appointment +Appointments +Appomattox +Appraisal +Appraised +Appreciable +Appreciate +Appreciated +Appreciating +Appreciation +Appreciative +Apprehend +Apprehended +Apprehending +Apprehension +Apprehensive +Apprently +Approach +Approachable +Approached +Approaches +Approaching +Appropiate +Appropriate +Appropriated +Appropriately +Appropriating +Appropriation +Appropriations +Approrating +Approriate +Approval +Approve +Approved +Approves +Approving +Approvingly +Approximate +Approximately +Approximates +Approximating +Approximation +Approximations +Apps +Appwoved +Appy +Apr +Apreciate +Aprecitate +Aprehend +April +Aproach +Aproached +Apropos +Apt +Aptitude +Aptly +Aqauriums +Aqua +Aqua, Pact of Shadow Strikes +Aqua_Gamer +Aqua_Gamer's +Aquaculture +Aquaman +Aquamarine +Aquarium +Aquarius +Aquatic +Aquatinted +Aqueduct +Aqueducts +Aquila +Aquilan +Aquilans +Aquilia +Aquilian +Aquiline +Aquilla +Aquire +Aquired +Aquiring +Aquisition +Ara_1705 +Ara_1705's +Arabella +Arabia +Arabian +Arabic +Arachnids +Arachno +Arachnophobla +Arachnophobla's +Aragorn +AragostaSpaziale +AragostaSpaziale's +Aratel +Arbeit +Arbeiten +Arbitrairy +Arbitrarily +Arbitrariness +Arbitrary +Arbitrate +Arbitrated +Arbitrating +Arbitration +Arbitrations +Arbitrator +Arbitrators +Arbritration +Arbys +Arc +Arc'teryx +Arcade +Arcadia +Arcadian +Arcadians +Arcane +Arcation +Arch +Archaeological +Archaeologist +Archaeologists +Archaeology +Archaic +Archaicfriend +Archalias +Archalias's +Archangel +Archangels +Archdemon, Longbow of Wasted Time +Archdude +Archduke +Arched +Archenemy +Archeological +Archeologist +Archeologists +Archeology +Archer +Archers +Archery +Arches +Archetypal +Archetype +Archetypes +Arching +Archipelago +Architechture +Architect +Architects +Architectual +Architectural +Architecturally +Architecture +Architectures +Archival +Archive +Archived +Archiver +Archives +Archiving +Archivist +Archivists +Archnemises +Archon +Archway +Arcology +Arconis000 +Arconis000's +Arctic +Arcturus +Ard +Arden +Ardent +Ardently +Arduous +Arduously +Are +Areas +Arebs +Arebs's +Arena +Arenas +Ares +Aresot +Aresot's +Argentina +Argentina +Argentinean +Argentinian +Argentinians +Arghhhh +Argonaut +Argonian +Argonite_ +Argonite_'s +Arguable +Arguably +Argue +Argueably +Argued +Argueing +Arguement +Arguements +Arguer +Arguing +Argument +Argumentation +Argumentative +Arguments +Ari +Aria +Arial +Ariana +Arianna +Arid +Ariddarkness +Ariel +Ariella +Arielle +Aries +Aris +Arise +Arisen +Arises +Arising +Aristocracy +Aristocrat +Aristocrats +Aristopolis +Arithmetic +Arizona +Ark +Ark of the covenant +Arkansas +ArkenX +ArkenX's +Arlington +Arlo +Arm +Armada +Armageddon +Armband +Armchair +Armed +Armenia +Armenia +Armenian +Armies +Armistead +Armless +Armor +Armored +Armorless +Armory +Armour +Armoured +Armpit +Armpitfluff +Armpits +Armstrong +Army +Arnen +Arnold +Aroma +Aromatic +Arondight +Around +Arousal +Aroused +Arouses +Arousing +ArowShot +ArowShot's +Arrakeen +Arrange +Arranged +Arrangement +Arrangements +Arrangenent +Arranges +Arranging +Array +Arrayed +Arraylist +Arrays +Arrest +Arrested +Arresting +Arrgrhrhhh +Arriba +Arrival +Arrivals +Arrive +Arrived +Arrives +Arriving +Arrogance +Arrogant +Arrogantly +Arrogate +Arround +Arrow +Arrowfire +Arrowhead +Arrowheads +Arrows +Arrr +Arsakes +Arsakes's +Arsanity +Arsanity's +Arse +Arsed +Arsehole +Arseholes +Arselicker +Arsenal +Arsenals +Arsenic +Arsenio Pact +Arses +Arson +Arsonist +ArsonistBlueJay +ArsonistBlueJay's +Arsonists +Arstotzka +Art +Artdeco +Artefact +Artefacts +Artem2109 +Artem2109's +Artemis +Arterial +Arteries +Artery +Artfacts +Artful +Arthopods +Arthritis +Arthropod +Arthropodegg +Arthropods +Arthur +Article +Articles +Articulate +Articulated +Articulates +Articulating +Articulation +Artienia +Artienia's +Artifact +Artifacts +Artifice +Artificer +Artificers +Artificial +ArtificialDriver +ArtificialDriver's +Artificially +Artiflex +Artiflext +Artillery +Artillerymen +Artisan +Artisanial +Artisans +Artist +Artistgallery +Artistic +Artistically +Artistry +Artists +Artless +Artrage +Artstyle +Artsy +Artwork +Artworks +Aruba +Aruba +Arwen +As-Sudan +Asa +Asahigaoka +Asaki +Asbestos +Ascend +Ascendance +Ascendancy +Ascended +Ascendency +Ascending +Ascension +Ascensionhelp +Ascent +Ascentius +Ascentius Beta +Ascertain +Ascertained +Ascii +Ascribe +Ascribed +Ascroll +Asertive +Asexual +Asgard +Asgardians +Ash +Ash_Raider +Ash_Raider's +Asha +Ashame +Ashamed +Ashe +Ashelor +Ashen +Ashens +Asher +Asher_Moishe +Asher_Moishe's +Ashes +Ashgate +Ashley +Ashore +Ashraider +Ashton +Ashtray +Ashwood Piercer +Asia +Asianhaydenxd +Asianhaydenxd's +Aside +Asides +Asimov +AsinX +AsinX's +Asinine +Asiro +Asistance +Ask +Asked +Askew +Asking +Askreddit +Aslarius +Aslarius's +Asleep +Aslong +Asma +Asmr +Asocial +Asparagus +Aspect +Aspects +Aspen +Asphalt +Aspiration +Aspirations +Aspire +Aspired +Aspires +Aspiring +Ass +Assail +Assailant +Assailants +Assassin +Assassinate +Assassinated +Assassinating +Assassination +Assassinations +Assassins +Assault +Assaulted +Assaulting +Assaults +Assbackward +Assbeat +Assblasted +Assblaster +Assburgers +Asscrack +Asscracks +Assed +Assemble +Assembled +Assembler +Assembles +Assemblies +Assembling +Assembly +Assemply +Assent +Assented +Assert +Asserting +Assertion +Assertions +Assertive +Asserts +Asses +Assess +Assessed +Assessing +Assessment +Assessments +Asset +Assets +Assface +Assfruit +Asshat +Asshats +Asshattery +Asshole +Assholery +Assholes +Assholic +Assiduously +Assign +Assigned +Assigning +Assignment +Assignments +Assigns +Assimilate +Assimilated +Assimilating +Assimilation +Assist +Assistance +Assistant +Assistants +Assisted +Assisting +Assists +Assitance +Assjackets +Assjackets's +Assless +Assload +Assloads +Assman +Associate +Associated +Associates +Associating +Association +Associations +Associative +Assorted +Assortment +Assosciated +Assrammer +Assume +Assumed +Assumes +Assuming +Assumingly +Assumption +Assumptions +Assumtion +Assurance +Assurances +Assure +Assured +Assuredly +Assuring +Asswipe +Astanna +Aster +Asterisk +Asterisks +Asteroid +Asteroids +Asthma +Asthonishing +Astley +Astonia +Astonian +Astonians +Astonish +Astonishing +Astonishingly +Astounded +Astounding +Astral +Astray +Astride +Astringent +Astrologer +Astrology +Astronaut +Astronauts +Astronomer +Astronomical +Astronomically +Astronomy +Astrophysics +Astute +Astuteness +Asuna +Asunder +Asuramaru +Asuramaru's +Asus +Asylum +Asymetrically +Asymmetric +Asymmetrical +Asymmetry +Async +Asynchronous +Asynchronously +Atari +Ated +Atention +Atheism +Atheist +Atheists +Athena +Athenians +Athens +Athlete +Athletes +Athletic +Athletics +Athmosphere +Athos +Atilla +Atlanta +Atlantean +Atlanteans +Atlantic +Atlantis +Atlas +Atleast +Atm +Atmosphere +Atmospheres +Atmospheric +Atom +Atomic +Atoms +Atone +Atoned +Atonement +Atoning +Atraxas +Atraxas's +Atrocious +Atrociously +Atrocities +Atrocity +Atrophy +Attach +Attached +Attaches +Attaching +Attachment +Attachments +Attack +Attackable +Attacked +Attacker +Attackers +Attacking +Attackofthebrick +Attackofthebricks +Attacks +Attain +Attainable +Attained +Attaining +Attempt +Attempted +Attempting +Attempts +Attenborough +Attend +Attendance +Attendant +Attended +Attendees +Attending +Attention +Attentive +Attentiveness +Attest +Attested +Attic +Atticus +Attire +Attitude +Attitudes +Attoprak +Attoprak's +Attorney +Attorneys +Attract +Attracted +Attracting +Attraction +Attractions +Attractive +Attracts +Attributable +Attribute +Attributed +Attributes +Attributing +Attribution +Attrition +Attrocities +Attuned +Atypical +Aubrey +Auburn +Auction +Auctioned +Auctioneer +Auctioning +Auctions +Audacity +Audible +Audibly +Audience +Audiences +Audio +Audiobook +Audit +Audited +Auditing +Audition +Auditioning +Auditions +Auditor +Auditorium +Auditoriums +Auditors +Auditory +Audits +Audrey +Augment +Augmentation +Augmented +Augsburg +Augska +August +August27 +August27's +Augusta +Augustan +Augustans +Augustian +Augustians +Augustinian +Augustus +Aunt +Auntie +Aunty +Aura +Aurelia +Aurelion +Aurelius +Aurellia +Aurora +Aurorans +Aurum +Auspicious +Austerity +Austin +Australia +Australia +Australian +Australians +Austria +Austria +Austrian +Authenticate +Authenticated +Authenticates +Authenticating +Authentication +Authenticator +Authenticity +Authentification +Authorisation +Authorised +Authoritarian +Authoritarianism +Authoritarians +Authoritative +Authorities +Authority +Authorization +Authorize +Authorized +Authorizes +Authorizing +Authors +Authorties +Autoaccept +Autoaim +Autobahn +Autoban +Autobanned +Autobiographical +Autobiography +Autobot +Autobotdetection +Autobots +Autobrewers +Autobuild +Autobuildings +Autobuilds +Autoclick +Autoclicked +Autoclicker +Autoclickers +Autoclicking +Autoclicks +Autocomplete +Autoconcrete +Autocorrect +Autocorrected +Autocorrects +Autocracies +Autocractic +Autocracy +Autocrafting +Autocrat +Autocratic +Autocrats +Autodelete +Autodig +Autofarm +Autofarming +Autofarms +Autofisher +Autofishes +Autograph +Autoharvest +Autoharvester +Autoharvesting +Autohotkey +Autoinvite +Autojoin +Autokick +Autologging +Automated +Automatic +Automatically +Automatics +Automating +Automation +Automaton +Automatons +Automine +Automined +Autominer +Autominers +Automining +Automobile +Automobiles +Automobilista +Automod +Automoderator +Automotive +Autonomous +Autonomously +Autonomy +Autopost +Autoreconnect +Autoremoved +Autorization +Autosoup +Autosprint +Autosprinter +Autoswim +Autotargeting +Autotune +Autumn +Auxiliaries +Auxiliary +Ava +Avacado +Avacados +Availability +Available +Avalance +Avalanche +Avalanches +Avalon +Avani +AvaniSpades +AvaniSpades's +Avatar +Avatars +Avenge +Avenged +Avenger +Avengers +Aventurine +Avenue +Avenues +Average +Averaged +Averages +Averse +Aversion +Avert +Averted +Avery +Avi +Avian +Aviation +Aviator +Aviators +Avid +Avidly +Avo +Avocado +AvocadoNotFound +AvocadoNotFound's +Avocadoism +Avocadoist +Avocados +Avoid +Avoidable +Avoidance +Avoided +Avoiding +Avolition +Avow +Avowal +Avowed +Avowedly +Avrelia +Aw +Awaaaay +Await +Awaited +Awaiting +Awaits +Awake +Awaken +Awakened +Awakening +Awakens +Awakes +Award +Awarded +Awards +Aware +Awareness +Awash +Away +Aways +AwdryFan1997 +AwdryFan1997's +Awe +Awearyworld +Aweee +Aweful +Awefully +Awesome +AwesomeDracula +AwesomeDracula's +Awesome_Daniel +Awesome_Daniel's +Awesomely +Awesomeness +Awesomest +Awestruck +Awful +Awfully +Awfulness +Awguments +Awh +Awhile +Awhole +Awkward +Awkwardly +Awkwardness +Awoke +Awoken +Awol +Awoo +Awoo's +Awooooooooooo +Awoos +Awry +Awwies +Awww +Awwwooooooga +Axe +Axed +Axel +Axelrods +Axeman +Axemen +Axes +Axing +Axiom +Axioms +Axolotl +Ayana +Ayden +Aye +Ayeee +Ayes +Ayesha +Ayla +Aylesiz +Aylesiz's +Aynor +Ayo +Ayoooo +Ayylmao +Ayylmaos +Ayyy +Azalea +Azarbaycan +Azare1 +Azare1's +Azaria +Azariah +Azat +Azelair +Azelair's +Azerbaijan +Aznazia +Azrael +Azriel +Aztec +Aztecs +Aztfamily +Aztfamily's +Azula +Azulos +Azulos's +Azura_Aqua +Azura_Aqua's +Aṣ-Ṣaḥrā’ al-Gharbīyah +B +BBC +BJTROUT +BJTROUT's +BUNKIESBUNKIESBUNKIES +BUY NIKE SHOES +Baal +Baba +Bababooey +Babble +Babbling +Babe +Babel +Babes +Baboon +Babowage +Baby +Babylon +Babylonia +Babylonian +Babylons +Babyrage +Babys +Babysit +Babysitter +Babysitters +Babysitting +Bach +Bachelor +Bachelors +Back +Back Pain +Backbone +Backburner +Backdoor +Backdoored +Backdrop +Backdrops +Backed +Backend +Backer +Backers +Backfilled +Backfilling +Backfire +Backfired +Backfiring +Backgammon +Background +Backgrounds +Backhand +Backhanded +Backing +Backlash +Backlog +Backlogged +Backpack +Backpacks +Backpedal +Backpedaled +Backpedaling +Backpedalled +Backport +Backroom +Backs +Backseat +Backside +Backsies +Backslash +Backslashes +Backslid +Backslide +Backsliding +Backsnipe +Backspace +Backstab +Backstabbed +Backstabber +Backstabbers +Backstabbing +Backstabbings +Backstabby +Backstabings +Backstabs +Backstage +Backstories +Backstory +Backtalk +Backtrack +Backtracked +Backtracking +Backtracks +Backup +Backups +Backward +Backwards +Backwash +Backwash's +Backwater +Backwaters +Backyard +Bacon +Baconators +Bacons +Bacteria +Bacterial +Bad +Bad Apple +BadTrue +BadTrue's +Badadoom +Badass +Badasses +Badbadnotgood +Badder +Baddest +Baddie +Baddies +Baddy +Baden +Badge +Badger +Badgered +Badgering +Badgers +Badges +Badguy +Badguys +Badlads +Badlands +Badlion +Badlions +Badly +Badman +Badmen +Badmin +Badmins +Badmouth +Badmouthing +Badness +Badoink +Badpolitics +Badpost +Badposting +Badposts +Badword +Bae +Baesed +Baffle +Baffled +Baffles +Baffling +Baffoon +Bafoon +Bag +Bagalor +Bagel +Bagels +Baggage +Baggy +Baghold +Baghold's +Bagpipes +Bags +Bagsy +Baguette +BaguetteB0ii +BaguetteB0ii's +Baguettes +Bah +Baha +Bahadur +Bahama +Bahamas +Bahrain +Bail +Baile +Bailed +Bailey +Baileys +Bailiff +Bailing +Bait +Baited +Baiters +Baiting +Baity +Baka +Baked +Baker +Bakeries +Bakers +Bakery +Bakes +Baking +Bal +Balaclava +Balamory +Balance +Balance and Composure +Balanced +Balancer +Balances +Balancing +Balconies +Balcony +Bald +Baldness +Baldwin +Baleful +Bales +Bali +Balkan +Balkanian +Balkanians +Balkanization +Balkans +Ball +Ballads +Ballast +Balled +Baller +Ballers +Ballet +Ballgame +Ballin +Balling +Ballista, Dawn of the Beast +Ballistic +Ballistics +Balloni +Balloon +Balloons +BalloraGaming +BalloraGaming's +Ballot +Ballots +Ballpark +Ballroom +Balls +Ballsack +Ballsed +Ballsy +Balmoral +Baloney +Balonista +Balrog +Baltic +Baltics +Baltimore +Bam +Bamboo +Bamboozeled +Bamboozle +Bamboozled +Bamboozleinsurance +Bamboozlement +Bamboozler +Bamboozles +Bamboozlin +Bamboozling +Bammetje +Ban +Banable +Banal +Banana +Banana Republic +BananaMAN1944 +BananaMAN1944's +Bananafone +Bananagod +Bananagod's +Bananagod8D +Bananagod8D's +Bananagods +Bananas +Banclassics +Bandage +Bandages +Bandaid +Bandaiding +Bandaids +Bandcamp +Bandicam +Bandit +Banditry +Bandits +Bands +Bandwagon +Bandwagoners +Bandwagoning +Bandwidth +Bane +Bang +Bangbus +Banged +Banger +Bangers +Banging +Bangkok +Bangladesh +Bangs +Banhammer +Banhammering +Banhammers +Banished +Banishing +Banishment +Banjo +Bank +Banked +Banker +Bankers +Banking +Banknotes +Bankrolled +Bankrolling +Bankrupt +Bankruptcy +BankruptcyBarrel +BankruptcyBarrel's +Bankrupted +Banks +Banlist +Bannable +Banned +Banner +Banners +Banning +Bannings +Banquet +Bans +Banstick +Banter +Bantering +Banters +Bants +Banwave +Banworthy +Banyough +Banyough's +Baphomet +Baptised +Baptism +Baptist +Baptize +Baptized +Bar +Barbados +Barbarian +Barbarians +Barbaric +Barbarism +Barbarity +Barbecue +Barbequed +Barber +Barbie +Barbosa +Barcelona +Barcode +Barcodes +Bard +Bards +Bare +Bareback +Barebones +Bared +Barefoot +Bareknuckle +Barely +Barf +Bargain +Bargained +Bargaining +Bargainings +Bargains +Barge +Barged +Barista +Baritone +Bark +Barking +Barkley +Barley +Barmaid +Barn +Barney +Barometer +Baron +Baroness +Barons +Baronship +Baronvonderp +Barony +Baroque +Barrack +Barracks +Barrage +Barrages +Barred +Barrel +Barreling +Barrels +Barren +Barricade +Barricades +Barrier +Barriers +Barring +Barrings +Barrista +Barrister +Barron +Barry +Bars +Bartender +Barter +Bartering +Bas +Basal +Base +Baseball +Basecamp +Based +Based:Convoy +Based:Convoy's +Baseless +Baseline +Baselines +Basement +Basements +Bash +BasharAlAsad +BasharAlAsad's +Bashed +Basher +Bashful +Bashing +Basic +Basically +Basicinstructions +Basics +Basilica +Basilisc +Basilissa +Basilissa's +Basin +Basins +Basis +Basket +Basketball +Basking +Basks +Bass +Bastard +Bastardization +Bastardized +Bastards +Bastille +Bastion +Bastiongroup +Bastionless +Bat +Batavia +Batavian +Batch +Batched +Batches +Bate +Bated +Bateman +Bath +Bathes +Bathhouse +Bathing +Bathrobe +Bathroom +Bathrooms +Baths +Bathwater +Batman +Baton +Bats +Battalion +Battered +Batteries +Battery +Batting +Battle +BattleDog249 +BattleDog249's +BattleOfSky +BattleOfSky's +Battleborn +Battlechoad +Battlecry +Battled +Battledog +Battlefield +Battlefields +Battlefront +Battleground +Battlegrounds +Battlements +Battlenet +Battles +Battleship +Battleships +Battlestar +Battlestation +Battletoads +Bauble +Baubles +Bavarian +Bay +Baybee +Baycity +Bayonet +Bayrd +Bayrd's +Bays +Bazaar +Bazillions +Bazinga +Bbq +Beach +Beached +Beaches +Beachfront +Beacon +Beacons +Bead +Beads +Beak +Beaker +Beakers +Beam +Beamish +Beams +Bean +Beanbag +Beanie +Beans +Bear +Bearable +Beard +Bearded +Bearded_Lumberer +Bearded_Lumberer's +Beards +Bearer +Bearers +Bearing +Bearings +Bearkind +Bears +Beast +Beastly +Beasts +Beasty +Beat +Beatable +Beatdown +Beated +Beaten +Beaters +Beating +Beatings +Beatlejuice +Beatles +Beats +Beau +Beauties +Beautification +Beautified +Beautiful +Beautifull +Beautifully +Beautify +Beautifying +Beauty +Beaver +Beavers +Beavis +Bebop +Became +Becareful +Because +Beckett +Beckon +Beckons +Becky +Become +Becomes +Becometh +Becoming +Bed +Bedbomb +Bedbombing +Bedbugs +Bedclothes +Bedding +Bedford +Bedridden +Bedrock +Bedroom +Bedrooms +Beds +Bedtime +Beef +Beefed +Beefer +Beefier +Beefs +Beefy +Beehive +Beehives +Beekeeper +Beeline +Beelzinator +Beep +Beeping +Beeps +Beer +Beers +Bees +Beeswax +Beet +Beethoven +Beetle +Beetles +Beetown +Beetroot +Beetroots +Beets +Befall +Befiend +Befit +Befits +Befitting +Before +Beforehand +Befriended +Befriending +Befriends +Befun +Beg +Began +Beget +Beggar +Beggars +Begged +Beggers +Begging +Begin +Beginner +Beginners +Beginning +Beginnings +Begins +Begone +Begrudge +Begrudged +Begrudging +Begrudgingly +Begs +Beguile +Beguiling +Begun +Behave +Behaved +Behaving +Behavior +Behavioral +Behaviors +Behaviour +Behead +Beheaded +Beheading +Beheadings +Behemoth +Behest +Behind +Behold +Beholden +Beholder +Behoove +Behooved +Behooves +Beige +Beijing +Being +Beings +Belarus +Belated +Belau +Belgian +Belgians +Belgie +Belgique +Belgium +Belgrade +Belief +Beliefs +Believer +Believers +Belittle +Belittled +Belittles +Belittling +Belize +Bell +Bella +Bellamorte +Bellamorte's +Bellamorte848 +Bellamorte848's +Bellatrix +Belle +Bellend +Bellends +Belleville +Belligerence +Belligerent +Belligerently +Belligerents +Bellingham +Bells +Belly +Belong +Belonged +Belonging +Belongings +Beloved +Beloveddictator +Below +Belowground +Belt +Belts +Bemoan +Bemoaning +Bemused +Bemusement +Ben +Bench +Benches +Benchmark +Bend +Bended +Bender +Bending +Bends +Beneath +Benedict +Benediction +Benefactor +Benefactors +Beneficial +Beneficially +Beneficiary +Benefit +Benefits +Benefitted +Benefitting +Beneshire +Benevolence +Benevolent +Benevolently +Bengal +Bengali +Benghazi +Benificial +Benin +Benistan +Benjamin +Bennett +Benny +BennyZ +BennyZ's +Bent +Bentley +Benton +Berate +Berated +Berating +Bereavement +Bereft +Beretia +Bergburg +BergeCraft 1 +BergeCraft 2 +BergeCraft 3 +Berkeley +Berkshire +Berlin +Bermuda +Bernard +Bernie +BernieLanders +Berniesanders +Berniki +Berries +Berry +Berserk +Berserker +Bert +Bes +Beset +Beside +Besides +Besiege +Besieged +Besiegers +Besieging +Beslau +Besmirch +Besmirched +Bespoke +Best +BestFeedyrNA +BestFeedyrNA's +Bestbuds +Bested +Bester +Bestest +Bestial +Bestie +Besties +Bestow +Bestowal +Bestowed +Bestowery +Bestowing +Bestseller +Bestsellers +Bestselling +Bestwestern +Beta +Betas +Betcha +Betelgeuse +Beth +Bethany +Bethesda +Betray +Betrayal +Betrayals +Betrayed +Betrayer +Betrayers +Betraying +Betrays +Bets +Betta +Better +Betteralt +Betterarmor +Betterassociations +Bettercivtools +Betterfoliage +Bettering +Betterment +Betterpvp +Betters +Bettershards +Betterskins +Bettertools +Betting +Betty +Between +Beverage +Beverages +Beverly +Beware +Bewilder +Bewildered +Bewildering +Bewilderment +Bewitch +Bewitched +Bewitching +Bewsiej +Bewsiej's +Beyblade +Beyond +Bez +Bezist +Bezist People's Directory +Bff +Bffs +Bg +Bgbba +Bgbba's +Bhutan +Bhārat +Bi +Bi0nic +Bi0nic's +Bianca +Biannually +Bias +Biased +Biases +Bible +Bibles +Biblical +Bibliographic +Bibliography +Bich +Bicker +Bickering +Bicycle +Bicycles +Bid +Bidder +Bidding +Bide +Biding +Bidirectionality +Bids +Bieber +Big +Big Dog +BigG2010 +BigG2010's +BigMik511 +BigMik511's +Bigass +Bigbrainiac +Bigbubba +Bigdog +Bigdogs +Biggest +Biggestnerd +Bigly +BiglyError +BiglyError's +Bigman +Bigot +Bigoted +Bigotries +Bigotry +Bigots +Bigshot +Bigthink +Bigthirsty +Bigwigs +Bike +Biker +Bikes +Bikini +Bilateral +Bilbo +Bile +Bilingual +Bill +Billable +Billboard +Billboards +Billiard +Billiards +Billion +Billionaire +Billionaires +Billions +Billionth +Billow +Bills +Billy +Bimbo +Bimbos +Bimonthly +Bin +Binard +Binard's +Binaries +Binary +BinchyMonkey +Binchyland +Binchymonkey +Binchymonkey's +Bind +Binding +Bindings +Binds +Bing +Bing Chilling +Binge +Binged +Bingeing +Binges +Binging +Bingle +Bingo +Bingus +Binky +Bins +Bio +Biochemistry +Biodiversity +Biodome +Biographer +Biographical +Biographies +Biography +Biolab +Biological +Biologically +Biologist +Biology +Biome +Biomes +Biopsy +Bioshock +Biota +Biotechnology +Bipartisan +Bippity +Birb +Birch +Bird +Birdemic +Birdie +Birdman +Birds +Birdy +Birmingham +Birmingham's +Birnessite +Biro +Birth +Birthday +Birthdays +Birthing +Birthplace +Birthright +Births +Biscuit +Biscuitoid +Biscuitoids +Biscuits +Bisexual +Bisexuals +Bishop +Bishops +Bismarck +Bismark +Bismillah +Bismuth +Bison +Bit +Bitch +Bitchass +Bitchboy +Bitched +Bitches +Bitchfit +Bitchin +Bitching +Bitchy +Bitcoin +Bitcoin Mining Center +Bitcoinfees +Bitcoins +Bitconnect +Bite +Biters +Bites +Biting +Bitmana +Bitmap +Bitrate +Bitrix +Bits +Bitsch +Bitte +Bitten +Bitter +Bitterest +Bitterly +Bitterness +Bittersorcerer +Bittersweet +Bittorrent +Bitty +Bitumen +Bituminous +Biweekly +Bixbite97 +Bixbite97's +Bizarre +Bizarrely +Bizarro +Bizzare +Bizzaro +Bizzig +Bizzigs +Bj +Bjork +Bjorne +Blabbering +Blabbing +Black +Black Blocks +Black Diamond +Black cauldron +Black materia +Black_Fusion +Black_Fusion's +Blackastronaut +Blackbear +Blackberry +Blackbird +Blackboard +Blackcaps +Blackcat +Blackcoats +Blackcrown +Blackcrowns +Blacked +Blacken +Blackened +Blackguard +Blackhat +Blackhats +Blackjack +Blacklist +Blacklisted +Blacklisting +Blacklists +Blackmail +Blackmailed +Blackmailing +Blackmails +Blackmarket +Blackness +Blackout +Blackout +Blackouts +Blackreach +Blackrock +Blacksite +Blacksites +Blacksmith +Blacksmithing +Blackspigot +Blackspigot's +Blackwater +Blackwell +Bladder +Blade +Blades +Blah +Blahblah +Blahblahblah +Blair +Blaire +Blake +Blame +Blamed +Blameless +Blames +Blameworthiness +Blameworthy +Blaming +Blamings +Blanche +Blanched +Blanco +Blancos +BlandSeaBlack +BlandSeaBlack's +Blank +Blanked +BlankestAtlas +BlankestAtlas's +Blanket +Blanketing +Blankets +Blanking +Blare +Blaring +Blartlol +Blartlol's +Blaspheme +Blasphemers +Blasphemous +Blasphemy +Blast +Blasted +Blaster +Blasting +Blasts +Blatancy +Blatant +Blatantly +Blatent +Blatently +Blathering +Blatoon +Blay +Blaze +Blazed +Blazefury Driftwood Piercer +Blazer +Blazerods +Blazes +Blazin +Blazing +Blazon +Blazoned +Bleach +Bleached +Bleachers +Bleaching +Bleak +Bleakest +Bleary +Bleat +Bleating +Blech +Bled +Bleed +Bleeding +Bleeds +Bleep +Blegh +Bleh +Blemish +Blend +Blended +Blender +Blenders +Blending +Blends +Bless +Blessed +Blesses +Blessing +Blessings +Blew +Blight +Blighted +Blightspore, Fetish of Perdition +Blimey +Blimeys +Blimps +Blind +Blinded +Blindfold +Blindfolded +Blindfolds +Blinding +Blindingly +Blindly +Blindness +Blinds +Blindsided +Blindspots +Bling +Blink +Blinked +Blinkered +Blinking +Blinks +Blinkstrike +Blip +Blips +Bliss +Blissful +Blissfully +Blister +Blitz +Blitzed +Blitzkrieg +Blitzkrieged +Blizz +Blizzard +Bloat +Bloated +Bloatware +Blob +Blob's +Blobby +Blobross +Blobs +Bloc +Block +BlockSpiration +BlockSpiration's +Blockade +Blockaded +Blockades +Blockading +Blockbreak +Blockbreaks +Blockbuster +Blockbuster's +Blockchain +Blockchainistan +Blockclick +Blockconfig +Blocked +Blocker +Blockers +Blockgame +Blockhead +Blockheads +Blockhit +Blockhitting +Blockhouse +Blockid +Blockids +Blocking +Blocklike +Blocklistener +Blockman +Blockmen +Blockmines +Blocks +Blockspammed +Blockss +Blockstate +Blocktype +Blockwise +Blocky +Blog +Blogger +Bloggers +Blogging +Blogs +Blogspot +Bloke +Blokes +Blond +Blonde +Blondi +Blondie +Bloo +Blood +Blood Infused Chalice +Bloodbath +Bloodcrew +Blooded +Bloodhound +Bloodied +Bloodied Blade +Bloodier +Bloodless +Bloodline +Bloodlines +Bloodloss +Bloodlust +Bloodnbones +Bloodshed +Bloodshot +Bloodsurge Longsword +Bloodthirsty +Bloody +Bloof +Bloof's +Bloom +Bloomberg +Bloomean +Bloomeans +Bloomer +Bloomers +Bloomian +Bloomians +Blooming +Bloompf +Blooms +Bloop +Bloopers +BlorbesGaloshes +BlorbesGaloshes's +Blossom +Blossoming +Blot +Blotch +Blots +Blotting +Blouse +Blow +Blowback +Blower +Blowhards +Blowing +Blowingly +Blowjob +Blowjobs +Blowkiss +Blown +Blowout +Blows +Blowtheball +Blowup +Blox +Blu9710 +Blu9710's +Blubber +Blubbering +Blud +Bludgeon +Bludgeoned +Bludgeoning +Blue +BlueClownPierce +BlueClownPierce's +BlueDevel +Blueman +Bluemissiles +Blueone +Bluepill +Bluepilled +Blueprint +Blueprints +Blues +Bluescreening +Bluetooth +Bluff +Bluffed +Bluffing +Blunder +Blunderbuss +Blundered +Blundering +Blunders +Blunt +Bluntly +Bluntness +Blunts +Blur +Blurb +Blurr +Blurred +Blurring +Blurrs +Blurry +Blurs +Blurting +Blush +Blushes +Blushing +Bluster +Blustering +Blyson +Blyson's +Bman +Bmb +Bmi +Bmw +Bmxbike08 +Bmxbike08's +Bnb +Bnp +Bnw +Bo +Boa +Boar +Board +Boarder +Boarders +Boardgame +Boarding +Boardroom +Boards +Boardwalk +Boarist +Boast +Boasted +Boastful +Boasting +Boasts +Boat +Boated +Boaters +Boatglitching +Boating +Boatload +Boatloads +Boatmurdered +Boatmurdereds +Boats +Bob +Bob_the_BuiIder +Bob_the_BuiIder's +Boba +Bobbeh +Bobbity +Bobble +Bobbo +Bobbunny +Bobby +Bobbyist +Bobcat +Bobcats +Bobobo +Bobs +Bobsled +Bock +Bocked +Bocks +Bod +Bodacious +Bode +Bodes +Bodhi +Bodice +Bodie +Bodied +Bodies +Bodily +Boding +Bodly +Bodmin +Bods +Body +Bodybuilder +Bodycount +Bodyfat +Bodyguard +Bodys +Boeing +Boer +Boers +Bofa +Bog +Bogaloo +Bogans +Bogdanoffs +Bogeyman +Bogged +Bogging +Boggle +Boggled +Boggles +Boggling +Bogs +Bogus +Bohemia +Bohr +Boi +Boii +Boiii +Boil +Boiled +Boiler +Boilerplate +Boilerroom +Boiling +Boils +Boinked +Boint +Bointy +Bointypost +Boios +Boipussy +Bois +Boisterous +Bolchevista +Bold +Bolder +Boldfacedly +Bolding +Boldly +Bole +Bolitics +Bolivia +Bolivian +Boll +Bolldozing +BolleDeBoll +BolleDeBoll's +BolleDeBolll +BolleDeBolll's +Bolle_Josh +Bolle_Josh's +Bolles +Bollingism +Bollocks +Bollywood +Bologna +Bolshevik +Bolsheviks +Bolshevism +Bolster +Bolstered +Bolt +Bolted +Bolterran +Bolting +Bolton +Bolts +Bomb +Bomba +Bombard +Bombarded +Bombarding +Bombardment +Bombardments +Bombast +Bombastic +Bombay +Bombe +Bombed +Bomber +Bombers +Bombig +Bombin +Bombing +Bombings +Bombista +Bombs +Bonafide +Bonafied +Bondage +Bonded +Bonding +Bonds +Bone +Boned +Boneitis +Bonemeal +Bonemealing +Boner +Bonergang +Bonerkiller +Boners +Bones +Bonesaw +Bonesboy +Boney +Bonezone +Bonfire +Bonfires +Bong +Bonger +Bongo +Bongobongo +Bongos +Boning +Bonirob +Bonita +Bonjour +Bonk +Bonkers +Bonkill +Bonkiller +Bonkillism +Bonnie +Bono +Bonteboks +Bonus +Bonuses +Bonzi +Boo +Boob +Boobies +Boobs +Booby +Boof +Boofing +Booga +Boogaberg +Boogaloo +Boogaman +Boogey +Boogeyhips +Boogeyman +Boogeymen +Boogie +Boogieman +Boogy +Boohoo +Book +Book_Bot +Book_Bot's +Bookcase +Bookcases +Booked +Bookie +Booking +Bookings +Bookish +Bookkeeper +Bookkeeping +Bookmaking +Bookmark +Bookmarked +Bookmarking +Bookmarks +Books +Bookseller +Bookshelf +Bookshelves +Booksmart +Bookstore +Bookstores +Bookwork +Bookworkers +Bookworm +Bookz +Bool +Boolean +Booler +Boom +Boombangsmash +Boombasil +Boomchuckle +Boomed +Boomer +Boomerangs +Boomerpie +Boomers +Booming +Booms +Boomshakalaka +Boomtown +Boomtowns +Boon +Boondocks +Boondoggle +Boone +Booney +Booo +Boop +Boor +Boorish +Boost +Boosted +Booster +Boosties +Boosting +Boosts +Boot +Bootable +Bootcamp +Booted +Booter +Booters +Booth +Booths +Booties +Bootiful +Booting +Bootleg +Bootless +Bootlicking +Boots +Bootstrap +Bootstrapping +Bootstraps +Booty +Bootyful +Booze +Boozer +Boozle +Bop +Bopped +Bopper +Bopping +Bops +Borat +Borax +Border +Bordered +Bordergore +Bordering +Borderjumper +Borderland +Borderlands +Borderless +Borderline +Borderlining +Borders +Bordure +Bore +Boreal +Boreal Fed. +Borealia +Borealis +Bored +Boredom +Boreon +Bores +Borg +Boricua +Boring +Boringly +Boringness +Boringnumbers +Boris +Bork +Borked +Borkos +Borks +Borlista +Born +Borne +Borough +Boroughs +Borrow +Borrowed +Borrower +Borrowers +Borrowing +Borrows +Bosh +Bosha +Bosna i Hercegovina +Bosnia +Bosnia and Herzegovina +Bosnian +Boss +Bossa +Bossed +Bosses +Bossing +Bossman +Boston +Bostonian +Bot +Bot_Alunya +Bot_Alunya's +Botable +Botanical +Botanist +Botany +Botblock +Botboy +Botch +Botched +Botcraft +Botella +Boterhamia +Botfarming +Botgamechat +Both +Botharvest +Bother +Bothered +Bothering +Bothers +Bothersome +Bothsides +Bothsidesism +Botless +Botlike +Botmods +Botnet +Botnets +Botoms +Botrank +Bots +Botsmiths +Botsrights +Botswana +Bottable +Botted +Botter +Botters +Botting +Bottings +Bottle +Bottlecaps +Bottled +Bottledexperience +Bottleneck +Bottlenecked +Bottlenecking +Bottlenecks +Bottles +Bottling +Bottom +BottomEyes +Bottomboy +Bottomleft +Bottomless +Bottoms +Bottomtext +Botunism +Botwatch +Botwinder +Boudaries +Boudica +Boudoir +Bought +Boulder +Boulders +Boulevard +Bounce +Bounced +Bouncer +Bounces +Bouncing +Bouncy +Bound +Boundaries +Boundary +Bounded +Bounding +Boundless +Boundries +Boundry +Bounds +Bount +Bounteous +Bountied +Bounties +Bountiful +Bounty +Bountyable +Bountyer +Bountyhunting +Bountying +Bountymod +Bouquet +Bourbon +Bourgeois +Bourgeoisie +Bourgie +Bourne +Bourough +Bout +Boutique +Boutme +Bouts +Boutta +Bouys +Bouzazzi +Bov +Bova +Bovine +Bow +Bowbuff +Bowdews +Bowed +Bowel +Bowels +Bowery +Bowfire +Bowflight +Bowga +Bowga's +Bowie +Bowilla +Bowilla's +Bowing +Bowl +Bowlcut +Bowled +Bowler +Bowling +Bowls +Bowman +Bowmen +Bowposting +Bowposts +Bowpvp +Bows +Bowshots +Bowspams +Bowsprit +Box +Boxed +Boxer +Boxers +Boxes +Boxing +Boxista +Boxnews +Boxtalk +Boxxed +Boxy +Boy +Boyband +Boyboy +Boybutt +Boycott +Boycotted +Boycotting +Boycotts +Boye +Boyfriend +Boyhood +Boyo +Boyos +Boypussy +Boys +Boyyo +Boyyy +Boyz +Bozo +Bpa +Bpp +Bps +Bra +Brabant +Brace +Brace Yourself +Braced +Bracelet +Bracelets +Bracer +Bracers +Braces +Bracing +Bracket +Brackets +Brackish +Brad +Bradford +Bradley +BradoTomato +BradoTomato's +Brady +Braemar +Brag +Bragged +Bragging +Brags +Brah +Braids +Braille +Brain +Braincells +Brainchild +Braindead +Brained +Brainer +Brainfarts +Brainiac +Brainicus +Brainless +Brainlet +Brainlets +Brainpower +Brains +Brainstorm +Brainstorming +Brainwash +Brainwashed +Brainwashing +Brainy +Brake +Brakes +Braking +Bramble +Brampton +Bran +Branch +Branched +Branches +Branching +Brand +Branded +Brandenburg +Branding +Brandish +Brandishing +Brandon +Brands +Brandy +Bras +Brash +Brasil +Brass +Brat +Brats +Bratty +Braun +Bravado +Brave +Braved +Braveheart +Bravely +Braver +Bravery +Bravest +Bravo +Bravos +Brawl +Brawling +Brawls +Brawn +Brawny +Brax +Braxton +Brayden +Brazen +Brazenly +Brazier +Brazil +Brazilian +Brazilians +Brb +Breach +Breached +Breacher +Breaches +Breaching +Bread +Breadbasket +Breadcrumbs +Breaded +Breading +Breadpilled +Breadpvp +Breads +Breadsticks +Break +Breakable +Breakage +Breakdown +Breakdowns +Breaker +Breakers +Breakeven +Breakfast +Breakfixing +Breaking +Breakingly +Breakingmylegs +Breakout +Breaks +Breakthrough +Breaktime +Breaktimes +Breakup +Breakwater +Breast +Breastplate +Breasts +Breastwork +Breath +Breathable +Breathalyzer +Breathe +Breathed +Breather +Breathes +Breathing +Breathless +Breaths +Breathtaking +Bred +Breddy +Breed +Breedable +Breeder +Breeders +Breeding +Breeds +Breeze +Breezed +Breezily +Breezy +Breitbart +Brennau +Brent +Brenton +Breslau +Breslaus +Brethren +Brett +Bretton +Bretty +Brevity +Brew +BrewBlacklist +BrewSantorin +Brewables +Brewed +Brewer +Brewer's Guild +Breweries +Brewers +Brewery +Brewing +Brewmaster +Brews +Brewski +Brewyern +Brexit +Brexiters +Bri +Brian +Briana +Brianna +Briar +Briars +Bribe +Bribed +Bribery +Bribes +Bribing +Brice +Brick +Brick_WallGaming +Brick_WallGaming's +Bricked +Bricking +Bricks +Brickwork +Bridal +Bride +Brides +Bridesmaid +Bridesmaids +Bridge +Bridged +Bridgeman +Bridges +Bridget +Bridgeview +Bridging +Brief +Briefcase +Briefed +Briefing +Briefly +Briefs +Brielle +Brier +Brig +Brigade +Brigaded +Brigader +Brigaders +Brigades +Brigadier +Brigadiers +Brigading +Brigand +Brigands +Brigantine +Brigate +Bright +Brightcove +Brighten +Brightened +Brighter +Brightest +Brightly +Brightness +Brighton +Brightshore +Brightshores +Brightside +Brigid +Brilliance +Brilliance, Annihilation of Blood +Brilliant +Brilliantly +Brim +Brimming +Brimstone +Brimstones +Brine +Bring +Bringer +Bringin +Bringing +Bringmethesoup +Brings +Brink +Brinkmanship +Brinton +Brinton's +Brintonposting +Brintons +Briny +Briquette +Brisbane +Bristled +Bristling +Bristol +Brit +Britain +Britains +Britannia +Britannica +Britbong +Britbonger +British +BritishMunchie +BritishMunchie's +BritishWanderer +BritishWanderer's +Britishwanderer +Britney +Briton +Britpol +Brits +BritsScarf +Brittany +Brittle +Brit’s +Brizzys +Bro +Broach +Broad +Broadband +Broadcast +Broadcasted +Broadcaster +Broadcasting +Broadcasts +Broaden +Broader +Broadest +Broadly +Broadside +Broadsword +Broadswords +Broadway +Broccoli +Brochure +Brochures +Brocktree +Brocktree's +Brody +Broil +Broke +Brokeback +Brokeboi +Broken +Broker +Brokered +Brokering +Brokers +Bronchitis +Bronies +Bronnakus +Bronnakus' Air Jordans +Bronnakus's +Bronson +Brontosaurus +Brony +Bronze +Bronzed Flatbow +Bronzed Longbow +Bronzex +Bronzex's +Brooch +Brood +Brooded +Broods +Brooke +Brooklyn +Brooks +Broom +Broomstick +Broooo +Bros +Brosaka +Broseidon +Broski +Brosocialist +Brosplitting +Brotality +Broth +Brothel +Brother +BrotherInPaagf +Brotherhood +Brotherhood of Steel +Brotherly +Brothers +Brought +Brow +Brown +Browned +Brownie +Brownies +Browning +Brownish +Browns +Brownwater +Brows +Browse +Browsed +Browser +Browsers +Browsing +Browster +Brrrrrr +Bruce +Brucie +Bruder +Bruh +Bruise +Bruised +Bruises +Bruising +Bruma +Brunei Darussalam +Brunette +Bruno +Brunsvik +Brunswick +Brunt +Brush +Brushed +Brushes +Brushing +Brusque +Brussels +Brutal +Brutalism +Brutalist +Brutalistic +Brutality +Brutally +Brute +Bruteforce +Bruteforced +Bruteforces +Bruteforcing +Brutes +Brutish +Brutus +Bruv +Bryan +Bryce +Bryn +Brynian +Brynians +Brynn +Bryns +Bs +Bstallio +Bstallio's +Btc +Bts +Btw +Bubble +Bubblegum +Bubbles +Bubbly +Buccaneer +Buccaneers +Buck +Buckarinos +Buckaroo +Buckenshire +Bucket +Bucketing +Bucketload +Buckets +Buckeye +Buckingham +Buckle +Buckled +Buckler +Buckles +Buckling +Bucks +Buckskin +Buckwheat +BuckyHD +BuckyHD's +Bud +BudLight +Budapest +Buddha +Buddhism +Buddhist +Buddhists +Buddie +Buddies +Budding +Buddy +Budge +Budget +Budgets +Budging +Budista +Buds +Budweiser +Budy +Bueno +Buenos +Bueraucracy +Buff +Buffalo +Buffed +Buffer +Buffering +Buffers +Bufferzone +Buffet +Buffing +Buffoon +Buffoonery +Buffoons +Buffs +Bug +Bugatti +Bugbear +Bugfix +Bugfixes +Bugfixing +Bugger +Buggered +Buggers +Buggery +Buggiest +Buggily +Bugginess +Bugging +Buggy +Buglesz +Buglesz's +Bugoj +Bugs +Bugsquashing +Bugtesting +Build +Buildaustists +Buildcraft +Builder +Buildercrew +Builders +Buildfriend +Buildfriends +Buildin +Building +Buildings +Buildmaster +Builds +Buildup +Bukkake +Bukkit +Bukkits +Bulb +Bulbous +Bulbs +Bulgaria +Bulgarian +Bulgarians +Bulge +Bulges +Bulging +Bulk +Bulkhead +Bulking +Bulks +Bulky +Bull +Bullcrap +Bulldog +Bulldoze +Bulldozed +Bulldozers +Bulldozing +Bullet +Bulleted +Bulletin +Bulletins +Bulletproof +Bullets +Bullheaded +Bullhorn +Bullied +Bullies +Bulloks +Bulls +Bullseye +Bullseye, Etcher of Unholy Might +Bullshit +Bullshitery +Bullshits +Bullshitted +Bullshitter +Bullshitters +Bullshittery +Bullshitting +Bullshitty +Bully +Bullyhunter +Bullyhunters +Bullying +Bulwark +Bum +Bumb +Bumbershoot +Bumble +Bumbled +Bumbling +Bumfuck +Bumfuzzle +Bummed +Bummer +Bumming +Bump +Bumped +Bumper +Bumping +Bumps +Bumpy +Bumrush +Bums +Bun +Bunch +Buncha +Bunched +Bunches +Bundle +Bundled +Bundles +Bundling +Bundly +Bundt +Bundy +Bungalow +Bungalows +Bungee +Bungeecord +Bungled +Bunk +Bunker +Bunker1851 +Bunker1851's +Bunkered +Bunkerfriend +Bunkers +Bunkies +Bunkmate +Bunkmate's +Bunks +Bunnies +Bunny +Bunny Hat +Buoyancy +Buoyant +Burden +Burdened +Burdening +Burdens +Burdensome +Bureau +Bureaucracies +Bureaucracy +Bureaucrat +Bureaucratic +Bureaucrats +Burgeoning +Burger +Burgers +Burgher +Burglar +Burglarizes +Burglars +Burglary +Burgled +Burgundian +Burgundians +Burial +Buried +Buries +Burkina Faso +Burlington +Burly +Burma +Burn +Burnable +Burned +Burner +Burner_Flames +Burner_Flames's +Burners +Burnie +Burning +Burnout +Burns +Burnt +Burp +BurpQueen +BurrZurrCarr +BurrZurrCarr's +Burrito +Burritos +Burrow +Burrowed +Burrowing +Burrows +Burst +Bursting +Bursts +Burundi +Bury +Burying +Bus +Buscemi +Buses +Busfare +Bush +Bushcrafting +Bushel +Bushes +Bushycraftbt99 +Bushycraftbt99's +Busiest +Business +Businesses +Businessinsider +Businesslike +Businessman +Businessmen +Businesss +Businesswoman +Bussin +Bussyblasted +Bust +Busta +Busted +Buster +Busters +Bustin +Busting +Bustling +Busts +Busty +Busy +Busywork +But +Butane +Butch +Butcher +Butchered +Butchering +Butchers +Buthurted +Butler +Butlers +Buts +Butt +Buttblasted +Buttboy +Buttbuddies +Buttbuddy +Buttcheeks +Butter +Buttercup +Buttered +Butterfingers +Butterfly +Buttering +Buttermilk +Butternutter +Buttface +Buttflustered +Buttfrustration +Buttfuck +Buttfucked +Butthead +Butthole +Buttholes +Butthurt +Buttload +Buttloads +Buttmunch +Buttocks +Button +Buttons +Buttplugs +Butts +Buttsex +Buy +Buyer +Buyers +Buying +Buyout +Buys +Buzz +Buzzfeed +Buzzing +Buzzkill +Buzzword +Buzzwords +Bwitannia +Bwooklyn +By +Bye +Byebye +Byeeee +Byelarus +Bygone +Bygones +Byhalia +Byhalia's +Bylaws +Bypass +Bypassed +Bypasses +Bypassing +Byproduct +Byproducts +Bystander +Bystanders +Byte +Bytes +Byzantine +Byzantines +Byzantium +C +C.C.T.T. +C4Mmo +C4Mmo's +CAM_AL +CAM_AL's +CBear1308 +CBear1308's +CBtopper223 +CBtopper223's +CCCP +CCTT +CDM +CHOAM +CIA +CJTheKing12345 +CJTheKing12345's +CJTheking12345 +CJTheking12345's +COCA COLA +CONSUME +CPU08 +CPU08's +CRACKERJACK +CRACKERJACK's +CVS Corp. +CWer +Cab +Cabal +Cabalista +Cabaret +Cabbage +Cabbage__ +Cabbage__'s +Cabbages +Cabin +Cabinet +Cabinetry +Cabinets +Cabins +Cable +Cables +Cabo Verde +Caboose +Cabriolet +Cacao +Cachaca +Cache +Cached +Caches +Caching +Cacique +Cackle +Cackled +Cackles +Cackling +Cacophony +Cacti +Cactus +Cactusses +Caculator +Cadaverous +Caden +Cadence +Cadet +Cadets +Cadillac +Caelum +Caesar +Caesar's +CaesarBiggles +CaesarBiggles's +Caesars +Cafe +Cafeteria +Caffeine +Cage +Caged +Cages +Cagey +Cahoots +Caiden +Caimed +Cain +Cair +Cairn +Cairo +Cait +Caitiff +Caitlyn +Cake +Cakeday +Cakes +Caketholism +Cakewalk +Cal +Calamari +Calamitous +Calamity +Calamity, Cry of the Talon +Calcium +Calculate +Calculated +Calculates +Calculating +Calculation +Calculations +Calculative +Calculator +Calculators +Calculus +Cald +Caldron +Caleb +Caledfwlch +Caledonia +Caledonian +Caledonians +Calendar +Calendars +Calestine +Cali +Caliber +Calibrated +Calibration +California +Californian +Caligula +Caliphate +Caliphates +Calista +Calivle +Call +Call of Duty +CallMeBur +CallMeBur's +Callan +Callback +Callboy +Called +Callen +Caller +Callers +Callgirl +Callie +Calling +Calliope +Callooh Callay +Callous +Calls +Callum +Calm +Calmed +Calmer +Calming +Calmly +Calmness +Caloric +Calories +Calvin +Calvinist +Calw +Cam +Cam_Al +Cambodia +Cambodian +Cambodians +Cambrian +Cambridge +Camcorder +Camcorders +Camden +Came +Cameback +Camel +Camels +Cameo +Camera +Cameras +Cameron +Cameroon +Camila +Camilla +Camille +Camiseo +Cammo37 +Cammo37's +Camokool +Camokool's +Camouflage +Camp +Campaign +Campaigned +Campaigning +Campaigns +Campbell +Camped +Camper +Campfire +Campground +Camping +Campista +Camps +Campsite +Campus +Campuses +Cams +Can +Canada +Canadas +Canadian +Canadians +Canal +Canalism +Canalist +Canalists +Canals +Canalside +Canary +Canberra +Cancel +Canceled +Canceling +Cancellation +Cancels +Cancer +Candaians +Candid +Candidacy +Candidate +Candidates +Candies +Candle +Candlelight +Candles +Candles +Candles 's +Candles's +Candlestick +Candor +Candria +Candy +Candyland +Cane +Cane Corp +Canes +Canidiates +Canine +Canines +Canister +Cannabalize +Cannabis +Canned +Cannibal +Cannibalism +Cannibalize +Cannibalizing +Canning +Cannon +Cannonized +Cannons +Cannot +Canny +Canoli +Canon +Canonical +Canonize +Canopies +Canopus +Canopy +Cans +Canst +Cant +Cantaloupe +Canteen +Canter +Cantina +Canto +Canvas +Canvassing +Canyon +Canyons +Cap +Capabilities +Capability +Capable +Capacitor +Capacitors +Capacity +Capchas +Cape +Cape Verde +Capeland +Capeless +Capella +Capes +Capetown +CapianColton +CapianColton's +Capital +Capitalism +Capitalist +Capitalistic +Capitalists +Capitalization +Capitalize +Capitalized +Capitalizing +Capitals +Capitol +Capitulate +Capitulated +Capitulating +Capitulation +Capone +Capped +Cappies +Capping +Cappuccino +Cappy +Capri +Capri's +Capriciously +Capricorn +Capris +Caps +Capsized +Capslock +Capsule +Captain +CaptainCarizzo +CaptainCarizzo's +Captainklutz +Captainless +Captainmike +Captainraoul +Captains +Captainsparklez +Captcha +Captchas +Caption +Captions +Captious +Captivate +Captivated +Captivating +Captive +Captives +Captivity +Captjazz +Captor +Captors +Capture +Captured +Capturer +Capturers +Captures +Capturing +Capybaras +Car +Cara +Caracalla +Caracas +Caralho +Caramel +Caramels +Carapace +Caravan +Caravans +Carb +Carbide +Carbine +Carbohydrates +Carbolic +Carbon +Carbonate +Carbonic +Carbonite +Carbonites +Carbons +Carbs +Carcass +Carcino +Carcinogenic +Card +Cardboard +Cardfight +Cardiac +Cardiff +Cardigans +Cardinal +Cardinals +Cardio +Cardiovascular +Cards +Care +Carebear +Carebears +Cared +Career +Careerist +Careers +Carefree +Careful +Carefull +Carefully +Careless +Carelessly +Carelessness +Cares +Caress +Caretaker +Caretakers +Carfully +Cargo +Cargoes +Caribbean +Caribou +Caricature +Caricatures +Caricaturing +Carina +Caring +Carinthia +Carl +Carla +Carlin +Carlins +Carlista +Carlo +Carlos +Carlson +Carly +Carmel +Carmine +Carnage +Carnageblender +Carnal +Carnation +Carnival +Carnivorous +Carography +Carol +Carolina +Caroline +Carouse +Carousel +Carp +Carpal +Carpathia +Carpathian +Carpathians +Carpathias +Carpathiopolis +Carpel +Carpenter +Carpentry +Carpet +Carpets +Carriage +Carrie +Carried +Carrier +Carriers +Carries +Carrieunderwear +Carrion +Carroll +Carrot +Carrots +Carry +Carrying +Carryover +Carryovers +Cars +Carson +Carsoncorp +Carsonite +Carsonites +Cart +Cartel +Cartels +Carter +Cartesian +Carthage +Cartilage +Carting +Cartista +Cartivators +Cartographer +Cartographers +Cartographic +Cartography +Carton +Cartoon +Cartoonish +Cartoonishly +Cartoons +Cartridge +Cartridges +Carts +Carve +Carved +Carver +Carving +Cas +Casanuela +Cascade +Cascades +Cascadia +Cascadian +Cascading +Case +Caselaw +Casement +Cases +Casey +Cash +Cashed +Casherino +Cashes +Cashews +Cashier +Cashiers +Cashing +Cashmere +Casia +Casian +Casiangames +Casias +Casing +Casings +Casino +Casinos +Casio +Cask +Casket +Casper +Caspian +Casque +Cassandra +Cassette +Cassi +Cassidy +Cassie +Cassius +Cast +CastKeyboard911 +CastKeyboard911's +Castaway +Castbox +Caste +Casted +Castellano +Caster +Castes +Castilian +Castille +Casting +Castle +Castlegate +Castlegates +Castles +Castrate +Castrating +Castration +Castrators +Castro +Casts +Castulus +Casual +Casualities +Casualization +Casually +Casuals +Casualties +Casualty +Casualy +Cat +Cat_Alunya +Cat_Alunya's +Cat_alunya +Cat_alunya's +Cataclysm +Cataclysm Bag +Cataclysmic +Catacombs +Catagories +Catalog +Cataloging +Catalogs +Catalogue +Catalogued +Catalogues +Catalon +Catalonia +Catalyser +Catalyst +Catalyzed +Catapult +Catapulting +Catapults +Cataract +Catastrophe +Catastrophes +Catastrophic +Catastrophically +Catatonic +Catboi +Catboy +Catboys +Catch +Catchall +Catchem +Catcher +Catchers +Catching +Catchphrase +Catcraft +Categorical +Categorically +Categories +Categorization +Categorize +Categorized +Categorizing +Category +Catering +Caterpillar +Caterpillars +Catfish +Catfished +Catfriend +Catfriends +Catgirl +Catgirls +Catharsis +Cathartic +Cathedral +Cathedrals +Catherine +Catholic +Catholicism +Catholics +Catkin +Catnip +Cats +Cattle +Cattus_ +Cattus_'s +Catty +Catwalk +Catzombies +Caught +Cauldron +Cauldrons +Cauliflower +Causal +Causalities +Causally +Causation +Cause +Caused +Causer +Causers +Causes +Causing +Caustic +Caustically +Causus +Caution +Cautionary +Cautioned +Cautious +Cautiously +Cavalier +Cavalry +Cave +Caveat +Caveats +Caved +Caveman +Cavemap +Cavemen +Cavemode +Caveofwonders +Cavern +Cavernous +Caverns +Caves +Caveside +Cavespiders +Caveworm +Cavil +Caving +Cavities +Cavity +Cayden +Cayenne +Cayman +Cayman Islands +Cayo +Cayse +Ccmap +Ccmaps +Ccp +Cctv +Cd +CdrJerry +CdrJerry's +Ceasar +Cease +Ceased +Ceasefire +Ceases +Cebroxia +Cecil +Cecilia +CedarValiant +CedarValiant's +Ceded +Cedeing +Cedes +Ceding +Cedric +Ceiling +Ceilings +Celeb +Celebrate +Celebrated +Celebrates +Celebrating +Celebration +Celebrations +Celebratory +Celebrity +Celebs +Celeste +Celestia +Celestial +Celia +Celibacy +Celibate +Celina +Celine +Cell +Cellar +Cello +Cellphone +Cellphones +Cells +Cellular +Celsius +Celt +Celtic +Celts +Cement +Cemented +Cementing +Cements +Cen +Censor +Censored +Censoring +Censors +Censorship +Censure +Census +Censuses +Centaur +Centauri +Center +Centeral +Centered +Centerpiece +Centers +Centimeters +Centipede +Central +Central African Republic +Centralism +Centralization +Centralize +Centralized +Centralizing +Centre +Centrepiece +Centres +Centric +Centrifuge +Centrifuges +Centuries +Centurion +Centurions +Century +Ceo +Ceramic +Cereal +Cerebral +Ceremonial +Ceremonies +Certain +Certainly +Certainties +Certainty +Certifiably +Certificate +Certificates +Certification +Certified +Certify +Ceska Republika +Cession +Cesspit +Cesspool +Cesspools +Ceylon +Ch1pR +Ch1pR's +Chad +Chadbot +Chads +Chaff +ChaiDragonwell +ChaiDragonwell's +Chaikovsky +Chain +Chaincraft +Chained +Chaining +Chainlink +Chainmail +Chains +Chair +Chairman +Chairmen +Chairs +Chakras +Chalice +Chalices +Chalk +Chalkboard +Challenge +Challenged +Challenger +Challengers +Challenges +Challenging +Chamber +Chamberlain +Chamberlin +Chambers +Chameleon +Chamiiik +Chamiiik's +Champ +Champagne +Champion +ChampionEmperor +ChampionEmperor's +Championed +Championemperor +Championing +Champions +Championship +Championships +Championwarlord +Champs +Champton +Champtown +Chan +Chanada +Chance +Chancellor +Chancellors +Chancellorship +Chancellory +Chances +Chandelier +Chandler +Chandra +Chane +Change +Changeable +Changed +Changeling +Changelog +Changelogbot +Changelogs +Changer +Changes +Chanlec +Chanlec's +Channel +Channeled +Channeling +Channels +Channer +Channers +Chans +Chanseatic State +Chanting +Chants +Chaos +Chaos emerald +Chaos_Koenig +Chaos_Koenig's +Chaotic +Chap +Chapel +Chaplin +Chaps +Chapter +Chapters +Character +Characteristic +Characteristically +Characteristics +Characterization +Characterize +Characterized +Characterizing +Characters +Charade +Charcoal +Charge +Chargeback +Charged +Charger +Chargers +Charges +Charging +Chariot +Charisma +Charismatic +Charismatically +Charitable +Charitably +Charities +Charity +Charizard +Charlatan +Charles +Charleston +Charlesville +Charlie +Charlie Vabin +Charlie Vabin's +Charlieseeese +Charlieseeese's +Charlotte +Charlottes +Charm +Charmander +Charming +Charmingly +Charms +Charred +Charted +Charter +Charters +Charting +Charts +Chase +Chased +Chaser +Chasers +Chases +Chasing +Chasm +Chasms +Chassis +Chastise +Chastised +Chastity +Chat +Chatbots +Chatbox +Chatbubbles +Chatcrimes +Chateau +Chatflow +Chatlog +Chatlogs +Chatrange +Chatroom +Chats +Chatspam +Chatter +Chattiest +Chattin +Chatting +Chattings +Chatty +Chauffeur +Chauvinista +Chauvinistic +Chav +Chavs +Cheap +Cheapen +Cheapens +Cheaper +Cheapest +Cheapish +Cheaply +Cheapness +Cheapshow +Cheat +Cheatbreaker +Cheated +Cheater +Cheaterman +Cheaters +Cheatin +Cheating +Cheats +Cheaty +Check +Checkbox +Checkboxes +Checked +Checker +Checkerboard +Checkerboarding +Checkered +Checkers +Checking +Checklist +Checkmark +Checkmate +Checkout +Checkpoint +Checkpoints +Cheddar +CheddarOfGoblin +CheddarOfGoblin's +Cheek +Cheekclapper +Cheeks +Cheered +Cheerful +Cheerfully +Cheering +Cheerio +Cheerlead +Cheerleader +Cheerleaders +Cheerleading +Cheerless +Cheers +Cheery +Cheese +Cheesebubbles +Cheeseburger +Cheesecake +Cheesed +Cheeses +Cheesesteak +Cheesesteaks +Cheesey +Cheesy +Cheeto +Cheetos +CheezyJives +CheezyJives's +Chef +Chefs +Chelsea +Chemical +Chemicals +Chemistry +Chemotherapy +Cherish +Cherished +Chernobyl +Cherokee +Cherry +Cherrypick +Cherrypicked +Cherrypicking +Cherub +Cherubim +Cherubs +Chesham-upon-Tyne +Cheshire +Cheshirecat +Chess +Chessboards +Chessmaster +Chest +Chestcarts +Chested +Chester +Chesting +Chestnuts +Chestplate +Chestplates +Chestroom +Chests +Chestvault +ChevalierArlo +ChevalierArlo's +Chew +ChewLeKitten +ChewLeKitten's +Chewed +Chewing +Chewy +Chewy_Cool +Chewy_Cool's +Cheyenne +Chi +Chiana +Chiara +Chic +Chicago +Chick +Chicken +ChickenCoupDetat +ChickenCoupDetat's +ChickenWingGeek +ChickenWingGeek's +Chickenbombing +Chickenprime +Chickens +Chickenshit +Chief +Chiefdom +Chiefeagle +Chiefest +Chiefly +Chiefnug +Chieftain +Chieftains +Chieftan +Chihuahuas +Child +Childbirth +Childern +Childhood +Childish +Childishly +Childishness +Childlike +Children +Chile +Chile Enjoyer +Chili +Chill +Chillax +Chilled +Chillest +Chillin +Chilling +Chills +Chillstorms +Chillwave +Chimaera +Chimaeras +Chime +Chimney +Chimp +Chimpanzee +Chimpout +Chimps +Chin +China +Chinaman +Chinatown +Chinchilla +Chinchillas +Chinese +Chinook +Chior +Chip +Chipistan +Chipmunk +Chipotle +Chipped +Chipper +Chipping +Chips +Chirp +Chirping +Chirps +Chirstmas +Chisel +Chiseled +Chiselled +Chiss Association +Chistopher +Chitchat +Chivalry +Chive +ChizWiz +ChizWiz's +Chloe +Chloride +Chlorine +Chloroform +ChocChips +ChocChips's +Chocchips +Chock +Choco +Chocolate +Chocolates +Chocolatey +Chode +Chodes +Choice +Choices +Choir +Choise +Choke +Choked +Chokepoint +Chokepoints +Choking +Cholesterol +Chong +Chonky +Choo +Choochooing +Choose +Chop +Chopin +Choppas +Chopped +Chopper +Chopping +Choppy +Chops +Chopsticks +Chord +Chore +Chores +Chortle +Chorus +Chose +Chosen +Chosen's +Chosentwice +Chosentwice's +Chosentwicelol +Chosentwicelol's +Chosŏn +Chow +Chris +ChrisChrispie +ChrisChrispie's +Chriscrispie +Chrishal +Chrishal's +Chrisley +Chrisley's +Chrispy +Christ +Christen +Christendom +Christened +Christening +Christian +Christianity +Christians +Christine +Christmas +Christmas Island +Christopher +Christopia +Chroma +Chromatic +Chrome +Chromebook +Chromedelivery +Chromes +Chromezones +Chronic +Chronically +Chronicle +Chronicles +Chronological +Chronologically +Chronology +Chrysaor +Chubby +Chuck +Chuck's Fuck and Suck +Chuckled +Chuckles +Chuckling +Chuff +Chuffed +Chug +Chugging +Chugs +Chum +Chummy +Chump +Chumps +Chungus +Chunk +Chunkborders +Chunking +Chunklimits +Chunkload +Chunkloader +Chunkloading +Chunks +Chunky +Church +Church of Coppron +Churches +Churchill +Churchkey +Churchman +Churp +Churping +Chute +Chutes +Cia +Cicero +Cicero's +Cider +Cig +Cigar +Cigarette +Cigarettes +Cigars +Ciggys +Cigs +Cillian +Cincinnati +Cinder +Cinderella +Cindy +Cinema +Cinemas +Cinematic +Cinematics +Cinematography +Cinnabar +Cinnamon +CinnamonCakes +CinnamonCakes's +Cinzar +Cinzar's +Cipher +Ciphers +Circa +Circle +Circleblob +Circled +Circlejerk +Circlejerked +Circlejerkers +Circlejerkey +Circlejerking +Circlejerks +Circles +Circlet +Circling +Circuit +Circuitry +Circuits +Circular +Circularly +Circulate +Circulating +Circulation +Circumference +Circumnavigate +Circumnavigated +Circumnavigating +Circumstance +Circumstances +Circumstancial +Circumstantial +Circumvent +Circumvented +Circumventing +Circumvention +Circumvents +Circus +Cis +Cisgender +Cisgendered +Cissonius +Cissonius's +Cissonius’s +Cistern +Citadel +Citadelgui +Citadels +Citation +Citations +Cite +Cited +Cities +Citing +Citizen +Citizenry +Citizens +Citizenship +Citizenships +Cito +Citrus +City +City of England +City of Sorrel +Citybastion +Citydragon +Citygang +Citylion +Citylion's +Cityscape +Cityscapes +Citysearch +Citystate +Citystates +Civ +Civ+ +Civ+ Blitz +Civ101 +CivClassic 1.0 +CivClassic Beta +CivClassics 2.0 +CivClone +CivCraft +CivCraft Temp +CivEx 1.0 +CivEx 2.0 +CivEx 3.0 +CivEx: First Light Beta +CivFactions +CivForce +CivHeroes +CivIce +CivLands +CivLegacy Alpha +CivMC +CivMarket +CivMonday +CivRealms +CivRealms 2.0 +CivRealms Alpha +CivRealms Closed Beta +CivRealms Open Beta +CivRevolution +CivScarcity (1, 2, 3, 4) +CivTCG +CivTek +CivUN +CivUniverse 1.0 +CivUniverse Alpha +CivUniverse Beta +CivVie +CivWiki +Civadmin +Civatlas +Civattack +Civball +Civballing +Civballs +Civbank +Civbanks +Civbeds +Civbet +Civblock +Civbooks +Civboomer +Civbounty +Civbreak +Civcats +Civchat +Civchats +Civchunk +Civclassic +Civclassicbot +Civclassicexchange +Civclassicians +Civclassicpatreon +Civclassics +Civclassicsbot +Civclassicsexchange +Civclassicwiki +Civclicker +Civclient +Civclone +Civclones +Civcoin +Civcoins +Civcommunists +Civcommunity +Civcontent +Civcord +Civcore +Civcourt +Civcrack +Civcracks +Civcraft +Civcraft 1.0 +Civcraft 2.0 +Civcraft 3.0 +Civcraft Islands +Civcraftchaosgods +Civcraftcirclejerk +Civcraftconfessions +Civcraftcontract +Civcraftdevelopers +Civcrafter +Civcrafters +Civcraftians +Civcrafting +Civcraftleaks +Civcraftlite +Civcraftmafia +Civcraftmeta +Civcraftmods +Civcraftpropaganda +Civcraftpvp +Civcraftrenders +Civcraftroads +Civcrafts +Civcraftuncensored +Civcrap +Civcringe +Civcrossing +Civdad +Civdads +Civdevs +Civdiscord +Civdiscordbot +Civdisease +Civdrama +Civdrug +Civduties +Civearth +Civessence +Civex +Civexperiment +Civfactions +Civfactory +Civfefe +Civfool +Civforce +Civfriends +Civfrontier +Civgenre +Civgirl +Civgirls +Civgo +Civgonewild +Civguide +Civguns +Civhaven +Civhistory +Civhytale +Civian +Civians +Civic +Civics +Civil +Civilcraft +Civilian +Civilians +Civility +Civilization +Civilization: Evolved alpha +Civilizations +Civilized +Civilizing +Civilwar +Civing +Civintellectual +Civjustice +Civlegacy +Civlibraries +Civlife +Civlike +Civlottery +Civmain +Civman +Civmanicland +Civmap +Civmas +Civmax +Civmc +Civmedia +Civmen +Civmod +Civmods +Civmumble +Civness +Civnews +Civnomads +Civnuke +Civpapa +Civpeople +Civpermanent +Civpeta +Civpets +Civplayer +Civplayers +Civplaypen +Civplums +Civpoem +Civpoems +Civpoetry +Civpolitics +Civpp +Civpropaganda +Civpvp +Civpvper +Civpvps +Civradar +Civrader +Civradio +Civraft +Civrail +Civransoming +Civrealms +Civredstone +Civrelated +Civrelay +Civreparations +Civruble +Civrubles +Civs +Civscape +Civscarcity +Civscience +Civscouts +Civsentinel +Civserver +Civservers +Civsever +Civsex +Civshit +Civsluts +Civspiracy +Civspy +Civstyle +Civsurvival +Civtale +Civtemp +Civterror +Civtest +Civtest Alpha +Civtesters +Civtesting +Civtests +Civtrade +Civtube +Civtv +Civtype +Civun +Civuncensored +Civunion +Civva +Civvas +Civvers +Civvian +Civvians +Civving +Civwars +Civwe +Civwiki +Civwizardry +Civwizards +Civworld +Claim +Claimant +Claimants +Claimed +Claimer +Claimers +Claimes +Claiming +Claimless +Claims +Claimsadjuster +Claire +Clairvoyance +Clairvoyance +Clairvoyant +Clairvoyant +Clam +Clamber +Clambering +Clammy +Clamoring +Clamorous +Clamp +Clamping +Clamps +Clams +Clan +Clandestine +Clang +Clanking +Clans +Clap +Clapped +Clappin +Clapping +Clara +Clarification +Clarifications +Clarified +Clarify +Clarifying +Clarissa +Clarity +Clark +Clashed +Clashes +Clashing +Class +Classed +Classes +Classic +Classical +Classically +Classics +Classification +Classifications +Classified +Classify +Classifying +Classist +Classless +Classmate +Classmates +Classmen +Classroom +Classrooms +Classy +Claude +Claudia +Claus +Clause +Clauses +Claw +Clawing +Claws +Clay +Claylumps +Claymen +Claysand +Claystones +Clayton +Clean +Cleaned +Cleaner +Cleaners +Cleanest +Cleaning +Cleanly +Cleans +Cleanse +Cleansed +Cleanser +Cleansing +Cleanup +Clear +Clearance +Clearcut +Cleared +Clearer +Clearest +Clearification +Clearing +Clearings +Clearlag +Clearly +Clearwater +Cleave +Cleaver +Cleaving +Clefairy +Clemency +Clementine +Clench +Clenched +Clenches +Cleo +Cleon +Cleopatra +Clergy +Clerical +Clerk +Clerks +Cleveland +Clever +Cleverbot +Cleverer +Cleverly +Cliche +Click +Clickability +Clickable +Clickbait +Clickbaity +Clicked +Clicker +Clickerfriend +Clickers +Clickfast +Clickhacks +Clickhead +Clicking +Clickity +Clicklock +Clicks +Clickspeed +Clickstocks +Clicky +Clickyclick +Clickyclickers +Client +Clients +Clientside +Cliff +Cliffhanger +Cliffisland +Cliffnerd +Clifford +Cliffs +Cliffside +Cliffsides +Clifton +Climactic +Climate +Climates +Climax +Climb +Climbed +Climber +Climbing +Clinch +Cling +Clinging +Clingly +Clingy +Clinic +Clinical +Clinically +Clinics +Clint +Clinton +Clintons +Clip +Clipboard +Clipped +Clipper +Clipping +Clippings +Clippy +Clips +Clique +Cliques +Clit +Clitoral +Clitoris +Clits +Clive +Cloak +Cloak of invisibilty +Cloaked +Cloaking +Cloaks +Clobbered +Clock +Clockback +Clocked +Clocking +Clocks +Clocktapus +Clocktopus +Clocktower +Clockville +Clockwise +Clockwork +Clog +Clogged +Clogging +Clogs +Cloister +Clone +Cloned +Clones +Clonevault +Cloning +Clop +Clope +Cloper +Clops +Close +Closeby +Closed +Closely +Closeness +Closer +Closes +Closest +Closet +Closeted +Closets +Closing +Closure +Cloth +Clothed +Clothes +Clothing +Cloths +Clots +Cloud +Cloudflare +Cloudfront +Clouding +Cloudless +Clouds +Cloudy +Clouse +Clouses +Clout +Clove +Cloven +Clover +Cloves +Clown +Clowning +Clowns +Clowntown +Clownvoted +Clownworld +Clowny +Club +Clubbing +Clubhouse +Clubhouses +Clubpenguin +Clubs +Cluck +Clue +Clued +Clueless +Clues +Clump +Clumped +Clumpier +Clumps +Clumsiness +Clumsy +Clung +Clunkier +Clunky +Cluster +Clustered +Clusterfuck +Clustering +Clusters +Clutch +Clutch, Incarnation of the Daywalker +Clutched +Clutching +Clutter +Cluttered +Cluttering +Cluttery +Clutz +Clyde +Cmoooooon +Cnamav +Cnamav's +Cnet +Cnn +Coach +Coachaie +Coachaie's +Coached +Coaches +Coaching +Coal +Coalation +Coalblock +Coalblocks +Coalcraft +Coalition +Coalitions +Coarse +Coast +Coastal +Coasted +Coaster +Coasters +Coastguard +Coasting +Coastline +Coastlines +Coasts +Coat +Coated +Coates +Coathangers +Coating +Coats +Coattail +Coattails +Coax +Coaxed +Cobble +Cobblebomb +Cobbled +Cobblegrief +Cobblegriefing +Cobbler +Cobblestone +Cobbling +Cobra +Cobs +Cobweb +Cobwebbed +Cobwebs +Coca +CocaCola19679 +CocaCola19679's +Cocaine +Cockney +Cockpit +Cockroach +Cockroaches +Cocktail +Cocktails +Cocky +Coco +Cocoa +Cocobean +Coconut +Cocopops +Cocos Islands +Cod +Coddle +Coddled +Coddling +Code +Codebase +Codecademy +Codecraft +Codecub +Coded +Codefication +Codeityourself +Codemonkey +Codename +Coder +Coders +Codes +Codewise +Codeword +Codfish +Codification +Codified +Codify +Codifying +Cody +Coefficent +Coerce +Coerced +Coerces +Coercing +Coercion +Coercive +Coercively +Coexist +Coexistence +Coexisting +Coffe +Coffee +Coffees +Coffer +Coffers +Coffin +Cofound +Cofounded +Cofounder +Cofounders +Cog +Cognac +Cognition +Cognitive +Cognitively +Cognizable +Cognizant +Cogs +Cohabitation +Cohen +Coherence +Coherency +Coherent +Coherently +Cohesion +Cohesive +Cohesively +Cohesiveness +Cohort +Cohorts +Cohost +Coil +Coiled +Coin +Coinage +Coincedence +Coincedentally +Coincide +Coincided +Coincidence +Coincidences +Coincident +Coincidental +Coincidentally +Coined +Coinflip +Coinmaster +Coins +Coke +Cola +Colab +Colaborating +Colabs +Colas +Colbert +Colby +Cold +ColdBoy000 +ColdBoy000's +Colder +Coldest +Coldness +Coldrock +Colds +Cole +Coleader +Colette +Colin +Colinear +Collab +Collaborate +Collaborated +Collaborates +Collaborating +Collaboration +Collaborations +Collaborative +Collaboratively +Collaborator +Collaborators +Collage +Collapse +Collapsed +Collapses +Collapsing +Collar +Colleague +Colleagues +Collect +Collectable +Collectables +Collected +Collectible +Collectibles +Collecting +Collection +Collections +Collective +Collectively +Collectives +Collectivise +Collectivised +Collectivism +Collectivist +Collectivists +Collectivization +Collectivize +Collectivized +Collectivly +Collector +Collectors +Collects +College +Colleges +Collesteral +Collide +Collin +Collins +Collosal +Collossal +Collude +Colluded +Colluding +Collusion +Cologne +Colombia +Colombian +Colonel +Colonel_Bacon_ +Colonel_Bacon_'s +Colonial +Colonialism +Colonialista +Colonies +Colonist +Colonists +Colonization +Colonize +Colonized +Colonizing +Colony +Color +Colorado +Colorblind +Colored +Colorful +Coloring +Colorised +Colorized +Colorless +Colorpicker +Colors +Colossal +Colosseum +Colossus +Colour +Coloured +Colourful +Colourfull +Colouring +Colourised +Colourized +Colourless +Colours +Colt +Colton +Columbia +Columbia's +Columbian +Columbian's +Columbians +Columbus +Coma +Comatose +Comb +Combat +Combatant +Combatants +Combating +Combative +Combativeness +Combatlog +Combatlogged +Combatlogger +Combatloggers +Combatmemeing +Combatradar +Combats +Combattag +Combattaged +Combattagged +Combattagmanager +Combatted +Combed +Combination +Combinations +Combine +Combined +Combines +Combining +Combo +Combodombo +Comboing +Combustible +Combustion +Come +Comeback +Comebacks +Comedian +Comedians +Comedic +Comedies +Comedy +Comedyheaven +Comerade +Comerades +Comeradnick +Comes +Comet +Cometfall +Cometh +Comets +Comeuppance +Comfirm +Comfirmed +Comfort +Comfortable +Comfortably +Comforting +Comforts +Comfy +ComfyFaust +ComfyFaust's +Comic +Comical +Comically +Comics +Coming +Cominggg +Comings +Comissioner +Comitted +Comitting +Comixao +Comma +Command +Commanded +Commander +Commander_Luke +Commander_Luke's +Commanders +Commanding +Commandment +Commandments +Commando +Commandos +Commands +Commas +Commence +Commences +Commencing +Commendable +Commendation +Commended +Commensurate +Comment +Commentaries +Commentary +Commented +Commenter +Commenters +Commenting +Comments +Commerce +Commercial +Commercially +Commercials +Commie +Commied +Commies +Commiserating +Commiseration +Commision +Commisions +Commissar +Commissariat +Commissars +Commission +Commissioned +Commissioner +Commissioners +Commissioning +Commissions +Commit +Commitance +Commited +Commiting +Commitment +Commitments +Commits +Committee +Committees +Commodities +Commoditization +Commodity +Common +Commonality +Commoner +Commoners +Commonly +Commonplace +Commons +Commonwealth +Commonwealthers +Commonwealthian +Commonwealthians +Commotion +CommradePotatoe +CommradePotatoe's +CommsCommunal +Communally +Commune +Communes +Communicate +Communicated +Communicating +Communication +Communications +Communicative +Communicator +Communing +Communism +Communist +Communistic +Communists +Communities +Community +Comoros +Compact +Compactable +Compacted +Compacter +Compacting +Compaction +Compactly +Compactness +Compactor +Compactors +Companies +Companion +Companions +Companionship +Company +Comparable +Comparably +Comparative +Comparatively +Compare +Compared +Comparing +Comparison +Comparisons +Compartmentalize +Compartments +Compass +Compasses +Compassion +Compassionate +Compatability +Compatibility +Compatible +Compatriot +Compatriots +Compelled +Compelling +Compendium +Compensate +Compensated +Compensating +Compensation +Compensatory +Competant +Compete +Competency +Competent +Competently +Competetive +Competing +Competition +Competitions +Competitive +Competitively +Competitiveness +Competitor +Competitors +Compilation +Compilations +Compile +Compiler +Compiling +Complacency +Complacent +Complacing +Complain +Complained +Complainers +Complaining +Complainposting +Complaint +Complaints +Compleatly +Compleetly +Complement +Complementary +Complementing +Complements +Complete +Completed +Completely +Completeness +Completes +Completing +Completion +Completions +Complex +Complexii +Complexii's +Complexities +Complexity +Compliance +Compliant +Complicated +Complicatedly +Complicating +Complication +Complications +Complicit +Complicity +Compliment +Complimentary +Complimented +Complimenting +Compliments +Comply +Complying +Component +Components +Compose +Composed +Composer +Composers +Composes +Composing +Composite +Composition +Compost +Composure +Compound +Compounded +Compounding +Comprehend +Comprehended +Comprehending +Comprehensible +Comprehension +Comprehensive +Comprehensively +Comprehensiveness +Compress +Compressed +Compressible +Compressing +Compression +Compressor +Comprimised +Compromise +Compromised +Compromises +Compromising +Compton +Compulsary +Compulsion +Compulsions +Compulsive +Compulsively +Compulsory +Computation +Computational +Computationally +Compute +Computed +Computer +Computercraft +Computers +Computes +Computing +Comrad +Comrade +ComradeGus +ComradeGus's +ComradeNick +ComradeNick's +ComradeRick +ComradeRick's +ComradeSankara +ComradeSankara's +Comrades +Comradeship +Comradeships +Con928 +Con928's +Conan +Concave +Conceal +Concealed +Concealing +Concealment +Concede +Conceded +Concedes +Conceding +Conceed +Conceeded +Conceit +Conceited +Conceivable +Conceivably +Conceive +Conceived +Conceiving +Concensus +Concentrate +Concentrated +Concentrates +Concentrating +Concentration +Concentrations +Concentric +Concept +Conception +Conceptions +Concepts +Conceptual +Conceptualize +Conceptually +Concerended +Concern +Concerned +Concerning +Concerns +Concert +Concerted +Concerto +Concerts +Concession +Concessions +Concierge +Concievable +Concise +Conclave +Conclude +Concluded +Concludes +Concluding +Conclusion +Conclusions +Conclusive +Conclusively +Concocted +Concocting +Concoction +Concord +Concordan +Concordia +Concordian +Concordians +Concrete +Concretely +Concubine +Concur +Concurred +Concurrence +Concurrent +Concurrently +Concurring +Concurs +Concussion +Condem +Condemn +Condemnation +Condemnations +Condemned +Condensation +Condense +Condensed +Condenser +Condensing +Condescend +Condescending +Condescendingly +Condescension +Condiments +Condition +Conditional +Conditionally +Conditionals +Conditioned +Conditioning +Conditions +Condolence +Condolences +Condom +Condominium +Condominiums +Condoms +Condone +Condoned +Condoning +Condos +Conduce +Conducive +Conduct +Conducted +Conducting +Conductive +Conducts +Conduit +Conduits +Cone +Cones +Confectionary +Confederacy +Confederal +Confederate +Confederates +Confederation +Confederations +Confer +Conference +Conferences +Conferencing +Conferring +Confess +Confessed +Confesses +Confessing +Confession +Confessional +Confessions +Confessor +Confetti +Conficker +Conficker's +Confidence +Confident +Confidential +Confidentiality +Confidentially +Confidently +Confiding +Config +Configed +Configparser +Configs +Configurability +Configurable +Configuration +Configurations +Configure +Configured +Configuring +Confine +Confined +Confinement +Confirm +Confirmation +Confirmations +Confirmed +Confirming +Confiscate +Confiscated +Confiscates +Confiscating +Confiscation +Conflate +Conflated +Conflating +Conflation +Conflict +Conflicted +Conflicting +Conflicts +Confluence +Conform +Conformed +Conforming +Conformity +Conforms +Confounded +Confounding +Confront +Confrontation +Confrontational +Confrontations +Confronted +Confronting +Confucius +Confuse +Confused +Confusement +Confuses +Confusicus +Confusing +Confusingly +Confusion +Confusions +Congested +Congestion +Conglomerate +Conglomerated +Conglomerates +Conglomeration +Conglomerations +Conglomite +Congo +Congolese +Congradulations +Congrats +Congratulate +Congratulated +Congratulates +Congratulating +Congratulation +Congratulations +Congratz +Congregate +Congregated +Congregating +Congress +Congressional +Coni s2 +Coni s2's +Conjecture +Conjectured +Conjectures +Conjoined +Conjugate +Conjugated +Conjugation +Conjugations +Conjunction +Conjunctions +Conjuncture +Conjure +Conjured +Conjuring +Conlang +Conlanger +Conlangers +Conlanging +Conlangs +Conman +Connect +Connected +Connectedness +Connecticut +Connecting +Connection +Connections +Connective +Connectivity +Connector +Connectors +Connects +Conned +Connell +Connell's +Connery +Connor +Connotation +Connotations +Conpound +Conquer +Conquered +Conquering +Conqueror +Conquerors +Conquers +Conquest +Conquests +Conquistadors +Conqur +Conrad +Conscience +Conscientious +Conscious +Consciously +Consciousness +Conscript +Conscripted +Conscription +Conscripts +Consecrate +Consecration +Consecutavily +Consecutive +Consecutively +Consensual +Consensus +Consent +Consented +Consenting +Consequence +Consequences +Consequent +Consequential +Consequentialism +Consequentialist +Conservation +Conservatism +Conservative +Conservatively +Conservatives +Conservatory +Conserve +Conserving +Consider +Considerable +Considerably +Considerate +Consideration +Considerations +Considerd +Considered +Considering +Considers +Consist +Consistant +Consistantly +Consisted +Consistence +Consistency +Consistent +Consistently +Consisting +Consists +Consolation +Console +Consolidate +Consolidated +Consolidating +Consolidation +Consoling +Consort +Consortium +Conspicuously +Conspiracies +Conspiracy +Conspirator +Conspiratorial +Conspirators +Conspire +Conspired +Conspiring +Constable +Constables +Constabulary +Constant +Constantine +Constantinople +Constantly +Constants +Constellation +Constellations +Constipated +Constipation +Constituencies +Constituency +Constituent +Constituents +Constitute +Constituted +Constituting +Constitution +Constitutional +Constitutionalists +Constitutionally +Constitutions +Constrain +Constrained +Constraining +Constraint +Constraints +Constricted +Constricting +Constricts +Construct +Constructed +Constructing +Construction +Constructionist +Constructions +Constructive +Constructively +Constructivism +Constructivist +Constructivists +Constructs +Construe +Construed +Consul +Consular +Consulate +Consulation +Consuls +Consult +Consult-The-Scripture +Consultancy +Consultant +Consultants +Consultation +Consulted +Consulting +Consults +Consumable +Consumables +Consume +Consumed +Consumer +Consumerist +Consumers +Consumes +Consuming +Contact +Contacted +Contacting +Contacts +Contagion +Contagious +Contain +Containable +Contained +Container +Containers +Containing +Containment +Contains +Contaminate +Contaminating +Contamination +Contemplate +Contemplated +Contemplates +Contemplating +Contemporaneous +Contemporaneously +Contemporaries +Contemporary +Contempt +Contemptible +Contemptuous +Contender +Contenders +Contending +Content +Contentious +Contentpolicy +Contents +Contest +Contestable +Contestant +Contestants +Contestation +Contested +Contesting +Contestors +Contests +Context +Contextless +Contexts +Contextual +Contextualise +Contextually +Continent +Continental +Continents +Contingencies +Contingency +Contingent +Continious +Continiously +Continous +Continually +Continuance +Continue +Continued +Continueing +Continuely +Continues +Continuing +Continuity +Contort +Contorted +Contortionist +Contraband +Contract +Contract_ +Contract_'s +Contractated +Contracted +Contracting +Contraction +Contractions +Contractor +Contractors +Contracts +Contractual +Contractually +Contradict +Contradicted +Contradicting +Contradiction +Contradictions +Contradictory +Contradicts +Contraire +Contraption +Contraptions +Contrarian +Contrarians +Contrary +Contrast +Contrasted +Contrasting +Contribute +Contributed +Contributer +Contributers +Contributes +Contributing +Contribution +Contributions +Contributor +Contributors +Contributory +Contrived +Contrives +Contriving +Control +Controled +Controling +Controllable +Controlled +Controller +Controllers +Controlling +Controls +Controversial +Controversially +Controversies +Controversy +Conundrum +Convene +Convened +Convenes +Conveniance +Conveniant +Convenience +Conveniences +Convenient +Conveniently +Conventhia +Conventia +Convention +Conventional +Conventionally +Conventions +Conventual +Converge +Converged +Convergence +Converges +Converging +Conversant +Conversation +Conversational +Conversationalist +Conversationally +Conversations +Converse +Conversely +Conversing +Conversion +Conversions +Convert +Converted +Converter +Converters +Convertible +Converting +Converts +Convex +Convey +Conveyance +Conveyed +Conveying +Conveyor +Conveys +Conviced +Convict +Convicted +Convicting +Conviction +Convictions +Convicts +Convince +Convinced +Convinces +Convincing +Convincingly +Convinience +Convinient +Convivial +Convo +Convoluted +Convos +Convoy +Convoy's +Convulsing +Convulsion +Convulsive +Coocked +Coockiemaster +Cook +Cook Islands +Cookbook +Cooked +Cooker +Cookie +Cookies +Cookin +Cooking +Cooks +Cool +CoolDudeM23 +CoolDudeM23's +Coolaid +Coolant +Coolchacha97 +Coolchacha97's +Cooldown +Cooldowns +Cooled +Cooler +Coolest +Coolglad +Cooling +Coolio +Cooliomoose +Cooliomoose's +Coolkid +Coolkiddo +Coolkids +Coolking1500 +Coolking1500's +Coolness +Coolpvp +Coolpvper +Coolpvpers +Cooped +Cooper +Cooperate +Cooperated +Cooperating +Cooperation +Cooperative +Cooperatively +Cooperatives +Cooperator +Coord +Coordinate +Coordinated +Coordinates +Coordinating +Coordination +Coordinator +Coordinators +Coords +Cope +Copenhagen +Copies +Copilot +Coping +Copious +Copiously +Copius +Copper +Coppers +Cops +Copy +Copycat +Copycats +Copying +Copyist +Copypasta +Copypastas +Copypaste +Copypasted +Copyright +Copyrights +Cora +Cora's +Coral +Cord +Cordial +Cordially +CordlessSalmon +CordlessSalmon's +Cordoba +Cords +Core +Cored +Cores +Coriander +Corked +Corks +Corkscrew +Corn +Corn Bunny +CornShuckle +CornShuckle's +Corner +Cornered +Cornering +Corners +Cornerstone +Cornerstones +Cornfield +Cornflakes +Cornish +Cornucopia +Cornwall +Corny +Corona +Coronated +Coronation +Coronations +Coroseia +Corp +Corporate +Corporation +Corporations +Corporatism +Corporatist +Corporatocracy +Corporeal +Corpse +Corpses +Corral +Correct +Corrected +Correcting +Correction +Corrections +Corrective +Correctively +Correctly +Correctness +Corrects +Correlate +Correlated +Correlates +Correlating +Correlation +Correlations +Correlative +Correspond +Correspondance +Corresponded +Correspondent +Correspondents +Corresponding +Corridor +Corroborate +Corroborated +Corroborating +Corroboration +Corroded +Corroding +Corrosive +Corrupt +Corrupted +Corrupted Steel Compound Crossbow +Corrupted Willow Longbow +CorruptedX_YT +CorruptedX_YT's +Corruptible +Corrupting +Corruption +Corrupts +Cortesia Del Mar +Cortex +Cortwade +Cortwade's +Corum +Corvelicious +Corvelicious's +Corvus +Cosbin +Cosbin's +Cosmetic +Cosmetics +Cosmic cube +Cosmopolitan +Cosmos +Cosplay +Cosplayers +Cosplaying +Cost +Costa Rica +CostcoFruits +CostcoFruits's +Costed +Costing +Costly +Costrained +Costs +Costume +Costumes +Cosy +Cote d'Ivoire +Cottage +Cottages +Cotton +Coty_20 +Coty_20's +Couch +Cough +Coughed +Coughing +Coughs +Could +Coulda +Couldnt +Couldve +Council +Councillor +Councillors +Councilman +Councilmember +Councilmembers +Councilmen +Councilor +Councilors +Councils +Counldnt +Counsel +Counseling +Counsellor +Count +Countdown +Counted +Counter +Counteract +Counteracted +Counteracting +Counteracts +Counterargument +Counterattack +Counterattacked +Counterattacks +Counterbalance +Counterbalanced +Counterbounties +Counterbounty +Counterclaims +Counterclockwise +Counterculture +Countered +Counterexample +Counterexamples +Countering +Counterintelligence +Counterintuitive +Countermeasure +Countermeasures +Counteroffer +Counteroffers +Counterpart +Counterparts +Counterpoint +Counterpoints +Counterproductive +Counterproposal +Counterrevolutions +Counters +Counterstrike +Countless +Country +Countryballs +Countryman +Countrymen +Countryside +Counts +County +Coup +Coupd +Coupe +Couped +Couping +Couple +Coupled +Couples +Couplet +Coupling +Coupon +Coupons +Coups +Courage +Courageous +Courageously +Courier +Couriers +Courron +Course +Courses +Coursework +Coursing +Court +Courteous +Courtesy +Courthouse +Courtier +Courting +Courtney +Courtroom +Courts +Courtship +Courtyard +Courtyards +Cousin +Cove +Covenant +Covenants +Coventhia +Coventhian +Coventhias +Coventry +Cover +CoverYrselfInOil +CoverYrselfInOil's +Coverage +Covered +Covergence +Covering +Covers +Covert +Covertly +Covet +Coveted +Covetous +Covfefe +Cow +Coward +Cowardice +Cowardliness +Cowardly +Cowardness +Cowards +Cowbell +Cowboy +Cowboys +Cower +Cowering +Cowguypig +Cowguypig's +Coworker +Coworkers +Coyote +Coyotes +Cozy +Cpr +Cps +Cpu +Cpus +Cqrs0n +Cqrs0n's +Crab +Crabby +Crabs +Crack +Cracked +CrackerVolley +CrackerVolley's +Cracking +Crackle +Crackles +Crackling +Crackpot +Cracks +Cradle +Craft +CraftLang +Craftable +Craftbench +Craftbook +Craftbukkit +Crafted +Crafter +Crafters +Craftiness +Crafting +Craftmanship +Crafts +Craftsman +Craftsmen +Crafty +Craig +Craiggrad +Craigslist +Cram +Crammed +Cramming +Cramp +Cramped +Cramping +Crample +Cramps +Cranberry +Crane +Cranium +Crank +Cranked +Cranking +Cranks +Cranky +CrannMòr +Crap +Craploads +Crash +Crashed +Crashers +Crashes +Crashing +Crashy +Crass +Crassness +Crate +Crater +Craters +Crates +Crave +Craved +Craven +Craves +Craving +Crawled +Crawling +Crawls +Craycray +Crayfish +Crayon +Crayon Claim +Crayoned +Crayonlands +Crayons +Craze +Crazed +Crazier +Crazies +Craziest +Crazily +Craziness +Crazy +Crazybeast1998 +Crazybeast1998's +Crazyguy +Creak +Cream +Creamed +Creams +Creamy +Crease +Creased +Create +Created +Creater +Creates +Creating +Creation +Creationist +Creations +Creative +Creatively +Creativemode +Creativity +Creator +Creators +Creatsies +Creatures +Credential +Credentials +Credibility +Credible +Credibly +Credit +Creditcard +Credited +Crediting +Creditor +Credits +CredixYT +CredixYT's +CredixYt +CredixYt's +Creds +Credulity +Credulous +CredulousCultist +CredulousCultist's +Creed +Creeds +Creep +Creeped +Creeper +Creepers +Creepi0n +Creepi0n's +Creepier +Creepily +Creeping +Creeps +Creepy +Creepypasta +Cremated +Cremation +Cremator +Creme +Crescent +Cresemopolis +Cressemopolis +Crest +Crested +Crestfallen +Cretin +Cretins +Crevasse +Crevice +Crevices +Crew +Crews +Crib +Cricket +Crickets +Cried +Crier +Crier, Ellipse of Titans +Cries +Crikey +Crimed +Crimes +Criminal +Criminality +Criminalize +Criminalized +Criminalizes +Criminalizing +Criminally +Criminals +Criminaly +Crimson +Crimson Cliffs +Crimsonblod +Crimsonblod's +Crimsons +Cringe +CringeCringe +Cringed +Cringepost +Cringeworthy +Cripple +Crippling +Crises +Crisis +Crisp +Crispie +Crisps +Crispy +Cristal +Cristiano +Crit +Crited +Criteria +Critic +Critical +Critically +Criticals +Criticise +Criticised +Criticises +Criticising +Criticism +Criticisms +Criticize +Criticized +Criticizes +Criticizing +Critics +Critique +Critiqued +Critiques +Critiquing +Crna Gora +Croak +Croatia +Crockery +Crockpot +Crocks +Crocodile +Crocodiles +Crook +Crooked +Crop +Cropgrowth +Cropped +Cropping +Crops +Cross +Crossbow +Crossbowmen +CrossbowsCrossed +Crosses +Crossfire +Crosshair +Crosshairs +Crossing +Crossings +Crossover +Crossovers +Crosspost +Crossposted +Crossposting +Crossposts +Crossroads +Crosswalks +Crossword +Crouching +Crow +Crowbar +Crowd +Crowded +Crowdfund +Crowdfundable +Crowdfunded +Crowdfunding +Crowding +Crowds +Crowdsourcing +Crowed +Crowley +Crown +Crown Prince +Crowned +Crowning +Crowns +Crowsroost +Crucial +Crucially +Crucible +Crucified +Crucifix +Crucifixion +Crucify +Crude +Crudely +Crudest +Cruel +Cruelly +Cruelty +Cruise +Cruiser +Cruises +Cruising +Crum +Crumb +Crumble +Crumbled +Crumbles +Crumbling +Crumbly +Crumbs +Crumby +Crummy +Crumpets +Crumpled +Crunch +Crunched +Crunches +Crunching +Crunchy +Crusade +Crusaded +Crusader +Crusaders +Crusades +Crusading +Crush +Crushed +Crusher +Crusher6581 +Crusher6581's +Crushers +Crushes +Crushing +Crust +Crustashions +Crustiest +Crusty +Crutch +Cruz +Cry +Crybaby +Cryed +Cryin +Crying +Cryostat +Crypt +Cryptfire +Cryptic +Crypto +CryptoBlok +CryptoBlok's +CryptoClixy +CryptoClixy's +Cryptocurrencies +Cryptocurrency +Cryptographic +Cryptos +Crypts +Crystal +Crystalis +Crystalline +Crystallisation +Crystallization +Crystallized +Crystals +Csi +Ctacid +Ctb +Ctf +Ctgroups +Cthulu +Cti +Ctinfo +Ctinsecure +Cto +Ctr +Ctrl +Cub +Cuba +Cuban +Cubans +Cubas +Cube +CubeOfBorg +CubeOfBorg's +Cubed +Cubes +Cubic +Cubicle +Cubicles +Cuboid +Cuboids +Cubs +Cucumbers +Cuddle +Cuddles +Cuddling +Cuddly +Cue +Cues +Cuff +Cuffs +Cuisine +Culinary +Cull +Culled +Culling +Culminate +Culminated +Culminates +Culminating +Culmination +Culpability +Culpable +Culprit +Culprits +Cult +Cultish +Cultist +Cultivate +Cultivated +Cultivates +Cultivating +Cultivation +Cults +Cultural +Culturally +Culture +Cultured +Cultureless +Cultures +Culumbia +Cumbersome +Cumcumber +Cumin +Cumulation +Cumulative +Cunning +Cunningly +Cup +Cupboard +Cupboards +Cupcake +Cupcakes +Cupid +Cups +Curate +Curated +Curating +Curator +Curators +Curb +Curbstomp +Curbstomped +Cure +Cured +Cures +Curias +Curiosity +Curious +Curiousity +Curiously +Curl +Curled +Currencies +Currency +Currenlty +Current +Currently +Currents +Currenty +Curry +Curse +Cursed +Curses +Cursing +Cursor +Curtains +Curvature +Curve +Curved +Curves +Curving +Curvy +Cushion +Cushions +Cusp +Custard +Custodial +Custodian +Custodianship +Custody +Custom +Customarily +Customary +Customer +Customers +Customisable +Customisation +Customise +Customised +Customising +Customizable +Customization +Customizations +Customize +Customized +Customs +Cut +Cute +CuteAnimeAdmin +CuteAnimeAdmin's +CutePastelStars +CutePastelStars's +Cuteboi +Cuteboys +Cuteness +Cuter +Cutest +Cutesy-poo +Cuthulu +Cutie +Cuties +Cutoff +Cutout +Cuts +Cutthroat +Cuttlefish +Cyan +Cyberbullies +Cyberbully +Cyberbullying +Cybercrime +Cybercube +Cyberfolk +Cyberlink +Cybernetic +Cyberpunk +Cyberspace +Cybertheft +Cybin +Cycle +Cycled +Cycles +Cyclic +Cyclical +Cyclically +Cycling +Cyclone +Cyclonic +Cylinder +Cylinders +Cylindrical +Cynical +Cynicism +Cynthia +Cypher +Cyphers +Cypress +Cyprus +Cyrus +Cyst +Czech +Czech Republic +Czechoslovakia +Côte D'ivoire +D +DARKESTCARNIVAL +DARKESTCARNIVAL's +DCX +DCX's +DERBOSSDANIEL +DERBOSSDANIEL's +DORUMONZ +DORUMONZ's +DRINK PEPSI +DTalha +DTalha's +DXD_Tech +DXD_Tech's +Da_duck_tv +Da_duck_tv's +Daaaaaamn +Dab +Dabbed +Dabbing +Dabble +Dabbled +Dabbling +Dabs +Dachshunds +Dad +Dada +Dadbody +Daddies +Daddio +Daddy +Daedalus +Daemon +Daffney +Daft +Dafuq +Dagger +Dagger of time +Daggers +Dagon +Dagoth +DahRealChamp +DahRealChamp's +Dahlia +Daily +Dainslief +Dainslief's +Dairy +Daisies +Daisy +Daisydrops +Dakota +Dalgon +Dalia +Dallas +Dalton +Damage +Damaged +Damages +Damaging +Damian +Damien +Damn +Damnable +Damnation +Damned +Damning +Damnit +Damon +DamonLied +DamonLied's +Dampen +Dampened +Dampening +Dampens +Damper +Dampness +Dan +Dance +Danced +Dancer +Dances +Dancin +Dancing +Dandelion +Dandelions +Dang +Danger +Dangerfield +Dangerous +Dangerously +Dangers +Dangerzone +Dangit +Dangling +Dania +Danica +Daniel +Danielle +Danish +Dank +DankMemesTopKek +DankMemesTopKek's +Dankest +Dankestmemer +Dankia +Dankmemes +Danmark +Danny +Dante +Danzelonia +Danzig +Danzilona +Danzilona's +Danzilonian +Darcy +Dare +Dared +Daredevil +Dares +Daresay +Daria +Daring +Dark +DarkDevil2135 +DarkDevil2135's +DarkJesusm +DarkJesusm's +Dark_Muffin23 +Dark_Muffin23's +Darkened Sky +Darker +Darkest +Darkflame +Darkness +Darknight1986 +Darknight1986's +Darkred +Darkroom +Darkrooms +Darkside +Darksided +DarkyDu +DarkyDu's +Darlin +Darling +Darn +Darnit +Darren +Dart +Darth +Darthorangejuice +Darthorangejuice's +Darts +Darude +Darwin +Darwinism +Das +Das_Pook +Das_Pook's +Dash +Dash, Bringer of the Lone Wolf +Dashboard +Dashed +Dashes +Dashing +Dastardly +Data +Database +Databases +Datacenter +Datamining +Datapack +Datapoints +Datas +Datascript +Dataset +Date +Dated +Datepicker +Dates +Dating +Daughter +Daughters +Daunt +Daunting +Dauntless +Dave +Daves +David +Davina +Davis +Davis's +Dawg +Dawgs +Dawgthemelon +Dawlat Qatar +Dawn +Dawn of Ruins +Dawn, Paragon of the Phoenix +Dawn, Saber of the Flame +Dawn_Breaker0 +Dawn_Breaker0's +Dawne +Dawned +Dawning +Dawns +Dawsonisrainy +Dawsonisrainy's +Day +Daycare +Daydream +Dayjob +Daylight +Daylightened +Days +Daytime +Daytimes +Daywalker +Dayz +Daze +Dazzle +Dazzling +Dbug_113 +Dbug_113's +DeIta11 +DeIta11's +Deactivate +Deactivated +Dead +Deadass +Deadbeat +Deadeye +Deadfall +Deadhead +Deadlic_Hermetic +Deadlic_Hermetic's +Deadlier +Deadliest +Deadlift +Deadline +Deadlines +Deadliness +Deadlock +Deadlocked +Deadly +Deadpan +Deadpool +Deadset +Deadzones +Deaf +Deafen +Deafened +Deafening +Deafness +Deagle +Deal +Dealbreaker +Dealed +Dealer +Dealers +Dealing +Dealings +Dealins +Dealio +Deals +Dealt +Dean +Dear +Dearest +Dearly +Death +Death note +Deathadder +Deathbed +Deathbringer +Deathcult +Deathlord +Deathly +Deathly hallow +Deathmatch +Deathpath1 +Deathpath1's +Deathpit +Deathrate +Deaths +Deathstar +Deathsword +Deaththreat +Debacle +Debase +Debasement +Debatable +Debate +Debateable +Debated +Debater +Debaters +Debates +Debating +Debauched +Debauchery +Debbie +Debby +Debilitating +Debility +Deborah +Debris +Debt +Debtor +Debtors +Debts +Debuff +Debuffed +Debuffer +Debuffing +Debuffs +Debug +Debugged +Debugging +Debunk +Debunked +Debunking +Debut +Debuts +Decade +Decadence +Decadent +Decades +Decapitated +Decay +Decayable +Decayed +Decaying +Decays +Decease +Deceased +Deceit +Deceitful +Deceive +Deceived +Deceiver +Deceivers +Deceiving +Deceivingly +December +December's +Decembers +Decency +Decent +DecentName +DecentName's +Decently +Decentralised +Decentralism +Decentralization +Decentralized +Decentralizing +Deception +Deceptive +Deceptively +Deceptiveness +Decibles +Decide +Decided +Decidedly +Decider +Deciders +Decides +Deciding +Decim981 +Decim981's +Decimal +Decimals +Decimate +Decimated +Decimating +Decimation +Decipher +Decision +Decisionmaking +Decisions +Decisive +Decisively +Decisiveness +Deck +Decked +Decks +Declamation +Declan +Declare +Declared +Declareing +Declares +Declaring +Decline +Declined +Declining +Decloak +Decode +Decoded +Decoders +Decoding +Decolonization +Decompact +Decompacted +Decompacting +Decompaction +Decompactor +Decompactors +Decompile +Decompiled +Decompiler +Decompilers +Decompiling +Decomposition +Decompress +Deconstruct +Deconstructed +Deconstructing +Deconstruction +Deconstructionist +Deconstructor +Decor +Decorate +Decorated +Decorating +Decoration +Decorations +Decorative +Decorum +Decouple +Decoupled +Decoy +Decoys +Decrease +Decreased +Decreases +Decreasing +Decree +Decrees +Decrepit +Decryption +Dedicate +Dedicated +Dedicating +Dedication +Deduce +Deduced +Deducing +Deduct +Deducted +Deducting +Deduction +Deductive +Deed +Deeds +Deep +Deepen +Deepening +Deeper +Deepest +Deepfakes +Deeply +Deer +Deescalate +Deescalated +Deescalating +Deescalation +Deesign +Deez +Deface +Defaced +Defacing +Defacto +Defamation +Defamatory +Defame +Defamed +Defaming +Default +Defaulted +Defaulting +Defaults +Defcon +Defeat +Defeatable +Defeated +Defeater +Defeating +Defeats +Defecate +Defecation +Defect +Defected +DefectedHeart +DefectedHeart's +Defecteds +Defecting +Defective +Defects +Defence +Defenceless +Defences +Defend +Defendable +Defendant +Defendants +Defended +Defender +Defender4488 +Defender4488's +Defenders +Defending +Defensor +Deference +Deferential +Defiance +Defiant +Defiantly +Deficient +Defied +Defile +Defiled Greatsword +Define +Defined +Definitelly +Definitely +Definition +Definitions +Deflate +Deflated +Deflation +Deflect +Deflected +Deflecting +Deflection +Deflector +Deflects +Deforestation +Deforested +Deforesting +Deformed +Deformity +Defraud +Defrauding +Deft +Deftinhawk +Deftinhawk's +Deftly +Deftones +Defunct +Defund +Defused +Defusing +Defy +Defying +Degeneracy +Degenerate +Degenerates +Degeneration +Degenerative +Degradable +Degradation +Degrade +Degraded +Degrader +Degrading +Degredation +Degree +Degrees +Degrief +Dehumanize +Dehumanizing +Dehydration +Deign +Deities +Deity +Dejected +Dejection +Delaney +Delaware +Delay +Delayed +Delaying +Delays +Delegate +Delegated +Delegates +Delegating +Delegation +Delegitimise +Delegitimises +Delegitimize +Delegitimized +Delete +Deleted +Deleteing +Deleting +Deletion +Deletions +Deletthis +Deliberate +Deliberated +Deliberately +Deliberates +Deliberating +Deliberation +Deliberations +Deliberative +Delicacy +Delicate +Delicious +Deliciously +Delight +Delighted +Delightful +Delightfully +Delights +Delilah +Delineate +Delineated +Delineation +Delineations +Delinked +Delinquent +Delinquents +Delirious +Deliver +Deliverable +Deliverd +Delivered +Deliverer +Deliveries +Delivering +Delivery +Delizseemack +Delizseemack's +Della +Delta +DeltaGNEC +Delude +Deluded +Deluded Rapier +Deluded Yew Bow +Deluding +Deluge +Delusion +Delusion, Champion of Wizardry +Delusional +Delusionally +Delusionpilled +Delusions +Deluxe +Delve +Delved +Delving +Demagogue +Demagoguery +Demand +Demanded +Demanding +Demands +Demarcate +Demarcating +Demarcation +Demean +Demeaning +Demeanor +Demeanors +Demeanour +Demented +Dementia +Dementors +Demi +Demigod +Demilitarize +Demilitarized +Demise +Demiurge +Demo +Democracies +Democracy +Democrat +Democratic +Democratically +Democratics +Democratization +Democratized +Democrats +Demod +Demographic +Demographics +Demolish +Demolished +Demolishes +Demolishing +Demolition +Demon +DemonAscended +DemonAscended's +Demonic +Demonic Glass Skewer +Demonic Titanium Warbow +Demonise +Demonization +Demonize +Demonized +Demonizes +Demonizing +Demons +Demonstrable +Demonstrably +Demonstrate +Demonstrated +Demonstrating +Demonstration +Demonstrations +Demonstrators +Demoralization +Demoralize +Demoralized +Demoralizing +Demote +Demoted +Demoting +Demotion +Demotivate +Demotivated +Demotivates +Demotivating +Den Norske Beziststat +Deniability +Denial +Denialism +Denials +Denied +Denier +Deniers +Denies +Denmark +Dennis +Denomination +Denominations +Denominator +Denounce +Denounced +Denouncement +Denounces +Denouncing +Dense +Denser +Densest +Densities +Density +Dent +Dental +Dented +Dentist +Dentists +Dentures +Denunciation +Denunciations +Denver +Deny +Denying +Denzel +Deobfuscating +Deobfuscation +Deodorant +Deontological +Deontologically +Depart +Departed +Departing +Department +Departmental +Departments +Departure +Departures +Depend +Dependable +Dependant +Dependence +Dependencies +Dependency +Dependent +Dependents +Depending +Depersonalizing +Depict +Depicted +Depicting +Depiction +Depictions +Depicts +Deplete +Depleted +Depletes +Depleting +Depletion +Deplorability +Deplorable +Deplorably +Deplore +Deploy +Deployed +Deploying +Deployment +Deployments +Deploys +Deport +Deportation +Deported +Depose +Deposed +Deposit +Deposited +Deposition +Depositor +Depositors +Depository +Deposits +Depot +Depots +Depraved +Depravity +Deprecate +Deprecated +Deprecating +Deprecation +Depreciate +Depreciation +Depredation +Depress +Depressed +Depresses +Depressing +Depressingly +Depression +Depressive +Deprivation +Deprive +Deprived +Deprives +Depriving +Depth +Depths +Depthstrider +Deputy +Derail +Derailed +Derailing +Derails +Deranged +Derangement +Derank +Deranked +Deranking +Derby +Deregulation +Dereinforce +Derek +Derelict +Derelicted +Derelicting +Dereliction +Derelictions +Derelictor +Derelictors +Derelicts +Derision +Derisive +Derisively +Derive +Deriving +Derogatorily +Derogatory +Derp +Derped +Derping +Derps +Derpy +DerpyBoxCat +DerpyBoxCat's +Derschaften_ +Derschaften_'s +Des23 +Des23's +Descend +Descendant +Descendants +Descended +Descending +Descends +Descent +Descision +Descisions +Describe +Described +Describing +Description +Descriptions +Descriptive +Descriptor +Desecrate +Desecrated +Desecration +Deselect +Desensitization +Desensitized +Desensitizing +Desert +Deserted +Deserted Chalice +Deserter +Deserts +Deserve +Deserve's +Deserved +Deserver +Deserves +Deserving +Design +Designate +Designated +Designates +Designating +Designation +Designations +Designed +Designer +Designers +Designing +Designs +Desire +Desireable +Desired +Desires +Desk +Desks +Desktop +Desktops +Desmond +Desolate +Desolation +Desolation Claymore +Despacito +Despair +Despawn +Despawnable +Despawned +Despawning +Despawns +Desperado +Desperate +Desperately +Desperation +Despicable +Despise +Despondency +Despondent +Desposable +Despot +Despotic +Despotism +Despots +Dessert +Desserts +Dest +Destabilise +Destabilised +Destabilising +Destabilize +Destabilized +Destabilizes +Destabilizing +Destable +Destination +Destinations +Destined +Destiny +Destiny's Song +Destitute +Destroy +Destroyed +Destroyer +Destroyers +Destroying +Destroys +Destruct +Destructible +Destruction +Destructioned +Destructive +Destructiveness +Desummon +Desummoned +Desummoning +Desync +Desynced +Detach +Detached +Detaches +Detachment +Detail +Detailed +Detailing +Details +Detain +Detained +Detainees +Detaining +Detainment +Detect +Detectability +Detectable +Detected +Detecting +Detection +Detective +Detectives +Detector +Detectors +Detects +Detention +Deter +Deterence +Deterent +Deteriorate +Deteriorated +Deteriorating +Deterioration +Determination +Determinations +Determine +Determined +Determining +Deterministic +Deterrant +Deterred +Deterrence +Deterrent +Deterrents +Deterring +Detest +Detestable +Dethbool +Dethbool's +Dethrone +Detonate +Detonated +Detonating +Detonation +Detonator +Detour +Detours +Detoxing +Detract +Detracting +Detraction +Detractor +Detractors +Detriment +Detrimental +Detriments +Detroit +Deuce +Deucecanady +Deucecanady's +Deus +DeusRexLapis +DeusRexLapis's +Deutsch +Deutschland +Dev +Devalue +Devalued +Devalues +Devaluing +Devel +Develop +Developed +Developer +Developers +Developing +Development +Developmental +Developmentally +Developments +Develops +Deviancy +Deviant +Device +Devices +Devil +Devilish +Devilishly +Devils +Devin +Devine +Deving +Devious +Devise +Devised +Devising +Devistated +Devmap +Devoid +Devolve +Devolved +Devolves +Devolving +Devon +Devote +Devoted +Devoted 1.0 +Devoted 2.0 +Devoted 3.0 +Devoted Hell +Devotedly +Devotedness +Devotee +Devotees +Devoting +Devotion +Devouch +Devouching +Devour +Devoured +Devourer +Devouring +Devours +Devout +Devpvp +Devs +Devtools +Dew +Dexter +Dexterous +Dexterously +Dextroamphetamine +Deyan +Deyan's +Dez +Dhakhala +Dhara +Dhivehi Raajje +Dhruv +DiRtY_ZeBrA +DiRtY_ZeBrA's +Dia +Diablo +Diablo III +Diabolic +Diabolical +DiabolicalFries +DiabolicalFries's +Diacetylemorphine +Diadem +Diagnose +Diagnosed +Diagnoses +Diagnosing +Diagnosis +Diagnostic +Diagonal +Diagonally +Diagonals +Diagram +Diagrams +Dial +Dialect +Dialectic +Dialectical +Dialects +Dialing +Dialog +Dialogs +Dialogue +Dialogues +Dials +Dialup +Diamond +Diamondclad +Diamondcutter +Diamondless +Diamondmarker +Diamonds +Diamondteardrops +Diana +Diane +Diaper +Diapers +Diaries +Diarrhea +Diary +Dice +Diced +Dices +Dicey +Dichotomy +Dictactorship +Dictate +Dictated +Dictates +Dictating +Dictation +Dictator +Dictatorial +Dictators +Dictatorship +Dictatorships +Diction +Dictionaries +Dictionary +Did +DiddyT +DiddyT's +Didnt +Die +Died +Diego +Diehard +Dieing +Dies +Diesel +Diet +Diet Cola +Diet Cola's +Diet_Cola +Diet_Cola's +Dietcola +Dieting +Diets +Differ +Difference +Differences +Different +Differential +Differentials +Differentiate +Differentiated +Differentiating +Differentiation +Differentiator +Differently +Differing +Differs +Difficult +Difficulties +Difficulty +Diffrent +Diffrently +Diffuse +Diffused +Diffusion +Dificult +Dig +Digbot +Digest +Digestable +Digestible +Digestive +Digged +Digging +Diggy +Digital +Digitally +Digits +Dignified +Dignify +Dignifying +Dignity +Digress +Digression +Digressions +Digs +Dikkememmen +Dikkememmen's +Dilapidated +Dilation +Dilemma +Dilemmas +Diligence +Diligent +Diligently +Dillon +Dilluexe +Dilluexe's +Dilute +Diluted +Dilution +Dim +Dime +Dimension +Dimensional +Dimensions +Diminished +Diminishes +Diminishing +Dimly +Dimmadome +Dimmies +Dimple +Dimsdale +Dimwit +Dimwits +Dimwitted +Dinar +Ding +Dingdong +Dingle +Dingleberry +Dingos +Dingus +Dining +Dinky +Dinner +Dinnerbone +Dinners +Dinnertime +Dino +Dinos +Dinosaur +Dinosaurs +Dinotown +Dio +Dionysius +Dior +DiorSuit +DiorSuit's +Diorama +Diorite +Dioxide +Dip +Diplocraft +Diploma +Diplomacy +Diplomancy +Diplomas +Diplomat +Diplomatic +Diplomatics +Diplomatist +Diplomats +Dipolmatic +Dipper +Dipping +Direct +Directable +Directed +Directing +Direction +Directional +Directions +Directive +Directly +Director +Directories +Directors +Directory +Directs +Dirk +Dirt +Dirt Islands +Dirties +Dirtiest +Dirtism +Dirts +Dirty +Dirtying +Disable +Disabled +Disabler +Disables +Disabling +Disaccoiated +Disadvantage +Disadvantaged +Disadvantageous +Disadvantages +Disaffected +Disagree +Disagreeable +Disagreed +Disagreeing +Disagreement +Disagreements +Disallow +Disallowed +Disallowing +Disapeared +Disapointed +Disapointing +Disapointment +Disappear +Disappearance +Disappeared +Disappearing +Disappears +Disappoint +Disappointed +Disappointing +Disappointingly +Disappointment +Disappointments +Disappoints +Disapppointed +Disapproval +Disapprove +Disapproved +Disapproves +Disapproving +Disapprovingly +Disarm +Disarmament +Disarmed +Disarray +Disassemble +Disassembled +Disassembly +Disassociate +Disassociated +Disassociating +Disassociation +Disassociations +Disaster +Disasters +Disastrous +Disastrously +Disavantage +Disavow +Disavowed +Disavowing +Disband +Disbanded +Disbanding +Disbands +Disbelief +Disbelieve +Disc +Discard +Discarded +Discarding +Discern +Discernible +Discerning +Discernment +Discharge +Discharged +Disciple +Disciples +Disciplinary +Discipline +Disciplined +Disciplines +Disciplining +Disclaimed +Disclaimer +Disclaimers +Disclaiming +Disclose +Disclosed +Discloses +Disclosing +Disclosure +Disclosures +Disco +Discombobro +Discombobro's +Discomfort +Disconcert +Disconcerting +Disconnect +Disconnected +Disconnecting +Disconnection +Disconnections +Discontent +Discontinue +Discontinued +Discord +Discordbots +Discordian +Discords +Discount +Discounted +Discounting +Discounts +Discourage +Discouraged +Discouragement +Discouragements +Discourages +Discouraging +Discourse +Discourses +Discourteous +Discover +Discoverable +Discovered +Discoveries +Discovering +Discovers +Discovery +Discozoa +Discozoa's +Discredit +Discredited +Discrediting +Discredits +Discreet +Discreetly +Discrepancies +Discrepancy +Discretely +Discriminate +Discriminated +Discriminating +Discrimination +Discriminatory +Discs +Discuss +Discussed +Discusses +Discussing +Discussion +Discussions +Discusting +Disease +Diseased +Diseases +Disembark +Disembodied +Disenchanted +Disenfranchise +Disenfranchised +Disenfranchisement +Disenfranchising +Disengage +Disengaged +Disengagement +Disengaging +Disentangle +Disfigure +Disfunctional +Disgrace +Disgraced +Disgraceful +Disgracful +Disgruntled +Disguise +Disguised +Disguises +Disguising +Disgust +Disgusted +Disgusting +Disgustingly +Disgustingness +Disgusts +Dish +Disheartened +Disheartening +Dishes +Dishevelled +Dishonest +Dishonestly +Dishonesty +Dishonor +Dishonorable +Dishonoring +Dishwasher +Disillusion +Disillusioned +Disillusionment +Disincentive +Disincentives +Disincentivising +Disinclination +Disinclined +Disinfo +Disinformation +Disingenous +Disingenuous +Disinherit +Disintegrate +Disintegrated +Disintegration +Disinterest +Disinterested +Disjointed +Disk +Disks +Dislikable +Dislike +Disliked +Dislikes +Disliking +Dislocation +Dislodge +Disloyal +Disloyalty +Dismal +Dismantle +Dismantled +Dismantlement +Dismantling +Dismay +Dismembered +Dismiss +Dismissal +Dismissed +Dismisses +Dismissible +Dismissive +Dismissively +Dismount +Dismounted +Dismounting +Dismounts +Disney +Disneyland +Disobedience +Disobedient +Disobey +Disobeyed +Disobeying +Disolves +Disorder +Disorderly +Disorders +Disorganised +Disorganization +Disorganized +Disorientating +Disoriented +Disorienting +Disown +Disowned +Disowning +Dispatch +Dispatchd +Dispatched +Dispense +Dispensed +Dispenser +Dispensers +Dispenses +Dispensing +Dispensors +Disperse +Dispersed +Disperses +Dispersing +Dispersion +Displace +Displaced +Displacement +Display +Displayed +Displaying +Displays +Displease +Displeased +Displeases +Displeasing +Disposable +Disposableincome +Disposal +Disposition +Disproportional +Disproportionality +Disproportionally +Disproportionate +Disproportionately +Disprovable +Disprove +Disproved +Disproven +Disproves +Disproving +Disputable +Dispute +Disputed +Disputing +Disqualified +Disqualifier +Disqualify +Disregard +Disregarded +Disregarding +Disrepair +Disrepect +Disreputable +Disreputables +Disrepute +Disrespect +Disrespected +Disrespectful +Disrespectfully +Disrespecting +Disrespects +Disrupt +Disrupted +Disrupting +Disruption +Disruptions +Disruptive +Disrupts +Diss +Dissapear +Dissapeared +Dissapears +Dissapoint +Dissapointed +Dissapointing +Dissapointment +Dissappear +Dissappearing +Dissappears +Dissaprove +Dissassociated +Dissatisfaction +Dissatisfied +Dissect +Dissected +Dissecting +Dissection +Dissed +Dissemination +Disseminator +Disservice +Dissident +Dissidents +Dissilusionment +Dissimilar +Dissimilarity +Dissimulation +Dissing +Dissipate +Dissipates +Dissipating +Dissipation +Dissociate +Dissociated +Dissociates +Dissociating +Dissociation +Dissociative +Dissolute +Dissolution +Dissolve +Dissolved +Dissolves +Dissolving +Dissonance +Dissuade +Dissuaded +Dissuasion +Distablizing +Distance +Distanced +Distances +Distancing +Distant +Distaste +Distasteful +Distastefully +Distil +Distill +Distillate +Distillates +Distillation +Distillations +Distilled +Distillery +Distilling +Distills +Distinct +Distinction +Distinctions +Distinctive +Distinctly +Distinguish +Distinguishable +Distinguished +Distinguishes +Distinguishing +Distopian +Distort +Distorted +Distorting +Distortion +Distorts +Distract +Distracted +Distracting +Distraction +Distractions +Distracts +Distraught +Distress +Distressed +Distresses +Distressing +Distribute +Distributed +Distributing +Distribution +Distributions +Distributor +Distributors +District +Districts +Distrust +Distrusted +Distrustful +Disturb +Disturbance +Disturbances +Disturbed +Disturber +Disturbers +Disturbing +Disturbs +Disunited +Disuse +Disused +Diswelcomed +Ditch +Ditched +Ditching +Dithering +Dithmarschen +Diurdi +Diurdi's +Dive +Diver +Diverge +Diverged +Divergence +Divergent +Diverging +Diverse +Diversification +Diversified +Diversify +Diversifying +Diversion +Diversity +Divert +Diverted +Diverting +Diverts +Dives +Divide +Divided +Dividing +Divination +Divine +Diving +Divinity +Divinity +Divise +Divisible +Division +Divisions +Divisive +Divisiveness +Divorce +Divorced +Divorcee +Divorces +Divorcing +Divulge +Dizziness +Dizzy +Dizzy gang +Dj +Djanimehri +Djarcn +Djarcn's +Djibouti +Djungelskog +Dlc +Dlcs +Dm +Dming +Dmt +Dna +Dnd +Dnr +Do +Doable +Dobbing +Dobby +Doc +Docile +Docility +Dock +Docked +Docker +DockerImage +DockerImage's +Docket +Docking +Docks +Dockyard +Docs +Doctor +Doctor_Pixel +Doctor_Pixel's +Doctoral +Doctored +Doctors +Doctrine +Doctrines +Document +Documentaries +Documentary +Documentation +Documentations +Documented +Documenting +Documents +Dodge +Dodgeball +Dodged +Dodger +Dodges +Dodging +Dodgy +Dodo +Doesnt +Dog +Doge +Dogecoin +Dogfacts +Dogged +Doggie +Doggies +Doggo +Doggo_Engineer +Doggo_Engineer's +Doggo_the_k1n +Doggo_the_k1n's +Doggos +Doggy +Dogma +Dogmatic +Dogmatism +Dogmatists +Dogpile +Dogs +Dogwhistle +Dogwhistling +Doing +Doityourself +Doll +Dollar +Dollars +Dolls +Dolphin +Dolphins +Dolt +Dom +Domain +Domains +Domaintools +Dome +Domed +Domes +Domestic +Domestically +Domesticated +Domesticating +Domestication +Dominance +Dominant +Dominate +Dominated +Dominating +Domination +Dominica +Dominican +Dominican Republic +Dominion +Dominions +Domino +Dominoes +Don Republic +DonCrenshaw +DonCrenshaw's +Donald +Donate +Donated +Donaters +Donating +Donation +Donations +Donator +Donators +Done +Donk +Donkey +Donkeys +Donna +DonnieDarko_ +DonnieDarko_'s +Donny +Donor +Donors +Dont +Donut +Donuts +Doodle +Doodles +Doodling +Doofus +Doohickeys +Doom +Doom City +Doom Delivery +Doom Delivery™ +Doom Obsidian Quickblade +Doombinder, Crux of Ending Misery +Doombringer +Doomer +Doomguard +Doommad +Doommad's +Doomsday +Doomshadow +Door +Doorknob +Doors +Doorstep +Doorway +Doorways +Doot +Doozy +Dopamine +Dope +Doping +Doppelganger +Doppleganger +Dorito +Doritos +Dork +Dorks +Dorky +Dorm +Dormant +Dormitory +Dorms +Dorothy +Dosage +Dosages +Dose +Dossier +Dostoevsky +Dot +Dothraki +Dots +Dotted +Double +Double147 +Double147's +Doublecheck +Doublechecked +Doublecheeseburger +Doublechest +Doublechests +Doublepost +Doubling +Doubly +Doubt +Doubted +Doubter +Doubtful +Doubtfully +Doubting +Doubts +Douche +Douches +Dough +Doughnut +Doughy +Douglas +Dovahkiin +Dovahkin +Doves +DowJones +DowJones's +Down +Downfall +Downfalls +Downgrade +Downgradeable +Downgraded +Downgrades +Downgrading +Downhill +Downing +Download +Downloadable +Downloaded +Downloader +Downloaders +Downloading +Downloads +Downplay +Downplayed +Downplaying +Downpour +Downright +Downside +Downsides +Downstairs +Downstream +Downtime +Downvote +Downvoted +Downvoters +Downvotes +Downvoting +Downward +Downwards +DozaJaju +DozaJaju's +Doze +Dozen +Dozens +Dps +Dr Bacon Hair +Dr Bacon Hair's +Dr Oracle +Dr Oracle's +DrKnees +DrKnees's +Dr_Bacon_Hair +Dr_Bacon_Hair's +Dr_Dre +Dr_Dre's +Dr_Oracle +Dr_Oracle's +Draconian +Draft +Drafted +Drafting +Drafts +Drag +Dragged +Dragging +Dragon +Dragon ball +Dragon isles +DragonBucket +DragonBucket's +Dragonball +Dragonborn +Dragonbreath +Dragons +Dragonstone +Drags +Drain +Drainage +Drainages +Drained +Draining +Drains +Drake +DrakeKuro +DrakeKuro's +Drake_The_Bake +Drake_The_Bake's +Drako +Drakonia +Drakula +Drama +Dramalovers +Dramas +Dramatically +Dramatist +Dranton +Draped +Draper +Draping +Drastic +Drastically +Draton +Draughts +Draw +Drawback +Drawback, Compound Bow of Putrefaction +Drawbacks +Drawbridge +Drawbridges +Drawer +Drawers +Drawing +Drawings +Drawn +Drawstring, Terror of Redemption +Dread +Dreadful +Dreadfully +Dreading +Dream +DreamEater1 +DreamEater1's +Dreamboat +Dreamed +Dreamer +Dreaming +Dreamland +Dreams +Dreamscapes +Dreamsong, Crux of the Ancients +Dreamy +Dreary +Dredd kiji +Dredd kiji's +Dredge +Dredged +Dredging +Drekamor +Drekamor's +Drenched +Dress +Dressed +Dresser +Dressers +Dresses +Dressing +Drew +Dribble +Dried +Drift +Drifted +Drifter +Drifters +Drifting +Driftwood Shooter +Drill +Drilling +Drills +Drink +Drinkable +Drinkables +Drinker +Drinkers +Drinking +Drinks +Drip +Dripping +Drive +Drivel +Driven +Driver +Drivers +Drives +Driveway +Driving +Drizzle +Droid +DroidJoe +DroidJoe's +Droids +Drone +Drones +Drool +Drooled +Drooling +Drools +Droop +Drop +Dropbox +Dropboxed +Dropchest +Dropchested +Dropchesting +Dropchests +Dropdown +Dropdowns +Droplandia +Dropped +Dropper +Droppers +Dropping +Droppings +Drops +Droracle +Droughts +Drove +Droves +Drown +Drowned +Drowner +Drowning +Drowsiness +Drug +Drugging +Drugs +Druid +Druid's +Drum +Drummer +Drumming +Drumroll +Drums +Drumsticks +Drunk +Drunkard +Drunkcrafting +Drunken +Drunkenly +Dry +Dryad +Drybones_33 +Drybones_33's +Drydock +Drydocks +Dryer +Dryers +Drying +Dryness +Dual +Dualism +Duality +Dub +Dubai +Duban +Dubbed +Dubbing +Dubble +Dubious +Dubiousness +Dublin +Dubs +Dubstep +Duck +Duck Hunt +DuckWithAMonocle +DuckWithAMonocle's +Ducked +Ducks +Duckville +Duct +Ducts +Dud +Dude +Dudebro +Dudebros +Dudes +Duds +Due +Duel +Dueling +Duelists +Duels +Dues +Duet +Dufus +Dug +Duh +Duhh +Duke +Dukedom +Dukes +Dulaman +Dull +Dullard +Dullards +Dulled +Duller +Dulles +Dullness +Dum +Dumb +Dumbest +Dumbing +Dumbledore +Dumbo +Dumbos +Dumbstruck +Dumfounded +Dummied +Dummies +Dummmm +Dummy +Dumnonia +Dump +Dumped +Dumping +Dumpling +Dumplings +Dumps +Dumpster +Dumpsterd +Dumpy +Dun Zikar +Duncan +Dunce +Dundee +Dune +Dunes +Dung +Dungeon +Dungeons +Dunk +Dunked +Dunno +Duo +Dupable +Dupe +Duped +Duping +Duplex +Duplicate +Duplicated +Duplicates +Duplicating +Duplication +Duplicity +Dupped +Dupping +Dura +Durabilities +Durability +Durable +Durablity +Duration +Durations +Durendal +Duress +DurianSmash +DurianSmash's +During +Dusk +Duskfall +Dusksong +Duskwood +Dust +Dustbin +Dustbowl +Dusted +Duster +Dustin +Dusting +Dusts +Dusty +Dutch +Dutchies +Dutchman +Dutchmen +Duties +Dutiful +Dutifully +Duty +Dutybound +Duuude +Duuuuude +Duuuuuuuuuude +Dvd +Dvds +Dwarf +Dwarfed +Dwarfing +Dwarven +Dwarves +Dweeb +Dweebs +Dwell +Dweller +Dwellers +Dwelling +Dwellings +Dwindle +Dwindled +Dwindles +Dwindling +Dye +Dyed +Dyeing +Dyes +Dying +Dylan +Dynamic +Dynamical +Dynamically +Dynamics +Dynamite +Dynamo +Dynastic +Dynasties +Dynasty +Dynmap +Dysentery +Dysfunction +Dysfunctional +Dyslexia +Dyslexic +Dystopia +Dystopian +Dystopic +Dythanos +Dythanos's +E +E-Boy +E-Girl +ENFJ +ENFP +ENTJ +ENTP +ESFJ +ESFP +ESTJ +ESTP +EVDan +EVDan's +EVDan’s +Ea +Each +Eachother +Eachothers +Eager +Eagerly +Eagerness +Eagle +Eagle Strike, Dawn of the Sky +Eagle Strike, Pledge of the Insane +Eaglecrew +Eagles +Ear +Eardrum +Eardrums +Earful +Eargasm +Earl +Earldom +Earlier +Earliest +Early +Early Retirement +Earlygame +Earn +Earned +Earnest +Earnestly +Earning +Earnings +Earnt +Earrings +Ears +Earshot +Earth +Earthlike +Earthly +Earthquake +Earthquakes +Earthsong, Focus of Hell's Games +Earthwork +Earthworks +Earthy +Earwax +Earyx +Earyx's +Ease +Easel +Easement +Easements +Easible +Easier +Easiest +Easily +Easiness +Easing +Eassier +Eassily +East +East Lambat +East Timor +Easter +Easterly +Eastern +Easternmost +Eastful +Easton +Eastridge +Eastside +Eastward +Eastwards +Eastwood +Eastwoods +Easy +Eat +Eaten +Eater +Eaters +Eating +Eats +Eatsnails +Eaves +Eazy +Eazycity +Ebay +Ebenefit +Ebenezer +Eblock +Eblocks +Ebon Hunting Bow +Ebook +Ebooks +Ebucks +Ebuttons +Ecauldron +Eccentric +Eccentricities +Echanted +Echelons +Echo +Echo, Eye of Hate +Echochamber +Echoes +Echoing +Echos +Eclipse +Eclipsed +Eclipses +Eclipsing +Eco +Ecofriend +Ecologic +Ecological +Ecology +Ecommerce +Econ +Economic +Economical +Economically +Economics +Economies +Economist +Economists +Economy +Ecool377 +Ecool377's +Ecopunk +Ecosystem +Ecosystems +Ecuador +Eddie Murphy +Eddy +Eden +Eden_1031 +Eden_1031's +Edens Island +Edgar +Edge +Edgelord +Edgemaster +Edges +Edgeville +Edginess +Edging +Edgy +Edible +Edict +Edicts +Edification +Edifice +Edifying +Edinburgh +Edit +Editable +Edited +Editer +Editing +Edition +Editions +Editon +Editor +Editorial +Editorialized +Editorializing +Editorials +Editors +Edits +Educate +Educated +Educating +Education +Educational +Educator +Educators +Edward +Edwardian +Edwards +Eel +Eesti Vabariik +Effeciency +Effect +Effected +Effecting +Effective +Effectively +Effectiveness +Effects +Effectually +Effectuate +Effeminate +Efficacy +Efficient +Efficiently +Effort +Effortless +Effortlessly +Efforts +Egalitarian +Egalitarianism +Egg +Egged +Egging +Eggs +Eggshell +Eggshells +Egi +Egi's +Egirl +Egirls +Ego +Egocentric +Egoism +Egoist +Egoistic +Egomaniac +Egos +Egotistic +Egotistical +Egregious +Egregiously +Egregiousness +Egster_ +Egster_'s +Egypt +Egyptian +Ehhhhhhhhh +Ehm +Eiffel +Eiger +Eight +Eighteen +Eighth +Eileen +Einstein +Einsteins +Eirik +Eirik's +Eisenhower +Eisho +Eisho's +Either +Eitherway +Eject +Ejected +Ejection +Ejections +Ejector +El Caro +El Salvador +ElJeffe77 +ElJeffe77's +El_Shap0 +El_Shap0's +Elaborate +Elaborated +Elaborates +Elaborating +Elaboration +Elaina +Elaine +Elapse +Elapsed +Elastic +Elasticity +Elate +Elated +Elation +Elawered +Elawyer +Elawyered +Elawyering +Elawyers +Elberto +Elbow +Elbows +Eldar +Elder +Elderberry +Elderly +Elders +Eldertrees +Eldest +Eldoorn +Eldoorns +Eldridge +Eleader +Eleanor +Elect +Elected +Electing +Election +Elections +Elective +Elector +Electoral +Electoralism +Electorate +Electors +Electric +Electrical +Electricians +Electricity +Electrified +Electro +Electrocuted +Electrode +Electromagnetic +Electron +Electronic +Electronically +Electronics +Elects +Elegance +Elegant +Elegantly +Element +ElementKZ +ElementKZ's +Elemental +Elementary +Elementizer +Elements +Elementum +Elena +Elephant +Elephants +Elevate +Elevated +Elevater +Elevation +Elevations +Elevator +Elevators +Eleventh +Eleventy +Elf +Eli +Elia +Elian +Eliana +Elias +Elicit +Elife +Eligibility +Eligible +Elijah +Eliminate +Eliminated +Eliminates +Eliminating +Elimination +Elina +Elioto1 +Elioto1's +Elioto8 +Elioto8's +Elise +Elisha +Elite +Elites +Elithys +Elithys's +Elitism +Elitist +Elixir +Eliyahu_Al_Hazan +Eliyahu_Al_Hazan's +Eliyau Al-Hazan +Eliyau Al-Hazan's +Eliza +Elizabeth +Elk +Ella +Ellas or Ellada +Elle +Ellen +Elliana +Ellie +Elliot +Elliott +Ellipse +Ellipses +Ellipsis +Elliptical +Ellis +Elo +Elodie +Eloise +Elon +Elongated +Elongating +Elope +Eloped +Elopement +Eloquence +Eloquent +Eloquently +Elora +Elsa +Else +Elses +Elsewards +Elsewhat +Elsewhere +Elsewheres +Elsie +Elswhere +Elton +Elucidate +Elucidation +Elude +Eludes +Elusive +Elven +Elves +Elvish +Elyse +Elysium +Elytra +Elytras +EmDubleYou +EmDubleYou's +Email +Emailed +Emailing +Emails +Emancipate +Emancipated +Emasculated +Embarass +Embarassing +Embarassment +Embargo +Embargoes +Embark +Embarked +Embarking +Embarrasing +Embassy +Embedded +Embedding +Embelish +Embellish +Embellished +Ember +Ember Valley +Embers +Embezzle +Embezzlement +Embezzling +Embiggened +Embittered +Emblazoned +Emblem +Emblematic +Emblems +Embodied +Embodies +Embodiment +Embody +Embodying +Embolden +Emboldened +Embrace +Embraced +Embraces +Embracing +Embrasure +Embroiled +Embryo +Emelia +Emerald +Emeraldblocks +Emeralds +Emerge +Emerged +Emergence +Emergencies +Emergency +Emergent +Emergently +Emerges +Emerging +Emerson +Emery +Emigrant +Emil +Emilia +Emilio +Emily +Eminates +Eminem +Eminent +Eminently +Emini +Emirates +Emissary +Emission +Emissions +Emistakes +Emit +Emits +Emitted +Emitter +Emitting +Emma +Emmanuel +Emmet +Emmett +Emmie +Emmy +Emo +Emoji +Emojipedia +Emojis +Emoney +Emory +Emote +Emotes +Emoticon +Emotion +Emotional +Emotionality +Emotionally +Emotions +Emotive +Emove +Emp +Empathy +Emperor +Emperor_Boreale +Emperor_Boreale's +Emperors +Emperorship +Emphasis +Emphasise +Emphasised +Emphasises +Emphasising +Emphasize +Emphasized +Emphasizes +Emphasizing +Emphatically +Empire +Empires +Empirical +Empirista +Employ +Employable +Employed +Employee +Employees +Employeeship +Employer +Employers +Employing +Employment +Employs +Emporium +Empower +Empowered +Empowering +Empowerment +Empowers +Empress +Emptied +Emptier +Empties +Emptiness +Empty +Emptying +Emulate +Emulated +Emulates +Emulating +Emulation +Emulator +Emus +Enable +Enabled +Enablement +Enabler +Enablers +Enables +Enabling +Enact +Enacted +Enacting +Enactment +Enamored +Enamoured +Encamp +Encampment +Encapsulate +Encapsulated +Encapsulates +Encapsulation +Encase +Encased +Encasing +Enchant +Enchantability +Enchantable +Enchanted +Enchanted Globe +Enchanted_Cow +Enchanted_Cow's +Enchanter +Enchanters +Enchanting +Enchantment +Enchantments +Enchants +Enchated +Encircle +Encircled +Encircling +Enclave +Enclaves +Enclose +Enclosed +Enclosure +Enclosures +Encode +Encoded +Encoding +Encompass +Encompassed +Encompasses +Encompassing +Encounter +Encountered +Encountering +Encounters +Encourage +Encouraged +Encouragement +Encouragements +Encourages +Encouraging +Encroach +Encroached +Encroaches +Encroaching +Encroachment +Encrusted +Encrypt +Encrypted +Encrypting +Encryption +Encrypts +Encumber +Encumbrance +Encyclopedia +Encyclopedias +Encyclopedic +End +Endagered +Endanger +Endangered +Endangering +Endangerment +Endaria +Endarian +Endarias +Endbase +Endearing +Endearingly +Endearment +Endeavor +Endeavors +Endeavours +Ended +Endemic +Ender +Enderal +Enderchest +Enderchests +Enderdragon +Enderdragons +Enderexpansion +Enderfolk +Enderfun +Endergod +Endergun +Enderia +Enderman +Endermans +Endermen +Endermite +Endermites +Enderpeals +Enderpearl +Enderpearled +Enderpearls +Enderphile +Enderrrrrguuun +Endevor +Endevours +Endfarm +Endgame +Endgoal +Endheim +Ending +Endings +Endless +Endlessly +Endlessness +Endoftheworld +Endorse +Endorsed +Endorsement +Endorsements +Endorses +Endorsing +Endow +Endowment +Endpearled +Endpearling +Endpearls +Endpoint +Endpoints +Ends +Endscape +Endstone +Endtime +Endtimes +Endtown +Endurable +Endurance +Endure +Endured +Endures +Enduring +Enemies +Enemy +Energetic +Energies +Energizer +Energy +Enforce +Enforceable +Enforced +Enforceing +Enforcement +Enforcements +Enforcer +Enforcer15 +Enforcer15's +Enforcers +Enforces +Enforcing +Engage +Engaged +Engagement +Engagements +Engages +Engaging +Enganging +Engels +Engendered +Engendering +Engine +Engineer +Engineered +Engineering +EngineeringBean +EngineeringBean's +Engineers +Engines +England +Englands +English +Englishfailure +Englishman +Englishmen +Englishwoman +Engrained +Engrave +Engraved +Engraving +Engross +Engrossed +Engrossing +Engulf +Engulfed +Engulfing +Enhance +Enhanced +Enhancement +Enhancements +Enhances +Enhancing +Enigma +Enigmatic +Enigmatical +Enimes +Enjoy +Enjoyable +Enjoyably +Enjoyed +Enjoying +Enjoyment +Enjoyments +Enjoys +Enlarge +Enlarged +Enlargement +Enlight +Enlighten +Enlightend +Enlightened +Enlightening +Enlightenment +Enlist +Enlisted +Enlisting +Enlistment +Enliven +Enoch +Enola +Enormity +Enormous +Enormously +Enough +Enourmous +Enquiry +Enraged +Enraging +Enrich +Enriched +Enriches +Enriching +Enrichment +Enroll +Enrolled +Enrolling +Enrollment +Enroute +Ensemble +Ensign +Ensnare +Ensue +Ensued +Ensues +Ensuing +Ensure +Ensured +Ensures +Ensuring +Ensuwe +Entail +Entailed +Entails +Entangle +Entangled +Entanglement +Entante +Enter +Enterance +Enterances +Entered +Entering +Enternal +Enterprise +Enterprises +Enterprising +Enterprize +Enters +Entertain +Entertained +Entertainer +Entertaining +Entertainment +Entertainments +Enthused +Enthusiasm +Enthusiast +Enthusiastic +Enthusiastically +Enthusiasts +Entice +Enticed +Enticing +Entire +Entirely +Entirety +Entities +Entitle +Entitled +Entitlement +Entitles +Entity +Entombed +Entourage +Entrails +Entranan Republic +Entrance +Entrances +Entrap +Entrapment +Entrapped +Entrench +Entrenched +Entrenchment +Entries +Entropy +Entrust +Entrusted +Entrusting +Entry +Entura +Enumerate +Enumerated +Enumeration +Enunciation +Envelop +Enveloped +Envelopes +Enveloping +Enviable +Envied +Envies +Envious +Enviroment +Enviromental +Environment +Environmental +Environmentalism +Environmentalist +Environmentally +Environments +Envisage +Envision +Envisioned +Envisioning +Envisions +Envoke +Envolved +Envoy +Envoys +Envy +Enygma +Enygma's +Enygmas +Enzo +Enzyme +Eoahtl +Eoahtl's +Eon Empire +Eons +Eotw +Ephesians +Epic +Epic_Enter +Epic_Enter's +Epicenter +Epicness +Epics +Epidemic +Epidemics +Epidermis +Epilepsy +Epileptic +Epilogue +Epiphany +Epirus +Episode +Episodes +Episodic +Eplocate +Epoch +Epoints +Epstein +Epvper +Equal +Equaled +Equaling +Equality +Equalize +Equalized +Equalizer +Equalizing +Equally +Equals +Equatable +Equate +Equated +Equates +Equating +Equation +Equations +Equator +Equatorial +Equatorial Guinea +Equilibrium +Equinox +Equip +Equiped +Equipment +Equipped +Equipping +Equips +Equivalence +Equivalencies +Equivalency +Equivalent +Equivalently +Equivelent +Era +Eradicate +Eradicated +Eradicating +Eradication +Erados +Erados's +Erase +Erased +Eraser +Erases +Erasing +Erasure +Erbelengerder +Erebor +Erect +Erected +Erectify +Erecting +Ergo +Eric +Erica +Erik +Erin +Eris +Eritrea +Erlang +Ermagerd +Ermmm +Ernesto +Erode +Erodes +Eroding +Erosion +Erotic +Errands +Erratic +Erratically +Erroneous +Erroneously +Error +ErrorL +ErrorL's +Errors +Errr +Errrr +Errrrrrrrrr +Errs +Erson +Erudite +Erupt +Eruption +Erupts +Escalate +Escalated +Escalation +Escalations +Escalators +Escapade +Escapades +Escape +Escaped +Escapee +Escapes +Escaping +Escapism +Eschew +Eschewing +Eschews +Escort +Escorted +Escorting +Escorts +Esme +Esoteric +Espada +Espanol +España +Especially +Espionage +Esports +Espouse +Espoused +Espresso +Esprit +Espy +Esque +Esquire +Essayer +Essayist +Essays +Essen +Essence +Essence Isles +Essences +Essencially +Essential +Essentially +Essentials +Essentually +Essex +Establish +Established +Establishes +Establishing +Establishment +Establishments +Estados Unidos Mexicanos +Estalia +Estalia's +Estalian +Estalian's +Estalians +Estanyol +Estanyol's +Estate +Estates +Esteem +Esteemed +Estella +Esther +Esthetic +Estimate +Estimated +Estimates +Estimating +Estimation +Estimations +Estiran Confederacy +Estonia +Estonian +Estranged +Estrangement +Estrapvp +Estrogen +Eswatini +Etc +Etcetera +Etched +Etching +Etdeathsword +Eterna +Eternal +Eternally +Eternas +Eternity +Ethan +Ethereal +Ethereum +Etherium +Etheriums +Ethernet +Ethers +Ethic +Ethical +Ethically +Ethicists +Ethics +Ethiopia +Ethiopian +Ethireum +Ethirum +Ethoslab +Etiquette +Etta +Etymology +Eu +Eucalyptus +Euclidean +Eugene +Eulogy +Euphemism +Euphemistic +Euphoria +Euphoric +Euphrates +Eupqawi +Eurasia +Eurasian +Euro +Eurocentric +Eurodance +Eurofriends +Europa +Europe +European +Europeans +Euros +Eurovision +Euthanize +Eva +Evac +Evacuate +Evacuated +Evacuating +Evacuation +Evade +Evaded +Evaders +Evades +Evading +Evaluate +Evaluated +Evaluating +Evaluation +Evaluations +Evaluator +Evan +Evangeline +Evangelion +Evaporate +Evaporated +Evaporates +Evaporation +Evasion +Evasive +EvasiveObject +EvasiveObject's +Evasively +Evasiveobject +Eve +Eveelution07 +Eveelution07's +Evelyn +Even +EvenTV1 +EvenTV1's +Evened +Evening +Evenings +Evenly +Event +Eventful +Eventpriority +Events +Eventual +Eventualities +Eventuality +Eventually +Eveonline +Ever +Everclear +Everest +Everett +Evergreen +Everlade +Everlades +Everlasting +Everly +Evermore +Everquest +Everseeking +Every +Everyangle +Everybody +Everyday +Everyhuman +Everyone +Everyones +Everypony +Everything +Everythings +Everytime +Everywhere +Eves +Evict +Evicted +Evicting +Eviction +Evidence +Evidenceless +Evidences +Evident +Evidentally +Evidentially +Evidently +Evie +Eviiiiilll +Evil +Evilbuildings +Evildoers +Evildoing +Evilness +Evils +Evocation +Evocator +Evocators +Evoke +Evoking +Evolution +Evolutionarily +Evolutionary +Evolutionist +Evolutions +Evolve +Evolved +Evolving +Ew +Ewok +Ewoks +Eww +Ewww +Ewwww +Ewwwww +Ewwwwww +Ex +Exacerbate +Exacerbated +Exacerbates +Exact +Exacting +Exactitude +Exactly +Exactness +Exacts +Exageration +Exaggerated +Exalted +Exalting +Exam +Examination +Examinations +Examine +Examined +Examiner +Examines +Examining +Example +Examples +Exams +Exasperate +Exasperated +Exasperation +Excalibur +Excalibur's +Excavate +Excavated +Excavating +Excavation +Excavations +Excavators +Excecute +Excecuted +Exceed +Exceeded +Exceeding +Exceedingly +Exceeds +Excel +Excelerated +Excellence +Excellent +Excellently +Except +Excepted +Excepting +Exception +Exceptional +Exceptionally +Exceptions +Excepts +Excercise +Excerpt +Excerpted +Excerpts +Excersize +Excess +Excesses +Excessive +Excessively +Exchange +Exchangeable +Exchanged +Exchanges +Exchanging +Excitability +Excite +Excited +Excitedly +Excitement +Excites +Exciting +Exclaim +Exclaimed +Exclaiming +Exclaims +Exclamation +Exclave +Exclaves +Exclude +Excluded +Excludes +Excluding +Exclusion +Exclusionary +Exclusions +Exclusive +Exclusively +Exclusivity +Excommunicate +Excommunicated +Excommunication +Excrement +Excruciating +Excursion +Excusable +Excuse +Excused +Excuses +Excusing +Excution +Excutioner +Exe +Executable +Executables +Execute +Executed +Executes +Executing +Execution +Executioner +Executioners +Executions +Executive +Executives +Executor +Exemplar +Exemplary +Exemplified +Exemplifies +Exemplify +Exempt +Exempted +Exempting +Exemption +Exeption +Exercise +Exercised +Exercises +Exercising +Exert +Exerted +Exerting +Exerts +Exes +Exhale +Exhaust +Exhausted +Exhausting +Exhaustingly +Exhaustion +Exhaustive +Exhaustively +Exhibit +Exhibited +Exhibiting +Exhibition +Exhibitionist +Exhibitions +Exhibits +Exhilarating +Exhilaration +Exile +Exiled +Exilepearl +Exilepearled +Exilepearling +Exilepearls +Exiles +Exiling +Exist +Existance +Existant +Existed +Existence +Existences +Existencial +Existent +Existential +Existentialism +Existing +Exists +Exit +Exited +Exiting +Exits +ExoSphall +ExoSphall's +Exodia +Exodus +Exonerated +Exonerating +Exorbitant +Exorbitantly +Exorcism +Exorcista +Exordium +Exotic +Exozz +Exozz's +Exp +Expand +Expandable +Expanders +Expanding +Expands +Expanse +Expanses +Expansion +Expansionism +Expansionist +Expansionista +Expansionistic +Expansions +Expansive +Expat +Expatiate +Expats +Expect +Expectancies +Expectancy +Expectant +Expectation +Expectations +Expected +Expecting +Expection +Expects +Expedia +Expedience +Expediency +Expedient +Expedite +Expedited +Expedition +Expeditions +Expeditious +Expeditiously +Expel +Expelled +Expelling +Expence +Expend +Expendable +Expendables +Expended +Expending +Expenditure +Expenditures +Expense +Expenses +Expensive +Expensivebeacons +Expensiveness +Experience +Experienced +Experiences +Experiencing +Experiential +Experiment +Experimental +Experimentalist +Experimentally +Experimentation +Experimented +Experimenters +Experimenting +Experiments +Expert +Expertise +Expertly +Experts +Expiration +Expire +Expired +Expirement +Expires +Expiring +Explain +Explaination +Explained +Explains +Explanation +Explanations +Explanatory +Explenation +Explicit +Explicitely +Explode +Exploded +Explodes +Exploding +Exploit +Exploitability +Exploitable +Exploitation +Exploitative +Exploited +Exploiter +Exploiting +Exploititive +Exploits +Explorable +Exploration +Explorations +Exploratory +Explore +Explored +Explorer +Explorer's +Explorers +Exploring +Explosion +Explosions +Explosive +Explosively +Explosives +Expo +Exponent +Exponential +Exponentially +Export +Exportation +Exported +Exporter +Exporters +Exporting +Exports +Expose +Exposed +Exposes +Exposing +Exposition +Exposure +Express +Expressed +Expresses +Expressing +Expression +Expressionista +Expressions +Expressive +Expropriate +Expropriated +Expulsion +Expunge +Expunged +Expunges +Exquisite +Exraiders +Exsist +Extend +Extendable +Extended +Extendeds +Extender +Extenders +Extending +Extends +Extensible +Extension +Extensions +Extensive +Extensively +Extent +Extention +Extents +Extenuating +Extenuation +Exterior +Exterium +Exterminate +Exterminated +Exterminating +Extermination +Exterminator +Exterminators +External +Externalities +Externality +Externalized +Externally +Extinct +Extinction +Extinguish +Extinguished +Extinguishers +Extinguishing +Extort +Extorted +Extorting +Extortion +Extortionate +Extra +ExtraElf5015275 +ExtraElf5015275's +Extract +Extracted +Extracting +Extraction +Extractive +Extractor +Extractors +Extracurricular +Extradite +Extradited +Extradites +Extraditing +Extradition +Extraditions +Extrajudicial +Extrajudicially +Extraland +Extralives +Extraordinaire +Extraordinarily +Extraordinary +Extrapolate +Extrapolated +Extrapolating +Extrapolation +Extras +Extraterrestrial +Extravagance +Extravagant +Extravagantly +Extravaganza +Extreme +Extremeist +Extrememer +Extremeness +Extremer +Extremers +Extremes +Extremism +Extremist +Extremists +Extremity +Exuded +Exultant +Exwife +Ey +Eya +Eye +Eye of Storm +Eyeball +Eyeballing +Eyeballs +Eyebrow +Eyebrows +Eyecontact +Eyed +Eyeholes +Eyeing +Eyelash +Eyelashes +Eyelid +Eyeopener +Eyeroll +Eyes +Eyesight +Eyesore +Eyesores +Eyewitness +Eyewitnesses +Eyo +Eyy +Eyyy +Eyyyy +Eyyyyy +Eyyyyyy +Eyyyyyyy +Eyyyyyyyy +Eyyyyyyyyyyyyyyyyy +Ez +Ez2Clutch +Ez2Clutch's +Ez2Kill +Ez2Kill's +Ezekiel +Ezra +F +F1sh98 +F1sh98's +FE Flags +FE Flags's +FELINE +FE_Flags +FE_Flags's +FE_flags +FE_flags's +FIFA +FKA_Twink +FKA_Twink's +FKA_twink +FREECASHER +FREECASHER's +FRESH candy +FRESH candy's +FRESH_candy +FRESH_candy's +FY1 +FY1's +Fa +Faba Scelerisque +Faba Scelerisque's +Fabian +Fabled +Fabric +Fabricatable +Fabricate +Fabricated +Fabricating +Fabrication +Fabrications +Fabrics +Fabtabulous +Fabulous +Facade +Facades +Face +Facebook +Facecuddle +Facecuddles +Faced +Faceless +Facepalm +Facepalmed +Facepalms +Facepunch +Faces +Facet +Facets +Facial +Facile +Facilitate +Facilitated +Facilitates +Facilitating +Facilitation +Facilitator +Facilities +Facility +Facing +Fact +Faction +Factions +Factionspvp +Factitious +Factly +Facto +Factoid +Factor +Factored +Factorial +Factories +Factoring +Factorio +Factors +Factory +Factorymod +Factoryname +Factorytree +Facts +Factual +Factually +Faculty +Fad +Fade +Faded +Fadedsoul +Fadedsouls +Fades +Fading +Fahad +Fail +Failed +Failedstate +Failing +Failings +Fails +Failsafe +Failure +Failures +Faint +Faintest +Faintly +Fair +Fairbanks +Fairby +Fairby's +Fairer +Fairest +Fairies +Fairing +Fairly +Fairness +Fairplay +Fairy +Fairytail +Fairytails +Faith +Faithful +Faithfully +Faithfulness +Faithkeeper +Faithless +Faiths +Fake +Fakeable +Fakebling +Faked +Fakenews +Fakeplayer +Faker +Fakers +Fakes +Faking +FaladorKnight +FaladorKnight's +Falcon +Falconia +Falkland Islands +Falklands +Falkreath +Fall +Fallacies +Fallacy +Fallback +Falldamage +Fallen +Fallibility +Fallible +Falling +Falling Star +Falling_Fireball +Falling_Fireball's +Falloff +Falloffs +Fallon +Fallout +Fallouts +Falls +FalscherRVN +FalscherRVN's +False +Falsehood +Falsehoods +Falsely +Falsified +Falsify +Falsifying +Falter +Faltered +Faltering +Falters +Falvyu +Falvyu's +Fame +Famed +Familial +Familiar +Familiarise +Familiarity +Familiarize +Familiarizing +Familiarly +Families +Familliar +Family +Famine +Famines +Famished +Famous +Famously +Fan +Fanatic +Fanatical +Fanatically +Fanaticism +Fanatics +Fanbase +Fanbases +Fanboy +Fanboying +Fanboys +Fancied +Fancier +Fancies +Fanclub +Fancy +Fancypants +Fandango +Fandom +Fanfare +Fanfic +Fanfics +Fanfiction +Fang +Fangirl +Fangs +Fans +Fanta +Fantabulous +Fantabulously +Fantasic +Fantasies +Fantasize +Fantasizes +Fantasizing +Fantastic +Fantastical +Fantastically +Fantasy +FantasyWorm +FantasyWorm's +Faq +Far +Faraday +Faraway +Farce +Farcical +Fare +Fared +Fares +Farewell +Fargo +Farifafa +Farifafa's +Farifala +Farifala's +Farleywar +Farleywars +Farm +Farmable +Farmables +Farmbot +Farmed +Farmer +Farmers +Farmgroups +Farmhands +Farmhouses +Farming +Farmland +Farmlands +Farms +Farmstead +Farmville +Faroe Islands +Farse +Fart +Farted +Fartguns +Farther +Farthest +Farting +Fartnite +Fascinate +Fascinated +Fascinates +Fascinating +Fascinatingly +Fascination +Fase +Fashion +Fashionable +Fashionably +Fashioned +Fashioning +Fashions +Fasinated +Fast +Fastball +Fastbreak +Fastbreakers +Fastclicking +Faster +Fastest +Fastforward +Fastidious +Fasting +Fastman +Fastness +Fastpass +Fastpot +FatGucciMane +FatGucciMane's +FatRat +Fatal +Fatalchemist +Fatalism +Fatalistic +Fatality +Fatally +Fate +Fated +Fates +Father +Fatherhood +Fatherland +Fatherless +Fatherly +Fathers +Fathoming +Fathoms +Fatigue +Fatigued +Fatigues +Fatima +Fatkid145 +Fatkid145's +Fault +Faulted +Faulting +Faultless +Faults +Faulty +Fauna +Faux +Fauxborisvv +Fauxborisvv's +Favbot +Favbot's +Favor +Favorable +Favorably +Favored +Favoring +Favorite +Favorites +Favoritism +Favors +Favour +Favourable +Favourably +Favoured +Favouring +Favourite +Favourites +Favouritism +Favours +Fawkes +Fawn +FawnO_O +FawnO_O's +Fawning +Fax +Fay +Faye +Faze +Fbi +Fda +Fdc +Fealties +Fealty +Fear +Feard +Feared +Fearful +Fearfully +Fearing +Fearless +Fearmongering +Fears +Fearsome +Feasable +Feasibility +Feasible +Feasibly +Feast +Feasts +Feat +Feather +Feathercrown +Feathercrown's +Feathered +Featherfall +Featherfall, Bond of the Gladiator +Featherfalling +Feathers +Feats +Feature +Featured +Featureless +Features +Featuring +February +Federal +Federalism +Federalist +Federalists +Federalization +Federalize +Federalized +Federally +Federated +Federation +Federations +Federative +Fedex +Fedora +Fedoras +Feds +Fee +Feeble +Feed +Feedback +Feeder +Feeding +Feedthebeast +Feeel +Feefees +Feel +Feelies +Feeling +Feelings +Feels +Feelsbad +Feelsbadman +Feelsbadmen +Feelsgoodman +Feelsies +Feelz +Fees +Feesable +Feet +Feigned +Feigning +Feint +Felician Empire of Casson +Feline +Felix +Fell +Fella +Fellas +Felled +Feller +Fellers +Felling +Felllowship +Fellow +Fellows +Fellowship +Fellowships +Felns +Felns's +Felnstaren +Felnstaren's +Felon +Felonies +Felons +Felony +Felt +Feltz +Feltz's +Fem +Female +Females +Femboy +Femboys +Femgoy +Femgoy's +Feminine +Feminism +Feminist +Feminists +FempIron +Fempire +Fempire Union +Fence +Fenced +Fencegate +Fencegates +Fenceposts +Fences +Fencing +Fend +Fender +Fending +Fenrir +FenrithAyreo +FenrithAyreo's +Fentanyl +Feral +Ferallity, Scepter of Blight +Feralsoul +Ferdinand +Fergus +Ferguson +Ferment +Fermentation +Fermented +FermentedAmanda +FermentedAmanda's +Fern +Fernando +Ferns +Ferocious +Ferocious Bead +Ferocity +Ferrari +Ferret +Ferrets +Ferretwings +Ferretwings's +Ferro +Ferro's +Ferro_Vir +Ferro_Vir's +Ferry +Ferrying +Fertile +Fertilisation +Fertility +Fertilize +Fertilizer +Fertilizing +Fervent +Fervently +Fervor +Fessed +Fessing +Fester +Festering +Festival +Festivals +Festive +Festivities +Festivity +Fetch +Fetched +Fetching +Fetile +Feud +Feudal +Feudalism +Feudalista +Feudalistic +Feuding +Feuds +Fever +Fevered +Feverishly +Few +Fewer +Fewest +Feywild +Fez +Ffffffffff +FiFA2023 +Fiance +Fiasco +Fiat +Fiber +Fibers +Fibrous +Fibs +Fickle +Fickleness +Fiction +Fictional +Fictions +Fictitious +Fiddle +Fiddly +Fidelity +Fidget +Fidgeting +Fief +Fiefdom +Fiefdoms +Fiefs +Field +Fielding +Fields +Fiend +Fiendish +Fiends +Fier +Fier's +Fierce +Fiercely +Fiery +Fiery Sabre +Fierysomething3 +Fierysomething3's +Fiesty +Fifa +Fifteen +Fifteenth +Fifth +FifthZoner +FifthZoner's +Fifties +Fiftieth +Fifty +Fight +Fightback +Fighter +Fighters +Fightin +Fighting +Fightings +Fightring +Fights +Figment +Figments +Figs +Figurative +Figuratively +Figure +Figured +Figurehead +Figureheading +Figureheads +Figures +Figurine +Figuring +Fiji +Filament +Filastin +File +Filedeieted +Filedetails +Filedropper +Filename +Files +Filesharing +Filesystem +Filet +Filetype +Filetypes +Filibuster +Filipino +Fill +Filled +Filler +Fillet +Fillin +Filling +Film +Filmed +Filming +Films +Filter +Filtered +Filtering +Filters +Filth +Filthiness +Filthy +Filtration +Fin +Final +Finale +Finales +Finalised +Finalising +Finalista +Finality +Finalize +Finalized +Finalizing +Finally +Finals +Finance +Financed +Finances +Financial +Financially +Financier +Financing +Financista +Find +Findable +Findanything +Findarticles +Findclass +Finder +Finders +Finding +Findings +Findlaw +Finds +Fine +Fined +Finely +Finer +Finery +Fines +Finesse +Finessing +Finest +Finetune +Finger +Fingerguns +Fingerprint +Fingerprinting +Fingerprints +Fingers +Fingertips +Fingland +Finglish +Finglishmen +Finicky +Fining +Finish +Finished +Finishes +Finishing +Finishtherace +Finite +Finland +Finley +Finn +Finna +Finnegan +Finnesed +Finnley +Fins +Fiona +Firaxis +Fire +Fire Infused Harp +Fire Infused Stone +Firearm +Firearms +Fireball +Fireballs +Firebase +Firebender +Firebombing +Fireboy +Firebrand +Firebreed +Firecrackers +Fired +Firefighter +Firefighters +Firefighting +Fireflies +Firefly +Firefox +Firehose +Fireman +Firemen +Fireplace +Firepower +Fireproof +Fireprot +Fires +Firespread +Firestorm +Firewall +Firewood +Firework +Fireworks +Firing +Firled +Firm +Firmally +Firmed +Firmly +Firms +Firmware +First +Firstborn +Firstborns +Firsthand +Firstlight +Firstly +Firsts +Fiscal +Fiscalista +Fiscally +Fish +Fishable +Fishbowl +Fished +Fisher +Fisherfolk +Fisheries +Fisherman +Fishermans +Fishery +Fishes +Fisheye +Fishing +Fishings +Fishposting +Fishy +Fission +Fissure +Fissures +Fist +Fisted +Fistfighting +Fisticuffs +Fists +Fit +Fitness +Fits +Fitted +Fittest +Fitting +Fittingly +Five +Fivebuck +Fives +Fix +Fixable +Fixate +Fixated +Fixating +Fixation +Fixed +Fixer +Fixes +Fixing +Fixityourself +Fixleaves +Fixture +Fixtures +Fizz +Fizzle +Fizzled +Fizzy +Fizzyjuice +Fjords +Flabbergasted +Flabby +Flacid +Flack +Flag +Flagfish +Flagged +Flaggelating +Flagging +Flagmaker +Flagon +Flagpole +Flagrant +Flagrantly +Flags +Flags Republic +Flagship +Flagstaff +Flail +Flailing +Flair +Flaired +Flairs +Flak +Flake +Flakerz +Flakes +Flamable +Flambouyant +Flamboyant +Flame +Flamed +Flameguard, Crusader of Ashes +Flameoguy +Flameoguy's +Flames +Flamethrower +Flamewar +Flaming +Flaming Blade +Flaming Defender +Flamingos +Flaminius +Flammable +Flamoe1234 +Flamoe1234's +Flank +Flanked +Flanking +Flanks +Flap +Flapping +Flappy +Flappyman +Flare +Flared +Flares +Flaring +Flase +Flash +FlashMigma +FlashMigma's +Flashback +Flashbacks +Flashed +Flashers +Flashes +Flashing +Flashlight +Flashy +Flask +Flat +Flatfile +Flatlands +Flatly +Flatmates +Flats +Flatten +Flattened +Flattening +Flattens +Flatter +Flattered +Flatterer +Flattering +Flattery +Flatulence +Flatypus +Flaunt +Flaunted +Flaunting +FlavRX +FlavRX's +Flavor +Flavored +Flavorful +Flavors +Flavortown +Flavour +Flavoured +Flavourful +Flavours +Flaw +Flawed +Flawless +Flawlessly +Flaws +Flax +Flay +Flayed +Fledgeling +Fledgling +Flee +Fleece +Fleeing +Fleek +Flees +Fleet +Fleeting +Flemish +Flesh +Fleshed +Fleshing +Fleshrender +Fleshy +Flew +Flex +Flexed +Flexes +Flexibility +Flexible +Flexing +Flic +Flick +Flicked +Flicken +Flicker +Flickered +Flickering +Flicking +Fliers +Flies +Flight +Flighters +Flights +Flighty +Flimsier +Flimsy +Flimsy Chalice +Flinch +Flinched +Flinching +Fling +Flinged +Flinging +Flings +Flint +Flintnsteel +Flints +Flip +Flipodius +Flipodius's +Flippant +Flippantly +Flipped +Flipper +Flipping +FlippoTheHippo +FlippoTheHippo's +Flips +Flipside +Flipsomebricks +Flipthebrick +Flirt +Flirtation +Flirtatious +Flirting +Float +Floated +Floaters +Floaties +Floating +Floats +Floaty +Flock +Flocked +Flocking +Flocks +Flog +Flood +Flooded +Floodgates +Flooding +Floods +Floor +Floorboards +Floored +Flooring +Floorplan +Floors +Floozy +Flop +Flopped +Flopping +Floppy +Flops +Flora +Flora_Borealis +Flora_Borealis's +Floral +Floral Green +Florance, Guardian of Eternal Sorrow +Florence +Florentine +Florida +Floridaman +Floridian +Florist +Florists +Floss +Flossing +Flounce +Flounder +Flour +Flourish +Flourished +Flourishes +Flourishing +Flout +Flouting +Flow +Flowchart +Flowed +Flower +Flowerbomb +Flowerbombed +Flowering +Flowerpot +Flowers +Flowery +Flowing +Flowingdata +Flown +Flu +Fluctuate +Fluctuation +Fluctuations +Flue +Fluent +Fluently +Fluff +Fluffed +Fluffiebunnies +Fluffing +Fluffy +Fluid +Fluidity +Fluidly +Fluids +Fluke +Flukes +Flumenberg +Flung +Fluoride +Flurries +Flurry +Flush +Flushed +Flushes +Flushing +Flushy +Flushywushy +Flustered +Flustrated +Flute +Flutes +Flutter +Fluttering +Flutters +Fluttershy +Flux +Fly +Flyer +Flyers +Flyhack +Flyhacking +Flyhacks +Flying +Flyingcourier +Flyingmeatballs +Flynn +Flywheel +Fnaf +Fnaggle +Fnny +Foal +Foals +Foam +Foamfix +Foaming +Foamy +Focal +Focus +Focused +Focuses +Focusing +Focussed +Focusses +Focussing +Fodder +Foe +Foehammermele +Foehammermele's +Foes +Fog +Foggiest +Foggy +Foil +Foiled +Foiling +Fold +Folded +Folder +Folders +Folding +Folds +Foliage +Folk +Folklore +Folks +Follow +Followed +Follower +Followers +Following +Follows +Followup +Folly +Folt +Folter +Folters +Fond +Fondest +Fondly +Fondness +Font +Fonts +Food +Foods +Foodstuff +Foodstuffs +Foof +Foofed +Foofs +Fook +Fool +Fooled +Foolhardy +Fooling +Foolish +Foolishly +Foolishness +Foolishtiger +Foolproof +Fools +Foot +Footage +Football +Footballs +Footer +Footgrinder +Footgrinders +Foothold +Footing +Footlong +Footnote +Footnotes +Footpath +Footprint +Footprints +Footsoldiers +Footstep +Footsteps +Footstool +Footwear +For +ForRealz77 +ForRealz77's +Forage +Foraging +Forbade +Forbes +Forbid +Forbidden +Forbidding +Forbids +Forcast +Force +Forceably +Forced +Forcedrop +Forcefield +Forcefielder +Forcefielding +Forceful +Forcefully +Forceload +Forces +Forcibly +Forcing +Ford +Foreal +Foreboding +Forecast +Forecasting +Forecastle +Forecasts +Forefathers +Forefront +Forego +Foregone +Foreground +Forehand +Forehead +Foreign +Foreignaffairs +Foreigner +Foreigners +Foreman +Foremen +Foremost +Forensic +Forensics +Forerunner +Forerunners +Foresail +Foresee +Foreseeable +Foreseen +Foresight +Forest +Forested +Forestfaeries +Foresting +Forestry +Forests +Foretell +Forethought +Foretold +Forever +Forevermore +Forewarned +Foreword +Forfit +Forfun +Forgave +Forge +Forged +Forged_TK +Forged_TK's +Forger +Forgeries +Forgery +Forges +Forget +Forgetful +Forgets +Forgettable +Forgetting +Forging +Forgive +Forgiveable +Forgiven +Forgiveness +Forgiving +Forgivingly +Forgo +Forgoes +Forgoing +Forgone +Forgot +Forgotten +Fork +Forked +Forking +Forklift +Forks +Forks & Makometer +Forks & Makometer's +Forks's +Forland +Forlorn +Form +Formal +Formalised +Formalising +Formalista +Formalities +Formality +Formalization +Formalize +Formalized +Formalizing +Formally +Format +Formatian +Formating +Formation +Formations +Formative +Formats +Formatted +Formatting +Formed +Formely +Former +Formerly +Formidable +Forming +Formless +Formlessness +Forms +Formula +Formulas +Formulate +Formulated +Formulating +Formulation +Formulations +Fornite +Forotune +Forreal +Forsake +Forsaken +Forsee +Forseeable +Forsure +Forsworn +Fort +Forth +Forthcoming +Forthright +Forthrightness +Fortieth +Fortifiable +Fortification +Fortifications +Fortified +Fortify +Fortifying +Fortitude +Fortnight +Fortnite +Fortnites +Fortress +Fortresscraft +Fortresses +Forts +Fortuitous +Fortuna +Fortunate +Fortunately +Fortune +Fortuned +Fortunes +Forty +Forums +Forward +Forwarded +Forwarding +Forwards +Fossil +Fossils +Foster +Fostered +Fostering +Fosters +Fotos +Fought +Foul +Fouls +Found +Foundation +Foundational +Foundations +Founded +Founder +Founders +Founding +Foundries +Foundry +Fountain +Fountains +Four +Fourteen +Fourth +Fov +Fow +Foward +Fowl +Fowler +Fox +Foxclan +Foxes +Foxglove +Foxholes +Foxman +Foxnews +Foxtrot +Foxville +Fps +Fracking +Fractal +Fractals +Fraction +Fractional +Fractionally +Fractions +Fractious +Fracture +Fractured +Fractures +Fracturing +Frag +Fragged +Fraggle +Fragile +Fragment +Fragmentary +Fragmentation +Fragmented +Fragmenting +Fragments +Fragrance +Fragrant +Frail +Frailties +Frame +Framed +Framerate +Framerates +Frames +Framework +Frameworks +Framing +France +Franchise +Franchises +Francis +Francisco +Franco +Francophone +Frank +Frankenstein +Frankfurt +Franklin +Frankly +Frankrijk +Franks +Frantic +Frantically +Franz +Fraps +Frat +Fraternal +Fraternity +Fraud +Frauds +Fraudster +Fraudsters +Fraudulent +Fraudulently +Fraught +Frayed +Frays +Freak +Freaked +Freakin +Freaking +Freakish +Freakouts +Freaks +Freaky +Freckled +Fred +FredCaTt +FredCaTt's +Freddy +Frederic +Frederick +FrederikSing +FrederikSing's +Fredhun14 +Fredhun14's +Fredo +Free +Free City of Arlington +Free City of Cairo +FreeStyleJr08 +FreeStyleJr08's +Freebees +Freebie +Freebies +Freebuilding +Freecam +Freed +Freeding +Freedom +Freedomarchives +Freedoms +Freedonia +Freee +Freeform +Freegantoe +Freegif +Freehand +Freehold +Freeing +Freelance +Freelancer +Freelancers +Freelancing +Freelands +Freeload +Freeloader +Freeloaders +Freely +Freeman +Freemasons +Freemen +Freeport +Freestate +Freestyle +Freeterritory +Freetime +Freetraps +Freeware +Freeze +Freezed +Freezer +Freezes +Freezing +Fregetable +Fregetable +Fregetable's +Freight +Freind +Freinds +Fremen +French +French Guiana +French Polynesia +French Southern Territories +Frenchfries +Frenchman +Frenchmen +Frenchwoman +Frensin +Frensin's +Frenzy +Frenzy, Slayer of the Sun +Frequencies +Frequency +Frequent +Frequented +Frequenting +Frequently +Frequents +Fresco +Fresh +Freshcoal +Freshcundy +Fresher +Freshers +Freshest +Freshly +Freshman +Freshmen +Freshness +Freshwater +Fret +Fretted +Fretting +Freud +Freudian +Freya +Freyja1312 +Freyja1312's +Frick +Friction +Friday +Fridays +Fridge +Fried +Friedrich +Friemds +Friend +Friended +Friendemy +Frienderino +Friending +Friendings +Friendless +Friendlier +Friendlies +Friendliest +Friendliness +Friendly +Friendo +Friendos +Friends +Friendsave +Friendship +Friendships +Friendss +Friendster +Friendy +Friendzone +Friendzoned +Friendzoner +Fries +Friesland +Frig +Frigate +Frightened +Frightening +Frighteningly +Frightful +Frightfully +Frigid +Frikandelbread +Frikandelbread's +Fringe +Fringes +Frisbee +Frisbees +Frisky +Frivolity +Frivolous +Frivolously +Frodo +Frog +Froggy +Frogs +Frogsiren +Frolic +Frolicking +From +Front +Frontage +Frontal +Fronted +Frontier +Frontiers +Fronting +Frontline +Frontlines +Frontpage +Fronts +Frontside +Frost +Frostburst +Frosted +Frostfire +Frostguard +Frosties +Frostmourne +Frostwalker +Frostward +Frostwarrior112 +Frostwarrior112's +Frosty +Frothing +Frothy +Frown +Frowned +Frowning +Frowns +Froze +Frozed +Frozen +Frugal +Fruit +Fruitarianism +Fruitcake +Fruitcakes +Fruitful +Fruitfull +Fruitfully +Fruitless +Fruitlessly +Fruits +Fruity +Frustrate +Frustrated +Frustrating +Frustratingly +Frustration +Frustrations +Fry +Fryed +Frypan +Ftl +Ftw +Fudge +Fuel +Fueled +Fueling +Fuelling +Fuels +Fufilled +Fufu +Fugatives +Fuji +Fuji's Beefy Leather Shop +Fujitsu +Fulfill +Fulfilled +Fulfilling +Fulfillment +Fulfills +Full +Fullbright +Fullest +Fullness +Fullscreen +Fulltime +Fullwidth +Fully +Fumble +Fumbled +Fumbling +Fume +Fumes +Fuming +Fun +Funbox +Function +Functional +Functionality +Functionally +Functioned +Functioning +Functions +Fundamental +Fundamentalist +Fundamentalists +Fundamentally +Fundamentals +Funded +Fundemental +Fundementally +Funding +Fundraiser +Fundraisers +Fundraising +Funds +Funeral +Funerals +Fungi +Fungible +Fungus +Funk +Funky +Funnel +Funneled +Funneling +Funnels +Funner +Funnest +Funni +Funnier +Funniest +Funnily +Funny +Funpost +Funposters +Funposts +Funsies +Fur +Fur's +Furaffinity +Furfuryl +Furious +Furiously +Furnace +Furnaceland +Furnaces +Furnish +Furnished +Furnishings +Furniture +Furries +Furrow +Furry +Furs +Fursona +Fursuit +Further +Furtherance +Furthering +Furthermore +Furthers +Furthest +Fury +Fury, Memory of the Insane +FuschiaJoCrafter +FuschiaJoCrafter's +Fuse +Fused +Fusion +Fuss +Fussed +Fussy +Futher +Futhermore +Futile +Futility +Futily +Future +FutureGamer25 +FutureGamer25's +Futures +Futuretask +Futurewave +Futurist +Futurista +Futuristic +Fuzz +Fuzzle +Fuzzy +Fuzzygoodle +FwNickk +FwNickk's +Fwiend +Fwiends +Fwiendship +Fómhar +Føroyar +G +GFAC +GFAC's +GGCasablanca27 +GGCasablanca27's +GGJoe +GGJoe's +GPT +GROND +GTAIV +GTAIV's +Gabble +Gabe +Gaben +Gabon +Gaboner +Gabonese +Gabriel +Gabuuti +Gadget +Gadgetry +Gadgets +Gael +Gaelic +Gag +Gaga +Gage +Gaging +Gags +Gaia +Gain +Gained +Gainful +Gaining +Gains +Gal +Gala +Galactic +Galactica +Galacticraft +Galaxy +Galaxyawesome +Galaxyquest +Gale +Galen +Gall +Gallagher +Gallant +Gallantry +Galleon +Galleries +Gallery +Gallic +Gallivanting +Gallon +Gallons +Galloping +Gallops +Gallow +Gallows +Galore +Gals +Galvanized +Galvanizing +Gambit +Gamble +Gambled +Gambler +Gambling +Game +Gameboy +Gamebreaking +Gamechangers +Gamecube +Gamed +Gamedev +Gamegrumps +Gamemode +Gamemodes +Gameoflife +Gameoflifes +Gameplan +Gameplay +Gamer +Gamer Time69 +Gamer Time69's +Gamer_Time69 +Gamer_Time69's +Gamers +Gamertag +Gamertime +Gamertown +Games +Gamespot +Gamespy +Gamesurge +Gametales +Gametime +Gameworld +Gaming +Gamma +Gammabright +Gamut Empire +Gandalf +Gandalfthegay +Gander +Gandhi +Gang +Gang Shi +Gangbang +Gangbanged +Gangbangers +Gangbros +Ganged +Ganggang +Ganging +Gangmates +Gangnam +Gangs +Gangwar +Gangwars +Gank +Ganked +Ganking +Gant2000 +Gant2000's +Ganto +Gantoe +Gantoe's +Gantoe_ +Gantoe_'s +Gantoeism +Ganymede +Gaol +Gaoler +Gaolers +Gap +Gaping +Gapple +Gapples +Gaps +Garage +Garantee +Garb +Garbage +Garbo +Garden +Gardener +Gardeners +Gardening +Gardens +Garenteed +Garfield +Garfinkel +Gargantua +Gargantuan +Gargle +Gargling +Garland +Garlic +Garlicoin +Garment +Garments +Garnering +Garners +Garnish +Garnished +Garnishing +Garnit +Garping +Garrison +Garrisoned +Garrisoning +Garudistans +Garundistan +Gas +Gaseous +Gases +Gaslight +Gaslighted +Gaslighters +Gaslighting +Gasoline +Gasp +Gasping +Gassed +Gassing +Gastric +Gat +Gate +Gated +Gatefold +Gatehouse +Gatekeep +Gatekeeper +Gatekeeperish +Gatekeepers +Gatekeeping +Gates +Gateway +Gateways +Gather +Gatherd +Gathered +Gatherer +Gatherers +Gathering +Gatherings +Gathers +Gatling +Gator +GatorGlitch +GatorGlitch's +Gatorade +Gaudy +Gauge +Gauging +Gaul +Gauls +Gauntlet +Gauntlets +Gaurd +Gaurding +Gauss +Gaussian +Gave +Gavel +Gavin +Gawd +Gawk +Gawking +Gay +Gaydar +Gayest +Gaylord +Gaymer +Gayrocket +Gazebo +Gazelle +Gazes +Gazette +Gb223s13 +Gb223s13's +Gdan +Gday +Gear +Gearblock +Gearboxes +Geared +Gearing +Gears +Geckos +Geckos017 +Geckos017's +Gee +Geek +Geeked +Geeks +Geese +Geez +Geeze +Geforce +Gefunden +Gegroet +Gehenna +Geinformeerd +Gelatine +Gelatinous +Gemini +Gemma +Gempire +Gems +Gemster108 +Gemster108's +Gemstones +Gender +Gendered +Genderqueer +Genders +Gene +Genepool +General +GeneralThomas4 +GeneralThomas4's +Generalassembly +Generalisation +Generalisations +Generalised +Generalization +Generalizations +Generalize +Generalized +Generalizing +Generally +Generals +Generalwindu +Generaly +Generate +Generated +Generater +Generates +Generating +Generation +Generational +Generations +Generative +Generator +Generators +Genere +Generic +GenericLaqey +GenericLaqey's +GenericWarloq +GenericWarloq's +Generically +Generosity +Generous +Generousity +Generously +Genes +Genesis +Genetic +Geneva +Genevieve +Geniality +Genie +Genie's lamp +Genius +Geniuses +Genoa +Genocidal +Genocide +Genocided +Genocider +Genocides +Genociding +Genome +Genre +Genres +Genshin +Gensokyan +Gensokyian +Gensokyians +Gensokyo +Gensokyojin +Gentle +Gentle__Giant +Gentle__Giant's +Gentleboys +Gentleman +Gentlemanly +Gentlemans +Gentlemen +Gentlemens +Gentlemenz +Gentleness +Gentler +Gentlesir +Gentlesirs +Gently +Gentrification +Genuin +Genuine +Genuinely +Genuineness +Geo +GeoAnchoxmas +GeoAnchoxmas's +Geographers +Geographic +Geographical +Geographicalbonus +Geographically +Geographics +Geography +Geohashing +Geological +Geologist +Geology +Geometric +Geometrical +Geometrically +Geometrics +Geometries +Geometry +Geopolitcal +Geopolitical +Geopolitically +Geopolitics +Geoponic +Geoponic's +George +Georgetown +Georgia +Georgian +Geos +Geostationary +Gerald +Gerfer +German +German Empire +Germania +Germanian +Germanians +Germanic +Germans +Germany +Gerrymandering +Gerund +Gesagt +Gestapo +Gesture +Gestures +Get +GetSkinny +GetSkinny's +Getaway +Getblocks +Getcha +Getem +Getfile +Getid +Getlocation +Getpaint +Getplayer +Getright +Gets +Getta +Gettem +Gettin +Getting +Gettingganked +Getup +Getworld +Gezellig +Ghana +Ghandi +Ghast +Ghasts +Ghost +GhostBuster3016 +GhostBuster3016's +Ghostblocks +Ghostbusters +Ghosted +Ghostily_ +Ghostily_'s +Ghosting +Ghostliness +Ghostly +Ghostly Cage +Ghosts +Ghosttown +Ghostwriter +Ghostwriters +Ghoul +Ghouls +Gia +Gian +Gianna +Giant +Giants +Gibberish +Gibbet +Gibble +Gibbles +Gibbon +Gibby +Gibraltar +Gibson +Giddiness +Giddy +Gifs +Gifsoup +Gift +Giftcard +Giftcards +Giftcodes +Gifted +Gifting +Gifts +Gig +Giga +Gigabyte +Gigabytes +Gigachad +Gigachadtopia +Gigajoules +Gigantic +Gigavault +Giggity +Giggle +Giggled +Giggles +Giggling +Gigi +Gigs +Gilbert +Gilded +Gillian +Gills +Gimble3ooo +Gimble3ooo's +Gimme +Gimmick +Gimmicking +Gimmickry +Gimmicks +Gimmicky +Gimmie +Gimp +Gin +Gingechris +Gingechris's +Ginger +Gingerale7 +Gingerale7's +Gingerbread +Gingerly +Giovanni +Giphy +Giraffe +Giraffes +Girl +Girlboss +Girlfriend +Girlfriends +Girlgamers +Girls +Girly +Girlz +Girth +Giselle +Gist +Git +Gita +Gitgud +Github +Githubs +Gitlab +GiusseppeNarto +GiusseppeNarto's +Give +GiveMeNoods +GiveMeNoods's +Giveaway +Gived +Givemenoods +Given +Giver +Givers +Gives +Giveth +Giving +Giza +Gjum +Gjum's +Gjumpilled +Gjumposts +Gknight3 +Gknight3's +Gl +Glacial +Glacier +Glad +Gladiator +Gladiatorial +Gladiators +Gladitor +Gladitorial +Gladius +Gladlad +Gladly +Glados +Glady +Glaims +Glaive +Glamorous +Glamour +Glance +Glanced +Glances +Glancing +Gland +Glare +Glares +Glaring +Glaringly +Glasgow +Glass +Glassed +Glasses +Glassmond +Glassy +Glatteis +Glaze +Glazed +Gleam +Gleaming +Glean +Gleaned +Gleany +Glee +Gleeful +Gleefully +Glen +Glenmore +Glenn +Glerk +Glerk's +Glib +Glide +Glided +Gliders +Gliding +Glimmer +Glimmered +Glimmering +Glimpse +Glimpsed +Glimpses +Glint +Glinting +Glisten +Glistening +Glitch +Glitched +Glitches +Glitching +Glitchy +Glitchyness +Glitter +Glittery +Gloat +Gloating +Glob +Global +Globalauction +Globalchat +Globalisation +Globalism +Globalist +Globalistic +Globalists +Globalization +Globalizing +Globally +Globaloffensive +Globe +Glock +Glocked +Gloom +Gloomy +Gloria +Gloried +Glories +Glorification +Glorified +Glorifies +Glorify +Glorifying +Glorious +Gloriously +Glory +Gloss +Glossaries +Glossary +Glossed +Glosses +Glossing +Glossy +Gloucestershire +Glove +Gloves +Glow +Glower +Glowing +Glowstone +Glu +Glucose +Glue +Glued +Glum +Glurf +Glut +Gluten +Glutinous +Glutton +Gluttonous +Gluttony +Glyphs +Gmail +Gmo +Gmod +Gmt +Gnarled +Gnashing +Gnome +Gnomes +Go +Goad +Goaded +Goading +Goal +Goalie +Goalkeeper +Goalposts +Goals +Goat +Goating +Goatman +Goats +Gob +Gobble +Gobbled +Gobblin +Gobblin's +Gobbling +Gobblinlord +Gobblins +Gobbo +Gobbo’s +Goblet +Goblin +Goblin_Bard +Goblin_Bard's +Goblins +Gobs +Gobshite +Gobsmacked +God +God of War +GodHatesAmerica +GodHatesAmerica's +Godawful +Godbless +Godbow +Godclick +Goddamn +Goddess +Godfather +Godfoot +Godforsaken +Godfrey +Godhaven +Godhead +Godhood +Godking +Godknows +Godless +Godlike +Godly +Godmother +Godo +Godogang +Godomasta +Godomasta's +Godparent +Godprot +Godpvper +Gods +Godsakes +Godsend +Godslayer +Godspeed +Godsword +Godswords +Godtier +Godzilla +Goed +Goes +Gofundme +Goggles +Gogo +Gogogadgetaxe +Goin +Going +Goings +Goku +Gold +GoldPlatedKiki +GoldPlatedKiki's +Goldberg +Goldblocks +Golden +Goldencreeper +Goldenegg +Goldenpineapple +Goldfarm +Goldfarms +Goldfish +Goldman +Goldmine +Goldminer +Goldminers +Goldore +Goldring +Golds +Goldsmith +Goldstein +Golem +Golems +Golf +Golfclap +Goliath +Gollum +Gonads +Gondola +Gondolin +Gondolins +Gondor +Gone +Gonewild +Gong +Gongs +Gonna +Gonorrhea +Gontontu +Gontontu's +Gonzales +Gonzo +Goober +Goobers +GooblinDely +GooblinDely's +Good +Goodboi +Goodbot +Goodboy +Goodboys +Goodbye +Goodbyes +Goodest +Goodfellas +Goodguy +Goodguys +Goodie +Goodies +Goodjob +Goodluck +Goodluckwiththat +Goodmen +Goodname +Goodness +Goodnews +Goodnight +Goodpost +Goodposting +Goods +Goodwill +Goodwork +Goody +Goof +Goofball +Goofballs +Goofed +Goofing +Goofs +Goofy +Google +Googled +Googler +Googles +Googling +Googly +Goon +Gooned +Goons +Goooooooood +Goopy +Goose +Goosebumps +Goosechase +Gopher +Gor +Gorasone +Gorasone's +Gordge +Gordge's +Gordomasta +Gordon +GordonFreemanQ +GordonFreemanQ's +Gordonfreeman +Gore +Gorgeous +Gorilla +Gorillas +Gory +Gosh +Gospel +Gossip +Gossiped +Gossiping +Goswhit +Got +Gotcha +Gotchas +Gotchu +Gotem +Goth +Gotham +Gothic +Goths +Gotland +Goto +Gotquestions +Gottcha +Gotten +Gotterdammer +Gotterdammer's +Gouda +Gouged +Gouging +Gourmet +Gouvernement +Gov +GovCraft +Goverment +Goverments +Govern +Governance +Governed +Governer +Governing +Government +Governmental +Governmentality +Governmentalize +Governments +Governor +Governors +Governorship +Governs +Gown +Goy +Gpost +Gposter +Gposters +Gposting +Gposts +Graag +Grab +Grabbed +Grabber +Grabbers +Grabbing +Grabify +Grabs +Grace +Graced +Graceful +Gracefully +Gracefulness +Gracefuly +Graceless +Graces +Gracie +Gracing +Gracious +Graciously +Gracipie +Gracipie's +Grad +Gradation +Gradations +Grade +Graded +Grader +Graders +Grades +Gradeschool +Gradient +Gradients +Grading +Gradle +Grads +Gradual +Gradualism +Gradually +Graduate +Graduated +Graduates +Graduating +Graduation +Graffiti +Graft +Grafting +Graham +Grail +Grain +Grains +Grainview +Grainy +Gram +Gramatical +Grammar +Grammatical +Grammatically +Gramps +Gramr +Grams +Gran +Grand +Grand Imperium +Grand Theft Auto V +Grandad +Grandads +Grandchild +Grandchildren +Granddad +Granddaughter +Grande +Grander +Grandest +Grandeur +Grandfather +Grandfathered +Grandfathers +Grandios +Grandkids +Grandma +Grandmas +Grandmaster +Grandmasters +Grandmother +Grandmothers +Grandpa +Grandparent +Grandparents +Grandpas +Grandson +Grandstand +Grandstanding +Granite +Grannie +Granny +Granola +Grans +Grant +Granted +Granter +Granting +Grants +Granular +Granularity +Granularly +Granulated +Granville +Grape +Grapefruit +Grapes +Graph +Graphed +Graphic +Graphical +Graphically +Graphics +Graphing +Graphs +Grapple +Grappled +Grappling +Grasp +Grasped +Grasping +Grasps +Grass +Grassblocks +Grasshopper +Grassland +Grasslands +Grassy +Grate +Grated +Grateful +Gratefully +Grates +Gratification +Gratifying +Grating +Gratis +Gratitude +Gratuitous +Gratuitously +Gratuity +Gratulations +Grav +Grave +Gravel +Gravely +Graverobbers +Graves +Gravesites +Gravest +Graveyard +Graveyards +Gravitate +Gravitation +Gravitational +Gravity +Gravy +Gray +Gray9111 +Gray9111's +Graydawn_ +Graydawn_'s +Grayscale +Grayson +Graze +Grazed +Grazing +Grease +Greased +Greasemonkey +Greaser +Greasier +Greasy +Greasyfork +Great +Great Thrall Clan +GreatLordOz +GreatLordOz's +Great_Shamalow +Great_Shamalow's +Greatcoat +Greater +Greater Duskwood +Greatest +Greatful +Greatly +Greatness +Greece +Greed +Greedily +Greedy +Greeenkitten +Greek +Greeks +Green +Green Spice +GreenLadBoi +GreenLadBoi's +GreenTheBaddie +GreenTheBaddie's +Greenable +Greenble +Greenble's +Greened +Greener +Greenery +Greenfield +Greenflash +Greenhouse +Greenhouses +Greenish +Greenish9 +Greenish9's +Greenkitten +Greenkitten's +Greenlake +Greenland +Greenlands +Greenlight +Greenmarsh +Greenpeace +Greens +Greentext +Greentexts +Greenville +Greenwich +Greenwood +Greet +Greeted +Greeting +Greetings +Greg +Gregarious +Gregorian +Gregorithorian +Gregorius +Gregory +Gregory's +Gregy +Gregy's +Gregy165 +Gregy165's +Gregy166 +Greifed +Greifer +Greifers +Greifing +Greltam +Greltam's +Gremlin +Grenada +Grenade +Grenades +Grenadier +Greps +Greps' +Greta +Gretel +Gretlam +Gretlam 's +Grew +Grey +Greyhound +Greyjoy +Greyscale +Greyson +Grian +Grid +Gridcoin +Griddy +Gridlines +Gridlock +Grids +Grief +Griefable +Griefed +Griefer +Grieferking +Griefers +Griefing +Griefings +Griefng +Griefs +Grievance +Grievances +Grieve +Grieved +Grieves +Grieving +Grievous +Grievously +GriffSuperShot +GriffSuperShot's +Griffen +Griffin +Griffin's +Griffton +Gril +Grill +Grilled +Grilling +Grills +Grimace +Grimaced +Grimacing +Grime +Grimes +Grimm +Grimy +Grin +Grinch +Grinches +Grinchman +Grind +Grindable +Grindcraft +Grinded +Grindelwald +Grinder +Grinders +Grindfest +Grindfests +Grindier +Grindiness +Grinding +Grindr +Grindy +Grindyness +Gringo +Grinning +Grins +Grip +Gripe +Gripes +Gripped +Grippers +Gripping +Grips +Gristryn +Gristryn's +Grit +Gritty +Grizzled +Grizzly +Groan +Groaning +Groans +Grocer +Groceries +Grocery +Groet +Grog +Grond +Groningen +Groom +Groot +Groove +Grooves +Groovy +Grose +Gross +Grossed +Grosser +Grossly +Grotesque +Grotto +Grouch +Groucho +Grouchy +Ground +Groundbreaking +Groundbunker +Groundbunker's +Groundbunkers +Grounded +Groundhog +Groundhogs +Grounding +Grounds +Groundwater +Groundwork +Group +Groupblock +Groupchat +Groupchats +Grouped +Groupfights +Groupies +Grouping +Groupings +Groupname +Groupnames +Groupnumber +Groups +Groupstats +Groupstealers +Groupthink +Grouptype +Grove +Grovel +Grow +Growable +Grower +Growin +Growing +Growl +Growling +Growls +Grown +Grownup +Grownups +Grows +Growth +Groxlord +Grrrrr +Grrrrrrrrr +Grub +Grubby +Grudge +Grudgematch +Grudges +Grudging +Grudgingly +Gruebleen +Gruebleen's +Gruel +Grueling +Gruesome +Gruff +Grug +Grumble +Grumbled +Grumblegrumble +Grumbles +Grumbling +Grump +Grumper +Grumperfolk +Grumpers +Grumpy +Grumpywalnut96 +Grumpywalnut96's +Grund +Grusome +Gta +Gtaiv +Gtav +Gtfo +Guac +Guacamole +Guadeloupe +Guam +Guarante +Guarantee +Guaranteed +Guaranteeing +Guarantees +Guard +Guarded +Guardian +Guardians +Guarding +Guards +Guarenteed +Guarentees +Guatemala +Gucci +Gud +Guerilla +Guerrilla +Guess +Guessed +Guesses +Guessing +Guesstimates +Guesstimating +Guesswork +Guest +Guestbook +Guesting +Guests +GuggaBugga +GuggaBugga's +Gui +Guidance +Guide +Guided +Guideline +Guidelines +Guides +Guidestones +Guiding +Guild +Guilds +Guillotine +Guillotined +Guilt +Guilted +Guilty +Guinea +Guinea Ecuatorial +Guinea-Bissau +Guineapigplays +Guineapigplays's +Guinness +Guiné-Bissau +Guinée +Guitar +Guitars +Guize +Gul +Gulag +Gulags +Gulf +Gullible +Gully +Gulp +Gulping +Gum +Gumming +Gummy +Gump +Gums +Gun +Gunboats +Gundagai +Gundam +Gunfight +Gunfire +Gunman +Gunned +Gunner +Gunning +Gunpoint +Gunpowder +Guns +Gunshot +Gunshots +Gunther +Guppie +Gurgling +Guru +Gurus +Gush +Gushed +Gushing +Gust +Gusto +Gut +Gutless +Gutrender +Guts +Gutted +Gutter +Gutters +Gutting +Guy +Guyana +Guyane +Guys +Guåhan +Gwen +Gwendolyn +Gwoup +Gwoups +Gwua +Gwua's +Gym +Gymnasium +Gymnastic +Gymnastics +Gyms +Gypsie +Gypsies +Gyroscope +Gyroscoped +H +H4Y4ST4N +H4Y4ST4N's +HC +HC's +HCF +HCFactions +HDestroyer02 +HDestroyer02's +HM_gamer +HM_gamer's +HOODRATSLAYA +HOODRATSLAYA's +HPLaptop +HPLaptop's +HSM +Ha +HaKr_ +HaKr_'s +Haa +Haaaaw +Haaard +Haangry +Hab +Habe +Habeas +Haben +Habia +Habibi +Habit +Habitable +Habitat +Habitational +Habitats +Habits +Habitual +Habitually +Habituation +Habla +Hablan +Hablando +Hablar +Hablas +Hablo +Habsburg +Hachikuji +Hacienda +Hack +Hackathon +Hacked +Hacker +Hackers +Hackery +Hackforums +Hacking +Hackney +Hackneyed +Hackru +Hacks +Hacksh +Hackusations +Hacky +Had +Hadassah +Hade +Hades +Hadley +Hadnt +Hadron +Hae +Haecceity +Haecia +Haeinsa +Haet +Hafenstadt +Haflinger +Hafsa +Hag +Haggard +Haggle +Haggling +Hagrid +Hags +Hague +Hagärä Ertra +Hah +Haha +Hahaa +Hahaha +Hahahaha +Hahahahaha +Hahahahahaha +Hahahahahahaha +Hai +Haiku +Haikus +Hail +Hailed +Hailey +Hailing +Hails +Haing +Hair +Hairbrained +Haircut +Haircuts +Hairdresser +Haired +Hairflicks +Hairs +Hairy +Haiti +Haitians +Haitis +Hajj +Hajjar +Hake +Hakenkreuz +Hakumen +Hakurei +Halal +Halcyon +Hale +Half +Half-life +Halfaheartgod +Halfbrained +Halfcat +Halfchan +Halfling +Halfslab +Halfslabs +Halfway +Halfwit +HaliXo +HaliXo's +Halibut +Halifax +Hall +Halland +Hallie +Hallmark +Hallmarks +Hallo +Hallow +Hallow's +Hallowed +Halloween +Halloweenie +Halloweenies +Halloweentown +Hallows +Halls +Hallucinate +Hallucinating +Hallucination +Hallucinations +Hallway +Hallways +Halo +Halp +Halt +Halted +Halter +Halterofilista +Halting +Halve +Halved +Halves +Halving +Ham +Hamas +Hamboy +Hamburg +Hamburger +Hamburger +Hamburglar +Hamburgor +Hamilton +Hamism +Hamlet +Hamlets +Hamm +Hamma +Hammer +Hammered +Hammering +Hammers +Hammertime +Hammock +Hamms +Hammurabi +Hammy +Hamper +Hampered +Hampering +Hampshire +Hampter +Hampton +Hamster +Hamstered +Hamstering +Hamsters +Hamstring +Hamstrung +Hamwashere +Hamwashere's +Han +HanTzu +HanTzu's +Hana +Hanafyv +Hanafyv's +Hanassholesolo +Hancock +Hand +Hand of midas +Handbags +Handballing +Handbook +Handcrafted +Handcrafting +Handcuff +Handcuffs +Handed +Handedly +Handful +Handfull +Handfuls +Handgun +Handguns +Handheld +Handhelds +Handhold +Handicap +Handicapped +Handicapping +Handicaps +Handicraft +Handily +Handing +Handingly +Handiwork +Handjob +Handkerchief +Handle +Handled +Handler +Handlers +Handles +Handling +Handmade +Handmaid +Handmaiden +Handoff +Handout +Handouts +Handover +Handpicked +Hands +Handset +Handshake +Handsome +Handsomely +Handsy +Handwrite +Handwriting +Handwritten +Handy +Hang +Hangar +Hanged +Hangin +Hanging +Hangman +Hangout +Hangouts +Hangover +Hangoverd +Hangoverd's +Hangs +Hanguk or Namhan +Hani +Haniya +Hank +Hankerin +Hankering +Hanks +Hanlons +Hannah +Hannibal +Hanny +Hans +Hansa +Hanseatic +Hansel +Hansen +Hantz +Hantzu +Hantzuism +Hantzuist +Hanukkah +Hanz +Hanzo +Haole +Hap +Haphazard +Haphazardly +Hapless +Happe +Happen +Happened +Happenin +Happening +Happenings +Happens +Happenstance +HappichoLol +HappichoLol's +Happier +Happiest +Happily +Happiness +Happy +Happycakeday +Happycakedayclub +Happycamper +Happyyear +Haqfhjb +Haqhzxp +Har +Haram +Harambe +Harambes +Harangue +Harani +Harassed +Harasser +Harassers +Harasses +Harassing +Harassment +Harbinger +Harbor +Harboring +Harbors +Harbour +Harboured +Harbouring +Harbours +Hard +Hardass +Hardassed +Hardasses +Hardball +Hardcap +Hardcode +Hardcoded +Hardcoding +Hardcore +Hardcorefactions +Hardcover +Hardd +Harddrive +Harden +Hardened +Hardened Stick +Hardening +Hardens +Harder +Harderrr +Hardest +Hardihood +Harding +Hardline +HardlineComic3 +HardlineComic3's +Hardliner +Hardliners +Hardly +Hardmode +Hardness +Hardpoints +Hardrive +Hardship +Hardships +Hardware +Hardwired +Hardwon +Hardwood +Hardwood Composite Bow +Hardwood Flatbow +Hardwood Striker +Hardwork +Hardworking +Hardy +Hare +Harem +Hark +Harken +Harkens +Harlan +Harlem +Harley +Harlot +Harlow +Harm +Harmed +Harmful +Harmfulness +Harming +Harmless +Harmlessly +Harmonic +HarmonicPartials +HarmonicPartials's +Harmonious +Harmoniously +Harmonize +Harmonizing +Harmony +Harms +Harness +Harnessing +Haro +Harold +HaroldTheHog +HaroldtheHog1373 +HaroldtheHog1373's +Harp +Harper +Harping +Harpista +Harpoon +Harps +Harpsichord +Harr +Harried +Harriet +Harriman +Harriot +Harris +Harrison +Harrow +Harrowing +Harry +Harsh +Harsher +Harshest +Harshly +Hart +Hartford +Harvard +Harvest +Harvest Town +Harvestable +Harvestcraft +Harvested +Harvester +Harvesters +Harvesting +Harvests +Harvey +Has +Hasan +Haseroth +Haseroth's +Hash +Hashbrowns +Hashed +Hashes +Hashing +Hashmap +Hashtable +Hashtag +Hashtags +Hasikhsukh +Haskell +Hasnext +Hasnt +HassDaMahn +HassDaMahn's +Hassle +Hassled +Hassles +Hast +Hasta +Haste +Hastened +Hastily +Hastings +Hasty +Hat +Hatch +Hatches +Hatchet +Hatching +Hate +Hateboner +Hateboners +Hated +Hatefueled +Hateful +Hateful Diamond Warblade +Hateful Orb +Hatemonger +Hater +Haters +Hates +Hateworthy +Hath +Hating +Hatred +Hatred's Bite +Hatred's Sting +Hats +Hatsumei +Hatter +Hatto +Hatwi +Hatzu +Haughtily +Haul +Hauled +Hauling +Haulogic +Hauls +Haunt +Haunted +Haunting +Haunts +Haus +Hauteur +Hav +Havana +Have +Haven +Havenite +Havenites +Havens +Havent +Haves +Havin +Having +Havoc +Havok +Haw +Hawaii +Hawaiian +Hawk +Hawkeye0066 +Hawkeye0066's +Hawking +Hawkish +Hawks +Hawt +Hawthorn +Hax +Haxor +Haxx +Haxx0r +Haxx0r's +Haxxor +Hay +Hayastan +Haybale +Haybales +Haydaddy +Hayday +Hayden +Hayek +Hayekian +Hayes +Hayley +Haystack +Haystacks +Haywire +Haz +Hazard +Hazardous +Hazards +Haze +Hazel +HazelBasil +HazelBasil's +Hazelnut +Hazing +Hazlog +Hazmat +Hazy +Hbdxqlm +Hbl +Hbo +Hbpmz +Hbr +Hbu +Hc +Hcf +Hcfaction +Hcfactions +Hcfer +Hcfers +Hcfey +Hcfrevival +Hd +Hdd +Hdds +Hdtv +He +Head +Headache +Headaches +Headass +Headband +Headcount +Headdesk +Headed +Header +Headers +Headfirst +Headgear +Headhunter +Headhunters +Heading +Headings +Headless +Headlights +Headline +Headlines +Headlong +Headphone +Headphones +Headquarter +Headquartered +Headquarters +Headrest +Headroom +Heads +Headset +Headsets +Headshop +Headshot +Headspace +Headstart +Headstrong +Headsup +Headway +Headwear +Heady +Heal +Heald +Healed +Healer +Healers +Healing +Healing Cordial +Heals +Health +Healthbar +Healthbars +Healthcare +Healthful +Healthier +Healthiest +Healthline +Healthpot +Healthpots +Healths +Healthy +Heap +Heaping +Heaps +Hear +Heard +Hearing +Hearings +Hears +Hearsay +Hearse +Heart +Heart of gold +Heart of lorkhan +Heartache +Heartbeat +Heartbreak +Heartbreaker +Heartbreaking +Heartbreaks +Heartbroken +Heartburn +Hearted +Heartedly +Hearteyes +Heartfelt +Heartgold +Hearth +Hearths +Hearthstone +Hearties +Heartingly +Heartland +Heartlands +Heartless +Hearts +Heartstriker, Cunning of Fallen Souls +Heartwarming +Hearty +Heat +Heated +Heater +Heath +Heathen +Heathens +Heather +Heathrow +Heating +Heatmap +Heatmaps +Heats +Heatsink +Heave +Heaven +Heavenly +Heavens +Heavier +Heaviest +Heavily +Heavy +Heavyweight +Heb +Hebben +Hebe +Hebrew +Hebrews +Hebrides +Hebt +Hecc +Heccin +Heck +Heckd +Hecked +Hecker +Heckers +Heckin +Hecking +Heckle +Heckled +Hecklers +Heckling +Hecks +Hectares +Hectic +Hector +Hed +Hedcorp +Hedge +Hedgehog +Hedonism +Hedonista +Hedonistic +Hee +Heebs +Heed +Heee +Heeeeeey +Heeeeere +Heeeeey +Heeeey +Heel +Heelies +Heelllll +Heels +Heet +Heey +Hef +Heff +Hefty +Hegel +Hegelianism +Hegemonic +Hegemonies +Hegemony +Heh +Hehe +Heheh +Hehehe +Heheheh +Hehehehe +Hehehehehe +Hehehehehehe +Heian +Heidi +Heifer +Height +Heighten +Heightened +Heightening +Heightens +Heightmapping +Heights +Heil +Heilige +Hein +Heinessen +Heinous +Heinously +Heinrich +Heinrichpen +Heins +Heinz +Heir +Heirloom +Heirs +Heisenberg +Heist +Heists +Hel +Held +Helen +Helena +Helenista +Helfontein +Helical +Helicopter +Helicopters +Helio +Heliopolis +Helios +HeliosVictus +HeliosVictus's +Heliosvictus +Heliotrope +Helipad +Helis +Helium +Helix +Hell +Hell's Whistle, Terror of the Occult +Hella +Hellas +Hellbent +Hellcycle +Helldivers +Hellenic +Helleonov +Helleonov's +Hellfire +Hellhole +Hellion +Hellish +Hellishly +Hellllo +Helllo +Hello +Hello Euphoria +Hellokitty +Hellooooo +Hells +Hellscape +Hellsing +Hellspawn +Hellsreach +Helluva +Hellyeahgis +Helm +Helman +Helmed +Helmet +Helmeted +Helmets +Helms +Helo +Help +Helped +Helper +Helpers +Helpful +Helpfully +Helpfulness +Helpin +Helping +Helpings +Helpless +Helplessly +Helplessness +Helpop +Helps +Helsinki +Helskor +Helvetia +Helvettiin +Hem +Hematite +Hematologista +Hemi +Hemicircle +Hemingway +Hemisphere +Hemispheric +Hemlock +Hemmed +Hemming +Hemorrhage +Hemorrhaging +Hemorrhoid +Hemorrhoids +Hemp +Hen +Hence +Henceforth +Henceforward +Hench +Henchmen +Henderson +Henderwicz +Henderwicz's +Hendrerit +Henery +Henge +Henhouses +Heniji +Heniji's +Henious +Henley247 +Henley247's +Henlo +Henry +HenryDraton +HenryDraton's +Henrydraton +Henrys +Hens +Hep +Hepatitis +Her +Hera +Heracles +Herald +Heraldic +Heraldics +Heraldry +Heralds +Herb +Herbaceous +Herbage +Herbal +Herbert +Herbi +Herbie +Herbieeeee +Herbivores +Herblore +Herbs +Herby +Herculean +Herd +Herdan +Herded +Herding +Here +Hereafter +Hereby +Hereditary +Heredity +Herein +Hereon +Heres +Heresy +Heretic +Heretical +Heretics +Hereupon +Heritage +Herman +Hermann +Hermano +Hermes +Hermione +Hermit +Hermitage +Hermitcraft +Hermits +Hermitting +Herndon +Hero +Herobrine +Herobrines +Herodotus +Heroes +Heroic +Heroically +Heroin +Heroine +Heroism +Herokuapp +Heron +Herp +Herr +Herrd +Herring +Herrings +Hers +Herself +Hersheys +Hertfordshire +Hes +Hesitance +Hesitancy +Hesitant +Hesitate +Hesitated +Hesitating +Hesitation +Hesperia +Hesse +Hessian +Het +Heterogeneous +Heterogenous +Heteronym +Heterosexual +Heterosexuality +Heuristic +Hew +Hewlett +Hewp +Hewwo +Hex +Hexagon +Hexagonal +Hexagons +Hexagram +Hexameter +Hexchat +Hexcorp +Hexcorps +Hexdoor +Hexington +Hexmart +Hey +Heya +Heyah +Heyheyhey +Heyo +Heyy +Heyyy +Heyyyy +Heyyyyy +Heyyyyyy +Hezbollah +Hezekiah +Hf +Hfc +Hfmdsuu +Hfnqrnj +Hfvoh +Hg +Hg__80 +Hg__80's +Hgtv +Hhh +Hhmm +Hi +HiImPosey +Hia +Hia Mek +Hiatus +Hibachi +Hibernate +Hibernating +Hibernation +Hic +Hiccup +Hiccups +Hick +Hickory +Hicks +Hid +Hidad +Hidden +Hiddenlog +Hiddenore +Hiddenores +Hiddenstrife +Hide +Hideaway +Hideaways +Hideous +Hideously +Hideout +Hideouts +Hides +Hidey +Hiding +Hie +Hier +Hierachy +Hierarchal +Hierarchical +Hierarchies +Hierarchy +Hieroglyphics +Higan +Higer +Higgen +Higgenbottom +Higgenbottoms +Higgens +Higgins +High +Highball +Highballed +Highboy +Highboy's +Highcliffe +Higher +Higherup +Highest +Highfive +Highground +Highgrove +Highjack +Highkey +Highland +Highlander +Highlands +Highlife +Highlight +Highlighted +Highlighter +Highlighting +Highlights +Highly +Highness +Highpoint +Highrise +Highrock +Highroll +Highroll's +Highs +Highschool +Highschoolers +Highscore +Highspeed +Hight +Hightailing +Hightillidie +Highway +Highwayman +Highwaymen +Highways +Hihi +Hiii +Hiiiigh +Hiiiii +Hijab +Hijack +Hijacked +Hijacking +Hijinks +Hike +Hiked +Hiking +Hikki +HikorutheGamer +HikorutheGamer's +Hilarious +Hilariously +Hilarity +Hilary +Hiliary +Hill +Hillary +Hillbilly +Hills +Hills4Real +Hills4Real's +Hillside +Hillsides +Hilltop +Hilly +Hilt +Hilton +Him +Himalayas +Himeji +Himm +Hims +Himself +Hin +Hindenburg +Hinder +Hindered +Hindering +Hinders +Hindi +Hindsight +Hindu +Hinduism +Hindus +Hinge +Hinged +Hinges +HinikunaMeinu +HinikunaMeinu's +Hinky +Hinnan +Hinomurael1 +Hinomurael1's +Hint +Hinted +Hinterland +Hinting +Hints +Hip +Hiphop +Hiphopheads +Hippie +Hippies +Hippity +Hippo +Hippodrome +Hippopotamus +Hippos +Hippy +Hips +Hipster +Hipsters +Hipwaders +Hire +Hired +Hirelings +Hires +Hiring +Hiroden +Hirohito +Hirohitos +Hiroshima +His +Hisec +Hispanic +Hispanics +Hispanista +Hispanohablantes +Hispanola +Hiss +Hisses +Hissing +Hissss +Hissssssssss +Hissy +Hist +Histogram +Historial +Historian +Historians +Historic +Historical +Historically +Histories +Historiography +History +Historyplace +Histowy +Histrionic +Histrionics +Hit +Hitachi +Hitbox +Hitboxes +Hitch +Hitchcock +Hitchhikers +Hitfilm +Hitid +Hiting +Hitlist +Hitman +Hitmehn +Hitmehn's +Hitmen +Hitpiece +Hitpoints +Hitregistration +Hitresult +Hits +Hitscan +Hitta +Hitters +Hitting +Hive +Hivemind +Hiveminds +Hives +Hiya +Hiz +Hj +Hjalt +Hjaltcraft +Hjaltjob +Hjaltland +Hjaltlander +Hjaltlanderin +Hjaltlanders +Hjaltlands +Hjaltmir +Hjalts +Hjaltstreet +Hjaltvault +Hjaltvault's +Hjaltvaults +Hjere +Hji +Hjlantland's +Hjobland +Hjs +Hjum +Hkajogjsahgjas +Hm +Hmcl +Hmh +Hmm +Hmming +Hmmm +Hmmmm +Hmmmmm +Hmmmmmmmm +Hmmmmmmmmmmmmmmmmm +Hmms +Hmph +Hmu +Hng +Hnng +Hnnng +Hnnngg +Hnnngggg +Hnnnnnnnggggggg +Ho +Hoa +Hoar +Hoard +Hoarded +Hoarder +Hoarders +Hoarding +Hoards +Hoax +Hoaxers +Hobart +Hobbes +Hobbie +Hobbies +Hobbiest +Hobbit +Hobbiton +Hobble +Hobbling +Hobbs +Hobby +Hobo +Hobopolis +Hobos +Hobs +Hoc +Hock +Hockey +Hockey328 +Hockey328's +Hockeyguy +Hodes +Hodge +Hodgepodge +Hodor +Hoe +Hoedown +Hoes +Hoesgiving +Hoffe +Hoffi +Hog +Hogging +Hogleg +Hoglegs +Hogold +Hogs +Hogshead +Hogville +Hogwarts +Hogwash +Hoho +Hohoho +Hoi +Hoist +Hoisted +Hoity +Hokkaido +Hokkaido's +Hokkaido__ +Hokkaido__'s +Hol +Hola +Holacracy +Hold +Holdem +Holder +Holders +Holdin +Holding +Holdings +Holdout +Holdouts +Holdover +Holds +Hole +Holed +Holers +Holes +Holetown +Holeville +Holevilles +Holey +Holiday +Holidays +Holier +Holiest +Holiness +Holing +Holistic +Holistically +Holla +Holland +Holler +Hollering +Hollow +Holloway +Hollowed +Hollowing +Hollowknight +Holly +Hollywood +Holmes +Holmgard +Holo +Hologram +Holograms +Holographic +Holster +Holy +Holy Crystal +Holy Jaded Empire +Holy See +Holy Shaded Empire +Holy Tree +Holy grail +Holy hand grenade +Holyshit +Holytree +Hom +Homage +Homages +Hombre +Hombres +Home +Homebase +Homeboy +Homeboys +Homebrew +Homecoming +Homefield +Homeground +Homegrown +Homeland +Homelands +Homeless +Homelessness +Homely +Homemade +Homeopathic +Homeowner +Homeowners +Homepage +Homer +Homers +Homes +Homesick +Homesickness +Homeslice +Homespun +Homestead +Homesteaded +Homesteader +Homesteaders +Homesteading +Homesteads +Homestuck +Hometown +Homework +Homey +Homicidal +Homicide +Homie +Homies +Homily +Homogeneity +Homogeneous +Homogenized +Homogenizing +Homogenous +Homonyms +Homophonous +Homs +Homu +Hon +Honcho +Honda +Honduras +Hone +Honed +Honed Fan +Honest +Honestly +Honestlyy +Honesty +Honey +Honeybunny +Honeycomb +Honeymoon +Honeypot +Honeysuckle +Hong +Hong Kong +Hongkong +Honing +Honk +Honkai +Honkhonk +Honolulu +Honor +Honor's Call +Honorable +Honorably +Honorary +Honored +Honorific +Honoring +Honors +Honour +Honourable +Honourably +Honourary +Honoured +Honourific +Honourless +Hooking +Hooks +Hookup +Hooligan +Hooligans +Hooman +Hooo +Hoooah +Hooold +Hoooly +Hoooooly +Hoooooo +Hoooooooooooo +Hoop +Hooped +Hoops +Hoorah +Hooray +Hoos +Hoot +Hooters +Hoover +Hooves +Hop +Hope +Hope's End, Heirloom of the South +Hope's Visage +Hoped +Hopeful +Hopefully +Hopeless +Hopelessly +Hopelessness +Hopers +Hopes +Hoping +Hopkins +Hopped +Hopper +Hoppered +Hopperland +Hoppers +Hoppin +Hopping +Hoppity +Hops +Hopscotch +Hoquista +Hora +Horace +Horat +Horatio +Horcrux +Horde +Hordes +Hording +Hore +Horglu +Horiz +Horizon +HorizonLeap +HorizonLeap's +Horizons +Horizontal +Horizontally +Hormonal +Hormone +Hormones +Horn +Hornets +Horns +Horny +Horoscope +Horray +Horrendous +Horrendously +Horrible +Horribly +Horrid +Horrific +Horrifically +Horrified +Horrifying +Horror +Horrors +Horse +Horseback +Horsehair +Horselord +Horseman +Horsemen +Horsenapped +Horseplay +Horsepower +Horses +Horseshit +Horseshoe +Horsestats +Horsie +Horsies +Horsing +Hortons +Horus +Hory +Hos +Hose +Hosea +Hosiery +Hospice +Hospitable +Hospital +Hospitality +Hospitalized +Hospitalizing +Hospitals +Host +Hostage +Hostages +Hosted +Hostel +Hostelry +Hostels +Hostile +Hostiles +Hostilities +Hostility +Hostimentum +Hosting +Hostname +Hosts +Hot +Hot tub +HotSweatyMan +HotSweatyMan's +Hotbar +Hotbars +Hotbed +Hotcakes +Hotdog +Hotdogs +Hotel +Hotels +Hotfix +Hotfixed +Hothead +Hotheaded +Hotheads +Hotkey +Hotkeys +Hotline +Hotly +Hotmail +Hotmic +Hotpocket +Hots +Hotshot +Hotspot +Hotspots +Hottentot +Hotter +Hotterer +Hottest +Hottie +Hotttttt +Hotty +Houdini +Hound +Hounded +Hounds +Hour +Hourglass +Hourly +Hours +House +Houseboat +Housecat +Housed +Housefly +Household +Householder +Households +Housekeeper +Housekeeping +Houseless +Housemate +Houseonahillistan +Houseowner +Houses +Housewares +Housewarming +Housewife +Housewives +Housework +Houston +Houzes +Hove +Hovel +Hovels +Hover +Hovered +Hovering +Hovers +Hovertext +How +Howabout +Howard +Howcome +Howd +Howdy +Howdyou +However +Howeveritsspelled +Howhardcanitbe +Howitzer +Howled +Howler +Howling +Howling Warblade +Howls +Hows +Howto +Hoxha +Hoxhagrad +Hoyt +Hoyy +Hoyyyyyyyyyyyyy +Hozier +Hozyh +Hp +Hpacpzd +Hply +Hpnvdcs +Hps +Hq +Hqdefault +Hr +Href +Hrm +Hrmmm +Hrs +Hrt +Hru +Hrvatska +Hs +Hsif +Hsm +Hsss +Hssss +Ht +Htc +Hte +Html +Htmlcolorcodes +Hts +Http +Https +Hualyaocalaquia +Hub +Huband +Hubbard +Hubbub +Hubby +Hubris +Hubris, Bag of Eternity +Hubs +Huck +Hud +Huddle +Huddled +Huddling +Hudistan +Huds +Hudson +Hue +Huechat +Huegovt +Hueh +Huehue +Huehuehue +Huehuehuehue +Huff +Huffing +Hug +Hugbox +Huge +Hugeass +Hugely +Huger +Hugged +Hugger +Hugging +Hugh +Hughes +Hughwoodbury +Hugo +Hugs +Huh +Huhuhuuuuhuhu +HukTuu +HukTuu's +Hukkumaan +Hukosai +Hula +Hulk +Hull +Hullabaloo +Hullo +Hulu +Hum +Human +Human_No2 +Human_No2's +Humanbeing +Humane +Humanely +Humanista +Humanitarian +Humanities +Humanity +Humanitys +Humankind +Humanly +Humanoid +Humanoids +Humans +Humble +Humblebrag +Humbled +Humbleness +Humbly +Humbug +Humbugs +Humdrum +Humer +Humid +Humidity +Humiliate +Humiliated +Humiliating +Humiliation +Humility +Hummel +Hummelwagen +Hummelwagen's +Hummelwagens +Hummelwagon +Hummer +Humming +Hummus +Humon +Humongous +Humor +Humored +Humoring +Humorista +Humorless +Humorous +Humorously +Humour +Hump +Humped +Humper +Hums +Hun +Hunch +Hunched +Hunches +Hundon +Hundred +Hundreds +Hundredth +Hundredweight +Hung +Hungarian +Hungary +Hunger +Hungover +Hungry +Hunk +Hunker +Hunky +Hunna +Hunny +Huns +Hunt +HuntWolf +HuntWolf's +Hunted +Hunter +Hunters +Hunting +Hunting Knife +Huntington +Hunts +Huntsman +Huoranpenikka +Hur +Hurdle +Hurdles +Hurl +Hurled +Hurling +Hurp +Hurr +Hurrah +Hurray +Hurrdurr +Hurricane +Hurricanes +Hurriedly +Hurries +Hurrr +Hurrrr +Hurry +Hurt +Hurtful +Hurtin +Hurting +Hurts +Hurtsey +Husband +Husbandry +Husbands +Hush +Hushed +Husk +Husks +Husky +Huskydog9988 +Huskydog9988's +Hussar +Hussein +Hussy +Hustle +Hustlers +Hut +Hutners +Huts +Hutt +Hutu +Hutus +Huuuge +Huuuuge +Huxley +Huzar +Huzzah +Hv +Hw +Hwillotati +Hwy +Hybrid +Hybridized +Hybrids +Hyd +Hyde +Hydra +Hydrate +Hydrated +Hydration +Hydraulic +Hydrazine +Hydrius +Hydro +Hydrochloric +Hydrocodone +Hydroelectric +Hydrogen +Hydrolox +Hyena +Hyenas +Hyet +Hygiene +Hylian +Hylian Cellist +Hylian Cellist's +Hylian Gamer +Hylian Gamer's +Hylian_Gamer +Hylian_Gamer's +Hymn +Hype +Hypebeast +Hyped +Hypeeee +Hyper +HyperFuryXII +HyperFuryXII's +Hyper_Warrior +Hyper_Warrior's +Hyperactive +Hyperallergic +Hyperbole +Hyperboles +Hyperbolic +Hyperbolical +Hyperbolized +Hyperborea +Hyperborean Conf. +Hyperborean Confederation +Hypercam +Hypercube +Hyperdeath +Hypergolic +Hyperinflated +Hyperinflation +Hyperion +Hyperlink +Hyperlinked +Hyperlinking +Hyperpartisan +Hyperspace +Hyperspeed +Hypertension +Hyperthinkfast +Hyperthreading +Hyperventilating +Hypervising +Hyperwar +Hypes +Hyphenated +Hyphens +Hyping +Hypixel +Hypno +Hypnosis +Hypnotic +Hypnotises +Hypnotism +Hypnotize +Hypnotized +Hypoallergenic +Hypocrisies +Hypocrisy +Hypocrite +Hypocrites +Hypocritical +Hypocritically +Hypotenuse +Hypothermia +Hypotheses +Hypothesis +Hypothetical +Hypothetically +Hypotheticals +Hyrule +Hysteria +Hysteric +Hysterical +Hysterically +Hysterics +Hytale +Hyundai +Hz +I +IAM_SHAMAN +IAM_SHAMAN's +IAmASimpleBastard +IAmASimpleBastard's +IAmComrade +IAmComrade's +IKEA +IKEA FRIDGE +IKEA FRIDGE's +IKEA_FRIDGE +IKEA_FRIDGE's +IMC +INFJ +INFP +INTJ +INTP +INightLightDX +INightLightDX's +IRA +ISFJ +ISFP +ISTJ +ISTP +IamTopHat +IamTopHat's +Iamablackwolf +Iamcosbyb +Iamcosbyb's +Iamverysmart +Ian +IanVII +IanVII's +Ibagi +Iberian +Iberians +IbisMan +IbisMan's +Iblocks +Ibrahim +Ibuprofen +Ic +Icannot +Icarly +Icarus +Icbm +Icbms +Ice +Ice otter +Ice otter's +IceBoy Board +IceBoy Board's +IceBoy_Board +IceBoy_Board's +IceBoy_Pingu +IceBoy_Pingu's +IceCarim +IceCarim's +IceKeeper +IceKeeper's +Ice__Cubes__ +Ice__Cubes__'s +Ice_otter +Ice_otter's +Iceberg +Icebergs +Icebox +Icecream +Iced +Icefarms +Iceheart +Iceland +Icelanders +Icelandic +Iceless +Icenia +Icenian +Icenians +Iceniapilled +Iceniar +Icenias +Icenier +Icepick +Iceroad +Iceroads +Icetown +Iceville +IceySphere +IceySphere's +Ich +Ichinokawa +Icky +Icon +Iconic +Iconography +Icons +Ict +Icypenguin79 +Icypenguin79's +Icyski +Icyski's +Id +Idaho +Idan072 +Idan072's +Idc +Idea +Ideal +Idealism +Idealist +Idealistic +Idealists +Idealized +Ideally +Ideals +Idealy +Ideas +Ideation +Ideations +Identical +Identically +Identifiable +Identification +Identified +Identifier +Identifiers +Identifies +Identify +Identifying +Identities +Identity +Ideological +Ideologically +Ideologies +Ideology +Idevice +Idfk +Idgaf +Ididnottakeyourprot +Idiocracy +Idiocy +Idiodically +Idiom +Idioma +Idiomatic +Idioms +Idiosyncrasies +Idiosyncrasy +Idiot +Idiotbox +Idiotic +Idiotically +Idiots +Idk +Idle +Idled +Idleness +Idles +Idling +Idly +Idol +Idolatry +Idolised +Idolized +Idols +Idont +Idris +Ids +Idyllic +Ieatmykidz773 +Ieatmykidz773's +If +Ifc +Ifmatches +Ifs +Ifunny +Igloo +Igloos +IgnIcy +IgnIcy's +Ignite +Ignited +Ignites +Igniting +Ignition +Ignorance +Ignorant +Ignore +Ignored +Ignoreing +Ignorent +Ignores +Ignoring +Igotyou +Igotyous +Ihave +Ihazgingerpowers +Ihazgingerpowers's +Ihop +Iike +Iit +Iiterally +Ik +Ikill +Ikki-ikki-ikki-ptang +Ikr +Ila'Kyavul +Ile +Ile de la Réunion +Iliketraps +Ilk +Ill +Illage +Illboi +Illegal +Illegality +Illegalization +Illegally +Illegals +Illegible +Illest +Illicit +Illicitly +Illict +Illiteracy +Illiterate +Illiterates +Illithid +Illithid's +Illness +Illnesses +Illogical +Illogically +Illumina +Illuminate +Illuminati +Illuminating +Illumination +Illusion +Illusions +Illusive +Illustrated +Illustrates +Illustrating +Illustration +Illustrations +Illustrative +Illustrator +Illustrious +Illville +Illyrian +Illyrians +Ilona +Iloovepuppies +Ilovemaxopoly +Ilovepuppys +Image +Imageboard +Imageboards +Imagecache +Imagery +Images +Imaginable +Imagination +Imaginations +Imaginative +Imagine +Imagined +Imagines +Imani +Imature +Imbalance +Imbalanced +Imbalances +Imbecile +Imbeciles +Imbued +Imfamous +Imgur +Imic +Imic's +Imissyoubb +Imitate +Imitating +Imitation +Imitations +Imitative +Imitator +Imitators +Immaculate +Immanuel +Immasculated +Immaterial +Immature +Immaturity +Immeasurable +Immeasurably +Immediate +Immediately +Immediatly +Immedietally +Immersive +Immesurable +Immigrant +Immigrants +Immigrate +Immigrated +Immigrating +Immigration +Imminent +Imminently +Immitate +Immitating +Immobile +Immobility +Immobilized +Immodest +Immoral +Immorality +Immorally +Immortal +Immortalised +Immortality +Immortalize +Immortalized +Immovable +Immune +Immunity +Immutable +Imogen +Imp +Imp. Fed. of Eddie Murphy +Impact +Impacted +Impactful +Impactic +Impactic's +Impacting +Impacts +Impair +Impaired +Impairing +Impala +Impale +Impaled +Impart +Imparted +Impartial +Impartiality +Impartially +Imparting +Impassable +Impasse +Imperator +ImperatorMendes +ImperatorMendes's +Imperatormendes +Imperfect +Imperfection +Imperial +Imperial Federation +Imperial Truidence +ImperialRex +ImperialRex's +Implementation +Implementations +Implemented +Implementing +Implements +Implented +Implicate +Implicated +Implicates +Implicating +Implication +Implications +Implicative +Implicit +Implicitly +Implicitness +Implied +Implies +Implode +Imploded +Imploding +Implore +Imploring +Implosion +Imply +Implying +Impolite +Impolitely +Impoliteness +Import +Importance +Important +Importantly +Importation +Imported +Importer +Importers +Importing +Imports +Impose +Imposed +Imposing +Impossibility +Impossible +Imposter +Imposters +Impostor +Impotence +Impotent +Impounded +Impoverished +Impoverishment +Impractical +Impractically +Impregnable +Impregnate +Impress +Impressed +Impresses +Impressing +Impression +Impressionable +Impressionist +Impressionists +Impressions +Impressive +Impressively +Imprint +Imprinted +Imprison +Imprisoned +Imprisoner +Imprisoners +Imprisoning +Imprisonment +Improbable +Improve +Improved +Improved Katana +Improvement +Improvements +Improves +Improving +Improvise +Improvised +Imprudent +Impulca +Impulca's +Impulse +Impulses +Impulsive +Impulsively +Impulsiveness +Impulsivity +Impunity +Impure +Impurity +Imputation +In +In On It +In7ac7 +In7ac7's +Inability +Inaccessible +Inaccuracies +Inaccuracy +Inaccurate +Inaccurately +Inaction +Inactions +Inactive +Inactivity +Inactve +Inacurate +Inadequacies +Inadmissable +Inadvertantly +Inadvertent +Inadvertently +Inadvisable +Inaguration +Inalienable +Inanimate +Inapplicable +Inappropriate +Inappropriately +Inarguably +Inattention +Inaudible +Inaugurate +Inauguration +Inbalance +Inbalances +Inbed +Inbefore +Inbetween +Inbetweeners +Inborn +Inbound +Inbox +Inboxed +Inboxes +Inbred +Inbreds +Inbreeding +Inbuilt +Inc +Incan +Incandescent +Incans +Incantation +Incapable +Incapacitate +Incapacitated +Incapacity +Incapasitates +Incarcerate +Incarcerated +Incarceration +Incarnate +Incarnation +Incase +Incased +Incedent +Incedental +Incel +Incendiary +Incense +Incentive +Incentives +Incentives's +Incentivise +Incentivised +Incentivising +Inception +Incessantly +Inch +Incharge +Inches +Inching +Incidence +Incident +Incidental +Incidentally +Incidents +Incinerator +Incision +Incite +Incited +Incitement +Inciters +Incites +Inciting +Inclination +Inclinations +Incline +Inclined +Include +Included +Includes +Including +Inclusinon +Inclusion +Inclusive +Inclusiveness +Incognito +Incoherence +Incoherent +Incoherently +Income +Incomes +Incoming +Incomparable +Incompatibilities +Incompatibility +Incompatible +Incompetence +Incompetency +Incompetend +Incompetent +Incompetently +Incompetents +Incomplete +Incompleteness +Incomprehensible +Incomprehension +Inconceivable +Inconceivably +Inconcequential +Inconclusive +Incongruity +Incongruous +Incongruousness +Inconsciencia +Inconsequential +Inconsiderate +Inconsistencies +Inconsistency +Inconsistent +Inconsistently +Inconsolable +Inconspicuous +Incontrovertible +Inconvenience +Inconvenienced +Inconveniences +Inconveniencing +Inconvenient +Inconveniently +Incoporating +Incorperates +Incorporate +Incorporated +Incorporates +Incorporating +Incorporation +Incorporeal +Incorrect +Incorrectly +Incorruptible +Increase +Increased +Increases +Increasing +Increasingly +Incredible +Incredibly +Incredulity +Incredulous +Incremental +Incrementally +Incrementing +Increments +Incriminate +Incriminates +Incriminating +Incrimination +Incubation +Incubator +Incubus +Incurable +Incurred +Incurring +Incursion +Incursions +Indebted +Indebtedness +Indecency +Indecent +Indeceny +Indecision +Indecisive +Indecisiveness +Indecline +Indeed +Indefatigable +Indefensible +Indefinately +Indefinatly +Indefinetly +Indefinite +Indefinitely +Indelicate +Indemnification +Indemnify +Indemnity +Indent +Indented +Indentical +Indentified +Indentured +Indepedence +Indepedent +Independance +Independant +Independantly +Independence +Independent +Independently +Indepth +Indescribable +Indescriminately +Indescript +Indestructable +Indestructible +Indeterminable +Indeterminate +Indeterminately +Indev +Index +Indexes +Indexing +India +Indian +Indiana +Indians +Indicate +Indicated +Indicates +Indicating +Indication +Indications +Indicative +Indicator +Indicators +Indict +Indictment +Indie +Indifference +Indifferent +Indigenous +Indignation +Indigo +Indirect +Indirection +Indirectly +Indiscreet +Indiscretions +Indiscriminate +Indiscriminately +Indispensable +Indisputable +Indisputably +Indistinguishable +Indite +Indited +Individual +Individualised +Individualism +Individualist +Individualistic +Individualists +Individuality +Individualized +Individually +Individuals +Indivisible +Indoctrinated +Indoctrinating +Indoctrination +Indolence +Indomitable +Indonesia +Indonesian +Indoor +Indoors +Indu +Induced +Inducement +Inducing +Induct +Inducted +Induction +Inductive +Indulge +Indulged +Indulging +Industrial +Industrial_barts +Industrial_barts's +Industrialisation +Industrialise +Industrialised +Industrialist +Industrialists +Industrialization +Industrialize +Industrialized +Industrializing +Industrially +Industries +Industry +Indy +Inebriated +Inebriation +Inedible +Ineffable +Ineffective +Ineffectual +Inefficiencies +Inefficiency +Inefficient +Inefficiently +Inelegant +Ineligible +Inept +Ineptitude +Ineptness +Inequalities +Inequality +Inert +Inertia +Ines +Inescapable +Inevitability +Inevitable +Inevitably +Inexcusable +Inexcusably +Inexistent +Inexpensive +Inexperience +Inexperienced +Inexpertly +Inexplicable +Inexplicably +Inextricable +Inextricably +Infa +Infact +Infactual +Infairness +Infallibility +Infallible +Infamous +Infamy +Infancy +Infant +Infantile +Infantryman +Infants +Infastructure +Infatuation +Infeasible +Infect +Infected +Infecting +Infection +Infections +Infectious +Infects +Infer +Inference +Inferior +Inferiority +Inferis +Inferno +Inferred +Inferring +Infertile +Infest +Infestation +Infestations +Infested +Infesting +Infidel +Infidelity +Infidels +Infighting +Infilitrate +Infill +Infiltrate +Infiltrated +Infiltraters +Infiltrates +Infiltrating +Infiltration +Infiltrations +Infiltrator +Infiltrators +Infinite +Infinitely +Infinitesimal +Infinitive +Infinitum +Infinity +Infinity gauntlet +Infirm +Infirmity +Inflame +Inflamed +Inflames +Inflaming +Inflammable +Inflammation +Inflammatory +Inflatable +Inflate +Inflated +Inflating +Inflation +Inflationary +Inflected +Inflection +Inflexibility +Inflexible +Inflexibly +Inflict +Inflicted +Inflicting +Influencable +Influence +Influenced +Influencer +Influences +Influencial +Influencing +Influential +Influenza +Influx +Influxes +Info +Infobox +Infodump +Infograph +Infographic +Infographics +Infographs +Inforce +Inforced +Inform +Informal +Informally +Informant +Information +Informational +Informative +Informed +Informer +Informing +Informs +Informtaion +Infosec +Infowars +Infp +Infra +Infra's +Infra_ +Infra_'s +Infraction +Infractions +Infrastructural +Infrastructure +Infrastructures +Infrastucture +Infrequent +Infrequently +Infringe +Infringed +Infringement +Infringements +Infringes +Infringing +Infringment +Infront +Infuriate +Infuriated +Infuriating +Infuse +Infused +Infusion +Ingame +Ingathering +Ingenious +Ingenuine +Ingenuity +Ingest +Inglorious +Ingot +Ingots +Ingrained +Ingram +Ingratiate +Ingreats +Ingredient +Ingredients +Inhabit +Inhabitable +Inhabitant +Inhabitants +Inhabited +Inhabiting +Inhabits +Inhale +Inhales +Inherent +Inherently +Inherit +Inheritable +Inheritance +Inheritances +Inherited +Inheriting +Inherits +Inhibit +Inhibited +Inhibiting +Inhibition +Inhibitor +Inhibits +Inhospitable +Inhouse +Inhuman +Inhumane +Inhumanely +Init +Inital +Initally +Initial +Initialise +Initialism +Initialization +Initialized +Initializing +Initially +Initials +Initiate +Initiated +Initiates +Initiating +Initiation +Initiations +Initiative +Initiatives +Inject +Injected +Injecting +Injection +Injure +Injured +Injuries +Injury +Injust +Injustice +Injustices +Ink +Inked +Inking +Inkjet +Inkling +Inkognious +Inkognious's +Inks +Inksacs +Inkscape +Inkstand +Inlaid +Inland +Inlaw +Inless +Inlet +Inlove +Inmate +Inmates +Innaccurate +Innactive +Innacuracies +Innacurate +Innate +Innately +Inner +Innermost +Innings +Innit +Innkeeper +Innocence +Innocent +Innocently +Innocents +Innoculating +Innocuous +Innocuously +Innovate +Innovated +Innovating +Innovation +Innovations +Innovative +Inns +Innuendo +Innuendos +Innumerable +Inoculation +Inoffensive +Inofficial +Inopportune +Inorder +Inordinate +Inorganic +Inpact +Inprisoned +Input +Inputs +Inputted +Inquire +Inquired +Inquirer +Inquiries +Inquiring +Inquiry +Inquisidora +Inquisition +Inquisitive +Inquisitively +Inquisitiveness +Inquisitor +Inquisitorial +Inquistition +Inreality +Inroads +Ins +Insane +Insanely +Insanity +Insatiable +Inscribe +Inscribed +Inscription +Inscriptions +Inscrutable +Insect +Insects +Insecure +Insecurely +Insecurities +Insecurity +Insensitive +Insentive +Inseperable +Insert +Inserted +Inserting +Insertion +Insertions +Inserts +Inset +Inshallah +Inside +Insided +Insider +Insiders +Insides +Insiding +Insidious +Insidiously +Insight +Insightful +Insights +Insignia +Insignificance +Insignificant +Insincere +Insincerity +Insinuate +Insinuates +Insinuating +Insinuation +Insinuations +Insipid +Insist +Insisted +Insistence +Insistent +Insisting +Insofar +Insolance +Insolence +Insolent +Insoluble +Insolvency +Insolvent +Insomnia +Insomuch +Inspect +Inspected +Inspecting +Inspection +Inspections +Inspector +Inspectorbellend +Inspectors +Inspiration +Inspirational +Inspirations +Inspire +Inspired +Inspires +Inspiring +Insta +Instabanned +Instability +Instabreak +Instabreaking +Instadamage +Instagram +Instagrams +Instakill +Instakilled +Instakills +Install +Installable +Installation +Installations +Installed +Installer +Installers +Installing +Installment +Installments +Installs +Instance +Instanced +Instances +Instancing +Instant +Instantaneous +Instantaneously +Instantiated +Instantly +Instapop +Instead +Instigate +Instigated +Instigating +Instigation +Instigator +Instigators +Instigatory +Instill +Instilled +Instills +Instinct +Instinctively +Instincts +Instinctual +Instinctually +Institute +Instituted +Institutes +Instituting +Institution +Institutional +Institutionalized +Institutionally +Institutions +Instruct +Instructed +Instructing +Instruction +Instructional +Instructions +Instructor +Instructors +Instrument +Instrumental +Instrumentality +Instrumentalizing +Instrumentation +Instruments +Insubordination +Insufferable +Insufferably +Insufficient +Insular +Insulate +Insulated +Insulating +Insulation +Insulator +Insulin +Insult +Insulted +Insulting +Insultingly +Insults +Insurance +Insure +Insured +Insurence +Insurgencies +Insurgency +Insurgent +Insurgents +Insurmountable +Insurrection +Intact +Intake +Intakes +Intangible +Integer +Integers +Integral +Integrally +Integrals +Integrate +Integrated +Integrates +Integrating +Integration +Integrations +Integrative +Integrista +Integrity +Intel +Intelectual +Intelectually +Intellect +Intellectual +Intellectualhobo +Intellectually +Intellectuals +Intelligence +Intelligencia +Intelligent +Intelligently +Intelligentsia +Intelligible +Intels +Intend +Intended +Intending +Intends +Intened +Intense +Intensely +Intensified +Intensify +Intensifying +Intensity +Intensive +Intensively +Intent +Intention +Intentional +Intentionality +Intentionally +Intentioned +Intentions +Intently +Intents +Inter +Interact +Interacted +Interacting +Interaction +Interactions +Interactive +Interactively +Interacts +Intercede +Intercept +Intercepted +Intercepting +Interceptors +Interchange +Interchangeability +Interchangeable +Interchangeably +Interchanged +Intercity +Interconnected +Interconnectedness +Interconnection +Interconnects +Intercontinental +Intercourse +Interdasted +Interdependence +Interdependent +Interdict +Interdiscourse +Interdiscursive +Interduction +Interem +Interest +Interested +Interesting +Interestingly +Interestingness +Interests +Interface +Interfaces +Interfacing +Interfere +Interfered +Interference +Interfering +Interfixed +Intergovernmental +Intergraded +Interior +Interiors +Interject +Interjection +Interjections +Interjects +Interlinked +Interlocking +Interloper +Interlopers +Interlude +Intermarry +Intermatic +Intermediary +Intermediate +Intermission +Intermittent +Intermittently +Intermixture +Intern +Internal +Internalised +Internalized +Internally +Internals +International +Internationalism +Internationalist +Internationally +Internationals +Internet +Internets +Internment +Internship +Internships +Interogating +Interoperability +Interpersonal +Interplay +Interpol +Interpolate +Interpolation +Interpose +Interposition +Interpret +Interpretable +Interpretation +Interpretations +Interpreted +Interpreter +Interpreters +Interpreting +Interprets +Interracial +Interrelated +Interrogate +Interrogated +Interrogation +Interrogations +Interrupt +Interrupted +Interrupting +Interruption +Interrupts +Intersect +Intersected +Intersecting +Intersection +Intersections +Intersects +Intersperse +Interspersed +Interstate +Interstates +Interstellar +Intertwined +Interval +Intervals +Intervene +Intervened +Intervenes +Intervening +Intervention +Interventionalist +Interventionism +Interventionist +Interventionists +Interventions +Interview +Interviewed +Interviewee +Interviewees +Interviewer +Interviewing +Interviews +Interwar +Interwebs +Interwoven +Intested +Intestine +Intestines +Intfolder +Inthe +Intimate +Intimately +Intimidate +Intimidated +Intimidating +Intimidation +Into +Intoday +Intolerable +Intolerance +Intolerant +Intolerantly +Intoxicate +Intoxicated +Intoxicating +Intoxication +Intp +Intra +Intranet +Intrapost +Intrapostal +Intrepid +Intrepidity +Intrest +Intrested +Intresting +Intricacies +Intricate +Intricately +Intrigue +Intrigued +Intrigues +Intriguing +Intriguista +Intrinsic +Intrinsically +Intro +Introduce +Introduced +Introduces +Introducing +Introduction +Introductions +Introductory +Intros +Introspect +Introspection +Introspective +Introvert +Introverted +Introverts +Intrude +Intruded +Intruder +Intruders +Intruding +Intrusion +Intrusions +Intrusive +Intrust +Intuit +Intuition +Intuitionism +Intuitions +Intuitive +Intuitively +Inturn +Inundated +Inundating +Inundation +Inv +Invade +Invaded +Invader +Invader's +Invader1337 +Invader1337's +Invaders +Invades +Invadin +Invading +Invalid +Invalidate +Invalidated +Invalidates +Invalidating +Invalidation +Invaluable +Invalue +Invariable +Invariably +Invariant +Invasion +Invasions +Invasive +Invastion +Invastions +Invent +Invented +Inventing +Invention +Inventions +Inventive +Inventiveness +Inventives +Inventor +Inventoried +Inventories +Inventors +Inventory +Inventorytweaks +Invents +Inverse +InverseAtom +InverseAtom's +Inversely +Inversion +Invert +Inverted +InvertedMind +InvertedMind's +Invest +Invested +Investement +Investigate +Investigated +Investigating +Investigation +Investigations +Investigative +Investigator +Investigators +Investing +Investment +Investments +Investor +Investors +Invests +Inviable +Invictus +Invigorate +Invincibility +Invincible +Inviolate +Invis +Invisibility +Invisibilty +Invisible +Invisibly +Invision +Invitation +Invitations +Invite +Invited +Invitement +Invites +Inviting +Invocation +Invoice +Invoke +Invoked +Invoking +Involuntarily +Involuntary +Involve +Involved +Involvement +Involves +Involving +Invulnerability +Invulnerable +Inward +Inwardly +Inwards +Iodine +Iodine +Iominious +Iominous +Ion +Ionia +Ionian +Ionizes +Ions +Iopa +Iota +Iowa +Ip +Ipad +Ipconfig +Ipeni Collective +Iphone +Iphones +Iphthīme +Ipod +Ips +Ipsum +Iq +Iqs +Ira +Iran +Iranian +Iraq +Iraqi +Iraqis +Irate +Ire +Ireland +Irene +Irethorn +Iria +Irian +Irians +Irias +Iridescent +Iridian +Iridians +Iris +Irish +Irishman +Irishmen +Iritating +Iritations +Irk +Irked +Irkhah +Irking +Irks +Irksome +Irl +Iro +Iron +Iron Piercer +Ironbark Launcher +Ironbark Warp-Bow +Ironclad +Ironed +Ironfist +Ironforge +Irongrad +Ironic +Ironically +Ironing +Ironman +Ironmike +Irons +Ironscale +Ironscale's +Ironside +Ironwares +Irony +Irrational +Irrationality +Irrationally +Irreconcilable +Irredeemable +Irrefutable +Irrefutably +Irregardless +Irregular +Irregularity +Irrelevance +Irrelevancy +Irrelevant +Irrelevants +Irreligious +Irrepairably +Irreparable +Irreparably +Irreplaceable +Irresistible +Irresistibly +Irresolute +Irrespective +Irresponsibility +Irresponsible +Irresponsibly +Irrevelant +Irreverent +Irreversable +Irreversible +Irrevocable +Irrevocably +Irrigate +Irrigated +Irrigation +Irritable +Irritant +Irritants +Irritate +Irritated +Irritates +Irritating +Irritatingly +Irritation +Irruption +Irs +Irtsu +Irwin +Is +Isa +Isaac +Isaac's +Isabella +Isabelle +Isadora +Isahelle +Isahelle's +Iseenya +Isengard +Isha +Ishaan +Ishmael +Isla +Islam +Islamic +Islamic Caliphate +Islamist +Islamists +Island +Island's +Islanders +Islands +Islas Malvinas +Isle +Isles +Isnt +Isolate +Isolated +Isolated Sword +Isolates +Isolating +Isolation +Isolationism +Isolationist +Isolationists +Isometric +Israel +Issue +Issued +Issuer +Issues +Issuing +Isuc6223 +Isuc6223's +Italia +Italian +Italiano +Italians +Italic +Italics +Itallian +Italy +Item +Itemcreation +Itemexchange +Itemmap +Items +Itemstack +Itemstacks +Iterate +Iterated +Iterates +Iteration +Iterations +Iterative +Itinerary +Its +Itself +Itteration +Itunes +Ityop'iya +ItzHoover +ItzHoover's +ItzJoshs +ItzJoshs's +ItzLeTurtle +ItzLeTurtle's +Iusethisforevil +Iusethisforgood +Iva +Ivan +Ivana +Ivanka +Ivay +Ive +Iver +Ivory +Ivory Coast +Ivy +Izegul +Izegul's +Izodaern +J +JAW689 +JAW689's +JJTheking_ +JJTheking_'s +JPEGz +JPEGz's +JP_0309 +JP_0309's +JZygon +Ja +Jaar +Jab +Jabber +Jabbing +Jaboroni +Jabroadcast +Jabronis +Jabs +Jabuuti +Jace +Jack +Jackal +Jackals +Jackass +Jackassery +Jackasses +Jackboot +Jacked +Jacket +Jackets +Jackhammer +Jackie +Jackies +Jackpot +Jacks +Jackshit +Jackson +Jaclear +Jacob +Jacobellis +Jacobins +Jacobs +Jacqueline +Jactar +Jactar's +Jade +Jaded +Jadedjon +Jadedness +Jadeguards +Jaegerrr +Jaegerrr's +Jael +Jaffa +Jagged +JaggedTruther +JaggedTruther's +Jaguar +Jah +Jahcoin +Jahr +Jaiden +Jail +Jailbait +Jailbreak +Jailed +Jailer +Jailers +Jailing +Jailor +Jailtime +Jaime +Jaimiemie +Jaimiemie's +Jainfo +Jaja +Jajajajajaja +Jake +Jakemeister +Jakerabies +Jakerabies's +Jakob +Jakub_Tyrell +Jakub_Tyrell's +Jalen +Jalhf +Jalhf's +Jalist +Jamaica +Jamaican +Jamal +Jamala +Jamala's +Jamaline +James +JamesMas0n +JamesMas0n's +Jameson +JamesonIII +JamesonIII's +Jamhuri ya Muungano wa Tanzania +Jamie +Jammed +Jammer +Jamming +Jams +Jamute +Jan +Jana +Jane +Janet +Janice +Janitor +Janitors +Jank +Janked +Janky +January +Japan +Japanese +Japans +Jar +Jared +Jargon +Jarhead +Jarl +Jarl_Heisenberg +Jarl_Heisenberg's +Jarls +Jars +Jasiel +Jasmine +Jason +Jasonbord +Jasper +Jaunt +Jauntily +Jaunty +Java +Javadoc +Javadocs +Javaplugin +Javas +Javascript +Javascripts +Javelin +Javier +Jaw +Jawa +Jawas +Jawbone +Jawbreakers +Jawline +Jaws +Jax +Jax35 +Jax35's +Jaxon +Jay +JayTeeR +JayTeeR's +Jayce +Jayden +Jaydon +Jaydon's +Jaydon_ +Jaydon_'s +Jaydrive +Jaydrive's +Jayjayrex +Jayjayrex's +Jaylen +Jayms +Jayms's +Jaysus273 +Jaysus273's +Jaywalked +Jaywalking +Jazz +Jazzy +Jb +Jcor213 +Jcor213's +Jealous +Jealousies +Jealously +Jealousy +Jean +Jeanny +Jeans +Jeb +Jedi +JediBronco2112 +JediBronco2112's +Jedidiah +Jeebus +Jeeeeenkiiiiins +Jeepers +Jeeps +Jeet +Jeez +Jef +Jeff +Jefferson +Jefferson Confederacy +Jeffersons +Jeffrey +Jeffs +Jeffthebaker +Jehovah +Jehovahs +Jelly +Jellyfish +Jemima +Jenkins +Jenna +Jennifer +Jenny +Jensen +Jeopardize +Jeopardizes +Jeopardy +Jeremy +Jericho +Jerk +Jerked +Jerkface +Jerkin +Jerking +Jerkoff +Jerks +Jerky +Jerry +Jerry_of_Swords +Jerry_of_Swords's +Jersey +Jerusalem +Jerven1 +Jerven1's +Jesse +Jessica +Jessie +JessieJinx +JessieJinx's +Jest +Jester +Jesus +Jesus Saves Squareblob Shaves +Jet +Jetlag +Jetpacks +Jets +Jett +Jeweler +Jewelry +Jewels +JeyHey +JeyHey's +Jezza +Jezza's +Jfk +Jhill1 +Jhill1's +Jibberish +Jill +Jim +JimC0mey +JimC0mey's +Jimmy +JimmyBeans +JimmyBeans's +Jindosh +Jindosh's +Jingle +Jingles +Jingoism +Jingoist +Jingoistic +Jinx +JinxLinx11 +JinxLinx11's +Jinxed +Jisra'el +Jitter +Jitterclick +Jitterclickers +Jitterclicking +Jitterclicks +Jittering +Jitters +Joan +Joanna +Joaquin +Job +Jobless +Jobs +Jocelyn +Jock +Jockey +Jockeys +Jocks +Joe +Joel +JoelThaTroll +JoelThaTroll's +Joelle +Joes +Joey +Joffrey +Jog +Jogged +Jogger +Joggers +Joggin +Jogging +Johanna +Johannes +Johannesburg +John +JohnAbruzzzi +JohnAbruzzzi's +JohnCats +JohnCats's +JohnFairFax +JohnFairFax's +Johnny +Johns +Johnsmith +Johnson +Join +Joined +Joiner +Joining +Joins +Joint +Jointed +Jointly +Joints +Jojo +Jojos +Joke +Joked +Joker +Jokers +Jokes +Joking +Jokingly +Jolene +Jolington +Jolington's +Jolly +Jolt +Jolting +Jomsviking Confederation +Jon +Jonah +Jonas +Jonathan +Jones +Jonpachi +Jonpachi's +Jons +Jontron +JorboArosa +JorboArosa's +Jordan +Jordans +Jorvik +Josedgo +Josedgo's +Joseph +Josephine +Josh +JoshyUtah +JoshyUtah's +Josie +Jouneymap +Journal +Journalism +Journalist +Journalistic +Journalists +Journals +Journeying +Journeyman +Journeymap +Journeymaps +Joust +Jousting +Jovial +Joy +Joyance +Joyce +Joyful +Joyment +Joyously +Joys +Jozef_Franco +Jozef_Franco's +Json +Juan +Jubilant +Jubilation +Jubilee +Judah +Judas +Jude +Judea +Judge +Judged +Judgement +Judgemental +Judgements +Judges +Judging +Judgment +Judgmental +Judgments +Judicial +Judiciary +Judicious +Judiciously +Judo +Judy +Juffix +Juffix's +Jug +Juggernaut +Juggle +Juggling +Jugs +Juice +Juicer +Juicers +Juices +Juiciest +Juicy +Juicy_Watermel0n +Juicy_Watermel0n's +Juke +Jukealert +Jukealerts +Jukebox +Jukeboxes +Juked +Jukes +Jule +Juli +Julia +Julian +Juliana +Julianna +Juliet +Juliette +Julius +July +Jumble +Jumbled +Jumbo +Jump +Jumpcrits +Jumped +Jumper +Jumpers +Jumping +Jumps +Jumpstart +Jumpsuit +Jumpy +Jumpysnake +Junction +Junctions +Juncture +June +Jungle +Jungles +Junior +JuniorTide +JuniorTide's +Juniper +Junk +Junkies +Junkprot +Junkyard +Juno +Juntiction +Jupiter +Jurassic +Jurisdiction +Jurisdictional +Jurisdictions +Jurist +Juristiction +Jurists +Jury +Just +JustQueeck +JustQueeck's +Just_Matter +Just_Matter's +Justice +Justices +Justifiable +Justifiably +Justification +Justifications +Justified +Justifier, Broadsword of Oblivion +Justififed +Justify +Justifying +Justin +Juvenile +Jyn +Jyn's +K +K0mmi +K0mmi's +KALLOSKALLOSKALLOS +KDRis0 +KDRis0's +KMacbeth +KMacbeth's +KR0NNER +KR0NNER's +KUJAJOR +KUJAJOR's +K_Geptun350 +K_Geptun350's +KaRawr +Kaaaaaaarrl +Kaboom +Kabul +Kade +Kaden +Kafka +Kafkacraft +Kafkaesque +Kaga +Kagain +Kahlua +Kai +Kaia +Kaicraft +Kaiden +Kaierinreich +Kailani +Kaira +Kairserreich +Kaiser +Kaiserbot +Kaiseren +Kaiserreich +Kaiserriech +Kaiserrin +Kaisserreich +Kaj +Kakadooky +Kakadooky's +Kakara +Kalaallit Nunaat +Kalani +Kalashnikov +Kaleb +Kaleidoscope +Kalevanmiekka +Kali +Kaliningrad +Kalipso +Kallopolis +Kallopolis' +Kallos +Kallos' +Kallosian +Kallosians +Kallumbia +Kallumbia's +Kallumbian +Kallumbians +Kaltsburg +Kaltsburgers +Kaltsburgian +Kaltzburg +Kama +Kampf +Kampuchea +Kamradt +Kan +Kanada +Kanagawa +Kane +KaneDrakon +KaneDrakon's +Kangaroo +Kangaroos +Kangdom +Kant +Kapital +Kapitalist +Kapitan +Kappa +Kaprediem +Kaprediem's +Kapt +Kara +Karadzic +Karadzic's +Karaoke +Karina +Karl +Karma +Karmacontrol +Karsnautr +Kart +Karting +Kashev +Kashev's +Kashmir +KasiCrafter +KasiCrafter's +Kaspersky +Kat +Katana +Katar +Kate +Katelyn +Katharine +Katherine +Kathleen +Kathmandu +Kathy +Katie +Katrina +Kattegat +Katy +Katyusha +Kavacha +Kavinsky +Kawaii +KawaiiPirateCat +KawaiiPirateCat's +Kay +Kaya +Kayden +Kayla +Kaylee +Kayleigh +KazKraft20 +KazKraft20's +Kazakhstan +Kazoo +Kazper +Kb +Kdeeks +Kdeeks's +Keanu +Keaper +Kebab +Kebabs +Kedavra +Kee04 +Kee04's +Keegan +Keel +Keeled +Keemstar +Keen +Keenly +Keep +Keeper +Keeperofgrapes +Keepers +Keepfigpearled +Keepin +Keeping +Keeps +Kefir +Keg +Kegs +Keira +Keith +Kek +Kekism +Kelly +Kelo +Kelp +Kelvin +Ken +Kenclarkson +Kendall +Kendrick +Kenji +Kenkaiye7666 +Kenkaiye7666's +Kennedy +Kennel +Kennels +Kenny +Kenobi +Kenosha +Kent +Kentucky +Kenya +Kenya_Not +Kenya_Not's +Kenzie +Kept +Kerbal +Kerbin +Kerchief +Kernal +Kernel +Kernels +Kerosene +Kerry +Ketamine +Ketch +Ketchup +Kettle +Keuradeurva +Keuradeurva's +Kevin +Kewl +Key +Keybard +Keybind +Keybinding +Keybindings +Keybinds +Keyboard +Keyboards +Keybokrd +Keybrod +Keycards +Keydown +Keyframes +Keyholders +Keyhole +Keylog +Keylogger +Keyloggers +Keylogging +Keymaster +Keynesian +Keynote +Keys +Keystone +Keystrokes +Keyword +Keywords +Keziah +Kfc +Kgb +Khadijah +Khaganate +Khaki +Khalkholm +Khan +Khanacademy +Khanate +Khardbass +Khardbass +Khardbass 's +Khardbass's +Khetaka +Khione +Ki +Kia +Kian +Kiana +Kibble +KibblesTheBoss +KibblesTheBoss's +Kibris +Kick +Kickban +Kickbanned +Kicked +Kicker +Kickflip +Kickin +Kicking +Kicks +Kickstart +Kickstarter +Kickstarters +Kicky +Kicky's +Kid +Kidd +Kiddieland +Kidding +Kiddo +Kiddos +Kidnaaped +Kidnap +Kidnapped +Kidnapper +Kidnappers +Kidnapping +Kidney +Kidneys +Kids +Kiera +Kieran +Kiev +Kilfordshire +Kill +Killable +Killalltrolls +Killaura +Killauraing +Killauras +Killbots +Killcraft +Killed +Killedd +Killer +Killian +Killin +Killing +Killingly +Killings +Killjoy +Killmanator +Killmanator's +Kills +Killscreen +Killshot +Killstreak +Killtraps +Kilns +Kilobytes +Kilograms +Kilometer +Kilometers +Kilometres +Kilos +Kilt +Kim +Kimberly +Kimono +Kin +Kind +Kinda +Kinder +Kindergarden +Kindest +Kindle +Kindly +Kindness +Kindof +Kindread Clan +Kindread Clan +Kinds +Kinect Adventures +Kinetic +King +King Of Nox +KingHertug +KingHertug's +KingOfTheMochas +KingOfTheMochas's +KingServal +KingServal's +King_Cupar +King_Cupar's +King_of_Lion2000 +King_of_Lion2000's +Kingdom +Kingdom of Dolphin +Kingdom of ErrorL +Kingdom of Fish +Kingdom of Savaguard +Kingdom of Zack +Kingdom of the Acadian Lewis Islands +Kingdoms +Kingly +Kingmaker +Kingofmacs +Kingofmacs's +Kings +Kingship +Kingsman +Kingstell +Kingstell's +Kingston +Kingswood +Kink +Kinks +Kinky +Kinkysaurus +Kinnoin +Kinnoin's +Kinship +Kinslayer +Kinsley +Kinsmen +Kinswoman +Kippers +Kira +Kiran +Kirby +Kirchner +Kiribati +Kirk +Kirto +Kiss +Kissed +Kisser +Kisses +Kissing +Kissinger +Kit +Kitchen +Kite +Kited +Kites +Kiting +Kits +Kitted +KittehisMEOW +KittehisMEOW's +Kitten +Kittens +Kittie +Kitties +Kitty +Kitty4fun +Kitty4fun's +KittyWulffie +KittyWulffie's +Kiwi +KiwiGamer +KiwiGamer's +Kladenets +Klari +Klari's +Klasikrok +Klasikrok's +Klein +Kleptomaniac +Klinge, Sabre of the Plague +Klondike +Kloudei +Kloudei's +Knack +Knave +Knaves +Knead +Knee +Kneel +Kneeled +Knees +Knell +Knew +Knife +Knifes +Knight +Knighted +Knighthood +Knighthoods +Knighting +Knightly +Knights +Knights Templar +Knights of Lawton +Knightship +KnightyBoi +KnightyBoi's +Knit +Knitted +Knitting +Knives +Knob +Knock +Knockback +Knocked +Knocking +Knockoff +Knockout +Knocks +Knoll +Knot +KnotNSA +KnotNSA's +Knots +Know +Knowable +Knowing +Knowingly +Knowledgable +Knowledge +Knowledgeable +Knowledgestorm +Knowlege +Known +Knownly +Knows +Knuckle +Knuckles +Koala +Koko +Kokopolis +Komori +Kong +Konigsberg +Koningsberg +Koolaid +Koopa +Kora +Koralie13 +Koralie13's +Koraljoz +Koraljoz's +Korea +Korean +Koreans +Korra +Korrolat +Korrolat's +Korvenov +Korvenov's +Kosher +Kosova +Kosovo +Kosovë +Kowloon +Kraken +Krautland +Kremlin +Krill +Kris +Krishna +Kriskrispie +Krislyz +Krislyz's +Krispy +Kristen +Kristin +Kritarchy +Krodonia +KronosViikk +KronosViikk's +Krooger +Krowatia +Kruger +Krugman +Krusty +Kryapolis +Krydor +Krypt +Krypticly +Krypticly's +Kuanoni +Kuanoni's +Kudos +Kunfury +Kunfury's +Kuntucky Frued Chucken +Kurosawa +Kurozael +Kurt +Kuwait +Kweijan +Kwengin +Kwengin's +Kwikxilver +Kwikxilver's +Kyanroja +Kye +Kyiv +Kyle +KyleRittenhouse +KyleRittenhouse's +Kyler +Kylie +KyloOfRen +KyloOfRen's +Kyra +Kyrapolis +Kyrgysstan +Kyrgyzstan +Kyrie +Küchenzeile +Külmkapp +Kū +Kūki 'Āirani +L +L.I.Z. +LIQUID STEREO +LIQUID STEREO's +LIQUIDSTEREO +LIQUIDSTEREO's +LLE2 +LLE2's +LPODPDRoD +LPTSO +LPTSO's +Laaaame +Lab +Label +Labeling +Labelled +Labelling +Labels +Labigcheese +Lable +Labled +Labor +Laboratories +Laboratorista +Laboratory +Laborer +Laborers +Laboring +Laborious +Laboriously +Laborista +Labors +Labour +Labourer +Labouring +Labrador +Labratory +Labrynth +Labs +Labyrinth +Lace +Laced +Lacey +Lachlan +Lack +Lacked +Lackey +Lackeys +Lacking +Lackluster +Lacks +Laconia +Laconian +Laconians +Laconias +Lactate +Lactose +Lad +Ladded +Ladder +Ladders +Laddie +Laddies +Laddy +Lade +Laden +Ladened +Lader +Ladezkik +Ladezkik +Ladezkik 's +Ladezkik's +Ladies +Lading +Ladlad +Ladladlad +Ladle +Ladmin +Ladmins +Lads +Lady +LadyKat +LadyKat's +LadyKat_00 +LadyKat_00's +Ladyboys +Ladykat +Ladykiller +Ladylike +Laffin +Lag +Lagfest +Lagg +Lagged +Laggers +Laggier +Laggiest +Lagging +Laggy +Lagi +Lagiacrus +Lagiacrus's +Lagiacrus11 +Lagiacrus11's +Lagoon +Lagwise +Laid +Laidback +Laila +Laily +Lailys +Lainey +Lair +Lairs +Lake +Lakeheart +Lakes +Lakeside +Lakota +Lala +Lama +Lamb +Lambach +Lambasted +Lambasting +Lambat +Lambda +Lambent +Lambert +Lambofreke +Lambofreke's +Lamborghini +Lambs +Lame +Lameeeeeeeeeeeeee +Lamely +Lameness +Lament +Lament, Whisper of Faded Memories +Lamentable +Lamentably +Lamentation +Lamentations +Lamented +Lamenting +Lamest +Laminated +Lamp +Lamplight +Lampooned +Lamps +Lan +Lana +Lancashire +Lancaster +Lance +Lancet +Land +Landa +Landclaim +Landclaims +Landed +Landfall +Landfills +Landform +Landforms +Landgrab +Landholders +Landing +Landings +Landlady +Landless +Landline +Landlocked +Landlord +Landlords +Landlubber +Landlubbers +Landmark +Landmarks +Landmass +Landmasses +Landmine +Landmines +Landon +Landowner +Landowners +Lands +Landscape +Landscapes +Landscaping +Landslide +Landspace +Lane +Lanes +Lang +Langly +Language +Languages +Languish +Lanky +Lanmates +Lanni +Lanni's +Lannister +Lannisters +LannyJay +LannyJay's +Lantarial +Lantariel +Lantern +Lanterns +Lao +Lap +Lapdance +Lapdog +Lapel +Lapis +Lapiz +Laplace +Lapland +Lapped +Lapping +Lappy +Laps +Lapse +Lapsed +Lapsedsley +Lapsing +Laptop +Laptops +Lara +Larceny +Lard +Large +Largely +Largeness +Larger +Largescale +Largest +Largestgeek +Lark +Larp +Larped +Larper +Larpers +Larping +Larry +Lars +Larva +Las Royals +Lasady +Lasady's +Lasagna +Laser +Laserlevel +Lasers +Lash +Lashed +Lashes +Lashing +Lasopena +Lass +Lassie +Lasso +Last +Lasted +Lastest +Lasting +Lastly +Lastnight +Lastpass +Lastupdated +Latch +Latched +Latches +Latching +Late +Lategame +Lately +Latency +Lateness +Latent +Later +Lateral +Laters +Latest +Latex +Latexbotinfo +Lather +Lathering +Latin +Latina +Latinas +Latinista +Latinized +Latino +Latinos +Latitude +Latitudes +Lativa +Latter +Lattice +Latticed +Latvia +Latvian +Latvians +Latvija +Lau +Laud +Laudable +Lauded +Lauder +Lauderdale +Laudermilk +Laufen +Laugh +Laughable +Laughably +Laughed +Laughing +Laughingly +Laughingstock +Laughs +Laughter +Laughts +Launch +Launched +Launcher +Launchers +Launches +Launching +Launder +Laundered +Laundering +Laundress +Laundry +Laura +Laurel +Laurels +Lauren +Laurent +Laurentia +Lav +Lava +Lavabomb +Lavabombed +Lavabombing +Lavad +Lavander +Lavaslime +Lavender +Lavish +Lavishly +Law +Lawbreaker +Lawbreaking +Lawfare +Lawful +Lawfully +Lawgiver +Lawless +Lawlessness +Lawmakers +Lawman +Lawn +Lawnmower +Lawrence +Laws +Lawsuit +Lawsuits +Lawyer +Lawyerimg +Lawyering +Lawyers +Lawzzz +Lax +Laxative +Lay +Layed +Layer +Layered +Layering +Layers +Layin +Laying +Layla +Layman +Laymans +Laymen +Layout +Layouts +Layovers +Lays +Lazarus +Lazer +LazersMyName +LazersMyName's +Lazersmoke +Lazersmokes +Laziest +Lazily +Laziness +Lazuli +Lazuli Lake District +LazuliTower +Lazy +Le_Brine +Le_Brine's +Lea +Leach +Leachy +Lead +Leaded +Leader +Leaderboard +Leaderless +Leaders +Leadership +Leading +Leads +Leadup +Leaf +Leafblower +Leafburner +Leafland +Leaflet +Leaflets +Leafs +Leage +Leage of legends +League +Leagueoflegends +Leagues +Leah +Leak +Leakage +Leaked +Leaker +Leakers +Leaking +Leaks +Leaky +Lean +Leaned +Leaner +Leaning +Leanings +Leans +Leap +Leaped +Leaping +Leaps +Leapt +Learn +Learned +Learner +Learners +Learning +Learns +Learnt +Lease +Leased +Leaseholder +Leases +Leash +Leashes +Leasing +Least +Least-Adjusted-New-Jerseyian +Leather +Leathers +Leathery +Leave +Leaveleave +Leavemealone +Leaves +Leaving +LeavingsLechh +Lebanon +Lechh +Lechh's +Lecoolpvp +Lecter +Lecterns +Lector +Lecture +Lecturer +Lectures +Lecturing +Lecturn +Lectus +Led +Ledge +Ledger +Ledges +Lee +Leech +Leeches +Leeching +Leeds +Leeeeean +Leery +Leeway +Left +Leftclick +Leftclicked +Leftclickers +Lefted +Leftie +Lefties +Leftism +Leftist +Leftists +Leftmost +Leftover +Leftovers +Leftwing +Lefty +Leg +Legacy +Legal +Legalese +Legalise +Legalised +Legalism +Legalist +Legalista +Legalistic +Legalities +Legality +LegalityX +LegalityX's +Legalitys +Legalize +Legalized +Legalizing +Legend +Legendary +Legends +Legging +Leggings +Legible +Legion +Legionaries +Legionnaire's Urn +Legions +Legislated +Legislating +Legislation +Legislative +Legislator +Legislature +Legit +Legitemate +Legitemately +Legitimacy +Legitimate +Legitimately +Legitimise +Legitimised +Legitimization +Legitimize +Legitimized +Legitimizes +Legitimizing +Lego +Legoclicker +Legoclicking +Legoes +Legokick +Legolas +Legoman +Legominer +Legos +Legs +Legume +Leguminous +Legwork +Leia +Leibniz +Leider +Leif +Leigh +Leighton +Leila +Leilani +Lekker +Lem0nPickles +Lem0nPickles's +Lemme +Lemming +Lemon +Lemonade +Lemonhands +Lemons +Lemur +Lemuractionnews +Lemuractionnews's +Lemuria +Lemurland +Lena +Lend +Lended +Lender +Lenders +Lending +Length +Lengthed +Lengthen +Lengthening +Lengths +Lengthy +Leniancy +Leniant +Lenience +Leniency +Lenient +Leniently +Lenin +Lenin Isle +Leningrad +Leninism +Leninist +Leninists +Lennon +Lennox +Lens +Lenses +Leo +Leobonet +Leobonet +Leobonet 's +Leobonet's +LeoitoV2 +LeoitoV2's +Leon +Leonard +Leonardo +Leonardodavinci +Leonhardt +Leonidas +Leopard +Leopold +Leper +Lepor +Leprosy +Leprous +Lesbian +Lesbians +Lesbos +Lesion +Lesions +Leslie +Lesner_As +Lesner_As's +Lesotho +Less +Lessen +Lessened +Lessening +Lessens +Lesser +Lesson +Lessons +Letdown +Lethal +Lethality +Lethargic +Lethargy +Lethe +Letia +Letos +Lets +Letsplay +Letter +Letters +Letting +Lettuce +Lettuceburg +Letuslivelaughlove +Letzebuerg +Leuven +Level +Leveled +Levelheaded +Levelheadedly +Leveling +Levelling +Levels +Lever +Leverage +Leveraged +Leveraging +Levers +Levi +Leviathan +Levied +Levies +Levitate +Levitating +Leviticus +Levitra +Levity +Levy +Levying +Lewd +Lewdness +Lewis +Lewl +Lex +Lexballs +Lexcorp +Lexi +Lexicon +Lexigntons +Lexigton +Lexingots +Lexington +Lexington City +Lexington's +Lexingtonian +Lexingtonians +Lexingtons +Lexingtron +Lexxington +Lgbt +Lgbtq +Lgbtqia +Lia +Liabilities +Liability +Liable +Liam +Liana +Liar +Liars +Lib +Libary +Libdems +Libel +Libelous +Libels +Liber +Liberal +Liberalism +Liberalist +Liberalistic +Liberalization +Liberally +Liberals +Liberate +Liberated +Liberates +Liberating +Liberation +Liberator +Liberators +Liberia +Libiyah +Libra +Librarians +Libraries +Library +Libras +Libratorium +Libria +Libs +Libsoc +Libya +Lice +Licence +License +Licensed +Licenser +Licenses +Licensing +Licentiousness +Lich +Lichen +Licherally +Lichess +Lichtenstein +Lick +Licked +Licker +Licking +Lickity +Licks +Licor +Licorice +Lid +Liddle +Lie +Liechtenstein +Lied +Liege +Lies +Lietuva +Lieutenant +Lieutenants +Life +Lifebender +Lifeblood +Lifeboat +Lifedrinker +Lifeform +Lifeforms +Lifegoals +Lifeless +Lifelike +Lifeline +Lifelong +Lifesaver +Lifespan +Lifespans +Lifestyle +Lifestyles +Lifetime +Lift +Lifted +Lifting +Lifts +Light +LightStatus +LightStatus's +Lightbane, Ravager of Secrets +Lightbearer +Lightbox +Lightbulb +Lighted +Lightely +Lightening +Lighter +Lightest +Lighthearted +Lighthouse +Lighthouses +Lighting +Lightlevel +Lightloader +Lightly +Lightning +Lightning Diamond Blade +Lightning Redwood Flatbow +Lightning Strike +LightningBerk +LightningBerk's +Lightnings +Lights +Lightsaber +Lightswitch +Lightweight +Lightwork +Lightworks +Lightyear +Lightyears +Ligma +Likable +Like +Likeable +Liked +Likeing +Likelihood +Likelihoods +Likely +Likelyhood +Likeminded +Likeness +Likes +Likewise +Liking +Likings +Lila +Lilac +Lilah +Lile +Lili +Lilian +Liliana +Liliput +Lilith +Lilliput +Lillypad +Lillypads +Lily +Lilypad +Lilypads +Limb +Limbo +Limbs +Lime +LimeFeline +LimeFeline's +Limelight +Limes +Limestone +Limit +Limitation +Limitations +Limited +Limiter +Limiters +Limiting +Limitless +Limits +Limo +Limousine +Limousines +Limp +Limping +Limply +Lina +Linchpin +Lincoln +Lincolns +Lincolnshire +Linda +Lindor +Line +Lineage +Linear +Linebattles +Lineman +Liner +Liners +Lines +Linetrap +Lineup +Linework +Lingerie +Lingering +Lingo +Linguist +Linguista +Linguistic +Linguistics +Lingyin +Lingyin's +Lining +Link +Link2006 +Link2006's +Linkable +Linkage +Linked +Linkedin +Linkin +Linking +Linseed +Lint +Lintel +Linux +Lion +Lionel +Lioness +Lionheart +Lionites +Lions +Lips +Lipstick +Lipsticks +LiptonTWG +LiptonTWG's +Liqueur +Liquid +Liquidate +Liquidated +Liquidating +Liquidation +Liquidators +Liquidicy +Liquidicy's +Liquidity +Liquids +Liquor +Liquors +Lira +Lisa +Lisbon +Liscense +Liscenses +Lisp +List +Listed +Listen +Listened +Listener +Listeners +Listening +Listing +Listings +Listless +Listprice +Lists +Lit +Litany +Lite +Litecoin +Liteloader +Litematica +Literacy +Literal +Literalism +Literally +Literate +Literature +Lithe +Lithium +Lithographer +Lithuania +Litigants +Litigate +Litigation +Litigations +Litmus +Litre +Litres +Litter +Littering +Little +Little Appalachia +Liturgy +Live +Livecam +Lived +Livelihood +Livelihoods +Liveliness +Lively +Livelyness +Liver +Liverpool +Livers +Lives +Livestock +Livestream +Livestreamed +Livestreaming +Livia +Livid +Livin +Living +LivingFungi +LivingFungi's +Liya +Liz +LizTurtle175 +LizTurtle175's +Liza +Lizard +Lizards +Llama +Llama Land +LlamaLord9001 +LlamaLord9001's +Llamas +Llort +Lloyd +Lmao +Lmaoooo +Lmfao +Lmfaoooo +Lmk +Load +Loaded +Loader +Loaders +Loading +Loadout +Loadouts +Loads +Loaf +Loafer +Loam +Loan +Loaned +Loaner +Loaners +Loaning +Loans +Loathe +Loathing +Loathsome +Lob +Lobbed +Lobbied +Lobbies +Lobbing +Lobby +Lobbycraft +Lobbying +Lobbyist +Lobbyists +Lobe +Lobotomize +Lobotomized +Lobotomy +Loboxy +Loboxy's +Lobster +Lobstermidwife +Lobter +Local +Locale +Locales +Localhost +Localised +Localities +Locality +Localized +Locally +Locals +Locate +Located +Locating +Location +Locations +Locatornet +Loch +Lock +Lockable +Lockdown +Lockdowns +Locked +LockedAndOnEdge +LockedAndOnEdge's +Locker +Lockers +Locket +Locking +Lockout +Locks +Locksmith +Lockstep +Locktrap +Locktraps +Loco +Locomotion +Locomotive +Locus +Locust +Locusts +Lodge +Lodged +Lodger +Lodges +Lodging +Lodgings +Lodish +Lodish's +Loe +Loft +Loftiness +Lofty +Log +Logan +Loganator +Logang +Logans +Logarithm +Logarithmic +Logarithmically +Logbox +Logboxed +Logboxes +Logboxing +Logboxxed +Loge +Loged +Logged +Logger +Loggers +Loggin +Logging +Logibear +Logibears +Logic +Logic_Man +Logic_Man's +Logical +Logically +Logiche +Logiche's +Login +Logins +Logistic +Logistical +Logistically +Logistics +Logitech +Logo +Logoff +Logon +Logos +Logout +Logs +Logsnitch +Logspot +Loicence +Loicense +Loincloth +Loins +Lois +Loiter +Loitered +Loitering +Loki +Lokilog +Lokilog's +Lol +Lola +Lolcat +Lolcow +Lolcows +LoliGoesRawrr +LoliGoesRawrr's +Lollipop +Lollygag +Lolno +Lolnope +Lolololol +London +Londoner +Londonium +Lone +Loneliest +Loneliness +Lonely +Loner +Loners +Lonesome +Lonewolf +Loney +Long +Longbow +Longbowmen +Longbows +Longboyy +Longboyy's +Longer +Longest +Longetivity +Longevity +Longing +Longitude +Longitudinal +Longpost +Longposted +Longposting +Longposts +Longrun +Longs +Longshot +Longstanding +Longsword +Longterm +Longtime +Longwinded +Lonnik +Look +Looked +Lookin +Looking +Lookout +Looks +Looksie +Lookup +Lookups +Lookwise +Looming +Looms +Loon +Looney +Loons +Loony +Loook +Loool +Loop +Looped +Loophole +Loopholed +Loopholes +Looping +Loops +Loopy +Loose +Loosen +Loosened +Loot +Lootable +Lootboxes +Looted +Looter +Looters +Looting +Loots +Looty +Lootz +Lopsided +Lopsidedly +Lorax +Lord +LordChieftain +LordChieftain's +LordChieftan +LordChieftan's +LordDeathShadow +LordDeathShadow's +LordOfMarzipan +LordOfMarzipan's +LordTelrec +LordTelrec's +Lordbowman +Lordchieftain +Lordchieftan +Lorde +Lorded +Lording +Lordofmarizpan +Lordofmarzipan +Lords +Lordship +Lordships +Lordvarkanos +Lordvoryn +Lordy +Lore +Lorean +Loreblocks +Lored +Lorelei +Lorem +Lorenzo +Lores +Lorraine +Lorum +Los +Lose +Loseing +Loser +Loserclan +Losers +Loserville +Loses +Losing +Loss +Losses +Lossless +Lossy +Lost +Lostshard +Lostworlds +Lot +Lotion +Lotr +Lots +Lotteries +Lottery +Lottie +Lotto +Lottosprayer +Lotus +Lotus Monastery +Loud +Louder +Loudest +Loudestspeak +Loudly +Loudmouths +Loudness +Loudout +Loudspeakers +Louis +Louise +Lounge +Loungebob +Loungebob's +Lounged +Lounges +Louse +Lousy +Lovable +Love +LoveBus +LoveYouCuzDrunk +LoveYouCuzDrunk's +Loveable +Lovecalculator +Loved +Loveing +Loveless +Lovely +Lovelydreams +Lovemode +Lover +Lovers +Loves +Loveshack +Loveshacks +Lovey +Lovin +Loving +Lovingly +Lovira +Low +Low-minded +Lowball +Lowbrow +Lowdown +Lowendbox +Lowendhosting +Lower +Lowercase +Lowered +Lowering +Lowers +Lowest +Lowkey +Lowland +Lowland Hundred +Lowlands +Lowliest +Lowlife +Lowlifed +Lowly +Lows +Lowtuff +Lowtuff's +Lox +Loyal +Loyal Sculptor +Loyalist +Loyalists +Loyally +Loyalties +Loyalty +Lua +Luajava +Lube +Lubed +Lubnan +Lubricant +Lubrication +Luca +Lucas +Lucia +Lucian +Lucid +Lucien +Lucifer +Luck +Lucked +Luckely +Luckier +Luckiest +Luckilly +Luckily +Lucking +Lucky +Luckyprison +Lucrative +Lucy +Luddite +Luddites +Ludicrous +Ludicrously +Ludon +Ludwig +Lugani +Lugano +Luggage +Lugger +Lugging +Luis +LukasMaps +LukasMaps's +Luke +Lukes +Lukewarm +Lukewarmness +Luking +Lukki7s +Lukki7s's +Lulu +Lumber +Lumberer +Lumbering +Lumberjack +Lumberjacks +Lumbermill +Lumine +Lumière +Lump +Lumped +Lumping +Lumpless +Lumps +Lumpsum +Lumpy +Luna +LunaaCatt +LunaaCatt's +Lunacy +Lunar +Lunaremperor +Lunatic +Lunatics +Lunch +Lunchables +Lunchbreak +Lung +Lunge +Lunged +Lungs +Lupus +Lurch +Lure +Lured +Luring +Lurk +Lurked +Lurker +Lurkers +Lurkey +Lurkin +Lurking +Lurks +Lurxo +Lurxo's +Lus +Lusatia +Luscious +Lush +Lusitan +Lusitania +Lusitanian +Lust +Luster +Lustful +Lustily +Lusting +Lusts +Lusty +Lute +Luther +Lutheran +Lutthor +Lutthor's +Luxemberg +Luxembourg +Luxemburg +Lydia +Lyin +Lying +Lyisika +Lyla +Lymph +Lynch +Lynched +Lynching +Lynchings +Lynchwood +Lynn +Lynx +Lyra +Lyria +Lyrian +Lyric +Lyrical +Lyrics +Lysika +Lysika's +Lysika_Lantariel +Lysika_Lantariel's +M +MAC +MAC's +MAGA +MANZA +MANZA's +MCAppleMan +MCAppleMan's +MCDestiny +MG +MLP +MNbrady +MNbrady's +MSPaintDailyYT +MSPaintDailyYT's +Maaaaaaan +Maaybe +Maayor +Mabartu +Mabartu's +Mabel +Mac +Macau +Macbeth +Macbook +Mace +Macedonia +Macedonian +Macedonians +Maceration +Macerator +Maces +Macguy73 +Macguy73's +Machiavelli +Machiavellian +Machina +Machinacraft +Machinations +Machine +Machinery +Machines +Machining +Machinist +Macho +Machos +Mack +Mackenzie +Macro +Macrobomb +Macroeconomics +Macromedia +Macromod +Macromodding +Macromods +Macron +Macros +Mad +MadDog443 +MadDog443's +Madagascar +Madagasikara +Madam +Madaogo +Madaogo's +Madcow +Maddening +Madder +Maddest +Maddie +Maddox +Made +Madeline +Madeofmeat +Madeon +Madeon +Madeonfinale +Madhouse +Madif +Madison +Madlad +Madlads +Madlib +Madly +Madman +Madmen +Madmin +Madmins +Madness +Madonna +Madonnas +Madre +Madrid +Maduro +Madvillain +Mae +Maelstrom +Maester +Maesteralliance +Maesters +Maeve +Mafia +Mafias +Mafioso +Magazine +Magazines +Mage +Magenta +Magepvp +Mages +Maggie +Maggot +Maggots +Magic +Magic wand +Magic_Maya +Magic_Maya's +Magical +Magically +Magician +MagickPonch +MagickPonch's +Magicks +Magicly +Magicman +Magicmans +Magics +Magier +Magistrate +Magistrates +Magma +Magmacubes +Magmus +Magmus's +Magna Soria +Magnate +Magnesia +Magnesium +Magnet +Magnetic +Magnetism +Magnets +Magnificence +Magnificent +Magnificently +Magnified +Magnify +Magnifying +Magnileve +Magnileve's +Magnitude +Magnitudes +Magnolia +Magnum +Magnus +Magpie +Magus +Magyarorszag +Mah +Mahjong +Mahogany +Mahz_ +Mahz_'s +Maia +Maid +Maiden +Maids +Mail +Mailbox +Mailed +Mailing +Mailman +Mails +Maim +Maimed +Main +Maincollection +Mainframe +Mainland +Mainline +Mainly +Mainpost +Mains +Mainstay +Mainstream +Mainstreaming +Maintain +Maintainable +Maintained +Maintainence +Maintainer +Maintainers +Maintaining +Maintains +Maintanance +Maintenance +Maintenant +Maintenence +Maintime +Maira +Mais +Maisha +Maisie +Maisy +Maize +Majestic +Majesty +Major +Majored +Majorer +Majoring +Majorities +Majority +Majorly +Majors +Makayla +Make +Maked +Makeing +Makeover +Maker +Makers +Makes +Makeshift +Makeup +Making +Makings +Makometer +Makometer's +Malacca +Malachi +Maladjusted +Malarky +Malawi +Malayan +Malays +Malaysia +Malaŵi +Malcolm +Malcom +Malcontent +Maldives +Male +MaleFeminist +MaleFeminist's +Malefactor +Malen +Males +Malevolence +Malevolence +Malevolent +Malevolenttyrant +Malformed +Malfunction +Malfunctioned +Malfunctioning +Malfunctions +Mali +Malia +Malibu +Malice +Malice, Breaker of Grieving Widows +Malicious +Malicious Skewer +Maliciously +Maliciousness +Malificent Gem +Malificent Rod +Malign +Malignant +Malignant Skewer +Maligned +Mall +Mallace +Mallace's +Mallcop +Mallcops +Malleable +Mallet +Malls +Malnourished +Malnutrition +Malpractice +Malt +Malta +Maltese +Maltovia +Maltovian +Maltovians +Maltovias +Maltreated +Malware +Mama +Mambo +Mamma +Mammal +Mammals +Mammoths +Man +Mana +Manaclaim +Manaconfirm +Manacost +Manage +Manageable +Managed +Management +Managements +Manager +Managerial +Managers +Manages +Managing +Manapool +Manchildren +Mandarin +Mandate +Mandated +Mandates +Mandating +Mandatory +Mandela +Mandolin +Mandy +Maneuver +Maneuverability +Maneuvering +Maneuvers +Manga +Manganese +Mangas +Mangled +Mango +Mangolord1000 +Mangolord1000's +Mangoos +Mangrove +Manhandled +Manhattan +Manhood +Manhunt +Mania +Maniac +Maniacal +Maniacs +Manic +ManicManiac +ManicManiac's +ManicSugar +ManicSugar's +Manically +Manicdigger +Manicland +Manicmineman +Manicured +Manifest +Manifestation +Manifestations +Manifested +Manifesting +Manifesto +Manifestos +Manifests +Manifolds +Manipulate +Manipulated +Manipulates +Manipulating +Manipulation +Manipulations +Manipulative +Manipulativeness +Manipulator +Manipulators +Mankind +Mankinds +Manlet +Manliness +Manly +Manmade +Manner +Mannerisms +Manners +Manning +Mannor +Manny +Manoeuvre +Manor +Manpower +Mansi +Mansion +Mansions +Manslaughter +Manspiderpig +Mantel +Mantis +Mantle +Mantra +Mantras +Manual +Manually +Manuals +Manufacture +Manufactured +Manufacturer +Manufacturers +Manufactures +Manufacturing +Manure +Manuscripts +Many +Manya +Manza +Mao +Maoism +Maoist +Map +Mapart +Mapcrafter +Mapdata +Maphub +Maping +Maple +Maplestory +Mapmaker +Mapmakers +Mapmaking +Mapman +Mapmap +Mapmode +Mapmods +Mapped +Mapper +Mappers +Mapping +Mappings +Maps +Mapwriter +Mara +Marapaki Eykratos Tsardom +Marathon +Marathons +Marauders +Marauding +Marble +Marbles +Marching +Marco +MarcoAgrippa +MarcoAgrippa's +Marcus +Marcus_Flaminius +Marcus_Flaminius's +Mare +Maren +Mares +Margaret +Margaretthatcher +Margarita +Margaritaville +Margeritaville +Margin +Marginal +Marginalization +Marginalize +Marginalized +Marginalizes +Marginalizing +Marginally +Margins +Margot +Maria +Mariage +Mariam +Marianne +Marie +Marienburg +Marijuana +Marilyn +Marina +Marinade +Marinated +Marine +Marines +Mario +Mario Kart +Marion +Marios +Marital +Maritime +Mark +Mark_Antony +Mark_Antony's +Markdown +Marked +Markedly +Marker +Markers +Market +Marketability +Marketable +Marketed +Marketing +Marketplace +Marketplaces +Markets +Marketside +Marking +Markings +Markmyfuckingwords +Marks +Marksman +Marksmanship +Marksmen +Markup +Marley +Marlowe +Marmalade +Maroon +Marriage +Marriages +Married +Marriott +Marrow +Marry +Marrying +Mars +Marsh +Marshal +Marshall +Marshall Islands +Marshmellow +Martha +Martial +Martian +Martians +Martin +Martinique +Martyr +Martyrdom +Martyrs +Marvel +Marvellous +Marvelous +Marvels +Marvin +Marx +Marxian +Marxism +Marxist +Marxists +Mary +Maryam +Maryland +Marylander +Marytr +Marytr's +Marzi +Marzipan +Mascot +Masculine +Masculinity +Mash +Masha +Mashable +Mashallah +Mashed +Mashes +Mashing +Mashup +Mask +Masked +Masking +Masks +Masochist +Masochistic +Masochists +Mason +Masonic +Masonry +Masons +Masque +Masquerade +Masquerading +Mass +Mass Effect +Massacared +Massacre +Massacred +Massacring +Massage +Massages +Massaging +Masse +Massed +Masses +Massimen +Massimen's +Massing +Massive +Massively +Massproducing +Mast +Master +Mastercard +Mastercull +Mastered +Masterful +Masterfully +Mastering +Mastermind +Masterminded +Masterminding +Masterminds +Masterpiece +Masterpieces +Masterplan +Masters +Masterwork +Mastery +Matanitu ko Viti +Match +Matched +Matches +Matching +Matchmaking +Matchup +Matchups +Mate +MateKrey +MateKrey's +Mated +Mateo +Material +Materialise +Materialism +Materialist +Materialistic +Materialize +Materialized +Materials +Maternal +Maternity +Mates +Matey +Math +Mathematical +Mathematically +Mathematician +Mathematicians +Mathematics +Mathew +Maths +Matilda +Mating +Matriarch +Matriarchy +Matrimony +Matrix +Mats +Matt +Matt4fun9 +Matt4fun9's +Matteo +Matter +Mattered +Mattering +Matters +Matthew +Matticus_rex +Matticus_rex's +Mattress +Mattresses +Maturation +Mature +Matured +Maturely +Matures +Maturing +Maturity +Maul +Mauled +Maureen +Maurice +Mauritania +Mauritanië +Mauritius +Mausoleum +Maven +Maverick +Mavis +Max +Maxcraft +Maxed +Maximal +Maximally +Maximilian +Maximise +Maximize +Maximized +Maximizing +Maximumlame +Maximus +Maximus740 +Maximus740's +Maxine +Maxing +Maxopoly +Maxopoly's +Maxpowerboy +Maxpowerboy's +Maxwell +Maxxed +Maxxing +May +Maya +Mayan +Mayas +Maybe +MaybeGravy +MaybeGravy's +Mayfly +Mayhaps +Mayhem +Mayo +Mayonnaise +Mayor +Mayoral +Mayors +Mayorship +Mayotte +Mayra +Maze +Mazerunner +Mazes +Mba +McChicken_Man_ +McChicken_Man_'s +Mcbans +Mcboy +Mccarthy +Mccree +Mcdonald +Mcdonalds +Mcdouble +Mcfluffy +Mckenna +Mclovin +Mcmmo +Mcpvp +Mcqueen +Mcree +Mdma +Me +MeEatFod +MeEatFod's +Meadows +Meager +Meagre +Meal +Meals +Mean +Meander +Meandering +Meanderingly +Meanders +Meaner +Meanest +Meanie +Meanies +Meaning +Meaningful +Meaningfully +Meaningfulness +Meaningless +Meaninglessly +Meanings +Meant +Meantime +Meanwhile +Meany +Measly +Measurable +Measure +Measured +Measurement +Measurements +Measures +Measuring +Meat +Meatball +Meatballs +Meatgrinder +Meathead +Meatheads +Meating +Meatloaf +Meats +Meatshield +Meaty +Meaty_Mudflap +Meaty_Mudflap's +Mecca +Mech +Mecha +Mechanic +Mechanical +MechanicalRift +MechanicalRift's +Mechanically +Mechanics +Mechanism +Mechanisms +Mechanization +Mechanized +Med +Medal +Medalists +Medallion +Medals +Meddle +Meddlesome +Meddling +Media +Mediafire +Mediamonkey +Median +Mediate +Mediated +Mediating +Mediation +Mediator +Mediators +Medic +Medical +Medicare +Medicate +Medication +Medications +Medicinal +Medicine +Medicines +Medieval +Mediocre +Mediocrely +Mediocrity +Meditate +Meditates +Meditating +Meditation +Mediterranean +Medium +Mediums +Meds +Medusa +Medwedian +Medwedianpresident +Meek +Meekly +Meekness +Meelee +Meera +Meesathinks +Meeshkin +Meeshkin's +Meet +MeetWit +MeetWit's +Meeting +Meetings +Meetup +Meetups +Meg +Mega +Megabuild +Megabuilds +Megabunker +Megabytes +Megacities +Megacity +Megadeath +Megafarm +Megafarms +Megafriends +Megalomaniac +Megalopolis +Megalovania +Megalunchbox +Megaman +Megamind +Megan +Megaphone +Megapixel +Megapixels +Megaproject +Megaprojects +Megaserver +Megastructures +Megathread +Megavault +Megavaults +Meh +Mehri +Mein +Mekanism +Melancholic +Melancholy +Melanin +Melbourne +Melding +Melee +Melia +Melina +Melissa +MellohiandCat +MellohiandCat's +Mellow +Melodic +Melodrama +Melodramatic +Melody +Melon +Melons +Melonstems +Melt +Meltdown +Melted +Melting +Melts +Melvin +Member +Members +Membership +Memberships +Membrane +Meme +MemeMan0 +MemeMan0's +Memeadmin +Memeage +Memearrows +Memeball +Memebank +Memebase +Memeboi +Memecraft +Memecrew +Memeing +Memelord +Memelords +Memento +Memer +Memery +Memes +Memeteam +Memetopia +Memo +Memoir +Memoirs +Memorable +Memorandum +Memorial +Memorialista +Memorialize +Memorials +Memoriam +Memories +Memorise +Memorising +Memorize +Memorized +Memorizing +Memory +Memos +Memphis +Men +Menace +Menaced +Menaces +Menacing +Menacingly +Menagerie +Mend +Mending +Menial +Mens +Mental +Mentalities +Mentality +Mentally +Mention +Mentioned +Mentioning +Mentions +Mentor +Mentoring +Mentors +Mentorship +Menu +Menus +Meow +Meows +Merak +Mercantile +Mercedes +Mercenaries +Mercenary +Merchandise +Merchant +Merchants +Merci +Merciful +Mercifully +Merciless +Mercilessly +Mercs +Mercurial +Mercury +Mercutio +Mercy +Mere +Merely +Merge +Merged +Mergeing +Merger +Mergers +Merges +Merging +Meridian +Meridiem +Merit +Merited +Meritocracy +Meritocratic +Merits +Merkel +Merkuis +Merkuis's +Merlin +Mermaid +Mermaids +MerpFish +MerpFish's +Merrier +Merrily +Merry +Merrymaking +Mersin +Mery Horde +Mesa +Mesablocks +Mesas +Mesh +Meshes +Mesopotamia +Mess +Message +Messaged +Messagers +Messages +Messaging +Messanger +Messed +Messenger +Messes +Messiah +Messier +Messing +Messy +Mesure +Meta +Metabolism +Metabolized +Metadata +Metafederation +Metafor +Metagame +Metagamer +Metagamers +Metagames +Metagaming +Metaknight +Metal +MetalHusband +MetalHusband's +Metalcore +Metallic +Metallica +Metallurgical +Metallurgy +Metals +Metalworking +Metamorphosis +Metaphor +Metaphorical +Metaphorically +Metaphysics +Metapost +Metaposts +Metas +Metaverse +Meteor +Meteoric +Meteors +Meter +Meters +Methadone +Methalox +Methamphetamine +Methane +Methhead +Methinks +Method +Methodical +Methodically +Methods +Meticulous +Meticulously +Metre +Metres +Metric +Metrics +Metrimixor +Metrix +Metriximor +Metriximor's +Metro +Metromap +Metropoli +Metropolis +Metropolises +Metropolitan +Metropolitan_ +Metropolitan_'s +Metros +Metrosexual +Meunster +Meunster's +Mewtwo +Mexican +Mexicano +Mexicans +Mexico +Mgtow +Mhmmm +Mia +Miagi +Miami +Mic +Micah +MicahMrPres +MicahMrPres's +Micbroke +Mice +Michael +Michaela +Michel +Michelle +Michigan +Mick +Mickale +Mickale's +Mickey +Micro +Microaggression +Microaggressions +Microcode +Microcosm +Microgram +Micromanage +Micromanagement +Micromanaging +Micrometer +Micronations +Micronesia +Microphone +Microphones +Microscope +Microscopic +Microsoft +Microstructure +Microtransaction +Microtransactions +Microwave +Mics +Mid +Midair +Midas +Midday +Middle +Middleground +Middleman +Middleschool +Midflight +Midgame +Midnight +Midpoint +Midrange +Midsummer +Midterm +Midterms +Midtier +Midtown +Midway +Midwest +Midwinter +Miffed +Miffin +Might +Mightier +Mightiest +Mightve +Mighty +Mightyoddish +Mightyoddish's +Migraine +Migrane +Migrant +Migrants +Migrate +Migrated +Migrates +Migrating +Migration +Migrations +Migratory +Miguel +Mika +Mika_053 +Mika_053's +Mikale +Mikayla +Mike +Miklagard +Mil +Mila +Milan +Milana +Mild +Milder +Mildly +Mile +Mileage +Miles +Milestone +Milestones +Milieu +Militancy +Militant +Militants +Militaries +Militarily +Militarise +Militarised +Militarism +Militarist +Militaristic +Militaristically +Militarization +Militarize +Militarized +Militarizing +Military +Militia +Militiamen +Militias +Milk +Milked +Milking +Milkman +Milkshake +Milkshakes +Milktruck +Milky +Mill +Millenia +Millennial +Millennials +Millennium +Miller +Millie +Milligrams +Million +Millionaire +Millionaires +Millions +Millionth +Millisecond +Milliseconds +Millitary +Milo +Miloski1 +Miloski1's +Mimi +Mimic +Mimics +Mina +Minarchism +Minarchist +Minarchists +Minarchy +Minas +Mince +Minced +Minceman +Mincemeat +Mincing +Mind +Mindblowing +Mindblown +Mindcraft +Minded +Mindedness +Mindfuck +Mindful +Mindfulness +Minding +Mindless +Mindlessley +Mindlessly +Minds +Mindscale +Mindset +Mindsets +Mine +Mineable +Minebook +Minebot +Minecart +Minecarted +Minecarting +Minecarts +Minecrack +Minecraft +MinecraftBoomer +MinecraftBoomer's +MinecraftSHES +Minecraft_Boomer +Minecraft_Boomer's +Minecrafted +Minecrafter +Minecrafters +Minecraftia +Minecraftian +Minecrafting +Minecrafts +Mined +Minefield +Minefields +Mineflayer +Mineflesh +Mineman +Minemaster933 +Minemaster933's +Miner +MinerRick1 +MinerRick1's +Mineral +Minerals +Minerman +Miners +MinersHavenM43 +MinersHavenM43's +Mines +Mineshaft +Mineshafts +Minesweeper +Mini +Miniature +Minified +Minigame +Minigames +Minimal +Minimalist +Minimalistic +Minimally +Miniman +Minimap +Minimaps +Minimise +Minimises +Minimium +Minimization +Minimize +Minimized +Minimizes +Minimizing +Minimum +Minimums +Mining +Minion +Minions +Miniscule +Miniskirts +Minister +Ministerial +Ministers +Ministership +Ministries +Ministry +Minivault +Minivaults +Mink +Minmax +Minmaxing +Minneapolis +Minnesota +Minotar +Minsicule +Mint +Minted +Minting +Mints +Minute +Minutemen +Minutes +Mir +Mir's +Mira +Miracalis +Miracle +Miracles +Miraculous +Miraculously +Mirage +Miraheze +Mirakles +Miranda +Mire +Mirfak +Miriam +Mirian +Mirians +Mirmaid +Mirmaids +Mirpeople +Mirpvp +Mirror +Mirrored +Mirroring +Mirrors +Misaligned +Misandry +Misanthropic +Misanthropy +Misappropriate +Misappropriated +Misappropriating +Misassociation +Misbehave +Misbehaving +Misc +Miscalculated +Miscalculating +Miscalculation +Miscellaneous +Mischance +Mischaracterized +Mischief +Mischievous +Misclick +Misclicked +Misclicking +Miscommunicated +Miscommunicating +Miscommunication +Miscommunications +Misconceived +Misconception +Misconceptions +Misconduct +Misconducted +Misconfiguration +Misconfigure +Misconfigured +Misconstrue +Misconstrued +Misconstruing +Miscreant +Miscreants +Misdeeds +Misdefined +Misdemeanor +Misdemeanors +Misdirected +Misdirection +Miserable +Miserably +Misery +Misery, Butcher of Nightmares +Misfired +Misfits +Misfortune +Misfortune's Yew Striker +Misfortunes +Misgivings +Misguided +Misha +Mishandled +Mishandling +Mishap +Mishaps +Misheard +Mishmash +Misinfo +Misinformation +Misinformed +Misinforming +Misinterpret +Misinterpretation +Misinterpretations +Misinterpreted +Misinterpreting +Misinterpretting +Misjudge +Misjudged +Mislabel +Mislabeled +Mislabelled +Mislead +Misleading +Misleadingly +Misled +Mismanaged +Mismanagement +Mismanaging +Mismatch +Mismatched +Mismatching +Misname +Misnomer +Misogynist +Misogynistic +Misogyny +Misplaced +Misplacement +Mispronounce +Mispronouncing +Misquote +Misquoted +Misquoting +Misr +Misread +Misreading +Misremember +Misremembered +Misremembering +Misrememebered +Misrepresent +Misrepresentation +Misrepresentations +Misrepresented +Misrepresenting +Misrepresents +Misrule +Miss +Misses +Missile +Missiles +Missing +Mission +Missions +Mississippi +Missteps +Mist +MistaTodd +MistaTodd's +Mistake +Mistaken +Mistakenly +Mistakes +Mistaking +Mister +Mister_Minesalot +Mister_Minesalot's +Mistique +Mistletoe +Mistook +Mistreat +Mistreated +Mistreating +Mistreatment +Mistress +Mistrust +Mistrusting +Misty +Mistype +Mistyped +Misunderestimating +Misunderstand +Misunderstanding +Misunderstandings +Misunderstood +Misuse +Misused +Misusing +Mitchell +MitchyQ +MitchyQ's +Mithrin +Mitigated +Mitigates +Mitigating +Mitigation +Mittens +Mix +Mixed +Mixer +Mixes +Mixing +Mixtape +Mixture +Mixtures +Mixup +Mizar +Mjölnir +Mkay +Mlady +Mlord +Mmaagha Kamalu +Mmorpg +Mmorpgs +Mmos +Moan +Moana +Moaned +Moaning +Moans +Moar +Moat +Moated +Moats +Mob +Moba +Mobcap +Mobcounts +Mobiles +Mobility +Mobilization +Mobilize +Mobilized +Mobilizing +Mobkind +Mobs +Mobspawn +Mobspawner +Mobspawning +Mocambique +Mochi +Mock +Mocked +Mockery +Mocking +Mockingbird +Mockingjay +Mockingly +Mockup +Mocreatures +Mod +Modded +Modder +Modders +Modding +Mode +Model +Modeled +Modeler +Modelers +Modeling +Modelling +Models +Moderaattori +Moderaattori's +Moderate +Moderated +Moderately +Moderates +Moderating +Moderation +Moderative +Moderator +Moderators +Modern +Modernist +Modernista +Modernists +Modernity +Modernize +Modernized +Modes +Modest +Modification +Modifications +Modified +Modifier +Modifiers +Modifies +Modify +Modifying +Modloader +Modlog +Modmail +Modmailed +Modmailing +Modmails +Modpack +Modpacks +Modqueue +Mods +Modteam +Modular +Modularity +Modulation +Modulator +Module +Modules +Moeliii +Moeliii's +Mofu Mofu Wool +Mohammed +Mohawk +Mohawks +Moist +Moisten +Moisture +Mojang +Mojangs +Mojo +Mokotowskie +Mokotowskie's +Mokuno +Mokuno's +MokunoCat +MokunoCat's +Molaac +Molaac's +Molarity +Mold +Molded +Molding +Moldova +Molds +Moldy +Mole +Molecular +Molecule +Molecules +Molehill +Molepeople +Moles +Moley +Mollusk +Molly +Moloch +Moloka +Molotov +Molten +Molten Fury, Annihilation of Cruelty +Molten Fury, Last Hope of Closing Eyes +Mom +Moment +Momentarily +Momentary +Momentous +Moments +Momentum +Mommies +Mommy +Moms +Mona +Monaco +Monacos +Monarch +Monarchical +Monarchies +Monarchism +Monarchist +Monarchistic +Monarchists +Monarchs +Monarchy +Monastary +Monasteries +Monastery +Monday +Mondays +Monetarily +Monetary +Monetization +Monetize +Monetized +Monetizing +Money +Moneybags +Moneyman +Moneys +Mongol +Mongol Uls +Mongolia +Mongolian +Mongolians +Mongols +Mongrel +Mongrels +Monica +Monika +Moniker +Monitered +Monitor +Monitored +Monitoring +Monitors +Monk +Monkey +Monkeyland +Monkeymayne3032 +Monkeymayne3032's +Monkeys +Monks +Mono +Monochromatic +Monochrome +Monogamist +Monogram +Monograms +Monolingual +Monolith +Monolithic +Monoliths +Monologue +Monolythic +Monopolies +Monopolising +Monopolist +Monopolistic +Monopolization +Monopolize +Monopolized +Monopolizing +Monopoly +Monorail +Monosyllable +Monotanous +Monotheism +Monotheist +Monotheists +Monotone +Monroe +MonroeZ +MonroeZ's +Monrovia +Monsoon +Monster +Monsteregg +Monsterous +Monsters +Monstrosities +Monstrosity +Monstrous +Monstruously +Montage +Montana +Montenegro +Monterrey +Montestela +Montgomery +Month +Monthly +Months +Monthy +Montpier +Montreal +Montserrat +Monty +Monument +MonumentBank +MonumentGroup +Monumental +Monumentally +Monuments +Mooch +Mooching +Mood +Moodily +Moody +Moolah +Moon +MoonDemon19015 +MoonDemon19015's +Moonlight +Moonlit +Moonlit Defender +Moonman +Moonrise +Moonrunes +Moons +Moonshine +Mooping +Moose +Moosebobby +Moosebobby's +Mooses +Mooshrooms +Mop +Mope +Moping +Mora +Morado +Moral +Morale +Morales +Moralising +Moralist +Moralista +Moralistic +Moralities +Morality +Moralize +Moralizing +Morally +Morals +Morb +Morbid +Morbidly +Morbillion +Morbin +Morbius +Mordor +More +Morechunks +Moreover +Moreso +Morg_ +Morg_'s +Morgan +Morgoth +Mori +Moria +Morian +Mormon +Mormonism +Mormons +Mornin +Morning +Mornings +Morocco +Moron +Moronic +Morons +Morph +Morphed +Morphia +Morphine +Morphs +Morrow +Morrowind +Mortal +Mortality +Mortally +Mortals +Mortar +Mortars +Mosaic +Moscow +Moscow's +Moscows +Moses +Mosque +Mosques +Mosquito +Mosquitoes +Mosquitto +Moss +Mossy +Most +Most-Adjusted-New-Yorker +Mostlikely +Mostly +Mosts +Motel +Motels +Moth +Mothball +Mother +Motherboard +Motherhood +Motherland +Motherless +Motherload +Motherly +Mothers +Mothraki +Moths +Motion +Motions +Motivate +Motivated +Motivates +Motivating +Motivation +Motivational +Motivations +Motivator +Motivators +Motives +Moto +Motor +Motorcycle +Motorcycles +Motors +Motown +Motown's +Mount +Mount Augusta +Mount Hassaan +Mount Ida +Mount Olympus +Mount September +Mountain +Mountainous +Mountains +Mountainside +Mountaugusta +Mounted +Mounting +Mounts +Mourn +Mournblade +Mourner +Mournhold +Mourning +Mouse +MouseCawp +MouseCawp's +Mouseover +Mousepad +Mouses +Mousetrap +Mousewheel +Mousing +Moustache +Mouth +Mouthbreather +Mouthbreathers +Mouthpiece +Mouths +Move +Moved +Moveforward +Movement +Movements +Moves +Movie +Movies +Moving +Mowed +Mower +Mowing +Mown +Mowtek +Mowtek's +Mozambique +Mozaralla +Mozilla +Mph +Mqueen +Mr +MrAesthetic +MrAesthetic's +MrCoCo_Cola +MrCoCo_Cola's +MrDarkini +MrDarkini's +MrDoomBringer +MrDoomBringer's +MrFlipkin +MrFlipkin's +MrJeremyFisher +MrJeremyFisher's +MrLlamma +MrLlamma's +MrLostMickers +MrLostMickers's +MrOnionCurd +MrOnionCurd's +MrScafuto +MrScafuto's +Mr_4_U +Mr_4_U's +Mr_Demon_Lord +Mr_Demon_Lord's +Mraesthetic +Mrdoombringer +Mrdoombringer's +Mrmamizoupie +Mrmamizoupie's +Mrpotato2014 +Mrpotato2014's +Mt. Augusta +Mt. Olympus +Mta +Mtajustice +Muah +Muahaha +Much +Mucous +Mud +Muddied +Muddies +Muddle +Muddled +Muddy +Muddying +Mudflinging +Mudkip +Mufasa +Muffins +Muffled +Muffler +Mug +Mugged +Muggers +Mugging +Muggings +Mugs +Muh +Muhammed +Mule +Mules +Multi +Multiaccounting +Multible +Multicore +Multicultural +Multiculturalism +Multidimensional +Multidirectional +Multifaceted +Multifarm +Multilateral +Multilayer +Multilevel +Multilingual +Multimc +Multimedia +Multiownership +Multiplayer +Multiple +Multiples +Multiplication +Multiplicative +Multiplicatively +Multiplicity +Multiplied +Multiplier +Multipliers +Multiplies +Multiply +Multiplying +Multipolar +Multipost +Multiposted +Multipurpose +Multiserver +Multitasking +Multithread +Multithreaded +Multithreading +Multitude +Multitudes +Multiverse +Multiworld +Multiworlds +Mum +Mumbai +Mumbl +Mumble +Mumbles +Mumbling +Mumbo +Mumfrey +Mummy +Mummybundles +Mums +Mumsy +Munch +Muncher +Munchers +Munches +Munchies +Munching +Munchkin +Mundane +Munich +Municipal +Municipalities +Municipality +Munitions +Muppet +Muppets +Mur +Mural +Murals +Murder +Murderable +Murdered +Murderer +Murderers +Murderess +Murderhole +Murdering +Murderize +Murderous +Murders +Murica +Murican +Muricans +Muritaniyah +Murkier +Murky +Murloc +Murmur +Murmurs +Murphy +Murray +Murray02 +Murray02's +Musa +Muscle +Muscles +Muscular +Muse +Mused +Muses +Museum +Museums +Mush +Mushroom +Mushroom's +Mushroom_Cultist +Mushroom_Cultist's +Mushroomfly +Mushroomfly's +Mushrooms +Mushy +Music +Musical +Musicals +Musician +Musicians +Musik +Musing +Musings +Musk +Musket +Musketeer +Muskets +Muslim +Muslims +Must +Mustache +Mustaches +Mustang +Mustard +Mustercull +Musterculled +Musterculling +Mustered +Mustering +Mustve +Musty +Mutable +Mutant +Mutants +Mutate +Mutated +Mutating +Mutation +Mutations +Mutator +Mute +Muted +Mutes +Muting +Mutiny +Mutt +Mutton +Mutual +Mutualism +Mutualist +Mutualists +Mutually +MuzikalChairs +MuzikalChairs's +Muzzle +Muzzled +Mwah +Mwyndia +My +MyCoel +MyCoel's +MyLittleAk47 +MyLittleAk47's +Mya +Myanmar +Mycelium +Mycellium +Myla +Myles +Myra +Myrador +Myriad +Myself +Mysoginists +Myspace +Mysql +Mysteries +Mysterious +Mysteriously +Mysteriousness +Mystery +Mystic +Mystical +Mysticism +Mystics +Mystification +Mystified +Mystifying +Mystique +Myth +Mythic +MythicPatronymic +MythicPatronymic's +Mythical +MythicalAxolotl +MythicalAxolotl's +Mythicmobs +Mythological +Mythology +Mythril +Myths +Myăma +N +NAP +NATO +NATO's +NAcetylCysteine +NAcetylCysteine's +NCL_CRW +NCL_CRW's +NaHa000 +NaHa000's +Naaaah +Nab +Nabbed +Nabbit +Nachos +Nacional +Nacionalista +Nacl +Nada +Nade +Nader +Nades +Nadia +Nadie +Nadine +Nado +Naed +Naed87 +Naed87's +Nag +Nagged +Nagging +Naglafer +Naglafer's +Nah +Nahh +Nahhh +Nail +Nailed +Nailing +Nails +Naive +Naively +Nakamoto +Naked +Nakedness +Nala +Name +Namebrand +Namecalling +Namechange +Namecolor +Named +Namedrop +Namedrops +Namelayer +Namelayergroups +Namelayers +Namelength +Nameless +Namelog +Nameplate +Nameplates +Names +Namesake +Namespace +Nametag +Nametagged +Nametagging +Nametags +Namhan +Namibia +Naming +Nana +Nancy +Nani +NannerB +NannerB's +Nannied +Nanny +Nannying +Nano +Nano____ +Nano____'s +Nanoseconds +Nanotech +Nao +Naomi +Nap +Napalm +Napalming +Nape +Napkin +Naples +Napoleon +Napoleonic +Naps +Naptime +Nara +Naran +Narcisista +Narcissism +Narcissist +Narcissistic +Narcissus +Narcotic +Narcs +Narkis +Narnia +Narra +Narrate +Narrated +Narrating +Narration +Narrative +Narratives +Narrator +Narrators +Narrow +Narrowed +Narrower +Narrowing +Narrowly +Narrows +Narryngton +Narryngton's +Naruto +Narwhal +Narwhal 19 +Narwhal 19's +Nasa +Nasal +Nascar +Nascent +Nasdaq +Nash +Nashville +Nassau +Nastier +Nasties +Nastiest +Nastiness +Nasty +Nat +Natal +Natalia +Natalie +Natalista +Natasha +Natgeo +Nathan +Nathaniel +Nation +National +Nationalgeographic +Nationalisation +Nationalise +Nationalised +Nationalising +Nationalism +Nationalist +Nationalistic +Nationalists +Nationalities +Nationality +Nationalization +Nationalize +Nationalized +Nationalizing +Nationally +Nationals +Nationbuilding +Nationhood +Nationless +Nations +Nationstates +Nationwide +Native +Natively +Natives +Nativity +Nato +Natoid +Natoids +Natos +Natrually +Natural +Naturalist +Naturally +Naturals +Nature +Natured +Natures +Naturista +Naturopathic +Naught +Naughty +Nauru +Nausea +Nauseam +Nauseating +Nauseous +Nauseousness +Nausicaan +Nautical +Nav +Navajo +Naval +Navel +Navigable +Navigate +Navigated +Navigates +Navigating +Navigation +Navigational +Navigator +Navy +Naw +Nay +Naya +Naysayers +Nazarene +Nazareth +Ndzhl +Ne'er-do-well +Neanderthal +Neanderthals +Neapolitan +Near +Nearby +Nearbye +Nearest +Nearing +Nearish +Nearly +Nearness +Nears +Neat +Neater +Neatly +Neato +Nebraska +Nebraskan +Nebuchadnezzar +Nebula +Nebulandd +Nebulandd's +Nebulous +Necessarily +Necessary +Necessitate +Necessitated +Necessitates +Necessitating +Necessities +Necessity +Neck +Neckbeard +Neckbeards +Neckbeardy +Necklace +Necks +Necktie +Necrolight, Skull of the Claw +Necronomicon +Necropolis +Nectar +Ned +Nederland +Nederlands +Nederlandse Antillen +Need +Needed +Needful +Needing +Needle +Needles +Needless +Needlessly +Needlessy +Needs +Needy +Neet +Neets +Nefarious +Negara Brunei Darussalam +Negate +Negated +Negates +Negating +Negation +Negations +Negative +Negatively +Negatives +Negativity +Negatory +Neglect +Neglected +Neglectfully +Neglecting +Negligence +Negligent +Negligently +Negligible +Negotiable +Negotiate +Negotiated +Negotiates +Negotiating +Negotiation +Negotiations +Negotiator +Negotiators +Nehemiah +Neigh +Neighbor +Neighborhood +Neighborhoods +Neighboring +Neighborly +Neighbors +Neighbour +Neighbourhood +Neighbouring +Neighbourly +Neighbours +Neighbros +Neil +Nein +Neither +Nekomant +Nekomant's +Nell +Nellie +Nelly +Nelson +Nemesis +Nemo +Neo +Neo Sovia +NeoTide +NeoTide's +Neoclassical +Neocon +Neoconservatism +Neodrama +Neoliberal +Neoliberalism +Neoliberals +Neolithic +Neon +Neopets +Neotide +Neotide's +Nepal +Nepalese +Nepdeer +Nepdeer's +Nephew +Nepotism +Nepotistic +Neptune +Nerd +Nerdchops +Nerds +Nerdy +Nerf +Nerfd +Nerfed +Nerfing +Nerfs +Nero +Nerve +Nerves +Nervous +Nervously +Nervousness +Nes +Ness +Nest +Nested +Nestle +Nestled +Nestor +Nests +Net +Netbook +Netcode +Netflix +Nether +NetherPearled +NetherPearled's +Netherbrick +Netherbricks +Netherfactory +Netherfarm +Netherite +Netherlands +Netherlands Antilles +Netherlight, Baton of Horrors +Netherportal +Netherquartz +Netherrack +Netherracks +Netherrails +Nethers +Netherside +Netherwart +Netherwarts +Netizen +Nets +Netscape +Netted +Netting +Nettle +Network +Networked +Networking +Networks +Neubergburg +Neural +Neuroatypical +Neurodegenerative +Neurodiverse +Neurological +Neurology +Neuron +Neurons +Neurosis +Neurosurgery +Neurotic +Neurotypical +Neuter +Neutered +Neuters +Neutral +Neutrality +Neutralization +Neutralize +Neutralized +Neutralizers +Neutralizes +Neutralizing +Neutrally +Neutrals +Neutron +Neutrons +Nevada +Nevaeh +Never +Neverending +Nevermind +Neverminding +Nevermore +Nevertheless +Neville +Nevrast +New +New Antioch +New Bjornstahl +New Caledonia +New Cascadia +New Champtown +New Jersey +New Jerusalem +New Phoenix +New Sovia +New Thoria +New Zealand +Newark +Newb +Newbie +Newbies +Newborn +Newborns +Newbs +Newcastle +Newcivplayer +Newcivplayer's +Newcomer +Newcomers +Newer +Newest +Newfoundland +Newfriend +Newfriendish +Newfrienditis +Newfriendland +Newfriendly +Newfriendness +Newfriends +Newgrounds +Newish +Newness +Newport +News +Newsfeed +Newsflash +Newsletter +Newsovia +Newspaper +Newspapers +Newspawn +Newsreporter +Newsroom +Newsworthy +Newt +NewtTheNew +NewtTheNew's +Newton +Newtonian +Newtwawity +Next +Nextdoor +Nexus +Nexus, Globule of Heroes +Nfl +Ngl +Nhl +Nhs +Ni +Nia +Niagara +Nibble +Nibbles +Nibbling +Nicaea +Nicaragua +Niccolo +Nice +Nicely +Niceness +Nicepotato69 +Nicepotato69's +Nicer +Nicest +Niche +Niches +Nicholas +Nick +Nick7153 +Nick7153's +Nicked +Nickel +Nickelback +Nickels +Nickname +Nicknamed +Nicknames +Nickposting +Nico +Nicola +Nicolas +Nicole +Nidaros +Niece +Nieces +Nietzsche +Nifty +Nigel +Niger +Nigeria +Nigh +Night +Night's Edge +Night's Fall +Nightcap +Nightcore +Nightcrawler +Nightfall +Nightime +Nightingale +Nightkiss +Nightlife +Nightlight +Nightmare +Nightmare, Slayer of the Occult +Nightmares +Nightmarish +Nightmode +Nights +Nighttime +Nightvision +Nightwing +Nihilism +Nihilist +Nihilistic +Nihon or Nippon +Nike +Nikes +Nikita +Niko +Nikon +Nil +Nila +Nile +Nilly +Nimble +Nimbly +Nimbus +Nimrod +Nina +NinaDavinci +NinaDavinci's +Nincompoop +Nine +Nines +Nineteen +Ninety +Ninja +Ninjajack +Ninjas +Ninjutsu +Ninny +Nintendo +Nintendogs +Ninth +Nip +Nipple +Nippleback +Nippleknights +Nipplerock +Nipplerockans +Nipplerockian +Nipplerockians +Nipplerockies +Nipplerocks +Nipples +Nippon +Nipponese +Nips +Nirvana +Nissan +Nite +Nitpick +Nitpicked +Nitpicking +Nitpicks +Nitpicky +Nitrate +Nitric +Nitro +Nitrogen +Nitrogenous +Nitwit +Niue +NivBarkie +NivBarkie's +Nix +NixSailor +NixSailor's +Nixed +Nixon +Nixonian +Njordomir +Njordomir's +Nl +Nlcg +Nlleg +Nllg +Nnn +No +NoCredit_ +NoCredit_'s +NoOneTruePunk +NoOneTruePunk's +NoTruePunk +Noa +Noah +NoahDaArk777 +NoahDaArk777's +Nobel +Nobility +Noble +Nobleman +Noblemen +Nobles +Nobly +Nobodies +Nobody +Nobodys +Noce +Noce's +Noclip +Nocontext +Nocookie +Nocturnal +Nod +Nodded +Node +Nodes +Nods +Nodus +Noelle +Noemi +Noggin +Noice +NoiceToasty +NoiceToasty's +Noir +Noise +Noises +Noisily +Noisome +Noisy +Nokia +Nola +Nolan +Nolife +Nolifers +Nolifing +Nomad +Nomadic +Nomads +Nombre +Nomenclature +Nominal +Nominally +Nominate +Nominated +Nominating +Nomination +Nominations +Nominative +Nominee +Nomsayn +Non +Nonagression +Noname +Nonbelievers +Nonbiased +Nonce +Nonchalance +Nonchalant +Nonchalantly +Noncitizen +Noncombatant +Noncombatants +Nonconventional +Nondescript +None +Nonetheless +Nonexistant +Nonexistence +Nonexistent +Nonfunctional +Nonissue +Nonlinear +Nonparties +Nonpartisan +Nonplussed +Nonprofit +Nonpublic +Nonpvp +Nonpvpers +Nonrenewable +Nonrenewables +Nonsense +Nonsensical +Nonsensically +Nonsentient +Nonshitters +Nonspecific +Nonstop +Nontrivial +Nonuple +Nonviable +Nonviolent +Nonviolently +Noob +Noobie +Noobies +Noobish +Nooblord +Noobs +Noobtube +Nood +Noodle +Noodles +Nook +Nooks +Noon +Noone +Noones +Noor +Nope +Noped +Nopes +Nopotted +Nor +Nora +Norah +Nordic +Nordland69 +Nordland69's +Nords +Nordvpn +Norfland +Norfolk +Norge +Norlund +Norm +Normal +Normalcy +Normalise +Normalised +Normalising +Normality +Normalization +Normalize +Normalized +Normalizing +Normally +Normals +Normaly +Norman +Normandies +Normandy +Normandys +Normans +Normative +Normie +Normies +Norris +Norse +Norsemen +Norte +North +North Africa +North Macedonia +Northamptonshire +Northeast +Northeasterly +Northeastern +Northerly +Northern +Northern Mariana Islands +Northern Remnant +Northerner +Northerners +Northernmost +Northerns +Northest +Northland +Northlands +Northside +Northumberland +Northumbria +Northward +Northwest +Northwesterly +Northwestern +Northwoods +Norton +Norway +Norwegian +Noscope +Noscript +Nose +Nosed +Noses +Noshitsherlock +Nosotros +Nostalgia +Nostalgias +Nostalgic +Nostril +Nostrils +Nostrum +Nosy +Not +NotSoTyler +NotSoTyler's +NotWeirdGuy +NotWeirdGuy's +Not_A_Grape +Not_A_Grape's +Notable +Notables +Notably +Notarized +Notary +Notation +Notcapri +Notch +Notchalt +Notches +Notcheshire +Note +Noteblock +Noteblocks +Notebook +Notebooks +Notebox +Noteboxes +Noted +Notepad +Notes +Noteworthy +Nother +Nothin +Nothing +Nothingness +Nothings +Noticable +Noticably +Notice +Noticeable +Noticeably +Noticed +Notices +Noticing +Notification +Notifications +Notified +Notifies +Notify +Notifying +Noting +Notion +Notions +Notmyadmin +Notmyaegis +Noto +Notoriety +Notorious +Notoriously +Notre +Notruescotsman +Notsato +Notsomuch +Nottingham +Notwishstanding +Notwithstanding +Notwjkroeker +Nought +Noun +Nouns +Nourish +Nourishing +Nourishment +Nouveau +Nouvelle-Calédonie +Nova +Nova Prime +NovaCaesar +NovaCaesar's +NovaCeasar +NovaCeasar's +NovaStorm93 +NovaStorm93's +Novacaesar +Novaceasar +Novaceasars +Novas +Novazephyrose +Novel +Novelist +Novella +Novels +Novelties +Novelty +November +Novice +Novorossiya +Now +Nowadays +Nowhere +Nowheresville +Nox +Noxes +Noxfrenchfrys +Noxian +Noxington +Noxious +Noxvault +NoyaEleven +NoyaEleven's +Nozzle +Npc +Npcs +Npr +Nro'meagh +Nromeagh +Nsa +Nsdap +Nsfl +Nsfw +Nsw +Nth +Nu +Nuance +Nuanced +Nuances +Nub +Nubia +Nubian +Nubs +Nuclear +Nucleus +Nude +Nuder +Nudes +Nudest +Nudge +Nudged +Nudie +Nudies +Nudist +Nudist Beach +Nudists +Nudity +Nuechatel +Nuestros +Nueva +Nueva Myrador +Nuevo +Nuevos +Nufee +Nuff +Nugget +Nuggets +Nuggies +Nuggs +Nuh +Nui +Nuisance +Nuisances +Nuke +Nuked +Nukes +Nuking +Nukinmouse01 +Nukinmouse01's +Null +Nulled +Nullification +Nullified +Nullifies +Nullify +Nullifying +Nulling +Numb +Number +Numbered +Numbering +Numbers +Numberwise +Numbing +Numbingly +Numbness +Numbnuts +Numbskull +Numenor +Numeral +Numerals +Numeric +Numerical +Numerically +Numero +Numerous +Numpad +Nun +Nunca +Nunez +Nunnery +Nur +Nurse +Nursery +Nurses +Nursing +Nurture +Nurtured +Nurturing +Nut +Nutella +Nuthead +Nuthin +Nutjob +Nutjobs +Nutmeg +Nutricionista +Nutrients +Nutriment +Nutrition +Nutritional +Nutritious +Nuts +Nutshack +Nutshell +Nutty +Nutz +Nuzzles +Nvidia +Nvm +Nya +Nyaaa +Nyah +Nyan +Nyanzig +Nyarrative +Nyasaland +Nyc +Nyet +Nyla +Nylon +Nymph +Nymphs +Nypmh +Nypost +Nyx +O +OLivay +OLivay's +OOOUUUHHHTOODLES +OOOUUUHHHTOODLES's +Oaf +Oak +OakShelf +OakShelf's +Oakcrest +Oakenshieldt +Oakhurst +Oakland +Oakley +Oaks +Oakvale +Oakville +Oaky +Oar +Oars +Oases +Oasis +Oat +Oath +Oaths +Oatmeal +Oats +Obadiah +Obama +Obamas +Obby +Obbybomb +Obbybombed +Obbybomber +Obbybombers +Obbybombin' +Obbybombing +Obbybombs +Obbybot +Obedience +Obedient +ObedientSlave +ObedientSlave's +Obedientslave +Obelisk +Obelisks +Obese +Obesespatula +Obesity +Obey +Obeyed +Obeying +Obeys +Obfuscate +Obfuscated +Obfuscater +Obfuscates +Obfuscating +Obfuscation +Obfuscations +Obfuscator +Obi +Obituaries +Obituary +Obj +Object +Objected +Objectify +Objectifying +Objecting +Objection +Objectionable +Objections +Objective +Objectively +Objectives +Objectivism +Objectivity +Objects +Oblast +Oblation +Obligate +Obligated +Obligates +Obligating +Obligation +Obligations +Obligatory +Oblige +Obliged +Obliges +Obliging +Oblique +Obliquely +Obliterate +Obliterated +Obliterating +Oblivion +Oblivious +Oblong +Obnoxious +Obnoxiously +Obscene +Obscenely +Obscenities +Obscenity +Obscure +Obscured +Obscures +Obscuring +Obscurity +Obsequious +Observable +Observably +Observant +Observation +Observational +Observations +Observatory +Observe +Observed +Observent +Observer +Observers +Observes +Observing +Obsess +Obsessed +Obsessing +Obsession +Obsessions +Obsessive +Obsessively +Obsessives +Obsidian +Obsidians +Obsolescence +Obsolescent +Obsolete +Obstacle +Obstacles +Obstensibly +Obstinate +Obstinately +Obstrucionista +Obstruct +Obstructed +Obstructing +Obstruction +Obstructionist +Obstructions +Obstructive +Obstructs +Obtain +Obtainable +ObtainableSpat +ObtainableSpat's +ObtainableSpatula +ObtainableSpatula's +Obtainables +Obtainablespat +Obtainablespatula +Obtained +Obtaining +Obtains +Obtrusive +Obtuse +Obtuseness +Obv +Obvi +Obviate +Obvious +Obviously +Obvs +Ocala +Occasion +Occasional +Occasionally +Occasions +Occult +Occupancy +Occupant +Occupants +Occupation +Occupational +Occupations +Occupied +Occupier +Occupiers +Occupies +Occupy +Occupycolumbia +Occupying +Occur +Occurances +Occured +Occurences +Occuring +Occurred +Occurrence +Occurrences +Occurring +Occurs +Ocd +Ocean +Oceania +Oceans +Oceanside +Oceanview +Ocelot +Ocelots +Ochre +Oct +Octagon +Octagonal +Octagons +Octahedra +Octahedral +Octahedron +Octave +Octavia +Octavian +Octavius +Octavo +October +Octogon +Octopus +Octopuses +Ocular +Oculus +Ocupado +Odd +Oddball +Oddballs +Odder +Oddest +Oddish +Oddities +Oddity +Oddly +Oddness +Odds +Ode +Odette +Odin +Odor +Odoriferous +Odorous +Odors +Odresh +Odysseus +Odyssey +Oecd +Of +Ofc +Off +Offal +Offandishly +Offbrand +Offed +Offence +Offences +Offend +Offended +Offender +Offenders +Offending +Offends +Offense +Offenses +Offensive +Offensively +Offensiveness +Offensives +Offer +Offered +Offering +Offerings +Offers +Offhand +Offhandedly +Office +Officer +Officers +Offices +Official +Officialised +Officialized +Officially +Officials +Officiate +Officiating +Offline +Offlineplayer +Offload +Offloading +Offput +Offputting +Offseason +Offset +Offsetting +Offshoot +Offshoots +Offshore +Offshoring +Offsite +Offspring +Offtime +Oft +Often +Oftentimes +Ogden +Ogre +Oh +Ohai +Ohare +Ohgod +Ohh +Ohhh +Ohhhh +Ohhhhh +Ohhhhhh +Ohhhhhhhh +Ohhhhhhhhh +Ohhhhhhhhhhh +Ohhhhhhhhhhhhhh +Ohhkay +Ohio +Ohkay +Ohm +Ohnoes +Ohnothatsucks +Ohohohoh +Oil +Oiled +Oilfields +Oiling +Oils +Oily +Oink +Oinkster +Ointment +Oistins +Oj +Ok +Okashima +Okaun +Okaun's +Okay +Okayed +Okayish +Okey +Okeydokey +Oki +Okie +Okiedokie +Okies +Okinawa +Oklahoma +Oko +Oko's +Okx +Okx's +Olaf +Old +OldManMammoth +OldManMammoth's +Olde +Olden +Older +Oldest +Oldfriend +Oldfriends +Oldguard +Oldie +Oldies +Oldman +Olds +Oldschool +Oldschoolrunescape +Oldworldstyle +Ole +Oleksandr +Olfactory +Oligarch +Oligarchal +Oligarchic +Oligarchical +Oligarchies +Oligarchs +Oligarchy +Olive +Olivebranch +Oliver +Olives +Olivey +Olivia +Ollie +OllieSimpo +OllieSimpo's +Ololtic +Oltimes +Olympia +Olympian +Olympians +Olympias +Olympic +Olympics +Olympus +Omaha +Oman +Omar +Omari +Omega +Omegalul +Omelet +Omelette +Omen +Omens +OmerBenGera +OmerBenGera's +Omerican Federal Republic +Omfg +Omfgz +Omg +Ominous +Ominous Redwood Heavy Crossbow +Ominously +Omission +Omissions +Omit +Omits +Omitted +Omitting +Omn +Omni +Omnibenevolent +Omnibus +Omnimalevolent +Omnipotence +Omnipotent +Omnipresent +Omniscience +Omniscient +Omns +Omuck3 +Omuck3's +Omw +On +Onboard +Onboarded +Onboarding +Once +OnceDoceTrece +OnceDoceTrece's +Oncoming +One +OneBigMemer +OneBigMemer's +OneTruePunk +Oneness +Oneplus +Onerous +Ones +Oneself +Oneshot +Oneshots +Onesie +Onetruegod +Ongoing +Ongoings +Onichan +Onii +Oniisan +Onion +Onions +Onionstatic +Online +Onlooker +Onlookers +Only +OnlyRelyk +OnlyRelyk's +Onscreen +Onset +Onsite +Onslaught +Ontario +Onto +Ontologies +Ontology +Ontop +Onus +Onward +Onwards +Onyx +Oodles +Oof +Oofed +Ooga +Ooh +Oohhh +Oompa +Oomsþay +Ooof +Oooga +Oooh +Ooohhh +Oook +Oooo +Oooof +Ooooh +Oooohhh +Ooooo +Ooooof +Oooooffff +Oooooh +Ooooohhh +Ooooohhhh +Oooooo +Oooooof +Ooooooh +Ooooooo +Oooooooh +Oooooooo +Ooooooooh +Oooooooohhhhhhh +Oooooooooooh +Ooooooooooooo +Oop +Oops +Oopsdidntmeanto +Oopsie +Ooze +Oozed +Oozing +OozoraPD +OozoraPD's +Opacity +Opal +Opaque +Ope +Opec +Open +Openable +Opened +Opener +Opening +Openings +Openinventory +Openly +Openness +Opens +Opensource +Opera +Operable +Operandi +Operas +Operate +Operated +Operates +Operatic +Operating +Operation +Operational +Operations +Operative +Operatives +Operator +Operators +Opertunity +Ophelia +Opiate +Opiates +Opine +Opines +Opinion +Opinionated +Opinionation +Opinions +Opium +Oppenheimer +Opponent +Opponents +Opportune +Opportunism +Opportunist +Opportunistic +Opportunistically +Opportunists +Opportunities +Opportunity +Oppose +Opposed +Opposes +Opposing +Opposite +Opposites +Opposition +Oppositions +Oppress +Oppressable +Oppressed +Oppresses +Oppressing +Oppression +Oppressionist +Oppressive +Oppressively +Oppressor +Oppressors +Oprah +Opsec +Opt +Opted +Optic +Optical +Optician +Optics +Optifine +Optifines +Optimal +Optimally +Optimisation +Optimisations +Optimise +Optimised +Optimising +Optimism +Optimist +Optimista +Optimistic +Optimistically +Optimists +Optimization +Optimizations +Optimize +Optimized +Optimizer +Optimizes +Optimizing +Optimum +Optimus +Opting +Option +Optional +Optionally +Options +Optometrist +Optout +Opulence +Opulent +Opus +Or +Ora +Oracaidum +Oracaidum's +Oracle +Oracles +Oral +Orally +Oranage +Orang3d +Orang3d's +Orange +Orangehat +Oranges +Orangewizard +Orangewizards +Orangutans +Oratorical +Orators +Orb +Orbfuscator +Orbit +Orbital +Orbitals +Orbiter +Orbiters +Orbiting +Orbits +Orbs +Orc +Orchard +Orchestra +Orchestral +Orchestrate +Orchestrated +Orchestrates +Orchestrating +Orchestrators +Orchid +Orchids +Orcs +Ordain +Ordained +Ordeal +Ordeals +Order +Ordered +Ordering +Orderist +Orderly +Orders +Ordinance +Ordinances +Ordinarily +Ordinary +Ordination +Ordnance +Ore +OreStraya +OreStraya's +Orebfuscated +Orebfuscator +Orebfuscators +Oregon +Oren +Oreo +Oreobfuscation +Oreobfuscator +Oreos +Ores +Orespawn +Oreveins +Org +Organ +Organic +Organically +Organisation +Organisational +Organisations +Organise +Organised +Organiser +Organisers +Organising +Organism +Organisms +Organist +Organista +Organization +Organizational +Organizations +Organize +Organized +Organizer +Organizers +Organizes +Organizing +Organs +Orgasm +Orgasmic +Orhint +Orhint's +Orient +Oriental +Orientalist +Orientate +Orientated +Orientation +Orienting +Orifice +Orifices +Origin +Original +Originality +Originally +Originals +Originate +Originated +Originates +Originating +Origination +Originator +Origins +Orinarri +Orinnari +Orinnari's +Oriole +Orion +Ork +Orks +Orlando +Orleans +Ornamental +Ornamentation +Ornate +Ornations +Orphan +Orphanage +Orphaned +Orpheus +Orthodox +Orthodoxy +Orthogonal +Orthographes +Orthographic +Orthography +Orwell +Orwellian +Os +Osaka +Oscar +Oscars +Oscillating +Oscillation +Osha +Oslo +Osna +Oss +Ossenkirch +Ossetia +Ossificates +Ostensible +Ostensibly +Ostentatious +Ostracism +Ostracization +Ostracize +Ostracized +Ostrich +Ostriches +Osu +Oswald +Otaku +Otanabee +Othello +Other +Otherhand +Otherkin +Others +Otherside +Othertimes +Otherways +Otherwise +Otherwords +Otherworldly +Othey +Otis +Otonabee +Otter +Otters +Otto +Ottoman +Ottomans +Oubliette +Ouch +Ouchie +Ouchies +Ought +Oui +Ouija +Ounce +Ounces +Our +OurTrueLeader +Ourguy +Ouroboros +Ours +Ourself +Ourselfs +Ourselves +Ourtrueleader +Ourwolfgirl +Ousted +Ouster +Ousting +Out +Outage +Outages +Outback +Outbacks +Outbid +Outbreak +Outburst +Outbursts +Outcast +Outcasts +Outclass +Outclassed +Outclasses +Outcome +Outcomes +Outcompete +Outcry +Outdated +Outdid +Outdo +Outdoing +Outdone +Outdoor +Outdoors +Outed +Outengineered +Outer +Outermost +Outfit +Outfits +Outfitted +Outflanked +Outgame +Outgeared +Outgoing +Outgoings +Outgrown +Outguess +Outgunned +Outhouse +Outing +Outings +Outlandish +Outlast +Outlasted +Outlasting +Outlaw +Outlawed +Outlawing +Outlaws +Outlay +Outlet +Outlets +Outlier +Outliers +Outline +Outlined +Outlines +Outlining +Outlive +Outlook +Outloud +Outlying +Outmaneuver +Outmaneuvered +Outmatch +Outmatched +Outmemed +Outmemeing +Outnumber +Outnumbered +Outnumbering +Outnumbers +Outoftheloop +Outpace +Outpacing +Outperform +Outplay +Outplayed +Outplaying +Outpost +Outpostcraft +Outpouring +Outproduce +Outproduces +Output +Outputing +Outputs +Outputted +Outputting +Outrage +Outraged +Outrageous +Outrageously +Outranks +Outreach +Outreaching +Outright +Outro +Outrun +Outs +Outset +Outshined +Outside +Outsider +Outsiders +Outskill +Outskilled +Outskirts +Outsmart +Outsmarted +Outsmarting +Outsource +Outsourced +Outsources +Outsourcing +Outspoken +Outstanding +Outstandingly +Outstretching +Outstrip +Outta +Outvote +Outvoted +Outward +Outwardly +Outwards +Outweigh +Outweighed +Outweighing +Outweighs +Outweight +Ova +Oval +Ovarian +Ovary +Ovation +Oven +Ovens +Over +Overabundance +Overabundant +Overactive +Overage +Overall +Overalls +Overambitious +Overanalyzation +Overarching +Overbearing +Overbearingly +Overbidding +Overbloated +Overblown +Overboard +Overbuilding +Overbuilt +Overburden +Overcame +Overcast +Overcentralize +Overcharge +Overclaimed +Overclaiming +Overclocked +Overcome +Overcomes +Overcoming +Overcomplicate +Overcomplicated +Overconfidence +Overconfident +Overcook +Overcooked +Overcrowded +Overcrowding +Overdid +Overdo +Overdoing +Overdone +Overdose +Overdraft +Overdrafts +Overdragon +Overdramatic +Overdrive +Overdue +Overemotional +Overemphasis +Overestimate +Overestimated +Overestimating +Overestimation +Overexpanded +Overextend +Overflow +Overflowing +Overflows +Overgeneralizing +Overground +Overgrown +Overhang +Overhanging +Overhangs +Overhaul +Overhauled +Overhauling +Overhauls +Overhead +Overhear +Overheard +Overheat +Overheated +Overheats +Overhung +Overhyped +Overinflated +Overjoyed +Overkill +Overkilled +Overlaid +Overland +Overlap +Overlapped +Overlapping +Overlaps +Overlay +Overlayed +Overlaying +Overlays +Overload +Overloaded +Overloads +Overlook +Overlooked +Overlooking +Overlooks +Overlord +Overlords +Overly +Overnight +Overnights +Overpaid +Overpay +Overpaying +Overpayment +Overplayed +Overpopulation +Overpowered +Overpowering +Overpowers +Overpriced +Overpromising +Overran +Overrated +Overreach +Overreaches +Overreaching +Overreact +Overreacted +Overreacting +Overreaction +Overreactions +Overreacts +Overrepresentation +Overridden +Override +Overrides +Overriding +Overrode +Overrule +Overruled +Overrules +Overruling +Overrun +Overs +Oversalty +Oversaturated +Oversaturation +Oversaw +Overseas +Oversee +Overseeing +Overseen +Overseer +Overseers +Oversell +Overshadow +Overshadowed +Overshadowing +Overshoot +Overshooting +Overshot +Oversight +Oversights +Oversimplification +Oversimplified +Oversimplifying +Oversized +Overslept +Oversocialisation +Overspending +Overstate +Overstated +Overstatement +Overstating +Overstayed +Overstep +Overstepped +Overstepping +Oversteps +Oversupply +Overt +Overtake +Overtaken +Overtakes +Overtaking +Overthinking +Overthought +Overthrew +Overthrow +Overthrowing +Overthrown +Overthrows +Overtime +Overtly +Overton +Overtones +Overtook +Overture +Overtures +Overturn +Overturned +Overuse +Overused +Overusing +Overvalued +Overvaluing +Overview +Overviewer +Overviews +Overwall +Overwatch +Overweight +Overwhelm +Overwhelmed +Overwhelming +Overwhelmingly +Overwhelms +Overwork +Overworked +Overworld +Overworlds +Overwrite +Overwrites +Overwriting +Overwritten +Overzealous +Ovewzeawous +Ovid +Ovids +Ovos +Ovum +Ow +OwO +Owain X +Owain X's +OwainX +OwainX's +Owain_X +Owain_X's +Owe +Owed +Owen +Owens +Owes +Owie +Owies +Owing +Owl +Owls +Own +Owned +Owner +Owners +Ownership +Owning +Owns +Owo +Ows +Owww +Owwwwwwwwwwwww +Ox +Oxeye +Oxeyes +Oxford +Oxfordshire +Oxidation +Oxide +Oxygen +Oxymoron +Oxymoronic +Oy +Oye +Oyster +Oysters +Oz +Ozone +Ozymandias +Ozzy +PAWEL_XD_ +PAWEL_XD_'s +PCRato06 +PCRato06's +PUBG +Pa +Paagf +Paar +Pablo +Pac-Man +Pace +Paced +Pacem +Paces +Pacific +Pacifier +Pacifism +Pacifist +Pacifists +Pacify +Pacing +Pack +Package +Packaged +Packages +Packaging +Packard +Packed +Packer +Packers +Packet +Packetloss +Packets +Packing +Packs +Pact +Pacts +Pad +Padashah +Padawan +Padded +Padding +Paddington +Paddington_Bear +Paddington_Bear's +Paddle +Paddles +Paddling +Paddock +Paddy +Padlock +Pads +Paella +Pagan +Paganism +Pagans +Page +Pageant +Pageants +Paged +Pager +Pages +Paginated +Paging +Pagoda +Pagodas +Paid +Paige +Paimon +Pain +Pained +Painful +Painfully +Painkillers +Painless +Painlessly +Pains +Painstaking +Painstakingly +Paint +Paintball +Painted +Painted_Wolf666 +Painted_Wolf666's +Painter +Painters +Painting +Paintings +Paints +Pair +Paired +Pairing +Pairs +Paisley +Pajamas +Pakistan +Pal +Palace +Palaces +Paladin +Palanquin +Palatable +Palate +Palatial +Palatine +Palau +Palaver +Pale +Paleness +Paleolithic +Palermo +Pales +Palestine +Palestinian +Palestinian territories +Palestinians +Palette +Palisade +Palisades +Pall +Palladian +Palladio +Pallas +Pallet +Pallets +Palliate +Palliation +Palling +Pally +Palm +Palmer +Palmetto +Palms +Palmy +Palpable +Palpitation +Pals +Palsy +Paltry +Pam +Pamela +Pampered +Pampering +Pampers +Pamphlet +Pamphlets +Pan +Panacea +Panache +Panama +Panasonic +Pancake +Pancakes +Panda +PandaOLord +PandaOLord's +Pandapandel +Pandapandel's +Pandas +Pandastical +Pandastical's +Pandawhale +Pandemonium +Pander +Pandering +Pandora +Pandoras +Pane +Panegyric +Panel +Panels +Panem +Panes +Pang +Panic +Panicked +Panicking +Panicky +Panics +Panned +Panning +Panoply +Panorama +Pans +Pansies +Pansy +Pant +Pantheism +Pantheon +Panther +Pantheraxe +Pantheraxe's +Pantherr +Pantherr's +Panthers +Panties +Panto +Pantomiming +Pantos +Pantry +Pants +Pantyhose +Pantyshot +Pantyshot's +Panzer +PanzrV +PanzrV's +Pap +Papa +Papacy +Papal +Paparazzi +Papas +Paper +Paperback +Paperbacks +Papercuts +Papers +Paperwhite +Paperwork +Papist +Papists +Paprika +Paps +Papua New Guinea +Papua Niu Gini +Papyrus +Par +Para +Parable +Parachute +Parachutes +ParadIce +Parade +Paraded +Parades +Paradice +Paradigm +Paradigms +Parading +Paradise +Paradiso +Paradox +Paradoxes +Paradoxical +Paraffin +Paragon +Paragonius +Paragonius's +Paragons +Paragraph +Paragraphs +Paraguay +Parallel +Parallelogram +Parallels +Paralysed +Paralysis +Paralyze +Paralyzed +Paramagnetic +Parameter +Parameters +Paramilitary +Paramount +Paramour +Paranoia +Paranoid +Paranormal +Paraphernalia +Paraphrase +Paraphrased +Paraphrasing +Paras +Parasite +Parasites +Parasitic +Parasol +Parcel +Parcels +Pardner +Pardon +Pardoned +Pardons +Pare +Parent +Parental +Parentheses +Parenthesis +Parenting +Parents +Pareto +Pariah +Pariahs +Paris +Parish +Parishes +Parity +Park +Parked +Parking +Parkour +Parkouring +Parks +Parlance +Parley +Parliament +Parliamentary +Parlour +Parmesan +Parochial +Parodied +Parodies +Parody +Parodying +Parole +Paroled +Parolee +Parolees +Paroles +Paroxysm +Parrot +Parroting +Parrots +Parry +Parrying +Pars +Parse +Parsec +Parsed +Parser +Parses +Parsimonious +Parsimony +Parsing +Parsley +Parsonage +Parsons +Part +Partake +Partaken +Partakes +Partaking +Parted +Parthenon +Partial +Partiality +Partially +Participant +Participants +Participate +Participated +Participates +Participating +Participation +Participatory +Participle +Particle +Particles +Particular +Particularity +Particularly +Particulars +Partied +Parties +Parting +Partisan +Partition +Partitioned +Partitioning +Partly +Partner +Partnered +Partnering +Partners +Partnership +Partnerships +Partook +Partridge +Parts +Partway +Party +Party Island +Partying +Partyland +Partyland 2 +Parvenu +Pas +Pascal +Pasha +Pass +Passable +Passage +Passages +Passageway +Passcode +Passed +Passenger +Passengers +Passer +Passerby +Passersby +Passes +Passim +Passing +Passingly +Passion +Passionate +Passionately +Passions +Passive +Passively +Passives +Passivity +Passover +Passport +Passports +Password +Passwords +Past +Pasta +Pastas +Paste +Pastebin +Pastebins +Pasted +Pastel +Pastes +Pastie +Pastime +Pastimes +Pasting +Pastor +Pastors +Pastry +Pasts +Pasture +Pastures +Pasty +Pat +PatUff +PatUff's +Patar15 +Patar15's +Patch +Patched +Patches +Patchie_Man +Patchie_Man's +Patching +Patchwork +Pate +Patent +Patented +Patently +Patents +Paternalism +Paternalistic +Paternity +Path +Pathetic +Pathetically +Pathfind +Pathfinder +Pathfinding +Pathogen +Pathological +Pathology +Paths +Pathway +Pathways +Patience +Patient +Patiently +Patients +Patio +Patois +Patreon +Patreons +Patriarch +Patriarchal +Patriarchies +Patriarchist +Patriarchs +Patriarchy +Patricia +Patrician +Patricians +Patrick +PatrickBateman_ +PatrickBateman_'s +Patrickcio +Patrickcio's +Patrimony +Patriot +Patriotic +Patriotism +Patriots +Patrol +Patrolled +Patrolling +Patrols +Patron +Patronage +Patroness +Patronising +Patronize +Patronizing +Patrons +Pats +Patsy +Patter +Pattern +Patterned +Patterns +Patterson +Patties +Patting +Patty +Paucity +Paul +Paula +Pauldron +Paunch +Pauper +Paupers +Pause +Paused +Pauses +Pausing +Pave +Paved +Pavement +Pavhead +Pavia +Pavian +Pavian Equestrian Club +Pavier +Pavilion +Paving +Paw +PawPaw +Pawn +Pawnbroker +Pawned +Pawns +Paws +Pax +Paxton +Pay +Payable +Payback +Paybacks +Paycheck +Payday +Payed +Payer +Payers +Paygap +Paygrade +Paying +Payload +Payment +Payments +Payoff +Payoffs +Payout +Payouts +Paypal +Payroll +Pays +Payton +Pc +Pcgamer +Pds0303 +Pds0303's +Pea +Peace +Peaceable +Peaceably +Peaced +Peaceful +Peacefully +Peacefulness +Peacekeeper Beads +Peacekeeper Seal +Peacekeepers +Peacekeeping +Peacemaker +Peacesong +Peacetime +Peachyhue +Peachyhue's +Peak +Peaked +Peaking +Peaks +Peal +Pealed +Pealing +Peals +Peanut +Peanuts +Pear +Pearl +Pearlable +Pearlbanning +Pearlception +Pearlchest +Pearled +Pearled's +Pearlee +Pearler +Pearlers +Pearlholders +Pearlinating +Pearling +Pearlings +Pearls +Pearlworthy +Pearly +Pears +Pearson +Peas +Peasant +Peasantry +Peasants +Peat +Pebble +Pebbles +Peck +Pecking +Peculiar +Pedagogical +Pedagogue +Pedal +Pedalled +Pedalling +Pedals +Pedant +Pedantic +Pedantically +Pedantry +Peddle +Peddled +Peddler +Peddling +Pedestal +Pedestals +Pedestrian +Pedestrians +Pediatric +Pedigree +Pedro +Peeezyy +Peeezyy's +Peek +Peeked +Peeking +Peeks +Peel +Peeled +Peeling +Peels +Peen +Peep +Peeper +Peepo +Peeps +Peer +Peerage +Peerages +Peering +Peers +Pees +Peeve +Peeved +Peeves +Peevish +Peewee +Pegasus +Pejite +Pejorative +Pejoratives +Peking +Pelf +Pellet +Pellets +Pellucid +Pelosi +Pelt +Pelted +Pelvis +Pen +Pena +Penal +Penalised +Penalises +Penalising +Penalize +Penalized +Penalizes +Penalizing +Penalties +Penalty +Penance +Pence +Penchant +Pencil +Pencils +Pendant +Pending +Pendulous +Pendulum +Pendulums +Penelope +Penguin +Penguins +Peninsula +Peninsulas +Penitence +Penitentiary +Penknife +Penmanship +Penn +Pennant +Penned +Pennies +Penniless +Pennon +Pennsylvania +Penny +Pens +Pension +Pensions +Pent +Pentagon +Pentagonal +Pentagons +Pentagram +Pentateuch +Pentecost +Pentesters +Penthouse +Penthouses +Pentium +Penultimate +Penury +Peon +Peonies +Peons +Peony +People +People's Republic of Western Boundary +Peopled +Peoples +Peopling +Pep +Pepe +Pepes +Pepper +PepperX_ +PepperX_'s +Peppered +Peppering +Peppermint +Pepperoni +Pepperonis +Peppers +Peppy +Peps +Pepsi +Pepsicola +Per +Peradventure +Perambulator +Perceivable +Perceive +Perceived +Perceives +Percent +Percentage +Percentages +Percentile +Perception +Perceptions +Perceptive +Perch +Perched +Percolating +Percolation +Percolator +Percolators +Percussion +Percy +Perdikkas +Perdikkas13 +Perdikkas13's +Perdition +Peremptory +Perennial +Perfect +Perfected +Perfecter +Perfecting +Perfection +Perfectionism +Perfectionist +Perfectly +Perfidy +Perforated +Perforce +Perform +Performance +Performances +Performed +Performer +Performing +Performs +Perfume +Perfunctory +PergySkeel +PergySkeel's +Perhaps +Pericles +Peril +Perilous +Perils +Perimeter +Perimeters +Period +Periodic +Periodically +Periods +Peripheral +Peripheral Vision +Peripherals +Peripheries +Periphery +Perish +Perishable +Perishes +Perishing +Periwinkle +Perjured +Perjuring +Perjury +Perk +Perks +Perl +Perls +Perm +Perma +Permaban +Permabanned +Permabanning +Permabans +Permaed +Permalink +Permanence +Permanency +Permanent +Permanently +Permapearl +Permapearlable +Permapearled +Permapearling +Permapearls +Permavault +Permavaulted +Permavaulting +Permban +Permbanned +Permeantly +Permeate +Permeated +Permeates +Permeating +Permed +Permian +Perming +Permissible +Permission +Permissions +Permissive +Permissiveness +Permit +Permits +Permitted +Permitting +Perms +Permutable +Permutation +Permutations +Peron +Peroration +Peroxide +Perpendicular +Perpetrated +Perpetrator +Perpetrators +Perpetual +Perpetually +Perpetuate +Perpetuated +Perpetuates +Perpetuating +Perpetuation +Perpetuity +Perplex +Perplexed +Perplexes +Perplexing +Perry +Persecute +Persecuted +Persecuting +Persecution +Persephone +Persepolis +Perseus +Perseverance +Persevere +Persia +Persian +Persians +Persist +Persistance +Persistant +Persisted +Persistence +Persistency +Persistent +Persistently +Persisting +Persists +Person +Persona +Personable +Personae +Personal +Personalised +Personalities +Personality +Personalized +Personally +Personals +Personas +Personification +Personifications +Personify +Personnel +Persons +Perspective +Perspectives +Perspicacity +Perspicuity +Perspiration +Persuade +Persuaded +Persuading +Persuasion +Persuasive +Persue +Persued +Persuing +Pert +Pertain +Pertaining +Pertains +Perth +Pertinacious +Pertinacity +Pertinent +Perturbation +Perturbed +Peru +Peruse +Perused +Perusing +Peruvian +Peshawar +Pesky +Peso +Pesos +Pessimism +Pessimist +Pessimistic +Pest +Pester +Pestered +Pestering +Pestilence +Pestilent +Pestle +Pesto +Pests +Pet +Petal +Pete +Peter +Peter5930 +Peter5930's +Petergrad +Peters +Peterson +Petiole +Petite +Petition +Petitioned +Petitioning +Petitions +Petoria +Petra +Petrichor +Petrigrad +Petrodollar +Petrol +Petroleum +Pets +Petted +Pettier +Pettily +Pettiness +Petting +Petty +Petulance +Petulant +Petulantly +Pew +Pewdiepie +Pewter +Peyote +Peyton +Pg +Phaeton +Phalanx +Phallic +Phallus +Phantom +Phantoms +Pharaoh +Pharisees +Pharmaceutical +Pharmaceuticals +Pharmacies +Pharmacology +Pharmacy +Phase +Phased +Phaser +Phases +Phasmati +Phasmati's +Phat +Phd +Phds +Pheasant +Phenomena +Phenomenal +Phenomenally +Phenomenon +Phenoms +Phew +Phi +Phial +Phil +Philadelphia +Philanthropic +Philanthropist +Philanthropy +Philemon +Philip +Philippics +Philippine +Philippines +Philips +Phillip +Phillips +Philly +Philology +Philosopher +Philosopher's stone +Philosophers +Philosophic +Philosophical +Philosophically +Philosophies +Philosophy +Phishing +Phlegm +Phlegmatic +Phobia +Phobias +Phobitica +Phobitica's +Phoenicia +Phoenician +Phoenix +Phone +Phones +Phonetic +Phoney +Phonies +Phoning +Phonograph +Phony +Phosphate +Phosphates +Phosphorescence +Phosphorescent +Phosphoric +Phosphorus +Photo +Photoelectron +Photogenic +Photograph +Photographed +Photographer +Photographers +Photographic +Photographs +Photography +Photonic +Photos +Photoshoot +Photoshop +Photoshopped +Photoshopping +Photosynthesis +Phrase +Phrased +Phrases +Phrasing +Phylon +Phys +Physical +Physically +Physician +Physicians +Physicist +Physics +Physics +PhysicsGamer +PhysicsGamer's +Physiognomy +Physiological +Physiologically +Physiology +Physique +Pi +Pia +Pianist +Piano +Pianoforte +Pianos +Pic +Picasso +Pick +Pickaxe +Pickaxes +Picked +Picker +Pickering +Picket +Picketing +Picking +Pickings +Pickle +Pickled +Pickles +Pickpocket +Picks +Pickup +Pickups +Picky +Picle1 +Picle1's +Picnic +Picnics +Pics +Picture +Pictured +Pictures +Picturesque +Picturing +Piddly +Pidgin +Pie +Piebald +Piece +Pieced +Piecemeal +Pieces +Piecing +Pied +Piedmont +Pier +Pierce +Pierced +Pierces +Piercing +Pierre +Piers +Pies +Pig +Pigeon +Pigeonhole +Pigeonholed +Pigeons +Piggies +Piggish +Piggy +Piggyback +Piggybacked +Piggybacking +Pigheaded +Pigment +Pigpen +Pigs +Pigtail +Pikachu +Pike +Pikes +Pilate +Pile +Piled +Piles +Pilfer +Pilfering +Pilgrim +Pilgrimage +Pilgrims +Piling +Pilipinas +Pill +Pillage +Pillaged +Pillager +Pillagers +Pillaging +Pillar +Pillared +Pillaring +Pillars +Pillboxes +Pillcase +Pillcase's +Pilled +Pillock +Pillory +Pillow +Pillows +Pills +Pilot +Piloted +Piloting +Pilots +Piltover +Pimp +Pimply +Pimps +Pin +Pinafore +Pinata +Pinatas +Pincer +Pincers +Pinch +Pinched +Pinching +Pine +Pineapple +Pinegarden Commonwealth +Ping +Pinged +Pinging +Pings +Pining +Pink +PinkGal2007 +PinkGal2007's +Pinker +Pinkerton +Pinkertons +Pinkertown +Pinkie +Pinko +Pinkos +Pinky +Pinnable +Pinnacle +Pinned +Pinning +Pinochet +Pinpoint +Pinpointed +Pinpoints +Pins +Pint +Pints +Pinups +Pioneer +Pioneered +Pioneering +Pioneers +Pip +Pipe +Piped +Pipeline +Pipelines +Piper +Pipes +Piping +Piquant +Pique +Piqued +Piracy +Piranha +Pirate +Pirated +Pirater +Pirater's +Piraters +Pirates +Pirating +Pisa +Pisces +Pistachio +Pistil +Piston +Pistons +Pit +Pita +Pitbull +Pitcairn Island +Pitch +Pitched +Pitches +Pitchfork +Pitchforks +Pitfall +Pitfalls +Pith +Pithy +Pitiable +Pitied +Pitiful +Pitifully +Pits +Pitt +Pittance +Pitted +Pitting +Pittsburgh +Pity +Pius +Pivot +Pivotal +Pix +Pixel +Pixelart +Pixelated +Pixels +Pixie +Pizza +Pizzas +Pizzazz +Pizzeria +Pizzerias +Pk +Pl +Placard +Placate +Placated +Place +Placeable +Placebo +Placed +Placeholder +Placeholders +Placement +Placements +Placenta +Placer +Placers +Places +Placing +Plagadonia +Plagiarism +Plagiarize +Plagiarized +Plague +Plagued +Plagues +Plaguing +Plaid +Plain +Plainly +Plains +Plaint +Plaintext +Plaintiff +Plait +Plan +Plane +Planed +Planes +Planet +Planetary +Planets +Planing +Plank +Planks +Plankton +Planned +Planner +Planners +Planning +Plans +Plant +Plantain +Plantains +Plantation +Plantations +Planted +Planting +Plants +Plaque +Plash +Plasma +Plaster +Plaster Rock +Plastered +Plastering +Plastic +Plastics +Plat +Plate +Plateau +Plateauing +Plateaus +Plated +Plates +Platform +Platforms +Platinum +Plato +Platonic +Platoon +Platter +Plaudits +Plausibility +Plausible +Plausibly +Play +Playability +Playable +Playback +Playbook +Playboy +Played +Player +PlayerH_ +PlayerH_'s +Playerbase +Playercap +Playercount +Playerdata +Playerheads +Playermade +Playername +Players +Playertype +Playful +Playfulness +Playground +Playgroup +Playing +Playlist +Playlists +Playmate +Playoff +Playoffs +Playpen +Playpens +Plays +Playstation +Plaything +Playtime +Playwright +Plaza +Plazas +Plea +Plead +Pleaded +Pleading +Pleads +Pleas +Pleasant +Pleasantly +Pleasantry +Please +Pleased +Pleases +Pleasing +Pleasurable +Pleasure +Pleasured +Pleasures +Pleasuring +Pleat +Pleb +Plebeian +Plebeians +Plebes +Plebs +Pledge +Pledged +Pledges +Pledging +Pleiades +Plenary +Plenipotentiary +Plentiful +Plentifully +Plenty +Plethora +Pliable +Pliant +Plied +Plight +Plod +Plop +Plopped +Plot +Plots +Plotted +Plotter +Plotting +Plover +Plowshares +Ploy +Ploys +Plrog +Plrog's +Pluck +Plucked +Plucky +Plugin +Plugins +Plugs +Plum +Plumage +Plumb +Plumber +Plumbing +Plume +Plummet +Plummeted +Plummeting +Plummets +Plums +Plunder +Plundered +Plundering +Plunge +Plunged +Plunger +Plunk +Plupsnup +Plupsnup's +Plural +Plurality +Pluralize +Plurals +Plus +Pluses +Plush +Plutarch +Pluto +Plutocracy +Plutonium +Ply +Plying +Plymouth +Pm +Pneumonia +Po +Poach +Poached +Poaching +Pocket +Pocketbook +Pocketed +Pocketing +Pockets +Pocky78 +Pocky78's +Pod +Podcast +Podcasts +Podium +Podly +Podly's +Pods +Podzol +Poe +Poem +Poems +Poet +Poetess +Poetic +Poetry +Poets +Pog +Pogchamp +Pogdaddy +Poggers +Pogland +Poi +Poignant +Point +Pointed +Pointer +Pointers +Pointing +Pointless +Pointlessly +Pointlessness +Points +Pointy +Poise +Poised +Poison +Poisoned +Poisoning +Poisonous +Poisons +Poisson392 +Poisson392's +Poke +Pokeball +Pokeballs +Poked +Pokedex +Pokemon +Poker +Pokes +Poking +Poky +Pokémon +Pol +Pol'sha Litva +Pol'sha-Litva +Poland +Polar +Polaris +Polarisation +Polarity +Polarization +Polarize +Polarized +Polarizing +Polaroid +Pole +Polearm +Polemic +Polemical +Poles +Police +Policed +Policeman +Polices +Policies +Policing +Policy +Polifriend +Polio +Polis of Hauthollia +Polish +Polished +Polisher +Polishing +Politburo +Polite +Politely +Politeness +Politic +Political +Politically +Politician +Politicians +Politicise +Politicised +Politicking +Politico +Politicos +Politics +Polity +Poll +Polled +Pollen +Polling +Polls +Pollster +Pollute +Polluted +Polluters +Polluting +Pollution +Pollux +Pollyanna +Polo +Pols +Polska +Polskizoldak +Polskizoldak's +Poltergeist +Poly +Polyester +Polygamy +Polygon +Polygons +Polyhedron +Polymer +Polymorphic +Polynesia +Polynesian +Polynesians +Polynomial +Polynésie Française +Polyphonic +Polytheism +Polytheistic +Polytheists +Pom +Pomegranate +Pomerania +Pomeranian +Pommel +Pompeii +Pompeus +Pompous +Ponce +Ponces +Pond +Pond Scum +Ponder +Pondered +Pondering +Ponds +Pone +Pong +Pongee +Poniard +Ponies +PonkotsuPlea +PonkotsuPlea's +Pontiac +Pontiff +Pontificating +Pontoon +Pony +Ponytail +Poo +Pooch +Poodle +Pooed +Poof +Pooh +Pooja +Pool +PoolPartyColin +PoolPartyColin's +Poole +Pooled +Pooling +Pools +Poor +Poorer +Poorest +Poorly +Poos +Pop +Popcorn +Pope +Popes +Poplar +Popout +Poppa +Popped +Poppers +Poppies +Popping +Poppy +Pops +Popsicle +Populace +Populaces +Popular +Popularising +Popularity +Popularized +Popularly +Populate +Populated +Populates +Populating +Population +Populations +Populism +Populist +Populists +Populous +Popup +Popups +Porcelain +Porch +Porcine +Porcupine +Pore +Pored +Pores +Porial +Pork +Porkchop +Porkchops +Porker +Porky +Porous +Porphyry +Porpoise +Porridge +Porsche +Port +Portability +Portable +Portal +Portals +Portcullis +Portcullises +Ported +Portend +Portent +Portentous +Porter +Portfolio +Portico +Porting +Portion +Portioned +Portions +Portland +Portly +Portmanteau +Porto +Portrait +Portraits +Portraiture +Portray +Portrayal +Portrayed +Portraying +Portrays +Ports +Portsmouth +Portugal +Portuguese +Pose +Posed +Poseidon +Poser +Posers +Poses +Posh +Posing +Posit +Positing +Position +Positional +Positioned +Positioning +Positions +Positive +Positively +Positives +Positivism +Positivity +Posse +Posses +Possess +Possessed +Possesses +Possessing +Possession +Possessions +Possessive +Possessor +Possibilities +Possibility +Possible +Possibly +Possum +Possums +Post +Postage +Postal +Postcard +Postcards +Posted +Poster +Posterboy +Posterior +Posteriors +Posterity +Posters +Posthaste +Posthumous +Posthumously +Posting +Postings +Postman +Postmark +Postmaster +Postmodern +Postmodernism +Postmodernist +Postmorphia +Postpone +Postponed +Postponement +Postponing +Posts +Postscript +Postulate +Posture +Posturing +Postwar +Pot +Potash +Potassium +Potato +Potato_Duke +Potato_Duke's +Potato_Lyria +Potato_Lyria's +Potatoes +Potatos +Potelos +Potelos's +Potemkin +Potency +Potent +Potentate +Potential +Potentially +Potentiating +Potheads +Potholes +Potion +Potions +Potistan +Potnoodle +Pots +Potsdam +Potshots +Potted +Potter +Pottering +Pottery +Potting +Potty +Potus +Pouch +Poultry +Pounce +Pound +Pounded +Pounding +Pounds +Pour +Poured +Pouring +Pours +Pout +Poverty +Pow +Powder +Powdered +Powell +Power +Power ring +Powered +Powerful +Powerfully +Powergaming +Powerhouse +Powerhouses +Powering +Powerless +Powerlevel +Powerlevels +Powerpoint +Powers +Pox +Pp +Ppm +Ppr +Pr +Practical +Practicalities +Practicality +Practically +Practice +Practiced +Practices +Practicing +Practise +Practised +Practises +Practising +Practitioner +Practitioners +Praetor +Praetors +Pragmatic +Pragmatically +Pragmatics +Pragmatism +Prague +Prairie +Praise +Praised +Praises +Praiseworthy +Praising +Pram +Prancing +Prank +Pranked +Pranker +Pranking +Pranks +Prankster +Pranksters +Pratchett +Prate +Prathet Thai +Pratt +Prattle +Pratyush09 +Pratyush09's +Praxis +Pray +Prayed +Prayer +Prayers +Praying +Prays +Preach +Preached +Preaches +Preaching +Preachy +Prealgebra +Preamble +Preannounced +Preapproved +Preauthorization +Prebuilt +Precalc +Precarious +Precariously +Precaution +Precautionary +Precautions +Precede +Preceded +Precedence +Precedent +Precedents +Precedes +Preceding +Precept +Preceptor +Precepts +Precious +Preciously +Precipice +Precipitate +Precipitated +Precipitately +Precipitation +Precipitous +Precise +Precisely +Precision +Preclude +Precluded +Precludes +Precocious +Preconceived +Preconceptions +Precondition +Preconditions +Preconfigured +Precursor +Precursors +Predate +Predates +Predating +Predator +Predators +Predatory +Predecessor +Predecessors +Predefined +Predetermined +Predicament +Predicate +Predicated +Predicates +Predict +Predictability +Predictable +Predictably +Predicted +Predicting +Prediction +Predictions +Predictive +Predictor +Predicts +Predilection +Predisposed +Predominance +Predominant +Predominantly +Predominately +Preemptive +Preemptively +Preexist +Preexisting +Preexists +Pref +Prefab +Preface +Prefaced +Prefacing +Prefatory +Prefect +Prefects +Prefecture +Prefectures +Prefer +Preferable +Preferably +Preference +Preferences +Preferential +Preferment +Preferrable +Preferred +Preferring +Prefers +Prefix +Prefixed +Prefixes +Preform +Preforming +Preforms +Prefrontal +Pregnancy +Pregnant +Preheat +Prehistoric +Prehistory +Prejudge +Prejudging +Prejudice +Prejudiced +Prejudices +Prejudicial +Prelate +Preliminary +Preload +Preloaded +Prelude +Premade +Premarital +Premature +Prematurely +Premeditated +Premeditation +Premier +Premiere +Premiers +Premiership +Premise +Premised +Premises +Premium +Premiums +Premodern +Premonition +Premonitions +Prenatal +Preoccupation +Preoccupied +Preorder +Preordered +Prepaid +Preparation +Preparations +Prepare +Prepared +Preparedness +Prepares +Preparing +Preplanned +Preponderance +Preposition +Preposterous +Prepped +Prepping +Preppy +Prepubescent +Prepubescents +Prequel +Prerelease +Prerequisite +Prerequisites +Prerogative +Pres +Presage +Presale +Presbytery +Preschool +Prescience +Prescribe +Prescribed +Prescripted +Prescription +Prescriptions +Prescriptive +Presence +Present +Presentable +Presentation +Presentations +Presented +Presentiment +Presenting +Presently +Presents +Preservation +Preservative +Preserve +Preserved +Preserves +Preserving +Preset +Presets +Preside +Presided +Presidency +President +Presidential +Presidents +Presiding +Presley +Press +Pressed +Presses +Pressing +Pressure +Pressured +Pressures +Pressuring +Prestige +Prestigious +Preston +Presumable +Presumably +Presume +Presumed +Presumes +Presuming +Presumption +Presumptions +Presumptive +Presumptuous +Presuppose +Presupposes +Preteen +Preteens +Pretence +Pretences +Pretend +Pretended +Pretender +Pretenders +Pretending +Pretends +Pretense +Pretenses +Pretension +Pretensions +Pretentious +Preternatural +Pretext +Prettier +Prettiest +Prettiness +Pretty +Pretzel +Pretzels +Prev +Prevail +Prevailed +Prevailing +Prevails +Prevalence +Prevalent +Prevent +Preventable +Preventative +Prevented +Preventing +Prevention +Preventive +Prevents +Preview +Previews +Previous +Previously +Previse +Previse's +Prewritten +Prey +Preying +Price +Priced +Priceless +Prices +Pricetag +Pricey +Pricing +Prick +Prickly +Pricks +Pricy +Pride +Pride's Focus +Prided +Prideful +Prides +Priest +Priestess +Priestly +Priests +Prig +Prim +Prima +Primacy +Primal +Primaries +Primarily +Primary +Primate +Primates +Prime +Primed +Primer +Primes +Primetime +Primeval +Priming +Primitive +Primitivefriend +Primordial +Primrose +Prince +Princedom +Princedoms +Princes +Princess +Princess Bow +Princess Bow's +PrincessKateyUK +PrincessKateyUK's +Princess_Bow +Princess_Bow's +Princess__Bow +Princess__Bow's +Princesses +Princeton +Principal +Principality +Principally +Principals +Principle +Principled +Principles +Pringle +Pringles +Print +Printable +Printed +Printer +Printers +Printing +Printings +Prints +Prions +Prior +Priorities +Prioritised +Prioritising +Prioritize +Prioritized +Prioritizes +Prioritizing +Priority +Priors +Priory +Pripyat +Priscilla +Prism +Prisma +Prismarine +Prison +Prisonbed +Prisonbeds +Prisoner +Prisoners +Prisonpearl +Prisonpearled +Prisonpearling +Prisonpearls +Prisons +Prissy +Pristine +Prithee +Prius +Privacy +Private +Privateer +Privateers +Privately +Privates +Privation +Privatisation +Privatising +Privatization +Privatize +Privatized +Privilege +Privileged +Privileges +Privy +Priya +Prize +Prized +Prizes +Pro +ProMagicKai +ProMagicKai's +Proactive +Proactively +Prob +Probabilistic +Probabilities +Probability +Probable +Probably +Probate +Probation +Probationary +Probe +Probes +Probing +Probity +Problem +Problematic +Problematical +Problemo +Problems +Proboscis +Procedural +Procedure +Procedures +Proceed +Proceeded +Proceeding +Proceedings +Proceeds +Process +Processed +Processes +Processing +Processor +Processors +Proclaim +Proclaimed +Proclaiming +Proclaims +Proclamation +Proclamations +Proclivity +Procrastinate +Procrastinated +Procrastinating +Procrastination +Procrastinators +Procreate +Procreation +Procure +Procurement +Procures +Procuring +Procyon +Prod +Prodded +Prodding +Prodigal +Prodigy +Produce +Produced +Producer +Producers +Produces +Producible +Producing +Product +Production +Productions +Productive +Productively +Productivity +Products +Prof +Profess +Professed +Professes +Professing +Profession +Professional +Professionalism +Professionally +Professionals +Professions +Professor +ProfessorRet +Professors +Professorship +Proffer +Proficiency +Proficient +Profile +Profiled +Profiles +Profit +Profitability +Profitable +Profitably +Profited +Profiteer +Profiteering +Profiteers +Profiting +Profitless +Profits +Profligacy +Profligate +Profound +Profoundly +Profs +Profundity +Profuse +Profusely +Progenitor +Progeny +Program +ProgramMC +ProgramMC's +Programmable +Programmatic +Programmatically +Programme +Programmed +Programmer +ProgrammerDan +ProgrammerDan's +Programmerdan +Programmerdans +Programmers +Programmes +Programming +Programs +Progress +Progressed +Progresses +Progressing +Progression +Progressive +Progressively +Progressives +Prohibit +Prohibited +Prohibiting +Prohibition +Prohibitive +Prohibitively +Prohibits +Project +Projected +Projectile +Projectiles +Projecting +Projection +Projections +Projector +Projectors +Projects +Prole +Proles +Proletarian +Proletariat +Proliferate +Proliferation +Prolific +Prolix +Prolixity +Prologue +Prolong +Prolonged +Prolonging +Prom +Promenade +Prometheus +Prominence +Prominent +Prominently +Promiscuous +Promise +Promised +Promises +Promising +Promo +Promos +Promote +Promoted +Promoter +Promotes +Promoting +Promotion +Promotional +Promotions +Prompt +Prompted +Prompter +Prompting +Promptly +Prompts +Promulgate +Promulgated +Promulgation +Pron +Prone +Pronged +Pronk +Pronoun +Pronounce +Pronounceable +Pronounced +Pronouncement +Pronouncing +Pronouns +Pronto +Pronunciation +Pronunciations +Proof +Proofing +Proofread +Proofreader +Proofreading +Proofs +Prop +Propaganda +Propagandising +Propagandist +Propagandists +Propagandize +Propagate +Propagated +Propagates +Propagating +Propagation +Propel +Propellant +Propelled +Propeller +Propensity +Proper +Properly +Properties +Property +Prophecies +Prophecy +Prophecy, Gem of the King +Prophesy +Prophet +Prophetic +Prophets +Prophylactic +Propitiate +Propitiatory +Propitious +Proponent +Proponents +Proportion +Proportional +Proportionality +Proportionally +Proportionate +Proportionately +Proportioned +Proportions +Proposal +Proposals +Propose +Proposed +Proposes +Proposing +Proposition +Propositions +Propound +Propped +Propping +Proprietary +Proprietor +Props +Propulsion +Pros +Prosaic +Prose +Prosecute +Prosecuted +Prosecutes +Prosecuting +Prosecution +Prosecutions +Prosecutor +Prosecutors +Proselytized +Prospect +Prospecting +Prospective +Prospector +Prospectors' Guild +Prospects +Prosper +Prospered +Prospering +Prosperity +Prosperous +Prosperously +Prospers +Prosy +Protagonist +Protagonists +Protect +Protected +Protecting +Protection +Protectionist +Protections +Protective +Protectiveness +Protector +Protectorate +Protectorates +Protectors +Protects +Protege +Protein +Proteins +Protest +Protestant +Protestantism +Protestants +Protestation +Protested +Protester +Protesters +Protesting +Protests +Protocol +Protocols +Proton +Proton pack +Protons +Protoplasm +Prototype +Prototypes +Prototypical +Prototyping +Protracted +Protuberance +Protuberances +Proud +Proud Cage +Proudest +Proudhon94 +Proudhon94's +Proudly +Provability +Provable +Provably +Prove +Proved +Proven +Provencal +Provence +Provender +Proverb +Proverbial +Proverbially +Proverbs +Proves +Provide +Provided +Providence +Providence's +Providential +Provider +Providers +Provides +Providing +Province +Provinces +Provincia +Provincial +Proving +Provision +Provisional +Provisionally +Provisioned +Provisions +Proviso +Provocateur +Provocateurs +Provocation +Provocations +Provocative +Provoke +Provoked +Provokes +Provoking +Provost +Prow +Prowess +Prowl +Prowling +Proxies +Proximal +Proximate +Proximity +Proxy +Prozac +Prudence +Prudence, Ferocity of Darkness +Prudent +Prudes +Prudish +Prune +Pruned +Prussia +Prussian +Prussians +Pruthenia +Pry +Prying +Pryor +Psalm +Psalms +Pseudo +Pseudocode +Pseudonym +Pseudoscience +Pshaw +Psi +Psst +Psych +Psyche +Psychedelic +Psychiatric +Psychiatrist +Psychiatrists +Psychiatry +Psychic +Psychical +Psycho +Psychoanalysis +Psychoanalyzing +Psychological +Psychologically +Psychologist +Psychologists +Psychology +Psychopath +Psychopathic +Psychopaths +Psychos +Psychosis +Psychotic +Pub +Public +Publication +Publications +Publicise +Publicised +Publicising +Publicity +Publicize +Publicized +Publicizing +Publicly +Publish +Publishable +Published +Publisher +Publishers +Publishes +Publishing +Pubs +Puck +Pucks +Pudding +Puddle +Puddles +Pueblo +Pueblos +Puerile +Puerto +Puerto Rico +Puff +Puffed +Puffer +Puffin +Puffing +Puffins +Puffs +Pug +Puggle +Pugnacious +Puhrple +Puhrple's +Puke +Puking +Pulitzer +Pull +Pulled +Pulley +Pulling +Pulls +Pulmonary +Pulp +Pulpit +Pulsation +Pulse +Pulses +Pulsing +Pulverization +Pulverize +Pulverized +Puma +Pump +Pumped +Pumping +Pumpkin +PumpkinPie134 +PumpkinPie134's +Pumpkins +Pumps +Pun +Punch +Punched +Punches +Punching +Punchline +Punctilious +Punctual +Punctuate +Punctuation +Puncture +Pundits +Pungent +Punic +Punish +Punishable +Punished +Punishes +Punishing +Punishment +Punishments +Punitive +Punjab +Punjabi +Punk +Punks +Puns +Punt +Puny +Pup +Pupils +Puppet +Puppeteer +Puppetmaster +Puppets +Puppies +Puppy +Puppydog +Puppyface +Puppys +Pups +Purblind +Purchasable +Purchase +Purchased +Purchaser +Purchases +Purchasing +Purdue +Pure +Purebred +Puree +Purely +Pureness +Purest +Purgatory +Purge +Purged +Purges +Purging +Purification +Purified +Purify +Purism +Purist +Purists +Puritan +Purity +Purl +Purple +Purplish +Purport +Purported +Purportedly +Purporting +Purports +Purpose +Purposed +Purposeful +Purposefully +Purposeless +Purposely +Purposes +Purr +Purse +Pursing +Pursuant +Pursue +Pursued +Pursuers +Pursues +Pursuing +Pursuit +Pursuits +Purveyor +Purview +Pus +Push +Pushed +Pusher +Pushers +Pushes +Pushing +Pushover +Pushovers +Pushy +Pusillanimous +Putrefaction +Putrid +Puts +Putsch +Putt +Putted +Puttering +Putting +Putty +Putz +Puzzle +Puzzled +Puzzles +Puzzling +PvP +Pvp +Pvpeee +Pvper +Pvpers +Pvpfriend +Pvping +Pvt +Pwn +Pwned +Pyjamas +Pylon +Pylons +Pyongyang +Pyotr +Pyramid +Pyramidal +Pyramids +Pyre +Pyrenees +Pyrites +Pyro +Pyro6_6_6 +Pyro6_6_6's +Pyromancer +Pyromaniac +Pyromantic +Pyrrhic +Pythagorean +Pythius +Pythius's +Pythius_Df +Pythius_Df's +Python +Pythons +Q +Q'Barra +Qaad +Qaad's +Qatar +Qaulity +Qazaqstan +Qiickly +Qinzu +Qiuck +Qji +Qji's +Quack +Quad +Quadrangle +Quadrant +Quadrants +Quadrat +Quadratic +Quadratically +Quadrilateral +Quadriplegic +Quadrouple +Quadruple +Quads +Quailty +Quake +Quakee +Quaking +Qualification +Qualifications +Qualified +Qualifier +Qualifiers +Qualifies +Qualify +Qualifying +Qualitative +Qualitatively +Quantify +Quantifying +Quantitative +Quantity +Quanton +Quanton_Biscuit +Quanton_Biscuit's +Quantum +Quarantine +Quarks +Quarrel +Quarrels +Quarrelsome +Quarries +Quarry +Quarter +Quarterbacks +Quartered +Quarterly +Quartermaster +Quarters +Quartet +Quartile +Quarts +Quauhtli +Quauhtli's +Que +Quebec +Queen +Queen Anne's Lace +Queenly +Queensland +Queensport +Queer +Queerer +Queers +Quell +Quelled +Quelling +Quelques +Quench +Quentin +Quenya +Queried +Quesiton +Quesitons +Queso +Quest +Questing +Question +Questionable +Questionably +Questionbale +Questioned +Questioner +Questioning +Questionnaire +Questions +Quests +Queue +Queues +Queuing +Quick +Quickdrop +Quickdropped +Quickdropping +Quickdrops +Quickest +Quickfix +Quickly +Quickness +Quickstart +Quicktime +Quien +Quiescent +Quiet +Quietly +Quietness +Quietude +Quilt +Quincy +Quinine +Quinn +Quinndolin +Quinndolin's +Quintessence +Quintessential +Quintessentially +Quire +Quirk +Quirks +Quirky +Quit +Quite +Quiting +Quitposting +Quits +Quitted +Quitter +Quitters +Quityourbullshit +Quiz +Quizies +Quizzes +Quoordinates +Quoords +Quota +Quotas +Quotation +Quotations +Quote +Quoted +Quotes +Quotient +R +R2D231 +R2D231's +R3Y_J04N +R3Y_J04N's +RCECKIE +RCECKIE's +RSVP +RTX +Ra +Rabbi +Rabbid +Rabbinical +Rabbis +Rabbit +Rabbits +Rabble +Rabid +Rabidly +RacconOnCrack +RacconOnCrack's +Raccoon +Race +Racecourse +Raced +Racers +Races +Racetrack +Rachel +Racing +Rack +Racked +Racket +Rackets +Racking +Racks +Racy +Rad +Rada +Radar +Radarbro +Radarconfig +Radarjammer +Radars +Raddest +Radeon +Radial +Radian +Radians +Radiant +Radiate +Radiating +Radiation +Radiator +Radical +Radicalised +Radicalize +Radicalizing +Radically +Radicals +Radio +Radioactive +Radioactivity +Radiobeacon +Radiobeacons +Radiohead +Radios +Radiotowers +Radium +Radius +Radiuses +Radmin +Radmins +Rae +Raeders +Raeders's +Raekwon +Raelynn +Rafael +Raff +Raffie +Raft +Rag +Rage +Raged +Ragefest +Ragequit +Ragequitter +Ragequitting +Rager +Rages +Ragey +Ragged +Ragging +Raging +Ragnaaarok +Ragnarok +Ragrets +Rags +Ragtag +Ragu +Ragusa +Rah +Rai +Raid +Raid_B0ss +Raid_B0ss's +Raida +Raidable +Raidcraft +Raided +Raiden +Raider +Raidercrew +Raiders +Raiders's +Raidin +Raiding +Raidings +Raidraidraidraid +Raids +Rail +Railbed +Railed +Railgun +Railhub +Railing +Railings +Railroad +Railroaded +Railroads +Rails +Railside +Railstation +Railstop +Railswitch +Railswitches +Railtunnel +Railway +Railways +Railz +Rain +RainBd +RainBd's +RainOfPain125 +RainOfPain125's +Raina +Rainbow +RainbowExtract +RainbowExtract's +Rainbows +Rainbowy +Raine +Rained +Rainfall +Rainforest +Rainforests +Raining +Rains +Rainwater +Rainy +Raise +Raised +Raises +Raisin +Raisindance +Raising +Raisins +Rajesh +Rajs +Rake +Raked +Raking +Raleigh +Rally +Rallying +Ralph +Ram +Rama +Ramadan +Rambete +Rambete's +Ramble +Rambled +Rambles +Rambling +Ramblings +Rambo +Rambunctious +Ramcaching +Ramdom +Ramen +Ramifications +Ramming +Ramp +Rampage +Rampaged +Rampages +Rampaging +Rampant +Rampantly +Rampart +Ramped +Ramping +Ramps +Ramrod +Rams +Ramsay +Ramsey +Ramshackle +Ran +Ranch +Ranches +Ranchs +Rancid +Rancor +Rancorous +Rancour +Rand +Rando +Random +Randomactsofpizza +Randombountyhunter +Randomed +Randomer +Randomization +Randomize +Randomized +Randomizer +Randomizes +Randomly +Randomness +Randompearled +Randompearling +Randoms +Randomspawn +Randomspawned +Randomspawning +Randomspawns +Randos +Randy +Randys +Rang +Range +Ranged +Ranger +Rangers +Ranges +Ranging +Rank +Ranked +Ranking +Rankings +Rankless +Ranks +Ransack +Ransacked +Ransacking +Ransom +Ransoming +Rant +Ranted +Ranting +Rantings +Rants +Ranubis +Ranubism +Raoul +Rap +Rapacious +Rapaired +Rapgenius +Rapid +Rapidly +Rapids +Rapier +Rapoport +Rapped +Rapper +Rappers +Rapping +Rapprochement +Raps +Rapscallions +Raptor +Rapture +Rapturous +Rapturously +Rar +Rare +Rarefied +Rarely +Rareness +Rarepuppers +Rarer +Rares +Rarest +Rarity +Rascal +Rascals +Rash +Rashly +Rashomon +Rasp +Raspberries +Raspberry +Raspian +Raspy +Rastafarian +Rat +Ratatoullie +Ratbutcher +Ratchet +Ratcheted +Rate +Rated +Rates +Rather +Ratification +Ratified +Ratifies +Ratify +Ratifying +Rating +Ratings +Ratio +Ration +Rational +Rationale +Rationalisation +Rationalism +Rationality +Rationalization +Rationalizations +Rationalize +Rationalized +Rationalizes +Rationalizing +Rationally +Rationed +Rations +Ratios +Ratman +Ratmin +Rats +Ratted +Ratters +Rattin +Ratting +Rattle +Rattled +Rattlesnake +Raucous +Raunchy +Ravage +Ravaged +Ravages +Ravaging +Rave +Raven +RavenRavenRaven +RavenRavenRaven's +Raveni +Ravenist +Ravenist's +Ravenmc +Ravenna +Ravenous +Ravenously +Ravenport +Ravenposts +Ravenravenraven +Ravens +Raver +Raves +Ravi +Ravine +Ravines +Raving +Ravioli +Ravish +Ravishly +Raw +Rawhide +Rawr +Rawrxd +Raws +Rax +Ray +Raya +Raying +Rayna +Rayne +Rays +Raytheon +Raze +Razed +Razer +Razeria +Razes +Razing +Razor +Razorblade +Razors +Rb +Re +Re:Civ +Reabsorbed +Reach +Reachable +Reached +Reaches +Reaching +React +Reacted +Reacting +Reaction +Reactionaries +Reactionary +Reactiongif +Reactiongifs +Reactions +Reactivate +Reactivated +Reactivates +Reactive +Reactively +Reactor +Reactors +Reacts +Read +Readability +Readable +Readded +Readding +Reader +Readers +Readership +Readily +Readin +Readiness +Reading +Readings +Readjust +Readjusted +Readjustments +Readme +Readout +Readover +Reads +Ready +Readying +Reaffirm +Reaffirmation +Reaffirmed +Reaffirming +Reaffirms +Reagan +Real +Real_Tideman +Real_Tideman's +Realate +Realestate +Realign +Realignment +Realisation +Realise +Realised +Realises +Realising +Realism +Realist +Realistic +Realistically +Realisticbiomes +Realists +Realities +Reality +Realitys +Realization +Realize +Realized +Realizes +Realizing +Reallife +Reallocation +Really +Reallyclose +Reallyreally +Reallystarenonose +Realmfugees +Realms +Realmsmc +Realpolitik +Realsies +Realtalk +Realtime +Realtor +Realtors +Realty +Reannex +Reap +Reaper +Reaper, Defiler of the Night Sky +Reaperdude +Reaping +Reappear +Reappearance +Reappeared +Reappearing +Reappears +Reapplication +Reapplied +Reapply +Reapplying +Reapprove +Reapproved +Reaps +Rear +Reared +Rearguard +Rearm +Rearrange +Rearranged +Rearranging +Rears +Reason +Reasonability +Reasonable +Reasonableness +Reasonably +Reasoned +Reasoning +Reasonings +Reasons +Reassemble +Reassert +Reasserts +Reassigned +Reassignment +Reassociated +Reassurance +Reassurances +Reassure +Reassured +Reassurement +Reassures +Reassuring +Rebalanced +Rebalances +Rebalancing +Rebanned +Rebar +Rebate +Rebates +Rebecca +Rebel +Rebelled +Rebelling +Rebellion +Rebellions +Rebellious +Rebels +Rebind +Rebirth +Reblog +Reblogged +Reblogging +Reboot +Rebooted +Rebooting +Reboots +Reborn +Rebound +Rebounded +Rebrand +Rebranded +Rebranding +Rebreak +Rebreaking +Rebroadcast +Rebroadcasts +Rebuff +Rebuffed +Rebuild +Rebuilding +Rebuilt +Rebuke +Rebuked +Rebut +Rebuttal +Rebuttals +Rebutting +Rec +Recalcitrant +Recalculate +Recalculated +Recalculating +Recalculation +Recall +Recalled +Recalling +Recalls +Recant +Recap +Recapitulate +Recapitulation +Recaptcha +Recapture +Recaptured +Recapturing +Recast +Recede +Receipe +Receipt +Receipts +Receive +Received +Receiver +Receivers +Receiving +Recent +Recently +Reception +Receptive +Receptor +Receptors +Recess +Recesses +Recession +Recharge +Recharged +Recharges +Recharging +Recheck +Rechecking +Rechecks +Rechristened +Recidivate +Recidivism +Recidivist +Recieved +Recievers +Recieves +Recieving +Recipe +Recipee +Recipes +Recipetree +Recipient +Recipients +Reciprocal +Reciprocally +Reciprocate +Reciprocated +Reciprocates +Reciprocating +Reciprocation +Reciprocator +Reciprocity +Recipt +Recipts +Recital +Recitation +Recite +Recited +Reciting +Reckless +Recklessly +Reckon +Reckoned +Reckoning +Reckons +Reclaim +Reclaimed +Reclaimholyland +Reclaiming +Reclaims +Reclamation +Reclassification +Recline +Recluse +Reclusive +Recode +Recoded +Recoding +Recognisable +Recognise +Recognised +Recognises +Recognising +Recognition +Recognizability +Recognizable +Recognizably +Recognization +Recognize +Recognized +Recognizes +Recognizing +Recoil +Recollect +Recollecting +Recollection +Recollections +Recoloured +Recommand +Recommend +Recommendation +Recommendations +Recommended +Recommending +Recommends +Recommit +Recompacting +Recompense +Recompile +Recompiled +Recon +Reconcile +Reconciled +Reconciles +Reconciliation +Reconciling +Reconfiguration +Reconfigure +Reconfigured +Reconfirm +Reconnaissance +Reconnect +Reconnected +Reconnecting +Reconnects +Reconsider +Reconsideration +Reconsidered +Reconsidering +Reconsiders +Reconsolidating +Reconstitute +Reconstruct +Reconstructed +Reconstructing +Reconstruction +Reconstruction Era +Reconverting +Record +Recorded +Recorder +Recorders +Recording +Recordings +Recordkeeping +Records +Recount +Recounting +Recoup +Recouped +Recouping +Recourse +Recourses +Recover +Recoverable +Recovered +Recovering +Recovers +Recovery +Recreate +Recreated +Recreates +Recreating +Recreation +Recreational +Recrimination +Recrimination's +Recriminiations +Recruit +Recruitable +Recruited +Recruiter +Recruiters +Recruiting +Recruitment +Recruits +Rectal +Rectangel +Rectangle +Rectangles +Rectangular +Rectifiable +Rectified +Rectify +Rectifying +Rectitude +Recumbent +Recuperate +Recurrence +Recurrent +Recurring +Recursion +Recursive +Recursively +Recused +Recut +Recycle +Recycled +Recycling +Red +Red Dead Redemption +Red Obsidian +RedDevel +RedDevel's +RedSunZenith +RedSunZenith's +Red_Medic_Leader +Red_Medic_Leader's +Red_Steel +Red_Steel's +Red_Vigilante +Red_Vigilante's +Redact +Redacted +Redaction +Redactions +Redbone +Redbubble +Redbull +Redcell3524 +Redcell3524's +Redcoat +Redcoats +Redcross +Redden +Redder +Reddevel +Reddi +Reddiquette +Reddit +Redditbanned +Redditdebatebot +Redditdev +Redditer +Redditers +Redditeurs +Reddithelp +Redditing +Redditism +Redditmedia +Redditor +Redditors +Reddits +Redditsilver +Redditsilverrobot +Redditspammer +Redditstatic +Reddituploads +Reddot +Reddy +Rede +Redecorate +Redeem +Redeemable +Redeemed +Redeemer +Redeeming +Redeems +Redefine +Redefining +Redemption +Redesign +Redesigned +Redesigning +Redest +Redevelop +Redeveloped +Redevelopment +Redflag +Redgarden +Redhat +Redhats +Redhead +Redhelp +Redhouse +Redicecream +Redid +Redig +Redirect +Redirected +Redirecting +Redirection +Redirects +Rediscover +Rediscovered +Redispense +Redistribute +Redistributes +Redistribution +Redmag +Redneck +Rednecks +Redo +Redoing +Redolent +Redone +Redoubtable +Redownload +Redpill +Redpilled +Redpossum +Redpossums +Redpower +Redraw +Redrawing +Redrawn +Redress +Redrew +Redrum +Reds +Redsand +Redshell +Redshyguy +Redstone +Redstone_Cato +Redstone_Cato's +Redstoned +Redstoner +Redstones +Redstoning +Reduce +Reduced +Reducer +Reducers +Reduces +Reducing +Reductio +Reduction +Reductionist +Reductionpercentage +Reductions +Redun +Redun's +Redundancy +Redundant +Redundantly +Redux +Redwine +Redwood +Redwood Crossfire +Redwoods +RedxMedic +RedxMedic's +Ree +Reece +Reed +Reeds +Reeducation +Reedy +Reee +Reeeaaaally +Reeeal +Reeeally +Reeee +Reeeeaalllly +Reeeeally +Reeeee +Reeeeeally +Reeeeeblox +Reeeeee +Reeeeeee +Reeeeeeee +Reeeeeeeeally +Reeeeeeeee +Reeeeeeeeee +Reeeeeeeeeee +Reeeeeeeeeeee +Reeeeeeeeeeeee +Reeeeeeeeeeeeee +Reeeeeeeeeeeeeee +Reeeeeeeeeeeeeeee +Reeeeeeeeeeeeeeeee +Reeeeeeeeeeeeeeeeee +Reeeeekt +Reeeeing +Reeeing +Reef +Reefer +Reefs +Reek +Reeks +Reel +Reelected +Reeled +Reemergence +Reenable +Reenabled +Reenabling +Reenactment +Reencode +Reenforced +Reengage +Reenlist +Reentering +Reese +Reestablish +Reestablished +Reestablishing +Reevaluate +Reevaluated +Reeve +Reeves +Reexamination +Reexamine +Ref +Refactor +Refactored +Refactoring +Refectory +Refelects +Refer +Referance +Referee +Refereed +Reference +Referenced +Referencenotfound +References +Referencing +Referendum +Referendums +Referential +Refering +Referral +Referrals +Referred +Referrence +Referring +Refers +Reff +Refferd +Reffered +Refference +Reffering +Refid +Refill +Refilled +Refilling +Refills +Refinance +Refine +Refined +Refinement +Refinements +Refinery +Refines +Refining +Reflect +Reflected +Reflecting +Reflection +Reflections +Reflective +Reflects +Reflex +Reflexes +Reflexive +Reflexively +Refocused +Refocuses +Reforest +Reforesting +Reforged +Reform +Reformat +Reformation +Reformationists +Reformats +Reformatted +Reformatting +Reformed +Reformedcreeper +Reforming +Reformista +Reforms +Refound +Refounded +Refounding +Refraction +Refractor +Refractory +Refrain +Refrained +Refraining +Refrains +Refrence +Refresh +Refresh4 +Refresh4's +Refreshed +Refresher +Refreshes +Refreshing +Refreshingly +Refreshment +Refrigerated +Refrigerator +Refs +Refuel +Refueled +Refueling +Refuge +Refugee +Refugees +Refuges +Refund +Refundable +Refunded +Refunding +Refunds +Refurbish +Refurbished +Refurbishing +Refusal +Refuse +Refused +Refuses +Refusing +Refussing +Refusual +Refutation +Refutations +Refute +Refuted +Refutes +Refuting +Refworld +Reg +Regain +Regained +Regaining +Regains +Regal +Regalia +Regalista +Regard +Regarded +Regarding +Regardless +Regards +Regather +Regathers +Regear +Regeared +Regearing +Regen +Regency +Regency Council +Regency Council's +Regend +Regenerate +Regenerated +Regenerates +Regenerating +Regeneration +Regenerative +Regens +Regent +Regents +Regentsburgh +Regex +Regexes +Reggae +Reggie +Reggio +Reggio Argeddina +Regicide +Regime +Regimen +Regimens +Regimentation +Regiments +Regimes +Regina +Region +Regional +Regionalism +Regionalized +Regionally +Regions +Register +Registered +Registering +Registers +Registrar +Registration +Registry +Regress +Regressed +Regressing +Regression +Regressions +Regressive +Regret +Regretful +Regretfully +Regrets +Regrettable +Regrettably +Regretted +Regretting +Regrew +Regrinding +Regroup +Regrow +Regrown +Reguard +Reguards +Regularity +Regularly +Regulars +Regulary +Regulate +Regulated +Regulates +Regulating +Regulation +Regulations +Regulators +Regulatory +Regurgitated +Regurgitating +Rehab +Rehabilitate +Rehabilitated +Rehabilitating +Rehabilitation +Rehabilitative +Rehash +Rehashed +Rehashes +Rehashing +Rehearsal +Rehearse +Rehearsed +Rehost +Rehosts +Rei +Reid +Reign +Reigned +Reigning +Reignite +Reigniting +Reigns +Reiko +Reikos +Reilly +Reimagining +Reimann +Reimburse +Reimbursed +Reimbursement +Reimbursing +Reimplement +Reimplemented +Rein +Reina +Reincarnate +Reincarnated +Reincarnation +Reindeer +Reinforcable +Reinforce +Reinforced +Reinforcement +Reinforcements +Reinforcer +Reinforces +Reinforcing +Reinsert +Reinstall +Reinstallation +Reinstalled +Reinstalling +Reinstate +Reinstated +Reintegrate +Reintegration +Reintroduce +Reintroduced +Reintroduction +Reinvent +Reinventing +Reinvest +Reinvigorate +Reinvigorating +Reinvigoration +Reinvite +Reinvited +Reissues +Reissuing +Reiterate +Reiterated +Reiterating +Reject +Rejected +Rejecting +Rejection +Rejections +Rejects +Rejoice +Rejoiced +Rejoices +Rejoicing +Rejoin +Rejoined +Rejoining +Rejoins +Rejuvenate +Rejuvenating +Rejuvenation +Rekd +Rekitted +Rekkd +Rekker +Rekking +Reknowned +Rekt +RektTangle +RektTangle's +Rektangle +Rektangles +Rektavia +Rekts +Rekttangle +Rekttangles +Relaid +Relapse +Relapsed +Relapses +Relapsing +Relatable +Relatably +Relate +Relateable +Related +Relates +Relating +Relation +Relational +Relations +Relationship +Relationships +Relative +Relatively +Relatives +Relativism +Relativist +Relativity +Relaunch +Relaunching +Relax +Relaxation +Relaxed +Relaxin +Relaxing +Relay +Relayed +Relaying +Relays +Relearn +Relearning +Release +Released +Releases +Releasing +Relegated +Relent +Relentless +Relentlessly +Relevance +Relevancy +Relevant +Relevantsubreddit +Reliability +Reliable +Reliably +Reliance +Reliant +Relic +Relicense +Relics +Relied +Relief +Relies +Relieve +Relieved +Relieving +Religion +Religions +Religious +Religiously +Relink +Relinked +Relinquish +Relinquished +Relinquishing +Relise +Relish +Relive +Reliving +Relly +Reload +Reloadcommand +Reloaded +Reloading +Reloads +Relocate +Relocated +Relocating +Relocation +Relog +Relogged +Relogging +Relogs +Reluctance +Reluctant +Reluctantly +Rely +Relying +Rem +Remade +Remain +Remainder +Remained +Remaining +Remains +Remake +Remakes +Remakin +Remaking +Remall +Remanded +Remapped +Remapping +Remark +Remarkable +Remarkably +Remarked +Remarking +Remarks +Remastered +Rematch +Remedial +Remediate +Remediation +Remedied +Remedies +Remedy +Remedying +Remember +Rememberd +Remembered +Remembering +Remembers +Remembrance +Rememe +Remi +Remind +Reminded +Reminder +Reminders +Reminding +Remindme +Remindmebot +Reminds +Remington +Reminisce +Reminiscent +Reminiscing +Remiss +Remission +Remit +Remittance +Remix +Remixed +Remixes +Remixings +Remnant +Remnants +Remodel +Remodeled +Remodeling +Remorse +Remorseful +Remorseless +Remote +Remoted +Remotely +Remoteness +Remotest +Remotly +Remount +Removable +Removal +Remove +Removed +Removeddit +Removes +Removing +Remuneration +Remy +Renaissance +Rename +Renamed +Renames +Renaming +Renault +Render +Rendered +Renderer +Rendering +Renders +Rendezvous +Rendition +Renditions +Rene +Reneg +Renegade +Renegades +Renegading +Reneged +Reneges +Reneging +Renegotiate +Renegotiated +Renegotiating +Renegotiation +Renew +Renewable +Renewables +Renewably +Renewal +Renewed +Renewed Doomblade +Renewing +Reno +Renounce +Renounced +Renounces +Renouncing +Renovate +Renovated +Renovating +Renovation +Renovations +Renown +Renowned +Rent +Rental +Rentals +Rented +Renters +Renting +Rents +Renunciation +Reoccupied +Reoccurring +Reoffending +Reopen +Reopened +Reopening +Reopens +Reorder +Reordering +Reorganization +Reorganize +Reorganized +Reorient +Reorients +Rep +Repackage +Repaid +Repaint +Repair +Repairability +Repairable +Repaired +Repairing +Repairs +Reparation +Reparations +Reparative +Repatriation +Repay +Repayed +Repaying +Repayment +Repayments +Repeal +Repealed +Repearl +Repearled +Repearling +Repeat +Repeatable +Repeated +Repeatedly +Repeater +Repeaters +Repeating +Repeatingingly +Repeatly +Repeats +Repel +Repelled +Repellent +Repellents +Repelling +Repels +Repent +Repentance +Repentant +Repented +Repenting +Repercussion +Repercussions +Repertoire +Repertory +Repetition +Repetitions +Repetitive +Repetitively +Repetitiveness +Rephrase +Rephrased +Rephrasing +Repilled +Repine +Replace +Replaceable +Replaced +Replacement +Replacements +Replaces +Replacing +Replant +Replanted +Replanting +Replants +Replay +Replayed +Replaymod +Replays +Replenish +Replenished +Replenishing +Replenishment +Replete +Replica +Replica Skeletal Flatbow +Replicate +Replicated +Replicates +Replicating +Replication +Replied +Replies +Repliesdeletereply +Reply +Replygif +Replying +Replys +Repo +Repopulate +Repopulating +Repopulation +Repopulators +Report +Reported +Reportedly +Reporter +Reporters +Reporting +Reports +Reposition +Repositories +Repository +Repossesed +Repossess +Repossessed +Repost +Reposted +Reposting +Reposts +Repot +Repotting +Repower +Reppin +Repping +Reprehensible +Repreive +Represent +Representation +Representational +Representations +Representative +Representatives +Represented +Representing +Representive +Represents +Repress +Repressed +Repressing +Repression +Repressive +Reprieve +Reprieves +Reprimand +Reprimanded +Reprimanding +Reprint +Reprinted +Reprints +Reprisal +Reprisals +Reprise +Reprobate +Reprobates +Reprocessing +Reproducable +Reproduce +Reproduced +Reproduces +Reproducible +Reproducing +Reproduction +Reproductive +Reprogram +Reprogramming +Reprove +Reps +Reptile +Reptiles +Republic +Republican +Republicans +Republics +Republik +Republika +Republique Centrafricaine +Republique Togolaise +Repudiate +Repudiated +Repudiation +Repugnance +Repugnant +Repulse +Repulsed +Repulsion +Repulsive +Repurpose +Repurposed +Repurposes +Repurposing +Reputable +Reputation +Reputations +Repz +República Dominicana +Requalre +Requalre's +Request +Requested +Requesting +Requests +Requesttracker +Requiem +Requiem, Fan of Blessed Fortune +Requiems +Requiescat +Require +Required +Requirement +Requirements +Requires +Requiring +Requisite +Requisition +Reread +Rereading +Reroute +Rerouted +Rerouting +Rerun +Rerunning +Reruns +Rescan +Rescind +Rescinded +Rescinding +Rescinds +Rescue +Rescued +Rescuers +Research +Researched +Researcher +Researchers +Researching +Reseating +Reseeding +Resell +Reseller +Reselling +Resells +Resemblance +Resemble +Resembled +Resembles +Resembling +Resemire +Resend +Resending +Resent +Resented +Resentful +Resentment +Resentments +Resents +Reservation +Reservations +Reserve +Reserved +Reserves +Reserving +Reservoir +Reset +Resets +Resetted +Resetting +Resettle +Resettled +Resettlement +Resettling +Reshape +Resheathed +Reshuffled +Reshuffling +Reside +Resided +Residence +Residences +Residency +Resident +Resident Evil +Residential +Residents +Resides +Residing +Residual +Residue +Resign +Resignation +Resignations +Resigned +Resigning +Resigns +Resilience +Resilient +Resimere +Resimeres +Resin +Resinopolis +Resist +Resistance +Resistances +Resistant +Resisted +Resisting +Resistors +Resists +Resize +Resized +Resizing +Resold +Resolute +Resolution +Resolutions +Resolve +Resolved +Resolvement +Resolves +Resolving +Resonable +Resonance +Resonant +Resonate +Resonates +Resort +Resorted +Resorting +Resorts +Resound +Resounding +Resoundingly +Resource +Resourceful +Resourcefulness +Resourcepack +Resources +Respawn +Respawned +Respawners +Respawning +Respawns +Respect +Respectability +Respectable +Respectably +Respected +Respectful +Respectfully +Respecting +Respective +Respectively +Respects +Respein +Respiration +Respirations +Respiratory +Respite +Resplendent +Respond +Responded +Respondees +Respondent +Respondents +Responder +Responders +Responding +Responds +Response +Responses +Responsibilities +Responsibility +Responsible +Responsibly +Responsive +Responsiveness +Rest +Restabilized +Restaining +Restart +Restarted +Restarting +Restarts +Restate +Restated +Restating +Restaurant +Restaurants +Rested +Resting +Restitution +Restive +Restless +Restock +Restocked +Restocking +Restocks +Restoration +Restorations +Restorative +Restore +Restored +Restorer +Restorers +Restores +Restoring +Restrain +Restrained +Restraining +Restraint +Restrict +Restricted +Restricting +Restriction +Restrictions +Restrictive +Restricts +Restroom +Restructure +Restructured +Restructuring +Rests +Resubbing +Resubmit +Result +Resultant +Resulted +Resulting +Results +Resume +Resumed +Resumes +Resuming +Resumption +Resupplied +Resupplies +Resupply +Resupplying +Resurfaced +Resurfacing +Resurged +Resurgence +Resurgent +Resurrect +Resurrected +Resurrecting +Resurrection +Resuscitate +Ret +Retail +Retailer +Retailers +Retailing +Retain +Retained +Retainer +Retainers +Retaining +Retainment +Retains +Retake +Retaken +Retaking +Retaliate +Retaliated +Retaliates +Retaliating +Retaliation +Retaliatory +Retched +Retconning +Retell +Retelling +Retention +Retentive +Retesting +Retexturing +Rethink +Rethinking +Rethought +Reticence +Reticent +Retina +Retire +Retired +Retiree +Retirees +Retirement +Retiring +Retook +Retooling +Retort +Retorts +Retrace +Retract +Retractable +Retracted +Retracting +Retraction +Retrain +Retraining +Retread +Retreat +Retreated +Retreating +Retreats +Retrial +Retribution +Retribution Steel Warbow +Retributions +Retributive +Retrieval +Retrieve +Retrieved +Retriever +Retrieving +Retro +Retroactive +Retroactively +Retrofit +Retrofitting +Retrograde +Retrospect +Retrospective +Retry +Retrying +Retune +Retuned +Return +Returned +Returning +Returns +Retweak +Retweet +Retype +Retyu +Retyu's +Reuben +Reunan Union +Reunification +Reunified +Reunion +Reunion Island +Reunions +Reunite +Reunited +Reunites +Reupgrade +Reupgraded +Reupload +Reuploading +Reusable +Reuse +Reused +Reusing +Reuters +Rev +Revamp +Revamped +Revamping +Reveal +Revealed +Revealing +Reveals +Revel +Revelation +Revelations +Reveled +Revelent +Reveling +Revenant +Revenants +Revenge +Revenue +Revenues +Reverb +Reverberating +Revere +Reverence +Reverently +Reverie +Revers +Reversal +Reverse +Reversed +Reverses +Reversible +Reversing +Reversion +Reversions +Revert +Reverted +Reverting +Revertion +Reverts +Review +Reviewed +Reviewer +Reviewers +Reviewing +Reviews +Reviled +Revise +Revised +Revising +Revision +Revisionism +Revisionist +Revisionista +Revisionists +Revisions +Revisit +Revisited +Revisiting +Revitalisation +Revitalise +Revitalization +Revitalize +Revitalized +Revitalizing +Revival +Revivals +Revive +Revived +Revives +Reviving +Revocation +Revoke +Revoked +Revoking +Revolt +Revolted +Revolting +Revolts +Revolution +Revolutionaries +Revolutionary +Revolutionary Confederation +Revolutionists +Revolutionize +Revolutionized +Revolutionizing +Revolutions +Revolve +Revolved +Revolver +Revolves +Revolving +Revs +Revulsion +Revving +Reward +Rewarded +Rewarding +Rewards +Rewatch +Rewatched +Rewatching +Rewind +Reword +Reworded +Rework +Reworked +Reworking +Reworks +Rewound +Rewrite +Rewrites +Rewriting +Rewritten +Rewrote +Rex +Rex2077 +Rex2077's +Rexs +Rey +Reya +Reykjavik +Reyna +Reynard +Reynolds +Rez +Reza +Rezamos +RezzyDaddy +RezzyDaddy's +Rgb +Rhapsody +Rhea +Rhetoric +Rhetorical +Rhett +Rheumatic +Rheumatism +Rhiannon +Rhine +Rhino +Rhinoceros +Rho +Rhode +Rhode Island +Rhodes +Rhodesia +Rhodesia's +Rhodesia-Lexington +Rhodesian +Rhodesians +Rhodesias +Rhododendron +Rhubarb +Rhyme +Rhymed +Rhymes +Rhyming +Rhys +Rhythm +Rhythmic +Ri +Rian +Rib +Ribaberiki Kiribati +Ribbed +Ribbing +Ribbon +Ribbons +Ribbonstrip +Riboflavin +Ribs +Rica +Rican +Ricans +Ricardo +Rice +Riced +Rich +Richard +Richards +Richardson +Richer +Riches +Richest +Richie +Richland +Richmond +Richness +Rick +Rickety +Rickle +Rickles +Rickroll +Ricks +Ricky +Rico +Rid +Riddance +Ridden +Ridding +Riddle +Riddled +Riddles +Ride +RidentCraft +Rider +Riders +Rides +Ridge +Ridicule +Ridiculed +Ridicules +Ridiculing +Ridiculous +Ridiculously +Ridiculousness +Riding +Ridley +Rife +Riff +Riffs +Rifle +Rifled +Rifleman +Rifles +Rift +Rifters +Rifts +Rig +Riga +Rigatoni +Rigel +Rigged +Rigger +Rigging +Riggity +Right +Rightclick +Rightclicking +Righted +Righteous +Righteously +Righteousness +Rightful +Rightfully +Righting +Rightist +Rightists +Rightly +Rightmost +Rightness +Righto +Rights +Rights! +Rightwing +Rightwingers +Righty +Rigid +Rigidly +Rigor +Rigorous +Rigorously +Rigour +Rigs +Riiiiight +Riiiiip +Rile +Riled +Riley +Riling +Rim +Rime +Rimey +Rimini +Rims +Rin +Rind +Ring +Ringbearer +Ringe +Ringed +Ringer +Ringing +Ringleader +Rings +Ringtone +Ringtones +Rink +Rinks +Rinninport +Rinse +Rinvincibl3 +Rinvincibl3's +Rio +Riot +Riotcraft +Rioting +Riotmod +Riots +Rip +Ripe +Ripen +Riperino +Riperoni +Ripfizz +Ripoff +Ripped +Ripper +Ripperoni +Ripping +Ripple +Ripples +Rips +Riptide +Riptides +Ripuhh +Ripuhh's +Rise +Risen +Rises +Rising +Risk +Risk Republic +Risked +Riskier +Risking +Risks +Risky +Riskyclickerbot +Risunky +Risunsky +Risunsky's +Rita +Ritalin +Ritchie +Rite +Rites +Ritual +Ritualistic +Ritualistically +Rituals +Rival +Rivaled +Rivaling +Rivalrebels +Rivalries +Rivalry +Rivals +Rivarly +Riven +Rivenfall +Rivenpowers +River +Riverclan +Riverdale +Riverford +Riverfords +Riverland +Riverloft +Riverrun +Rivers +Riversend +Rivershire +Riverside +Riverstead +Rivet +Riveting +Riviera +Rivulet +Rixx +Rixxlon +Riyadh +Rlly +Rly +Rn +Rna +Rng +Rngesus +Rnought +Road +Roadbed +Roadblock +Roadblocked +Roadblocks +Roaders +Roadman +Roadmap +Roads +Roadside +Roadsides +Roadstand +Roadway +Roadways +Roage +Roam +Roamed +Roaming +Roamingbuilder +Roams +Roan +Roanoke +Roar +Roared +Roaring +Roars +Roast +Roasted +Roastie +Roasting +Roastme +Rob +Robbed +Robber +Robbers +Robbery +Robbie +Robbing +Robblefest +Robblefest's +Robe +Robert +Roberts +Robertson +Robertsons +Robes +Robespierre +Robin +Robinson +Roblox +Roblucksx +Roblux +Robo +RoboKaiser +RoboKaiser's +RoboRik +RoboRik's +RoboTech +RoboTech's +Robocraft +Robokaiser +Roboninja +Robot +Robotic +Robotics +Robotnik +Robots +Robs +Robust +Robux +Rocco +Rochefort +Rochester +Rock +Rocked +Rocker +Rockest +Rocket +Rockets +Rockies +Rockin +Rocking +Rocknipple +Rockpapershotgun +Rocks +Rockstar +Rocktillery +Rockwood +Rocky +Rod +Rodent +Rodentia +Rodeo +Rodgers +Rodney +Rodneys +Rodriguez +Rods +Rofl +Roflcopter +Roflmao +Roflstomped +Rogan +Roger +Rogerfrombingo +Rogers +Rogue +Rogueeeeeeee +Rogues +Roguish +Rohan +Roid +Roiiigghhhttt +Roker +Rokke +Rokko +Rokkos +Rokkosrangers +Rokkosteppe +Roland +Role +Rolemodel +Roleplay +Roleplayed +Roleplayer +Roleplayers +Roleplaying +Roleplays +Roles +Rolex +Rolexes +Rolf +Roll +Rollback +Rollbacking +Rollbacks +Rolled +Roller +Rollerboys +Rollercoaster +Rollercoasters +Rollin +Rolling +Rollingstone +Rollout +Rollplay +Rollplaying +Rolls +Rollseyes +Rollup +Rom +Roma +Roman +Romance +Romanesque +Romani +Romania +Romanian +Romanians +Romanji +Romans +Romantic +Romantically +Romanticising +Romanticism +Romanticized +Romanticizing +Romantics +Romanus +Romany +Romas +Romavictor +Rome +Romec +Romec's +Romecs +Romeo +Romes +Romi +Rommel +Romney +Romp +Romulus +Romy +Ron +RonPaul +RonPaul's +Ronald +Ronaldo +Ronan +Ronda +Ronday +Rone +Rong +Rongs +Ronies +Ronin +Ronne +Ronnie +Ronny +Ronpaul +Rons +Roo +Rood +Roof +Roofbar +Roofed +Roofing +Roofs +Rooftop +Rooftops +Rooikat16 +Rooikat16's +Rook +Rookie +Rool +Room +Roomies +Roommate +Roommates +Rooms +Roosevelt +Rooskies +Roost +Rooster +Roosters +Roosterteeth +Root +Rooted +Rooting +Roots +Rooves +Rope +Roped +Ropes +Roping +Rorschach +Rory +Rosa +Rosaline +Rosario +Rosary +Rose +Rose Quartz +Rosebud +Rosebush +Rosecolored +Rosemary +Roses +Rosette +Rosevale +Rosevales +Rosewall +Rosewill +Rosewood +Rosh +Roshan +Roshbush +Rosie +Roskolnikov +Roskolnikov's +Ross +Rossi +Rossiya +Rossiye +Roster +Rosters +Rostov +Rosy +Rot +Rotary +Rotate +Rotated +Rotates +Rotating +Rotation +Rotational +Rotations +Roth +Rothbard +Rotholz +Rothschilds +Rots +Rotted +Rotten +Rottentomatoes +Rotterdam +Rotterdam's +Rotting +Rotund +Rotunda +Rouge +Rouges +Rough +Roughed +Rougher +Roughest +Roughhousing +Roughing +Roughly +Roulette +Round +Roundabout +Roundabouts +Rounded +Roundel +Roundels +Rounding +Roundness +Rounds +Roundtrip +Rourke +Rourkes +Rouse +Roused +Rousey +Rousing +Rout +Route +Routed +Router +Routers +Routes +Routine +Routinely +Routines +Routing +Rove +Rover +Roving +Row +Rowa +Rowan +Rowan Stronghold +Rowanda +Rowdy +Rowen +Rowhouses +Rows +Roy +Royal +Royale +Royalist +Royalists +Royally +Royals +Royalties +Royalty +Rozia +Rp +Rped +Rper +Rpers +Rpg +Rpgs +Rpi +Rping +Rpings +Rpm +Rsvp +Rt +Rtm +Rts +Ru +Rub +Rubbed +Rubber +Rubberband +Rubberbanded +Rubberbanding +Rubberstamp +Rubbing +Rubbish +Rubbishposting +Rubble +Ruben +Rubicon +Rubiks +Rubio +Rubish +Rubix +Ruble +Rubles +Rubric +Rubs +Ruby +Ruck +Ruckus +Rudder +Rude +Rudely +Rudeness +Rudest +Rudimentarily +Rudimentary +Rudiments +Rudolph +Rudy +Rue +Rueful +Ruff +Ruffian +Ruffians +Ruffle +Ruffled +Ruffles +Ruffly +Rufian +Rug +Rugby +Rugdoc +Rugged +Rugs +Rugzenhaide +Ruh +Ruined +Ruinieren +Ruining +Ruinous +Ruins +Rule +Rulebook +Rulebreakers +Ruled +Ruleplay +Ruler +Rulers +Rulership +Rules +Ruleset +Rulez +Ruling +Rulings +Ruloveit +Ruloveit's +Rum +Rumania +Rumbling +Rummage +Rummaged +Rummaging +Rumor +Rumored +Rumors +Rumour +Rumoured +Rumours +Rump +Rumpelstiltskin +Rumpleshillskin +Rums +Run +Runaway +Rune +Runed Insignia +Runes +Runescape +Runfatboyrunn +Rung +Rungs +Runner +Runners +Runnin +Running +Runny +Runs +Runthrough +Runtime +Runtimes +Runway +Rupture +Ruptured +Rupturedkidney +Rural +Ruralization +Rurik +Rurik's +Ruse +Rused +Rusemaster +Ruseometer +Ruser +Ruses +Rush +Rushed +Rusher +Rushers +Rushes +Rushing +Rushingly +Rushmore +Rusing +Ruski +Russ +Russel +Russell +Russet +Russia +Russian +Russian Federation +Russians +Russias +Rust +Rusted +Rustic +Rusting +Rustle +Rustled +Rustles +Rustling +Rusty +RustyOldQrow +RustyOldQrow's +Rustyflipper +Rut +Ruth +Ruthless +Ruthlessly +Rutledge +Ruts +Rwanda +Rwandan +Rwandans +Rwby +Rx +Ry +Ryan +Ryanhtp +Ryanrolls +Ryans +Ryden +Rydenlol +Rydenpvp +Rydens +Rydenstrife +Rydenstrifes +Ryder +Rye +Ryhma +Ryker +Rylan +Rylee +Ryu +Ryuka +Ryumaster +République Démocratique du Congo +République du Congo +S +S.E.C. +S.P.Q.R +S0uthw3st +S0uthw3st's +S4NTA +S4NTA's +S4nta +S4nter +SATO +SATO's +SCHIZ0TIER +SCHIZ0TIER's +SHUG0CH4N +SHUG0CH4N's +SIA +SLIME1178 +SLIME1178's +SOGGYHOBO +SOGGYHOBO's +SPQR +SQOpenSpellBook +SQOpenSpellBook's +SRU_Cobra +SRU_Cobra's +STUPID Island +SZEfdf21 +SZEfdf21's +Sa +SaDud0 +SaDud0's +Saaaaaame +Saan +Sabbatical +Saber +Sabertoothsalmon +Sabine +Sable +Sabotage +Sabotaged +Sabotaging +Saboteur +Saboteurs +Sabre +Sabres +Sac +Sacerdotal +Sack +Sacked +Sacking +Sacks +Sacrafice +Sacraficed +Sacrafices +Sacrament +Sacramento +Sacred +Sacrifice +Sacrificed +Sacrifices +Sacrificial +Sacrificing +Sacrilege +Sacrilegious +Sacristan +Sacristy +Sacrosanct +Sad +Sadden +Saddened +Saddening +Saddens +Saddest +Saddle +Saddled +Saddles +Saddling +Saddly +Sadface +Sadie +Sadism +Sadist +Sadistic +Sadists +Sadklaus +Sadklaus's +Sadly +Sadmin +Sadness +Sadomasochist +Sadomasochista +Sadpepe +Saechao +Saechao's +Safari +Safe +Safeguard +Safeguarded +Safeguards +Safehouse +Safeish +Safekeeping +Safely +Safer +Safespace +Safest +Safety +Safezone +Saffron +Saga +Sagacious +Sage +Sagittarius +Sahara +Sahib +Sahil +Sai +Said +Saige +Sail +Sailboat +Sailed +Sailing +Sailor +SailorWillIs +SailorWillIs's +SailorWillis +Sailors +Sailorwillis +Sails +Sainsburys +Saint +Saint Kitts and Nevis +Saint Lola +Saint Lucia +Saint Vincent and the Grenadines +Sainthood +Saintliness +Saintly +Saints +Saiph +Saira +Saisha +Saitama +Saiyan +Sakartvelo +Sake +Sakes +Sakura +Sakuya +Salacious +Salad +Salami +Salamiyah +Salaried +Salaries +Salary +Sale +Saleable +Salem +Salems +Sales +Salesman +Salesmen +Salient +Salih +Saline +Salisbury +Saliva +Salivated +Sall +Sallies +Salloogy +Sallow +Sally +Salmon +Salon +Salonius +Salsa +Salt +Saltanat Uman +Saltbanned +Salted +Saltier +Saltiest +Saltiness +Salting +Saltless +Saltpetre +Salts +Saltwater +Salty +Salutations +Salute +Salutes +Salvador +Salvage +Salvageable +Salvaged +Salvages +Salvaging +Salvation +Salve +Salvo +Salvos +Salzburg +Sam +SamBonusG +SamBonusG's +Sama +Samantha +Samara +Samaria +Samaritan +Samarra +Samba +Sambo +Same +Sameness +Sameo +Sameopet +Samesies +Samey +Sami +Sammel +Sammelt +Sammelt's +Sammie +Sammy +Samnrad +Samoa +Samoan +SamorZo656 +SamorZo656's +Samos +Sample +Sampled +Samples +Samplesize +Sampling +Samrules14 +Samrules14's +Samsara +Samsies +Samsung +Samuel +Samurai +Samurais +San +San Andreas +San Marino +Sana +Sanae +Sanctaphrax +Sanctaphrax's +Sanctified +Sanctify +Sanctimonious +Sanction +Sanctioned +Sanctioning +Sanctions +Sanctity +Sanctuaries +Sanctuary +Sanctuarys +Sand +SandFalls +SandFalls's +Sandal +Sandals +Sandbars +Sandbot +Sandbox +Sandboxes +Sandcast +Sandcastle +Sandcastles +Sanded +Sanderson +Sandfall +Sandfalls +Sandles +Sandman +Sandmine +Sandminers +Sandmining +Sandpaper +Sandra +Sands +Sandstone +Sandstorm +Sandtrapping +Sandwich +Sandwiched +Sandwiches +Sandwichness +Sandy +Sandyshores +Sane +Sang +Sangre +Sangria +Sanguinary +Sanic +Sanitary +Sanitation +Sanitize +Sanitized +Sanity +Sanjana +Sanjay +Sank +Sankt +Sanremo +Sans +Sanscrit +Sanskrit +Sanstor +Sanstor's +Santa +Santas +Santayana +SantiDragon77 +SantiDragon77's +Santiago +Sanwi +Sanwis +Sanzu +Sao +Sao Tome and Principe +Sap +SapienFrfx +SapienFrfx's +Sapiens +Sapling +Saplings +Sapper +Sapphire +Sapphire Infused Sabre +Sappho +Sapping +Sapplings +Sappy +Saps +Sara +Saracen +Saracens +Sarah +SarahPichu +SarahPichu's +Sarahs +Sarai +Sarajevo +Saralianan +Saralianas +Sarcasm +Sarcasming +Sarcastic +Sarcastically +Sarcophagus +Sardines +Sardinia +Sardinian +Sardonic +Saren +Saren's Lightsaber +Saren_Solaris +Saren_Solaris's +Sarensolaris +Sargon +Sark +Sarnath +Sarong +Sarry +Sas +Sash +Sasha +Sashi +Sashiimi +Sashimi +Sashimii +Sashimiis +Saskatchewan +Sass +Sassari +Sassy +Sasuke +Sat +Satan +Satanic +Satanism +Satanist +Satanista +Satans +Satchel +Sate +Sated +Satellite +Satellites +Satiate +Satin +Satire +Satiric +Satirical +Satirising +Satisfaction +Satisfactional +Satisfactorily +Satisfactory +Satisfied +Satisfies +Satisfy +Satisfying +Satisfyingly +Satisifed +Sato +Satobot +Satoid +Satoids +Satolion +Satoshi +Satoshis +Satrap +Satsuki +Saturate +Saturated +Saturation +Saturday +Saturdays +Saturn +Saturnine +Satyr +Sauce +Sauced +Saucepan +Saucer +Saucing +Saucy +Saudi +Saudi Arabia +Saul +Saunas +Saunter +Sauron +Sausage +Sausages +Sausepan +Savage +Savaged +Savagery +Savages +Savaguard +Savannah +Save +Saved +Savefile +Saver +Saves +Saving +Savings +Savion +Savions +Savior +Saviors +Saviour +Saviours +Savitar_Speed +Savitar_Speed's +Savor +Savored +Savory +Savour +Savoury +Savoy +Savvy +Savvys +Savy +Saw +Sawdust +Sawing +Sawmill +Sawn +Sawubona +Sawyer +Saxon +Saxony +Say +Sayed +Sayeth +Saying +Says +Scab +Scabbard +Scabs +Scaffold +Scaffolding +Scala +Scalability +Scalable +Scalar +Scald +Scale +Scaled +Scales +Scaling +Scalingfactor +Scalliest +Scallywag +Scallywagging +Scallywags +Scalp +Scalpel +Scaly +Scam +Scammed +Scammer +Scammers +Scamming +Scamp +Scamper +Scams +Scan +Scandal +Scandalized +Scandalous +Scandals +Scandi +Scandinavia +Scandinavian +Scanned +Scanner +Scanners +Scanning +Scans +Scant +Scape +Scapegoat +Scapegoating +Scapegoats +Scapegrace +Scar +Scarab +Scarce +Scarceish +Scarcely +Scarcer +Scarcest +Scarcity +Scare +Scarecrow +Scared +Scaremongering +Scares +Scarf +Scarier +Scariest +Scarily +Scaring +Scarlett +Scarred +ScarredWarlord +Scars +Scary +Scathing +Scatter +Scatterbrain +Scattered +Scattering +Scavenge +Scavenged +Scavenger +Scavengers +Scavenging +Scenario +Scenarios +Scene +Scenery +Scenes +Scenic +Scent +Scented +Scents +Scepter +Sceptic +Sceptical +Schedule +Scheduled +Scheduler +Schedules +Scheduling +Schema +Schematic +Schematica +Schematicad +Schematicas +Schematics +Scheme +Schemed +Schemer +Schemers +Schemes +Scheming +Schengen +Schindlers +Schiphol +Schism +Schizophrenia +Schizophrenic +Schizophrenics +Schizos +Schlacht +Schlepping +Schlong +Schlongs +Schmuck +Scholar +Scholarly +Scholars +Scholarship +Scholarships +Scholastic +School +Schoolboy +Schoolbus +Schooled +Schooler +Schoolers +Schoolfellow +Schoolgirl +Schoolgirls +Schoolgrind +Schoolie +Schooling +Schoolmates +Schools +Schoolwasvhard +Schoolwork +Schoolyard +Schors +Schrodingers +Schtick +Schuna +Schweiz +Sci +Science +Scienced +Sciences +Sciencey +Scientician +Scientific +Scientifically +Scientist +Scientists +Scientologist +Scientologists +Scientology +Scifi +Scimitar +Scion +Scissor +Scissors +Scnr +Scoff +Scoffed +Scold +Scolded +Scolds +Scooby +Scoop +Scooped +Scooping +Scoops +Scooter +Scooters +Scop +Scope +Scoped +Scoping +Scorch +Scorched +Scorching +Score +Scoreboard +Scored +Scorers +Scores +Scoring +Scorn +Scorned +Scorpio +Scorpio, Ellipse of the Plague +Scorpion +Scot +Scotch +Scotia +Scotland +ScotlandNationalism +Scotsman +Scott +Scottem77 +Scottem77's +Scottfree +Scottish +Scottsman +Scotus +Scoundrel +Scoundreling +Scour +Scoured +Scourge +Scouring +Scout +Scouted +Scouter +Scouter9001 +Scouter9001's +Scouting +Scouts +Scow +Scowl +Scowls +Scp +Scps +Scrabble +Scraggy +Scramble +Scrambled +Scrambling +Scrambly +Scrap +Scrape +Scraped +Scraper +Scrapers +Scrapes +Scraping +Scrapped +Scrappers +Scrapping +Scraps +Scratch +Scratchcard +Scratchcards +Scratched +Scratcher +Scratches +Scratching +Scratchy +Scrawl +Scrawled +Scream +ScreamTeam2005 +ScreamTeam2005's +Screamed +Screamer +Screamers +Screaming +Screams +Screech +Screeched +Screecher +Screechers +Screeches +Screeching +Screeeeetch +Screen +Screencap +Screencapped +Screencapping +Screencaps +Screencrop +Screened +Screenie +Screenies +Screening +Screenname +Screenname's +Screenplay +Screenrecord +Screenrecorder +Screenresolution +Screens +Screensaver +Screensavers +Screenshare +Screenshared +Screensharers +Screensharing +Screenshot +Screenshots +Screenshotted +Screenshotter +Screenshotting +Screentime +Screeny +Screenys +Screw +Screwdriver +Screwed +Screwing +Screws +Screwup +Screwy +Scribble +Scribbled +Scribbles +Scribbling +Scribblings +Scribe +Scribes +Scrim +Scrimmage +Scrimming +Script +Scriptable +Scripted +Scripter +Scripters +Scripting +Scriptkiddie +Scriptorium +Scripts +Scriptural +Scripture +Scriptures +Scriptwriters +Scritching +Scroll +Scrollable +Scrolled +Scrolling +Scrolls +Scrooge +Scrooges +Scrotum +Scrounge +Scrounging +Scrub +ScrubTier +ScrubTier's +Scrublord +Scrublords +Scruboftheweek +Scrubs +Scruff +Scrum +Scrumptious +Scrunch +Scrunched +Scruples +Scrupulous +Scrutinised +Scrutinize +Scrutinized +Scrutiny +Scuba +Scud +Scudding +Scuffed +Scuffle +Scuffles +Scuffling +Scullery +Scullion +Sculpt +Sculpted +Sculpting +Sculpture +Sculptures +Scum +Scumbag +Scumbaggery +Scumbags +Scumlord +Scummier +Scumminess +Scummy +Scurried +Scurrilous +Scurry +Scurrying +Scurvey +Scurvy +Scuse +Scuttle +Scuttled +Scyland +Scythe +Sdorr +Sdorr's +Sea +SeaRed +SeaRed's +Seabed +Seaboard +Seacoast +Seafaring +Seafloor +Seafood +Seagate +Seagates +Seahorses +Seak +Seal +Sealand +Sealed +Sealevel +Sealing +Seals +Sealskin +Seam +Seamanship +Seamless +Seamlessly +Seams +Sean +Seance +Seaport +Sear +Search +Searchable +Searched +Searches +Searching +Seared +Searedanus +Searedette +Seas +Sease +Seashells +Seashore +Seasick +Seaside +Season +Seasonal +Seasonally +Seasoned +Seasoning +Seasons +Seat +Seated +Seating +Seats +Seattle +Seawalk +Seawall +Seaweed +Seaworld +Sebastian +Sec +Seccond +Secede +Seceded +Secedes +Seceding +Secession +Secessionist +Secessionista +Secessionists +Secessions +Secks +Secluded +Seclusion +Second +Secondarily +Secondary +Seconded +Secondhand +Seconding +Secondly +Seconds +Secound +Secounds +Secrecy +Secret +Secretariat +Secretary +Secretarys +Secretclaimland +Secrete +Secretely +Secretion +Secretions +Secretive +Secretly +Secrets +Secs +Sect +Sectarian +Section +Sectional +Sectioned +Sectioning +Sections +Sector +Sector 1 +Sectors +Sects +Secular +Secularisation +Secundus +Securable +Secure +Secured +Securelogin +Securely +Secures +Securing +Securities +Security +Secwet +Secwuded +Sedate +Sedated +Sedative +Sedentary +Sedge +Sediment +Sedimentary +Sedition +Seditious +Seduce +Seduced +Seducer +Seduces +Seducing +Seduction +Seductive +Seductively +See +Seed +Seedbank +Seeded +Seeder +Seeders +Seeding +Seedling +Seeds +Seedy +Seeee +Seeeecret +Seeeething +Seeing +Seek +Seeked +Seeker +Seekers +Seeking +Seekinq +Seekinq's +Seeks +Seem +Seemed +Seeming +Seemingly +Seemless +Seems +Seen +Seenoevil +Seeped +Seeping +Seeps +Seer +Sees +Seeth +Seethe +Seething +Sega +Segment +Segmented +Segments +Segregate +Segregated +Segregating +Segregation +Segue +Segway +Seige +Seiged +Seiges +Seiging +Seing +Seitenkyu +Seize +Seized +Seizes +Seizing +Seizure +Seizures +Selah +Seldom +SeldomShock +SeldomShock's +Seldoms +Seldomsh0ck +Seldomsh0ck's +Seldomshock +Seldomshock? +Seldomshock?'s +Seldomshocks +Seldooooooom +Select +Selectable +Selected +Selecting +Selection +Selections +Selective +Selectively +Selector +Selects +Selena +Selenas +Selene +Self +Selfbot +Selfie +Selfie Stick +Selfies +Selfish +Selfishly +Selfless +Selflessly +Selflessness +Selfs +Selfsuck +Selfsustaining +Selina +Sell +Sellable +Seller +Sellers +Selling +Sellout +Sells +Selves +Semantic +Semantically +Semantics +Semblance +Semen +Semester +Semesters +Semi +Semiannual +Semicircle +Semicircular +Semicolon +Semiconductor +Semidaily +Semifinals +Seminar +Seminars +Seminary +Semireliable +Semisweet +Semite +Semites +Semitic +Semitism +Semper +Sempha +Sempiternal +Sempiternal's +Sems +Senate +Senates +Senator +Senatorial +Senators +Senatus +Sence +Send +SendAssistance +SendAssistance's +Sender +Sending +Sendmessage +Sends +Sendspace +Seneca +Senegal +Seneschal +Sengoku +Senile +Senility +Senior +Seniors +Senkai +Senn +Sennisten +Sennistens +Senntilten +Senntisten +Senntistenite +Senntistenites +Senntistens +Senor +SenorSubbz +SenorSubbz's +Senorita +Senorjohhny +Senpai +Senpaiiii +Sensation +Sensational +Sensationalism +Sensationalist +Sensationalized +Sensationalizing +Sense +Sensed +Sensei +Senseless +Senses +Sensibilities +Sensibility +Sensible +Sensibly +Sensical +Sensing +Sensist +Sensitive +Sensitivities +Sensitivity +Sensor +Sensors +Sensory +Sensu +Sensual +Sensuality +Sensually +Sensuous +Sent +Sentence +Sentenced +Sentences +Sentencing +Sentencings +Sententious +Sentience +Sentient +Sentiment +Sentimental +Sentiments +Sentinel +Sentinelese +Sentisten +Sentries +Sentry +Seo +Seoul +Separable +Separate +Separated +Separately +Separates +Separating +Separation +Separatism +Separatist +Separatists +Separator +Separators +Seppuku +Sept +Septagons +September +Septembrian +Septentrio +Septic +Septimist +Septuagint +Sepulchral +Sepulchre +Sepulture +Sequel +Sequence +Sequences +Sequestered +Sequined +Sequitor +Sequitur +Sequiturs +Serafina +Seraglio +Serais +Seraph +Seraphic +Seraphina +Serbia +Serbian +Serena +Serenade +Serendipitous +Serendipity +Serendipitybot +Serene +Serenity +Serenno +Serfdom +Serfriendzone +Serfs +Sergeant +Sergeantmajor +Sergio +Serial +Serialized +Serially +Series +Serioisly +Seriosly +Seriously +Seriousness +Seriousposts +Serius +Sermon +Sermons +Serous +Serpent +Serpentine +Serq +Serquaez +Serum +Serva +Serval +Servalclaw +Servant +Servants +Serve +Served +Server +Servers +Serverside +Serverwide +Serves +Service +Serviceable +Services +Servicible +Servicing +Serving +Servitor +Servitude +Servos +Sesame +Seshes +Session +Sessions +Sesu +Set +Setback +Setbacks +Setblock +Seth +Sethbacon +Sethbacons +Sets +Setsen +Setsens +Setspawn +Settee +Setter +Setters +Setting +Settings +Settle +Settled +Settlement +Settlements +Settler +Settlers +Settles +Settling +Setup +Setupcost +Setups +Seurimas +Seurimas's +Sevastopol +Seven +Seven's +Sevens +Seventeen +Seventh +Seventy +Sever +Several +Severance +Severe +Severed +Severely +Severing +Severity +Severly +Severn +Severna Makedonija +Severs +Sevices +Seville +Sew +Sewage +Sewed +Sewer +Sewers +Sewing +Sewn +Sex +Sexbots +Sexcam +Sexcessful +Sexes +Sexicista +Sexier +Sexiest +Sexiness +Sexing +Sexington +Sexism +Sexist +Sexista +Sexless +Sexo +Sexsleave +Sext +Sextant +Sexting +Sexton +Sexual +Sexualisation +Sexualising +Sexuality +Sexualization +Sexualizing +Sexually +Sexy +Sexybunny +Sexymaniac +Seychelles +Seye +Sfanta +Sfw +Sgt_Munter +Sgt_Munter's +Sgtshannon +Sgtsteaksauce +Shaaaaame +Shabang +Shabby +Shack +Shacked +Shacking +Shackles +Shacks +Shad +Shadap +Shaddup +Shade +Shaded +Shadeddoom +Shadedjoe +Shadedjohn +Shadedjohn's +Shadedjon +Shadedjuan +Shadedoom +Shadedoom's +Shadeds +Shadejonathan +Shader +Shaderlabs +Shaderpack +Shaderpacks +Shaders +Shadersmod +Shades +Shadey +Shadier +Shadiest +ShadiestMule51 +ShadiestMule51's +Shadiestmule +Shadiness +Shading +Shadno +Shadno's +Shadow +Shadow Scimitar +ShadowVdank +ShadowWizardMoneyGang +Shadowban +Shadowbanned +Shadowbanning +Shadowbans +Shadowboy +Shadowcon +Shadowcon's +Shadowcons +Shadowdevs +Shadowed +Shadowedsoul +Shadowfell +Shadowing +Shadowjay +Shadowjays +Shadowplay +Shadows +Shadowsniper +Shadowunite +Shadowvdark +Shadowvdark's +Shadowy +Shadup +Shady +ShadySauce +ShadySauce's +Shadybae +Shadyguy +Shadyjay +Shadyness +Shadyrail +Shadys +Shadysauce +Shaft +Shafted +Shafts +Shagger +Shaggy +Shags +Shahada +Shair +Shake +Shaken +Shaker +Shakers +Shakes +Shakespeare +Shakespearean +Shakespearian +Shakeup +Shakey +Shakin +Shaking +Shakira +Shaky +Shal +Shale +Shall +Shallots +Shallow +Shallows +Shalom +Shalt +Sham +Shaman +Shamans +Shambali +Shambhallah +Shambhallah's +Shambles +Shambling +Shame +Shamed +Shameful +Shamefully +Shameless +Shamelessly +Shames +Shaming +Shampoo +Shamrock +Shamrockjones +Shane +Shanghai +Shank +Shankapottamus +Shanked +Shanking +Shannon +Shant +Shanties +Shanty +Shape +Shaped +Shapefile +Shapefiles +Shapeless +Shapely +Shapes +Shapewise +Shapha +Shapha's +Shapha2002 +Shapha2002's +Shaping +Shapiro +Shappa +Sharade +Shard +Sharded +Sharding +Shardore +Shards +Shardside +Shardsides +Share +Shared +Sharedfiles +Shareholder +Shareholders +Shareing +Sharers +Shares +Shareware +Sharia +Sharif +Sharing +Sharingan +Shark +Sharknado +Sharks +Sharon +Sharp +Sharpcastle +Sharpen +Sharpened +Sharpening +Sharper +Sharpest +Sharpie +Sharpies +Sharply +Sharpness +Sharpshooters +Sharpton +Shars +Shart +Sharting +Sharts +Shat +Shatapatha +Shatney +Shatpost +Shatter +Shattered +Shattering +Shatters +Shaun +Shave +Shaved +Shaven +Shaves +Shaving +Shaw +Shawn +Shawshank +Shay +She +Shea +Sheaf +Shear +Sheared +Shearing +Shears +Sheath +Sheathes +Sheathing +Sheaths +Shebang +Sheckles +Shed +Shedding +Sheds +Sheeeeeit +Sheeeeit +Sheeeit +Sheeet +Sheeit +Sheen +Sheep +Sheepishly +Sheeple +Sheepocracy +Sheeps +Sheepwreck +Sheepy_9 +Sheepy_9's +Sheer +Sheers +Sheesh +Sheet +Sheets +Sheez +Sheffield +Sheikh +Sheila +Sheilas +Sheild +Sheit +Shekel +Shekels +Shekkels +Shelby +Shelby_theShark +Shelby_theShark's +Sheldom +Shelf +Shell +Shelled +Shelley +Shelling +Shello +Shells +Shellshock +Shelter +Sheltered +Sheltering +Shelters +Shelve +Shelved +Shelves +Shenanigans +Shene +Sheol +Shepard +Shephard +Shepherd +Shepherdess +Shepherds +Sherbert +Sheridan +Sherieff +Sheriff +Sherlock +Sherrif +Sherrifs +Sherry +Sherwood +Shes +Shh +Shhh +Shhhh +Shhhhh +Shhhhhh +Shhhhhhh +Shhhhhhhh +Shhhhhhhhh +Shhhhhhhhhh +Shhhhhhhhhhhhh +Shi +Shia +Shied +Shieeeeeeeet +Shieeeeeet +Shieeeeet +Shieeeeetttt +Shieeeet +Shieeet +Shieet +Shield +Shielded +Shielding +Shields +Shiet +Shift +Shifted +Shiftily +Shiftiness +Shifting +Shifts +Shifty +Shiggles +Shiggydiggy +Shiiiiet +Shiiiiiiiiet +Shiiiiiiiiiiiiiit +Shiiiiiit +Shiiiiiite +Shiiiiit +Shiiiit +Shiiit +Shiiiznit +Shiite +Shill +Shillary +Shilled +Shilling +Shills +Shiloh +Shimmering +Shimmers +Shimmy +Shin +Shindig +Shine +Shined +Shines +Shingeki +Shingle +Shingles +Shinies +Shinigamiftw +Shining +Shinjirumc +Shinra +Shins +Shinto +Shiny +Ship +Shipment +Shipments +Shipped +Shipping +Ships +Shiptoast +Shipwreck +Shire +Shireen +Shirk +Shirley +Shiroyama +Shirt +Shirts +Shit +Shitall +Shitass +Shitbag +Shitbags +Shitbox +Shitbuddies +Shitburg +Shitcunt +Shitcunts +Shitden +Shitdisturbing +Shitducks +Shite +Shiteposting +Shitfaced +Shitfest +Shitfests +Shitfit +Shitfits +Shitfizz +Shitfizzs +Shitfling +Shitflinging +Shitganistan +Shithead +Shitheaded +Shitheads +Shitheap +Shithole +Shitholes +Shitiness +Shitjizz +Shitkicker +Shitlers +Shitless +Shitlist +Shitload +Shitloads +Shitlord +Shitlordery +Shitlords +Shiton +Shitpost +Shitposted +Shitposter +Shitpostering +Shitposters +Shitpostin +Shitposting +Shitpostopia +Shitposts +Shitposty +Shitpot +Shitralin +Shitredditsays +Shits +Shitshack +Shitshacks +Shitshit +Shitshitshit +Shitshow +Shitshows +Shitslinging +Shitstain +Shitstink +Shitstir +Shitstiring +Shitstirred +Shitstirrer +Shitstirrers +Shitstirring +Shitstorm +Shitstorms +Shitstream +Shitsville +Shittalk +Shittalked +Shittalkers +Shittalking +Shitted +Shitter +Shitters +Shittery +Shittest +Shitteur +Shittier +Shittiest +Shittiness +Shitting +Shitty +Shiv +Shiver +Shivering +Shivers +Shizzle +Shizzletown +Shlimz +Shlimz's +Shloshy101 +Shloshy101's +Shnapps +ShoPork +ShoPork's +Shoal +Shock +Shocked +Shocker +Shocking +Shockingly +Shocks +Shockscapes +Shockwave +Shockwaves +Shoddily +Shoddy +Shoe +Shoehorn +Shoehorned +Shoel +Shoelaces +Shoeless +Shoemaker +Shoemakers +Shoes +Shoestrings +Shogi +Shogun +Shoguns +Shoo +Shook +Shoopork +Shoot +Shooter +Shooters +Shootin +Shooting +Shootings +Shootout +Shoots +Shooty +Shop +Shopchest +Shopchests +Shopexchange +Shopholders +Shopify +Shoping +Shopkeep +Shopkeeper +Shopkeepers +Shopkeeps +Shoplift +Shoplifting +Shopork +Shoporks +Shopost +Shopped +Shopper +Shoppers +Shopping +Shops +Shopside +Shopzilla +Shore +Shoreline +Shorelines +Shores +Short +Shortage +Shortages +Shortbread +Shortchange +Shortcoming +Shortcomings +Shortcut +Shortcuts +Shorten +Shortened +Shortener +Shortening +Shortens +Shorter +Shortest +Shortfall +Shortfilm +Shorthand +Shorting +Shortlist +Shortlists +Shortly +Shortness +Shorts +Shortsight +Shortsighted +Shortsightedness +ShotShotbow +Shotbows +Shotcaller +Shotcallers +Shotgun +Shots +Shotted +Shotting +Shoul +Should +Shoulda +Shoulder +Shoulders +Shouldnt +Shouldve +Shout +Shoutcasters +Shouted +Shouthshire +Shouting +Shoutout +Shoutouts +Shouts +Shove +Shoved +Shovel +Shovelers +Shoveling +Shovels +Shoving +Show +Showbiz +Showcase +Showcased +Showcases +Showcasing +Showdown +Showed +Shower +Showered +Showering +Showers +Showgoeson +Showing +Showman +Shown +Showpiece +Shows +Showthread +Showtimes +Showy +Shqiperia +Shrapnel +Shread +Shred +Shreda5 +Shreda5's +Shredded +Shredding +Shreds +Shreg +Shrek +Shreked +Shrekmate +Shreks +Shrekt +Shrew +Shrewd +Shrewdly +Shrewdness +Shriek +Shrieking +Shrieking Titanium Arbalest +Shrill +Shrimp +Shrimptopia +Shrine +Shrines +Shrink +Shrinkage +Shrinking +Shrinks +Shrivel +Shroom +Shroomdoom +Shroomery +Shrooms +Shroud +Shrouded +Shrub +Shrubberies +Shrubbery +Shrubs +Shrug +Shrugged +Shruggs +Shrugs +Shrunk +Shrunken +Shtim +Shtim's +Shucks +Shud +Shudder +Shudders +Shuddup +Shuffle +Shuffled +Shuffles +Shuffling +Shugg +Shui +Shuld +Shulker +Shulkerbox +Shulkers +Shun +Shunned +Shunning +Shunted +Shure +Shurima +Shurmee +Shurmee's +Shush +Shut +Shutdown +Shutdowns +Shutoff +Shuts +Shutter +Shutters +Shutting +Shuttle +Shuttling +Shutup +Shy +Shyguylie +Shyly +Shyness +Si Wong +Sibelius +Siberia +Siberian +Sibling +Siblings +Sicarius +Sicarius_Gray +Sicarius_Gray's +Sicily +Sick +Sicken +Sickened +Sickening +Sickens +Sickest +Sickle +Sickles +Sickness +Sicko +Sid +Side +Sidebar +Sideboard +Sidecarrot +Sided +Sidedness +Sidekick +Sideline +Sidelined +Sidelines +Sidenote +Sideplot +Sideproduct +Sideproject +Siders +Sides +Sideshow +Sidestep +Sidestepped +Sidestepping +Sidestreet +Sideswipe +Sidetracked +Sidevote +Sidevotebot +Sidevoted +Sidewalk +Sidewalks +Sideways +Siding +Sidings +Sidious +Sidney +Sido +Sidon +Sidonista +Sidons +Sie +Sieg +Siege +Sieged +Siegeing +Siegers +Sieges +Siegie +Sieging +Siemens +Siena +Sienna +Sierra +Sierra Leone +SiestaKeegs +SiestaKeegs's +Sieve +Sif +Sifting +Sifts +Sigh +Sighing +Sighs +Sight +Sightbinder +Sighted +Sightedness +Sighting +Sightings +Sights +Sightseeing +Sigificant +Sigil +Sigils +Sigma +Sigmaringen +Sigmaringen's +Sigmund +Sign +Signage +Signal +Signaled +Signaling +Signalled +Signallers +Signalling +Signals +Signatories +Signatory +Signature +Signatured_ +Signatured_'s +Signatures +Signed +Signers +Signet +Significance +Significant +Significantly +Signification +Signifies +Signify +Signifying +Signing +Signiored +Signoutput +Signpicture +Signpost +Signposted +Signposts +Signs +Signtology +Signup +Signups +Siiiiiick +Sike +Siksta +Siksta's +Silas +Sildurs +Silence +Silenced +Silences +Silencing +Silent +Silentcreeper +Silentcrew +Silently +Silents +Silentseeker +Silentseekr +Silentshitter +Silersky +Silersky's +Silesia +Silesian +Silesias +Silhouette +Silica +Silicon +Silk +Silkie +Silkies +Silkiest +Silks +Silktouch +Silktouched +Silky +Sillier +Silliness +Silly +Sillyness +Sillysnakes +Silmaril +Silos +Silt +Silva +Silvania +Silver +Silver Saber +Silver Saber, Soul of Hate +Silverfish +Silvermoon +Silversun +Silvertuxedo +Silvia +Sim +Simeon +Simi +Similair +Similar +Similarily +Similarities +Similarity +Similarly +Simmer +Simmultanously +Simon +Simone +Simpathetic +Simple +SimpleBastard +SimpleBastard's +Simplebastard +Simplelocator +Simpler +Simples +Simplest +Simpleton +Simpletons +Simplex +Simplicity +Simplicty +Simplification +Simplifications +Simplificed +Simplified +Simplifies +Simplify +Simplifying +Simplista +Simplistic +Simply +Simpology +Simpology's +Simps +Simpson +Simpsons +Simpy +Sims +Simulacrum +Simulant +Simular +Simulate +Simulated +Simulates +Simulating +Simulation +Simulations +Simulaton +Simulator +Simulators +Simultaneous +Simultaneously +Simultaniously +Sin +Sinatra +Since +Sincere +Sincerely +Sincerest +Sincerity +Sincerly +Sinful +Sing +Singapore +Singed +Singer +Singers +Singeth +Singing +Single +Singlechest +Singled +Singlehandedly +Singleplayer +Singles +Singular +Singularities +Singularity +Singularly +Sinister +Sinister Ironbark Speargun +Sinjoro +SinjoroJoCrafter +SinjoroJoCrafter +SinjoroJoCrafter 's +SinjoroJoCrafter's +Sinjorojo +Sinjorojocrafter +Sinjorojocrafter's +Sinjorojocrafters +Sink +Sinker +Sinkhole +Sinking +Sinks +Sinky +Sinned +Sinner +Sinning +Sins +SinsAndTragedies +SinsAndTragedies's +Sinstalin +Sint +Sintralin +Sintralin's +Siobhan +Sip +Sipping +Sips +Sir +SirAlador +SirAlador's +SirCrowley +SirCrowley's +SirFrenchie +SirFrenchie's +SirPenrose +SirPenrose's +SirTwiggles +SirTwiggles's +Sir_Kapten +Sir_Kapten's +Sir_Scratch21 +Sir_Scratch21's +Sir_Wash +Sir_Wash's +Sirboss +Sirboss001 +Sirboss001's +Sirbosss +Sircapalot +Sircapalot's +Sircrowley +Sire +Siren +Siren's Cry +Siren's Song +Sirens +Sirgod +Siri +Sirius +Sirs +Sirspanksalot +Sirup +Sis +Sissies +Sissy +Sister +Sister Republics +Sisters +Sisyphus +Sit +Sitcom +Site +Sites +Sitewide +Sith +Siths +Sits +Sitter +Sittin +Sitting +Situate +Situated +Situation +Situational +Situationally +Situationed +Situationial +Situationist +Situations +Situtation +Siv6265 +Siv6265's +Six +Sixsided +Sixteen +Sixth +Sixty +Sizable +Size +Sizeable +Sized +Sizes +Sjw +Skanky +Skate +Skateboard +Skateboards +Skater +Skating +Skeezy +Skeles +Skeletal +Skeletal Bolter +Skeletal Heavy Crossbow +Skeleton +Skeletons +Skeletor +Skelington +Skelleton +Skellie +Skellies +Skelly +Skellymen +Sketched +Sketches +Sketchier +Sketchiest +Sketchily +Sketching +Sketchpad +Sketchy +Skew +Skewed +Skewing +Skews +Ski +Skid +Skidaddle +Skiddie +Skiddies +Skiddo +Skiddoo +Skiddos +Skiddy +Skidmarks +Skidoodle +Skids +Skies +Skiing +Skil +Skilful +Skill +Skillcap +Skilled +Skillet +Skillful +Skillfully +Skillgap +Skills +Skillset +Skillsets +Skillup +Skillz +Skim +Skimmed +Skimming +Skimp +Skimped +Skin +Skinhead +Skinheads +Skinned +Skinner +Skinny +Skins +Skip +Skipped +Skippin +Skipping +Skippy +Skips +Skirmish +Skirmished +Skirmishes +Skirmishing +Skirt +Skirted +Skirting +Skirts +Skit +Skits +Skittles +Skribbl +Skrillex +Skrub +Skrubs +Skruntoo +Skruntoo's +Skulking +Skull +Skullcrusher +Skum +Skummy +Skunk +Sky +Skybase +Skyblock +Skyblock Devoted +Skybox +Skybride +Skybridge +Skybridged +Skybridges +Skybridging +Skybriding +Skybunker +Skybunker's +Skybunkers +Skydive +Skydiver +Skydiving +Skye +Skyfactory +Skyfall +Skyfall Yew Shortbow +Skyfarm +Skyfarms +Skyfire +Skyfort +Skyforts +Skyhold +Skyland +Skylands +Skylar +Skyler +Skylight +Skylights +Skylimit +Skylimits +Skyline +Skylines +Skynet +Skype +Skyrim +Skyrims +Skyroad +Skyrocket +Skys +Skyscapers +Skyscraper +Skyscrapers +Skyship +Skyships +Skytowers +Skytunnel +Skyvault +Skyvaults +Skywalker +Skywalking +Skywars +Skywatch +Skyway +Skyways +Slab +Slabs +Slabwalls +Slack +SlackTripod8913 +SlackTripod8913's +Slackbot +Slacked +Slacking +Slacks +Slacktopus +Sladerish +Sladerish's +Slag +Slagging +Slags +Slagy +Slain +Slake +Slam +Slammed +Slammer +Slamming +Slams +Slander +Slandered +Slanderer +Slandering +Slanderizing +Slanderous +Slanders +Slang +Slant +Slanted +Slap +Slapfight +Slapped +Slapping +Slaps +Slash +Slashed +Slasher +Slashes +Slashing +Slate +Slated +Slates +Slaughted +Slaughter +Slaughterd +Slaughtered +Slaughterhouse +Slaughtering +Slaughters +Slav +Slava +Slay +Slayed +Slayer +Slayer scythe +Slayers +Slayerwons +Slayerwons's +Slaying +Sleaze +Sleazy +Sled +Sledgehammer +Sleeep +Sleek +Sleep +Sleeper +Sleepers +Sleepin +Sleeping +Sleepless +Sleeps +Sleepwalker +Sleepwalker, Insignia of the Forsaken +Sleepwalking +Sleepy +SleepySauce +Sleet +Sleeve +Sleeves +Sleeze +Sleigh +Sleight +Sleights +Slept +Sleuthing +Slew +Slice +Slice of Life +Sliced +Slices +Slicing +Slick +Slicker +Slid +Slide +Slider +Sliders +Slides +Slideshow +Sliding +SlidingSquid208 +SlidingSquid208's +Slight +Slighted +Slightest +Slighting +Slightly +Slights +Slim +Slime +Slimeball +Slimeballs +Slimeblock +Slimeblocks +Slimechunks +Slimecraft +Slimer +Slimes +Slimester +Slimewool +Slimey +Slimiest +Sliminess +Slimmer +Slimy +Sling +Slinging +Slingshot +Slingshots +Slingshotting +Slink +Slip +Slipped +Slipper +Slippers +Slippery +Slipping +Slippy +Slippysocks +Slips +Slit +Slither +Slithered +Slithering +Slithery +Slits +Sliver +Sloan +Sloane +Slobbing +Slog +Slogan +Slogans +Slogging +Sloop +Slop +Slope +Sloped +Slopes +Sloping +Sloppily +Sloppy +Slot +Sloth +SlothInASuit +SlothInASuit's +Slothboy +Slothful +Sloths +Slots +Slotted +Slouch +Slough +Slovak +Slovakia +Slovakian +Slovenia +Slovenija +Slovensko +Slow +Slowdive +Slowdown +Slowed +Slowely +Slower +Slowest +Slowing +Slowly +SlowlyFunny2 +SlowlyFunny2's +Slowness +Slowpoke +Sludge +Slug +Sluggard +Slugging +Sluggish +Sluggishly +Sluice +Slum +Slumber +Slumbers +Slump +Slums +Slung +Slur +Slurp +Slurred +Slurring +Slush +Slushfund +Slushhi +Slushhi's +Sly +Smack +Smackdown +Smacked +Smacking +Smacks +Smal +Smaldragon +Small +Smalldogs +Smaller +Smallerviolins +Smallest +Smallish +Smallness +Smalls +Smalltime +Smalltown +Smart +Smartass +Smarter +Smartest +Smartie +Smarting +Smartly +Smartness +Smartphone +Smartphones +Smartredstone +Smarts +Smartshoes +Smarty +Smash +Smashbros +Smashed +Smasher +Smashes +Smashing +Smashmouth +Smatter +Smattering +Smear +Smeared +Smearing +Smell +Smelled +Smelling +Smells +Smelly +Smelt +Smelted +Smelter +Smelters +Smelting +Smelts +Smile +Smiled +Smiles +Smiley +Smileys +Smiling +Smirk +Smirking +Smirks +SmirkySpade3699 +SmirkySpade3699's +Smite +Smited +Smites +Smith +Smithereens +Smithies +Smithing +Smiths +Smithsonian +Smithy +Smiting +Smitten +Smoak +Smock +Smog +Smoke +Smoked +Smoker +Smokers +Smokes +Smokescreen +Smokey +Smokin +Smoking +Smoking joe +Smoky +Smol +Smolder +Smoldered +Smoldering +Smooch +Smooched +Smooches +Smoochie +Smoochies +Smooth +Smoothbrain +Smoothed +Smoothen +Smoother +Smoothie +Smoothies +Smoothing +Smoothly +Smoothness +Smoothstone +Smores +Smot +Smother +Smothered +Smothering +Smouldering +Smudge +Smug +Smuggest +Smuggies +Smuggle +Smuggled +Smuggler +Smugglers +Smuggling +Smuggy +Smugiest +Smugly +Smugness +Smugpost +Smugposting +Smurf +Smurfs +Smush +Snack +Snackbar +Snacks +Snafu +Snag +Snagged +Snagging +Snags +Snail +Snailmaster +Snails +Snake +Snakecrew +Snakelike +Snakenutrition +Snakes +Snakey +Snaking +Snap +Snapchat +Snapchats +SnappCraft +SnappCraft's +Snapped +Snappening +Snappin +Snapping +Snapple +Snappy +Snaps +Snapshot +Snapshots +Snapshotting +Snare +Snares +Snark +Snarkily +Snarky +Snarl +Snarled +Snarls +Snatch +Snatched +Snatches +Snatching +Snaw +Snazzy +Sneak +Sneakers +Sneakerz +Sneakily +Sneaking +Sneaky +Sneed +Sneed and Feed +Sneed's +Sneed's Feed and Seed +SneedChungus +SneedChungus's +Sneering +Sneeze +Sneezed +Sneezes +Snicker +Snickers +Snide +Snidely +Sniff +Sniffed +Sniffing +Sniffle +Sniffs +Snip +Snipe +Snipe, Poke of Eternal Justice +Sniped +Sniper +Snipers +Snipes +Snippet +Snippets +Snipping +Snips +Snitch +Snitch, Legacy of Ending Misery +Snitchbot +Snitchbots +Snitched +Snitches +Snitching +Snitchlist +Snitchlog +Snitchlogs +Snitchmaster +Snitchmod +Sniveling +Snivelling +Snob +Snobbily +Snobby +Snog +Snoke +Snoo +Snoochie +Snoonet +Snoop +Snooped +Snooping +Snoopy +Snoose +Snooze +Snoozing +Snor +Snore +Snort +Snorted +Snorting +Snot +Snout +Snowball +Snowballable +Snowballed +Snowballing +Snowballs +Snowboard +Snowboarding +Snowcone +Snowden +Snowed +Snowfall +Snowflake +Snowflake, Slayer of Fury +Snowflakes +Snowflakey +Snowing +Snowlayer +Snowman +Snowmans +Snowmen +Snowpiercer +Snows +Snowstorm +Snowy +SnowyOwlette +SnowyOwlette's +Snub +Snubbed +Snuck +Snuff +Snuffed +Snuggle +Snugly +Snyone +So +Soak +Soaked +Soaking +Soap +Soapbox +Soapboxing +Soapbucket +Soapbuckets +Soapbukkit +Soaps +Soapy +Soar +Soared +Soaring +Soarly +Soat +Sob +Sobbing +Sober +Sobered +Sobering +Sobre +Sobriety +Sobs +Soc +Soccer +Soccerball +Soccers +Sociable +Social +Socialisation +Socialise +Socialisim +Socialising +Socialism +Socialist +SocialistSpectre +SocialistSpectre's +Socialistbelle +Socialistbelle's +Socialistic +Socialistmelonparty +Socialists +Socialites +Socialization +Socialize +Socialized +Socializing +Socially +Socials +Societal +Societally +Societies +Society +Socio +Socioeconomic +Sociological +Sociologist +Sociologists +Sociology +Sociopath +Sock +Socket +Sockets +Sockpuppet +Socks +Socratic +Sod +Soda +Sodahead +Sodium +Sofa +Sofia +Soft +Softball +Softcap +Softcapped +Soften +Softened +Softening +Softens +Softer +Softest +Softlocked +Softly +Softmore +Software +Softwares +Soggy +SoggyBreadstick +SoggyBreadstick's +Soggywinter +Soil +Soiled +Soiling +Soju +Solace +Solana +Solar +Solaria +Solarian +Solarians +Solaris +Sold +Solder +Soldier +Soldiers +Sole +Soleil +Solely +Solemn +Solemnly +Soley +Solicit +Solicited +Soliciting +Solicitor +Solicitous +Solid +Solidarity +Solidary +Solidified +Solidifies +Solidify +Solidifying +Solidity +Solidly +Solis +Solitaire +Solitaire7 +Solitaire7's +Solitare +Solitary +Solitude +Solo +Soloed +Soloing +Solomon +Solomon Islands +Solos +Soluble +Solution +Solutions +Solvable +Solve +Solved +Solvent +Solver +Solves +Solving +Soma +Somali +Somalia +Somalian +Somber +Sombre +Sombreros +Some +Somebodies +Somebody +Somebra +Somebra's +Someday +Somedays +Somehow +Somekind +Someone +Someother +Someplace +Someplaces +Something +Somethings +Sometime +Sometimes +Someway +Someways +Somewhat +Somewhere +Son +Song +Songfish +Songs +Sonia +Sonic +Sonic screwdriver +Sonic the Hedgehog +SonicFrost +SonicFrost's +Sonicfrost +Sonics +Sonny +Sons +Sony +Soomaaliya +Soon +Sooner +Soonest +Soonish +Soontm +Sooo +Soooo +Sooooo +Soooooo +Soot +Soothe +Soothing +Soothsayer +Sop +Sophia +Sophie +Sophist +Sophisticated +Sophistication +Sophistry +Soprano +Sopranos +Soraya +Sorcerer +Sorcery +Sordid +Sore +Sorely +Soren +Soreness +Sorority +Soros +Sorrow +Sorrow's Redwood Bow +Sorry +Sort +Sorta +Sortable +Sortbynode +Sorted +Sorter +Sorters +Sortie +Sorties +Sorting +Sortof +Sorts +Sos +Sotw +Sou_Parw_Egw +Sou_Parw_Egw's +Sought +Soul +Soul Reaper +Soul-Forged Fetish +Soulblade +Soulcomplex +Souleater +Soulflare +Souls +Soulsand +Soulsilver +Soulsliver +Sound +SoundTech +SoundTech's +Soundbite +Soundbites +Soundboard +Soundcloud +Soundclouds +Soundhole +Soundly +Sounds +Soundtech +Soundtechs +Soundtrack +Soundtracks +Soup +Souped +Soupkitchencraft +Soupreemy +Soupreemy's +Soups +Sour +Source +Sourcecode +Sourced +Sourcefile +Sources +Sourcing +Sourdust +Soured +Souring +South +South Africa +South Augusta +South Sudan +Southbound +Southeast +Southeastern +Southend +Southern +SouthernBloc +SouthernBloc's +Southerners +Southernmost +Southerns +Southport +Southshire +Southshires +Southshore +Southsire +Southsoutheast +Southward +Southwards +Southwest +Southwestern +Soutshire +Souvenir +Souvenirs +Sovereign +Sovereignity +Sovereigns +Sovereignties +Sovereignty Ascending +Soverenity +Soverign +Sovia +Soviacorp +Sovian +Sovians +Sovias +Soviet +Soviets +Sovngarde +Sowed +Sowing +Sows +Sowwy +Sox +Soy +Soyboy +Soyboys +Soygirl +Soylent +Soz +Sozzled +Sozzzzz +Spa +Space +Spacebar +Spacecode +Spacecow +Spacecraft +Spaced +Spaceengineers +Spacefountain +Spacejam +Spaceman +SpacemanSpleef +SpacemanSpleef's +Spaceman_Spleef +Spaceman_Spleef's +Spaceneedle +Spacer +Spaces +Spaceship +Spaceships +Spacestation +Spacestations +Spacevolcano +Spacevolcano's +Spacewalk +Spacex +Spacing +Spacious +Spade +Spades +Spaghetti +Spain +Spainland +Spam +Spambot +Spambots +Spammable +Spammed +Spammer +Spammers +Spammier +Spamming +Spammy +Spams +Span +Spandex +Spangled +Spaniard +Spaniards +Spaniel +Spanish +Spanishes +Spank +Spanked +Spanking +Spanks +Spanky +Spanned +Spanner +Spanners +Spanning +Spar +Spare +Spared +Spares +Sparing +Sparingly +Spark +Sparked +Sparkgear +Sparking +Sparkle +Sparkles +Sparkling +Sparkly +Sparknotes +Sparks +Sparky +Sparring +Sparrow +Sparse +Sparsely +Sparta +Spartan +Spartans +Spartas +Sparticus +Sparze +Spasm +Spat +Spatial +Spatially +Spatula +Spatular +Spawn +Spawnable +Spawnbook +Spawncamped +Spawndetector +Spawner +Spawnercontrol +Spawners +Spawnevent +Spawning +Spawnpoint +Spawnpoints +Spawnreason +Spawnrooms +Spawns +Speak +Speaker +Speakers +Speaking +Speaks +Spear +Spearhead +Spearheaded +Spearheading +Spearmen +Spears +Special +Specialisation +Specialist +Specialists +Specialities +Speciality +Specialization +Specializations +Specialize +Specialized +Specializes +Specializing +Specially +Specials +Specialties +Specialty +Species +Specific +Specifically +Specification +Specifications +Specificlanguage +Specificlanguages +Specifics +Specified +Specifies +Specify +Specifying +Specimen +Specimens +Specs +Spectacle +Spectacular +Spectacularly +Spectate +Spectated +Spectating +Spectator +Spectators +Specter +Spectral +Spectral Deflector +Spectral-Forged Silver Reaver +Spectre +Spectroscope +Spectroscopy +Spectrum +Speculate +Speculated +Speculating +Speculation +Speculations +Speculative +Speculator +Speech +Speeches +Speechless +Speechwriter +Speed +Speedbreak +Speedclicker +Speedhack +Speedhackers +Speedhacking +Speeding +Speeds +Speedway +Speedy +SpeedyJustice +SpeedyJustice's +Spell +Spellbinder +Spellbound +Spellcheck +Spellchecker +Spellchecking +Spelled +Spelling +Spellings +Spells +Spellsong +Spelunking +Spencer +Spend +Spending +Spends +Spendy +Spent +Sperg +Spewing +Spews +Sphere +Spheres +Spherical +Spheroid +Sphinx +Spice +Spice melange +Spiced +Spices +Spiceworld +Spicey +Spicier +Spiciest +Spicy +Spicyjuice +Spicyness +Spider +Spiderbots +Spiderman +Spiderpig +Spiders +Spiderstring +Spiderweb +Spiderwebs +Spidey +Spied +Spiel +Spies +Spiffy +Spigot +Spigotmc +Spigots +Spike +Spiked +Spikes +Spiking +Spiky +Spill +Spilled +Spilling +Spills +Spin +Spinach +Spinal +Spindle +Spine +Spineless +Spinner +Spinning +Spinoff +Spinoffs +Spinster +Spiral +Spiraled +Spiraling +Spiralled +Spirals +Spire +Spires +Spirit +Spirited +Spirits +Spiritual +Spiritualism +Spirituality +Spiritually +Spirity +Spirt +Spit +Spitball +Spitballin +Spitballing +Spite +Spiteful +Spitefully +Spitfire +Spits +Spitter +Spitters +Spitting +Spittle +Splash +Splashed +Splashes +Splashing +Splat +Splatter +Splattered +Splatters +Spleef +Spleefed +Spleefleague +Spleen +Splendid +Splendidly +Splendor +Splice +Spliced +Splicing +Splinter +Splinter, Destroyer of Hatred +Splintered +Splintering +Splinters +Split +Splits +Splitter +Splitting +Sploodge +Sploodington +Sploosh +Splutter +Spoil +Spoilage +Spoiled +Spoiler +Spoileralert +Spoilers +Spoiling +Spoils +Spoilt +Spoke +Spoken +Spokes +Spokesman +Spokesmen +Spokesperson +Sponge +Spongebob +Spongecorp +Spongemaster +Sponges +Spongy +Sponsor +Sponsored +Sponsoring +Sponsors +Sponsorship +Spontaneity +Spontaneous +Spontaneously +Spoof +Spoofed +Spoofing +Spoofs +Spoogy +Spook +SpookeScoops +SpookeScoops's +Spooked +Spookiest +Spooking +Spooks +Spooky +SpookySandstone +SpookySandstone's +Spookymemes +Spookyspooks +Spoon +Spoonce +Spoonce's +Spooner +Spoonfed +Spooning +Spoons +Spoopy +Sporadically +Spore +Spork +Sporks +Sport +Sporting +Sportman +Sports +Sportsman +Sportsmanship +Spot +Spotfixes +Spotify +Spotless +Spotlight +Spots +Spotted +Spotting +Spouse +Spouses +Spout +Spouted +Spouting +Spouts +Spqr +Sprain +Sprained +Sprawl +Sprawled +Sprawling +Sprawls +Spray +Sprayed +Spraying +Sprays +Spread +Spreaded +Spreading +Spreads +Spreadsheet +Spreadsheeting +Spreadsheets +Spree +Spring +Springboard +Springer +Springfield +Springing +Springs +Springsteen +Springtime +Sprinkle +Sprinkled +Sprinkling +Sprinklings +Sprint +Sprinted +Sprinting +Sprintler +Sprite +Sprites +Sprout +Sprouted +Sprouting +Spruce +Spruces +Sprucing +Sprung +Spun +Spunk +Spur +Spurred +Spurs +Spurt +Spurts +Spy +Spying +Spymaster +Spyrates +Spyware +Spywork +Sqeaker +Sql +Squab +Squabble +Squabbled +Squabbles +Squabbling +Squack +Squad +Squadron +Squadrone +Squads +Squall +Squally +Squalor +Squander +Squandered +Squandering +Square +Squareblob +Squareblobia +Squareblobpost +Squareblobs +Squarebob +Squared +Squarefriend +Squarehead +Squarely +Squarepost +Squareposts +Squares +Squarespace +Squaring +Squash +Squashed +Squashing +Squat +Squats +Squatted +Squatter +Squatters +Squatting +Squawking +Squeak +Squeaker +Squeakers +Squeaking +Squeaks +Squeaky +Squeal +Squealed +Squealing +Squeamish +Squid +SquidHasTheBad +SquidHasTheBad's +Squidcops +Squidlover +Squidnet +Squids +Squidstar123 +Squidstar123's +Squidward +Squint +Squinted +Squinting +Squirm +Squirming +Squirrel +Squirreled +Squirrels +Squirt +Squirting +Squirtle +Squish +Squished +Squisher +Squishier +Squishiness +Squishing +Squishy +Sr_Hikari +Sr_Hikari's +Srbija +Sredets +Sri Lanka +Srivatsa +Sry +Sshhh +Ssssnek +Sssssss +Stab +Stabbed +Stabber +Stabbers +Stabbing +Stabby +Stabilised +Stabilises +Stability +Stabilize +Stabilized +Stabilizes +Stabilizing +Stable +StableGenius123 +StableGenius123's +Stablehands +Stables +Stablize +Stably +Stabs +Stack +Stackability +Stackable +Stacked +Stacking +Stackoverflow +Stackpiles +Stacks +Stacksize +Stacktrace +Stacy +Stadium +Stadiums +Staff +Staffed +Staffing +Staffperson +Staffs +Stage +Staged +Stages +Stagger +Staggered +Staggering +Staggeringly +Staggers +Staging +Stagnant +Stagnate +Stagnated +Stagnates +Stagnating +Stagnation +Stahp +Stain +Stained +Staining +Stainless +Stains +Stair +Staircase +Staircases +Stairs +Stairway +Stairways +Stairwell +Stake +Staked +Stakeholder +Stakeholders +Stakes +Staking +Stal +Stale +Stalemate +Stalemates +Stalin +Stalingrad +Stalinism +Stalinist +Stalinists +Stalins +Stalk +Stalked +Stalker +Stalkerish +Stalkers +Stalking +Stalks +Stall +Stalled +Stalling +Stallion +Stallman +Stalls +Stalwart +Stamina +Stamp +Stamped +Stampede +Stampeding +Stamping +Stamps +Stan +Stance +Stances +Stand +Standalone +Standard +Standardised +Standardising +Standardization +Standardize +Standardized +Standardizing +Standards +Standby +Standing +Standings +Standoff +Standoffish +Standoffs +Standout +Standpoint +Standstill +Standup +Stanford +Stanihurst +Stanihurst's +Stank +Stanley +Stap +Staple +Stapler +Stapling +Star +StarDust +StarForge +StarKing +StarWars +Starboard +Starbound +Starbucks +Starch +Starcraft +Stardarkness +Stardew +Stardom +Stare +Stared +Starfall, Soul of Insanity +Starfish +Stargate +Staring +Stark +Starkly +Starlight +Starling +Starlord +Starminer +Starofdarkness +Starongia +Starplatinum +Starred +Starring +Starry +Stars +Starship +Starshiptroopers +Starsmerchant +Starstruck +Starstruck, Etcher of Cruelty +Start +Started +Starter +Starters +Starting +Startle +Startled +Startling +Starts +Startup +Startups +Starvation +Starvationcraft +Starve +Starved +Starves +Starving +Starwars +Stash +Stashed +Stashes +Stashing +Stat +State +StateCraftMC +Stateapparatus +Statecraft +Stated +Statehood +Stateless +Statelessness +Stately +Statement +Statements +States +Stateship +Statesman +Statesmanship +Statesmen +Statesperson +Statewide +Static +Statically +Stating +Station +Stationary +Stationed +Stationery +Stations +Statist +Statistic +Statistical +Statistically +Statistics +Stats +Statue +Statues +Stature +Statures +Status +Status Civitatis Vaticanæ +Statuses +Statushud +Statutory +Staunch +Staunchest +Staunchly +Stave +Staves +Stawp +Stay +Stayed +Staying +Stays +Stead +Steadfast +Steadfastly +Steadfastness +Steadily +Steady +Steak +Steaks +Steal +Stealer +Stealers +Stealin +Stealing +Steals +Stealth +Stealthed +Stealthily +Stealthy +Stealthy_Warlord +Stealthy_Warlord's +Steam +Steamcommunity +Steamed +Steamers +Steaming +Steamport +Steampowered +Steampunk +Steamrole +Steamroll +Steamrolled +Steamrolling +Steams +Steamy +Steap +Steel +Steelers +Steels +Steelworks +Steely +Steep +Steeped +Steeper +Steeple +Steeply +Steerage +Steered +Steering +Stefan +StefanMakker +StefanMakker's +Steg +Stein +Steinberg +Steiner +Stella +Stellar +Stellaris +Stem +Stemlord +Stemming +Stench +Stenographer +Step +Stephanie +Stephen +Stepped +Steppes +Stepphen +Stepphen's +Stepping +Steps +Stereo +Stereotype +Stereotyped +Stereotypes +Stereotypical +Stereotyping +Sterile +Sterilization +Sterling +Stern +Sternly +Steroids +Steve +Steven +Stevens +Steves +Stevie +Stew +Steward +Stewardess +Stewardessship +Stewards +Stewardship +Stewart +Stfu +Stiches +Stick +Sticked +Sticker +Stickers +Stickied +Stickies +Sticking +Stickler +Stickman +Sticks +Sticky +StickySwitch +StickySwitch's +Stickying +Stickyswitch +Stiff +Stiffed +Stiffen +Stifled +Stifles +Stifling +Stigma +Stigmatisation +Stigmatise +Stigmatize +Still +Stilled +Stillness +Stills +Stilts +Stimpy +Stimulant +Stimulants +Stimulate +Stimulates +Stimulating +Stimulation +Stimuli +Stimulus +Sting +Stinger +Stinginess +Stinging +Stinging Nettle +Stingray +Stingrays +Stings +Stingy +Stink +Stinker +Stinking +Stinks +Stinksters +Stinky +Stint +Stints +Stip +Stipend +Stipulate +Stipulated +Stipulates +Stipulation +Stipulations +Stir +Stiring +Stirred +Stirrer +Stirrers +Stirring +Stirs +Stitch +Stitched +Stitches +Stitching +Stock +Stockade +Stocked +Stockholm +Stocking +Stockings +Stockist +Stockpile +Stockpileable +Stockpiled +Stockpilers +Stockpiles +Stockpiling +Stocks +Stockyard +Stoic +Stoical +Stoicism +Stoke +Stoked +Stole +Stolen +Stomach +Stomachable +Stomp +Stomped +Stomping +Stomps +Stonato +Stone +Stoneblock +Stonebreaks +Stonebrick +Stonebricks +Stonebroke +Stonebroke's +Stoneburrow +Stoned +Stonefield +Stonehenge +Stonekeep +Stonenia +Stoner +Stoners +Stones +Stonewall +Stonewalled +Stonewalling +Stonewalls +Stonework +Stonk +Stood +Stool +Stoop +Stooped +Stoot +Stop +Stopgap +Stopid +Stoping +Stopped +Stopping +Stops +Storage +Storages +Store +Stored +Storefront +Storefronts +Storehouse +Storehouses +Storeroom +Storerooms +Stores +Storied +Stories +Storing +Stork +Storm +Stormborn +Stormcloaks +Stormed +Stormfront +Storming +Stormmire +Storms +Stormsweeper +Stormtrooper +Stormy +Story +Storyboards +Storyline +Storytelling +Storytime +Storyville +Stove +Stow +Stowed +StrPlatinum +StrPlatinum's +Straddle +Straddles +Straddling +Strafer +Strafers +Strafes +Strafing +Stragglers +Straight +StraightUp_MC +StraightUp_MC's +Straighten +Straightened +Straightening +Straighter +Straightforward +Straights +Strain +Strained +Straining +Strains +Strait +Straits +Strand +Stranded +Strands +Strange +Strangely +Strangeness +Stranger +Strangers +Strangest +Strangle +Strangled +Stranglehold +Strangles +Strangling +Strap +Strapped +Strapping +Strat +Strategic +Strategical +Strategically +Strategies +Strategist +Strategists +Strategize +Strategizing +Strategy +Stratification +Stratified +Stratosphere +Straw +Strawberries +Strawberry +Strawman +Strawmanning +Strawmen +Strawpoll +Strawpolls +Straws +Stray +Strayed +Straying +Strays +Streak +Streaks +Stream +Streamable +Streamed +Streamer +Streamers +Streaming +Streamline +Streamlined +Streamlining +Streamlive +Streams +Strech +Street +Streetcleaners +Streetfight +Streets +Streetscape +Streetwear +Strength +Strengthen +Strengthened +Strengthening +Strengthens +Strengths +Strenuous +Strenuously +Stress +Stressed +Stresser +Stresses +Stressfull +Stressing +Stretch +Stretched +Stretcher +Stretches +Stretching +Strew +Strewn +Stricken +Stricky +Stricly +Strict +Stricter +Strictest +Strictly +Strictness +Stride +Strident +Strider +Striders +Strides +Strike +Striked +Striker +Striker's Iron Chord +Strikes +Striketeam +Strikethrough +Striking +Strikingly +String +Stringent +Stringing +Strings +Stringy +Strip +Stripe +Striped +Stripes +Stripmine +Stripmining +Stripped +Stripper +Strippers +Stripping +Strips +Strive +Strived +Striven +Strives +Striving +Stroke +Stroked +Strokes +Stroking +Stroll +Strong +Strongarm +Stronger +Strongest +Stronghold +Strongholds +Strongly +Strongman +Stronk +Stronker +Stronkest +Stronks +Struck +Structuralism +Structurally +Structure +Structured +Structureless +Structurelessness +Structures +Structuring +Structurism +Struggle +Struggled +Struggles +Struggling +Strung +Strut +Stuart +Stuarts +Stub +Stubborn +Stubborness +Stubbornly +Stubbornness +Stubby +Stubs +Stuck +Stud +Studded +Student +Students +Studied +Studies +Studio +Studios +Studiously +Study +Studying +Stuff +Stuffed +Stuffing +Stuffs +Stuffy +Stumble +Stumbled +Stumbles +Stumbling +Stump +Stumped +Stumping +Stumps +Stun +Stung +Stunk +Stunned +Stunning +Stunningly +Stunt +Stunted +Stunting +Stunts +Stupendous +Stupendously +Stupid +Stupidely +Stupider +Stupidest +Stupidity +Stupidly +Stupids +Stupor +Sturdier +Sturdy +Sturgeon +Stutter +Stuttering +Style +Styled +Styles +Styling +Stylish +Stylistic +Stylistically +Stylized +Stylus +Styx +Sub +Subar +Subarus +Subatomic +Subbed +Subbing +Subcat +Subchannel +Subchannels +Subchunk +Subclaim +Subcommittee +Subcommunities +Subconscious +Subconsciously +Subcontinent +Subculture +Subcultures +Subdivide +Subdivided +Subdivision +Subdivisions +Subdomain +Subdomains +Subdue +Subdued +Subflair +Subfolder +Subforum +Subforums +Subgenre +Subgroup +Subgroups +Subheading +Subheadings +Subhuman +Subhumans +Subitem +Subject +Subject_010 +Subject_010's +Subjected +Subjecting +Subjective +Subjectively +Subjectivism +Subjectivity +Subjects +Subjugate +Subjugated +Subjugating +Subjugation +Subjunctive +Sublimate +Sublime +Sublimedirectory +Subliminal +Subliminally +Sublimity +Submarine +Submarines +Submenu +Submerged +Submission +Submissions +Submissive +Submit +Submits +Submitted +Submitter +Submitters +Submitting +Subnational +Suboptimal +Suborder +Subordinate +Subordinated +Subordinating +Subpar +Subpost +Subpvp +Subpvper +Subpvpers +Subreddit +Subreddital +Subredditdrama +Subredditpvp +Subredditpvping +Subreddits +Subredditsimulator +Subs +Subsaharan +Subscribe +Subscribed +Subscriber +Subscribers +Subscribes +Subscribing +Subscription +Subscriptions +Subsection +Subsequent +Subsequently +Subservient +Subset +Subsets +Subside +Subsided +Subsides +Subsidiaries +Subsidiary +Subsidies +Subsidize +Subsidized +Subsidizes +Subsidizing +Subsidy +Subsist +Subsistence +Subsisting +Substance +Substances +Substantial +Substantially +Substantiated +Substantiating +Substantiation +Substantive +Substantively +Substate +Substation +Substitute +Substituted +Substitutes +Substituting +Substitution +Substitutions +Substructures +Subsumed +Subsurface +Subterfuge +Subtext +Subthread +Subtitle +Subtitles +Subtle +Subtle knife +Subtler +Subtleties +Subtlety +Subtly +Subtract +Subtracted +Subtracting +Subtraction +Suburb +Suburban +Suburbia +Suburbs +Subversion +Subversive +Subvert +Subvert_ +Subvert_'s +Subverted +Subverting +Subway +Subways +Succedding +Succeded +Succeed +Succeeded +Succeeding +Succeeds +Succesfull +Succesfully +Succesor +Success +Successes +Successful +Successfull +Successfully +Succession +Successive +Successor +Successors +Succinct +Succinctly +Succubus +Succulent +Succumb +Succumbed +Such +SuckFanta +Suckfanta +Suckfantas +Sucking +Sucks +Suckups +Sucky +Sudan +Sudanese +Sudden +Suddenly +Sudders +Sudo +Sudoku +Sue +Sued +Sueing +Sues +Suffer +Suffered +Sufferers +Suffering +Suffers +Suffice +Sufficed +Suffices +Sufficiant +Sufficiency +Sufficient +Sufficiently +Suffix +Suffocate +Suffocated +Suffocates +Suffocating +Sugar +Sugarcane +Sugarcubes +Sugars +Sugary +Sugesting +Sugestions +Suggest +Suggested +Suggesting +Suggestion +Suggestions +Suggestive +Suggestively +Suggests +Sugma +Sugoi +SuguhaL +SuguhaL's +Sui +Suing +Suit +Suitable +Suitably +Suitcase +Suite +Suited +Suites +Suiting +Suits +Suleisil +Suleisil's +Sulfur +Sulk +Sulkily +Sulking +Sullied +Sullivan +Sully +Sulphide +Sulphuric +Sulphurous +Sultan +SultanNicolas +SultanNicolas's +Sultanate +Sultry +Sum +Sumarize +Sumatra +Sumeria +Sumerian +Summaries +Summarily +Summarize +Summarized +Summarizes +Summarizing +Summary +Summed +Summer +Summers +Summertime +Summery +Summing +Summit +Summits +Summon +Summoned +Summoner +Summoning +Summons +Sumo +Sump +Sumptuous +Sums +Sumter +Sun +Sunbeam +Sunburn +Sunday +Sundays +Sunder +Sunderland +Sunders +Sundown +Sunfish +Sunflower +Sunflowers +Sunglasses +Sunk +Sunken +Sunless +Sunlight +Sunny +Sunrise +Suns +Sunscreen +Sunset +Sunset_Waltz +Sunset_Waltz's +Sunshine +Sunside +Sunstroke +Sunwall +Suomi +Sup +SupGamingHamster +SupGamingHamster's +Super +Super Mario Bros +Super Mario World +SuperBibbles +SuperBibbles's +Superadmin +Superalliance +Superb +Superbgamer5225 +Superbgamer5225's +Superblock +Superblocks +Superbot +Superbuilder +Superbuilders +Supercar +Supercart +Supercarting +Supercarts +Supercedes +Supercell +Supercharged +Supercilious +Supercomputer +Supercomputers +Superegos +Superfast +Superficial +Superficially +Superflat +Superfluous +Superfortress +Superfriend +Superfriends +Superfriendy +Superfund +Superhero +Superheroes +Superheros +Superhighway +Superhuman +Superhumanly +Superimpose +Superimposing +Superintendent +Superior +Superiority +Superiors +Supermall +Superman +Supermarket +Supermarkets +Supermen +Supermod +Supernatural +Superpac +Superposition +Superpower +Superpowered +Superpowers +Supers +Superseded +Supersedes +Supersize +Supersoldiers +Supersonic +Superstar +Superstate +Superstition +Superstitious +Superstructure +Superuser +Supervault +Supervaults +Supervillain +Supervise +Supervised +Supervising +Supervision +Supervisor +Supervisors +Superweapon +Superwizard +Superyacht +Supper +Supplanted +Supple +Supplement +Supplemental +Supplementary +Supplemented +Supplementing +Supplements +Supplied +Supplier +Suppliers +Supplies +Supply +Supplying +Support +Supported +Supporter +Supporters +Supporting +Supportive +Supports +Suppose +Supposed +Supposedly +Supposes +Supposing +Suppossed +Suppossedly +Suppress +Suppressed +Suppresses +Suppressing +Suppression +Suppressive +Supprised +Supprises +Supra +Supremacy +Supreme +Supremely +Supress +Supressed +Suprise +Suprised +Suprising +Suprisingly +Suramir +Suramir's +Sure +Sureeeeeeee +Surefire +Surefoot +Surely +Surer +Surest +Surf +Surface +Surfaced +Surfaces +Surfacing +Surfer +Surfing +Surge +Surged +Surgeon +Surgeons +Surgeries +Surgery +Surges +Surgical +Surgically +Surging +Suriname +Suriyah +Surmadri +Surmised +Surmount +Surname +Surnames +Surogat +Surpass +Surpassed +Surpasses +Surpassing +Surplus +Surpluses +Surprise +Surreal +Surrealism +Surrealist +Surrender +Surrendered +Surrendering +Surrenders +Surrogate +Surrogates +Surround +Surrounded +Surrounding +Surroundings +Surrounds +Surveillance +Survery +Survey +Surveyed +Surveying +Surveymonkey +Surveys +Survival +Survivalworld +Survive +Survived +Survives +Surviving +Survivor +Survivors +Sus +Susanna +Susceptible +Susepaea +Sushi +Suspect +Suspected +Suspecting +Suspects +Suspend +Suspended +Suspending +Suspense +Suspension +Suspicion +Suspicions +Suspicious +Suspiciously +Suspiciousness +Sussex +Sussy +Sustain +Sustainability +Sustainable +Sustainably +Sustained +Sustaining +Sustains +Sustenance +Sutton +Sutured +Sux +Suzanne +Suzuki +Svalinn +Sven +Sverige +Svg +Swaggatron +Swagger +Swaggin +Swaggy +Swahili +Swahilli +Swain +Swallow +Swallowed +Swallower +Swallowing +Swallows +Swam +Swamp +Swamped +Swampland +Swamplands +Swamps +Swampy +Swan +Swang +Swanky +Swans +Swansong +Swap +Swappable +Swapped +Swapper +Swapping +Swaps +Swarm +Swarming +Swarms +Swashbucklers +Swashbucklin +Swashbuckling +Swatting +Sway +Swayed +Swaying +Swaziland +Swear +Swearing +Swears +Sweat +Sweater +Sweatest +Sweatfest +Sweating +Sweatpants +Sweats +Sweatshirt +Sweatshop +Sweaty +Sweden +Swedish +Sweeeeet +Sweep +Sweeping +Sweet +Sweeten +Sweeter +Sweetest +Sweethart +Sweetheart +Sweetie +Sweets +Sweettalk +Sweety +Swell +Swelled +Swelling +Swept +Swerve +Swift +Swiftfizz +Swiftism +Swiftist +Swiftists +Swiftly +Swiftness +Swifts +Swig +Swiggity +Swim +Swiming +Swimmer +Swimming +Swimmingly +Swims +Swimsuit +Swimsuits +Swindle +Swindled +Swindler +Swine +Swineherd +Swing +Swingers +Swinging +Swings +Swipe +Swiper +Swipes +Swiping +Swirl +Swirling +Swirls +Swirly +Swish +Swishing +Swiss +Swissandham +Swissandhams +Swisston +Switch +Switchable +Switched +Switcheroo +Switches +Switching +Switzerland +Swivel +Swizzle +Swoe +Swole +Swoll +Swollen +Swoon +Swoons +Swoop +Swooped +Swooping +Swooter +Swooty +Sword +Sword of Laban +Sword of omens +SwordMaster +SwordMaster's +SwordMaster7777 +SwordMaster7777's +SwordProof +SwordProof's +Swordfight +Swordfighting +Swordfish +Swordmaster777 +Swordmen +Swordrattling +Swords +Swordsman +Swordsmen +Swordswomen +Swore +Sworn +Swum +Swung +Sycophant +Sycophantic +Sycophants +Sydney +Syllable +Syllables +Sylvia +SymSquid +SymSquid's +Symbiotic +Symbiotically +Symbol +Symbolic +Symbolical +Symbolising +Symbolism +Symbolize +Symbolizes +Symbolizing +Symbology +Symbols +Symmetrical +Symmetries +Symmetry +Sympathetic +Sympathies +Sympathise +Sympathiser +Sympathisers +Sympathising +Sympathize +Sympathized +Sympathizer +Sympathizers +Sympathizes +Sympathizing +Sympathy +Symphony +Symposium +Symptom +Symptomatic +Symptoms +Symptons +Syms +Symstead +Synagogue +Synapses +Sync +Synced +Synchronised +Synchronization +Synchronized +Synchronizing +Synchronous +Synchronously +Syncing +Syncs +Syndicalist +Syndicalists +Syndicate +SyndicateNA +SyndicateNA's +Syndicated +Syndicates +Syndication +Syndrome +Synergies +Synergistic +Synergizes +Synergy +Synonym +Synonymous +Syntax +Syntaxerror +Synth +Synthesis +Synthesised +Synthesize +Synthesized +Synthetic +Synths +Syphilis +Syrene +Syria +Syrian +Syrians +Syringe +Syrup +System +Systematic +Systematical +Systematically +Systemic +Systems +Sytem +Syurii +Syurii's +Szymon1999 +Szymon1999's +SzymonGa +SzymonGa's +São Tomé +São Tomé e Príncipe +T +T'ai-wan +T0mmyShelby0 +T0mmyShelby0's +T1 +TCR_GunnerDell +TCR_GunnerDell's +TKON +TR3NT03 +TR3NT03's +Tab +Tabbers +Tabbers's +TabbyBlue +TabbyBlue's +Tabbynya +Tabbynya's +Tabernacle +Table +Tableau +Tableaux +Tablecloth +Tables +Tablespoon +Tablet +Tabletop +Tablets +Tablist +Tabloid +Tabloids +Taboo +Tabooed +Tabs +Tabula +Tabulated +TacXer +TacXer's +Tacilus +Tacilus's +Tacit +Taciturnity +Tack +Tacked +Tackiest +Tacking +Tackle +Tackled +Tackling +Tacks +Tacky +Taco +Tacobell +Tacos +Tact +Tactful +Tactfully +Tactic +Tactical +Tactically +Tactician +Tactics +Tactless +Tag +Tagalog +Tagged +Tagging +Tagline +Taglines +Tags +Tahiti +Tahoe +Taiga +Taiga Kingdom +Taigas +Tail +Tailbone +Tailed +Tailor +Tailored +Tailoring +Tailors +Tails +Taint +Tainted +Taiwan +Taiwanese +Tajikistan +Takbir +Take +Takeaway +Takedown +Taken +Takeoff +Takeout +Takeover +Takeovers +Taker +Takers +Takes +Takin +Talaria +Tale +Talent +Talented +Talents +Tales +Talia +Talisman +Talk +Talkative +Talked +Talker +Talkers +Talking +Talkings +Talks +Tall +Taller +Tallest +Tallied +Tallulah +Tally +Tallying +Talmberg +Talmud +Tamara +Tambourine +Tambov +Tame +Tamed +Tamer +Tamil +Taming +Tampa +Tampabay +Tamper +Tampered +Tampering +Tamriel +Tandem +Tangential +Tangentialism +Tangentially +Tangentialthreat +Tangentialthreats +Tangible +Tangibly +Tangled +Tango +Tanguista +Tank +Tankbuster +Tankbusters +Tankbuttszer +Tanked +Tanker +Tankiest +Tankiness +Tanks +Tanky +Tankyness +Tanned +Tanner +Tantalizing +Tantamount +Tantrum +Tantruming +Tantrums +Tanuki +Tanya +Tanzania +Tao +Taoist +Taoists +Taozi +Tap +Tape +Taped +Taper +Tapered +Tapering +Tapers +Tapes +Tapestry +Taping +Tapir +Tapmusic +Tapped +Tapping +Taps +Tara +Target +Targeted +Targeting +Targets +TarindEdge +TarindEdge's +Tarnation +Tarnations +Tarnheim +Tarnish +Tarnished +Tarnishing +Tarragona +Tartar +Tartarus +Tartary +Task +Tasked +Taskforce +Tasks +Tasmania +Taste +Tastebuds +Tasted +Tasteful +Tasteless +Taster +Tastes +Tasting +Tasty +Tatar +Tatdat +Tatdat's +Tated +Tatiana +Tattered +Tatters +Tattling +Tattoo +Tattooed +Tattoos +Taught +Taunt +Taunted +Taunting +Taunts +Taurus +Tautological +Tavern +Tax +Taxable +Taxation +Taxed +Taxes +Taxi +Taxing +Taxpayer +Taxpayers +Taylor +Taytay +Tb +Tbs +Tchad +Tchadda +Tea +Teach +Teacher +Teachers +Teaches +Teaching +Teachings +Teacup +Teagan +Teajizzle +Teajizzles +Teal +TealNerd +TealNerd's +Tealcliff +Tealcliffs +Tealnerd +Tealnerds +Teals +Tealyboi +Team +Teamed +Teamfight +Teamfighting +Teamfights +Teaming +Teammate +Teammates +Teamwork +Teapot +Tear +Tear one +Teardown +Teared +Tearful +Tearing +Tears +Tease +Teased +Teaser +Teases +Teasing +Teaspoon +Teaspoons +Tech +Tech0tron +Tech0tron's +Technic +Technical +Technicalities +Technicality +Technically +Technicals +Technician +Technicians +Technique +Techniques +Techno +Technocracy +Technological +Technologically +Technologies +Technology +Techtree +Teddy +Tedious +Tediously +Tediousness +Teen +Teenage +Teenager +Teenagers +Teens +Teensy +Teeth +Tel Aviv +Telaviv +Telavivian +Telecharger +Telecom +Telecommunications +Telegram +Telegrams +Telegraph +Telegraphic +Telegraphy +Telemarketer +Telepathically +Telepathy +Telephone +Telephones +Telephoning +Telephony +Teleport +Teleportation +Teleported +Teleporter +Teleporters +Teleporting +Teleports +Telescope +Teletubbies +Teletubby +Television +Televisions +Teller +Telltale +Temerity +Temili +Temili's +Tempbanned +Temper +Temperament +Temperamental +Temperance +Temperate +Temperature +Temperatures +Tempered +Tempering +Tempestuous +Templar +Templars +Template +Templates +Temple +Temples +Temporal +Temporal Isles +Temporally +Temporarily +Temporary +Temportal Isles +Temptation +Tempted +Tempting +Ten +Tenable +Tenacious +Tenaciously +Tenacity +Tenancy +Tenant +Tenants +Tended +Tendencies +Tendency +Tender +Tenderness +Tenders +Tending +Tendon +Tenement +Tenet +Tenets +Tengri +Tennessee +Tennis +Tenor +Tense +Tensed +Tenseimiya +Tenseness +Tenses +Tension +Tensions +Tent +Tentacle +Tentacles +Tentative +Tentatively +Tenth +Tenths +Tents +Tenuous +Tenure +Tenured +Tepid +Tepidly +Tequila +Tequitos +Terabyte +Terabytes +Teresa +Teriyaki +Term +Terminal +Terminally +Terminals +Terminated +Terminates +Terminating +Termination +Terminator +Terminators +Terminology +Terminus +Terra +Terrace +Terraces +Terracotta +Terracottas +Terraform +Terraformed +Terraforming +Terrain +Terraria +Terrence +Terres Australes et Antarctiques Françaises +Terrestrial +Terrible +Terribly +Terrier +Terrific +Terrified +Terrify +Terrifying +Terrifyingly +Territorially +Territories +Territory +Terror +Terrorised +Terrorising +Terrorism +Terrorist +Terroristic +Terrorists +Terrorize +Terrorized +Terrorizing +Terrors +Tessa +Tesselation +Tessellate +Test +Testable +Testament +Testator +Tested +Tester +Testified +Testifies +Testify +Testifying +Testimonial +Testimonials +Testimonies +Testimony +Testing +Testosterone +Testphase +Tests +Testserver +Tether +Tethered +Tetris +Tetroxide +Teutonic +Teutons +Texan +Texas +Text +Textbook +Textbooks +Textbox +Texted +Textile +Textiles +Texting +Textpvp +Texts +Textual +Texture +Textured +Texturepack +Textures +Textwall +Thaegon +Thai +Thailand +Thalassocracy +Thalia +ThanatosELmanos +ThanatosELmanos's +Thank +Thanked +Thankful +Thankfully +Thankfulness +Thanking +Thankless +Thanks +Thanksgiving +Thanos +That +ThatSilentWeirdo +ThatSilentWeirdo's +Thats +Thaulos +Thaw +Thawing +The +The Beornings +The Brigantines +The Commonwealth +The Crimson Cliffs +The Crucible +The Crucible's +The EMPIRE +The Elder Scrolls +The Fire Rises +The Gambia +The Gamer Empire +The Great Stevite Empire +The Legend of Zelda +The Light +The Master Sword +The Nether +The Nether's +The No State Commune +The One Ring +The Overworld +The Overworld's +The Pridelands +The Red Rose Union +The Sims +The Sun +The Tarriyans +The Void +The Walking Dead +The Witcher +The last of us +The tardis +TheCatofTens +TheCatofTens's +TheCloneBass +TheCloneBass's +TheDaavis +TheDaavis's +TheDairyMan +TheDairyMan's +TheFinalGOAT +TheFinalGOAT's +TheFoxofNines +TheFoxofNines's +TheGameOfLife +TheGameOfLife's +TheGreatDenverr +TheGreatDenverr's +TheKingCacti +TheKingCacti's +TheKumuCortwade +TheKumuCortwade's +TheLostPickle +TheLostPickle's +TheMagicalDogg +TheMagicalDogg's +TheMobGrinder +TheMobGrinder's +TheNeonNerd +TheNeonNerd's +TheOGFormula +TheOGFormula's +TheOrangeWizard +TheOrangeWizard's +TheOtakuKaiser +TheOtakuKaiser's +ThePagol +ThePagol's +ThePantyRaider +ThePantyRaider's +TheRealmsMC Laeta +TheRealmsMC Natum +TheRealmsMC Provenance +TheRealmsMC Spera +TheRedScot +TheRedScot's +TheTrackball +TheTrackball's +TheWizoid +TheWizoid's +The_Broski +The_Broski's +Thea +Theater +Theaters +Theatre +Theatres +Theatrics +Thebadash +Thecatoftens +Thecowgunnermoo +Thecriminalmind +Theft +Thefts +Thegameoflife +Thegreatsanctaphrax +Thegrieferking +Thehobbyist +Their +Theirselves +Thejdz +Thejkh +Thejmqn +Thejmqn's +Thelonetopwolfx +Them +Thematic +Thematically +Theme +Themed +Themepark +Themes +Theming +Themself +Themselves +Then +Theo +Theocracies +Theocracy +Theocratic +Theocrats +Theodius +Theodore +Theogformula +Theologian +Theological +Theology +Theonlymatt +Theorangewizard +Theorangewizards +Theorem +Theorems +Theoretic +Theoretical +Theoretically +Theories +Theorising +Theorist +Theorists +Theorized +Theorizing +Theory +Theorycraft +Theorycrafting +Theorypost +Thepayman +Therapeutic +Therapist +Therapy +There +Thereabout +Thereabouts +Therealdragoonie +Therealmsmc +Therealwjkroeker +Therefor +Therefore +Thereof +Theresa +Therewithal +Thermal +Thermodynamics +Thermometer +Thermonuclear +Thesaurus +Theses +Thesis +Thetrackball +Theuberguestuser +They +Theyd +Theyll +Theyre +Theyve +Thicc +Thick +Thicken +Thickening +Thickens +Thicker +Thickest +Thickness +Thief +Thiefs +Thieved +Thievery +Thieves +Thieving +Thigh +Thighs +Thin +Thing +Things +Think +Thinker +Thinkers +Thinking +Thinks +Thinktank +Thinned +Thinner +Thinnest +Third +Thirst +Thirsting Seal +Thirsty +Thirsty Satchel +Thirtean +Thirteen +Thirtieth +Thirty +This +Thisseemstobeaname +Thistle +Thomas +ThomasNoronha +ThomasNoronha's +Thomasih +Thomasih's +Thor +Thorgon +Thorgon's +Thorn +Thornia +Thorns +Thorny +Thorough +Thoroughbred +Thoroughbreds +Thoroughfare +Thoroughfares +Thoroughly +Thoroughness +Thoths +Thothslibarian +Though +Thought +Thoughtcrime +Thoughtcrimes +Thoughtful +Thoughtfully +Thoughtfulness +Thoughtless +Thoughtlessness +ThoughtsThousand +Thousands +Thousandth +Thrace +Thracian +Thrain +Thral +Thraldrek +Thraldrek's +Thrall +Thrallmo +Thrallmo's +Thrash +Thrashing +Thrasos +Thread +Threaded +Threading +Threads +Threat +Threated +Threaten +Threatened +Threatening +Threatens +Threathen +Threats +Three +Threefold +Threshold +Thresholds +Threw +Thrice +Thrift +Thrifty +Thrill +Thrilled +Thriller +Thrillers +Thrilling +Thrills +Thrillsurge +Thrive +Thrived +Thrives +Thriving +Throat +Throats +Throbbing +Throne +Thrones +Throttle +Throttled +Throttling +Through +Throughout +Throughput +Throw +Throwable +Throwaway +Throwaways +Throwback +Throwers +Throwing +Thrown +Throws +Thrust +Thrusters +Thrusting +ThudDead +ThudDead's +Thug +Thug Hunter +Thuggery +Thuggish +Thugs +Thule +Thulean +Thuleans +Thules +Thumb +Thumbs +Thunder +Thunderbird +Thunderbolt +Thunderfury Blade +Thunderous +Thunderstorm +Thunderstorm Protector +Thunderstorms +Thunderstruck +Thundertide +Thundertide's +Thundery +Thursday +Thursdays +Thus +Thwart +Thwarted +Thwarting +Thyme +Thyself +Ti_Ne_Si_Fe +Ti_Ne_Si_Fe's +Tiana +Tiananmen +Tiara +Tiber +Tibet +Tibetan +Tic +Tick +Tickable +Ticked +Ticker +Ticket +Ticketed +Tickled +Tickling +Ticklish +Tidal +Tidbit +Tidbits +Tiddy1806 +Tiddy1806's +Tide +Tides +Tidied +Tidings +Tidy +Tidying +Tied +Tier +Tier 1 +Tier1 +Tierra de Conciencia +Tiers +Tiertown +Tiffany +Tiger +TigerCrew +Tigercrew +Tigers +Tigers Jaw +Tigerstaden +Tight +Tightening +Tighter +Tightest +Tightknit +Tightly +Tigress +Tigrinya +Tigris +Tiki +TikraiNeGedvilas +TikraiNeGedvilas's +Tile +Tileable +Tiled +Tiles +Tileset +Tiling +Till +Tillage +Tilled +Tiller +Tilling +Tilly +Tilt +Tilted +Tim +Timber +Timbers +Time +Time turner +Time4Tigers +Time4Tigers's +TimeThief_02 +TimeThief_02's +Timeframe +Timeframes +Timelapse +Timelapses +Timeless +Timeline +Timelines +Timely +Timeout +Timeouts +Timer +Timers +Times +Timescale +Timeshare +Timeshares +Timesink +Timespan +Timestamp +Timestamped +Timestamps +Timetable +Timetables +Timezone +Timezones +Timid +Timidly +Timing +Timings +Timmy +Timo +Timocracy +Timor-Leste +Timorous +Timothy +Timór Loro Sa’e +Tin +Tina +Tinder +Tinfoil +Tingle +Tingles +Tingling +Tinian +Tinians +Tinier +Tiniest +Tinker +Tinkered +Tinkering +Tinkle +Tinkling +Tint +Tinted +Tiny +Tipped +Tipper +Tipping +Tips +Tipsy +Tirade +Tirades +Tire +Tired +Tiredness +Tireless +Tirelessly +Tires +Tiresome +Tirimsu +Tirimsu's +Tiring +Tirith +Tissue +Tissues +Titan +Titanfall +Titania +Titanic +Titanite +Titanites +Titanium +Titans +Title +Title Fight +Titled +Titlegore +Titleholder +Titles +Titular +Tivian Socialist Democracy +Tjikkan +Tjikko +Tjikko's +Tkon +TkonicRabid +TkonicRabid's +Tkons +Tnt +ToadToast +Toasted +Toastedspikes +Toaster +Toasters +Toasty +Tobacco +Tobago +Tobias +Toby +Today +Todays +Todd +Toddler +Toddlers +Toefur +Toes +Tofee +Tofee_Dodger +Tofee_Dodger's +Tofeedodger +Tofees +Tofu +Toga +Together +Toggle +Toggleable +Toggled +Toggles +Togglesneak +Togglesprint +Toggling +Togo +Toil +Toiled +Toilet +Toilets +Toils +Toilsome +Tojikiston +Tokelau +Token +Tokens +Tokipona +Tokyo +Tokyo-3 +Told +Tolerable +Tolerably +Tolerance +Tolerant +Tolerate +Tolerated +Tolerates +Tolerating +Toleration +Tolkien +Tolkiens +Toll +Tollbooth +Tollbooths +Tollbridge +Tolled +Tolls +Tolstoy +Tolstoys +TolypeVelleda +TolypeVelleda's +Tom +Tomahawk +Tomas +Tomato +Tomatoes +Tomattan +Tomattan's +Tomb +Tomboy +Tombs +Tombstone +Tomfoolery +Tommy +Tomorrow +Tomorrows +Tomy +Ton +Tone +Toned +Toner +Tones +Tonga +Tongue +Tongues +Toni +Toni's +Tonic +Tonight +Tonights +Toning +Tonnage +Tonnes +Tons +Tony +Too +Took +Tool +Toolbar +Toolbox +Toolkit +Tools +Toolset +Tooltip +Toon +Toons +Toontasker +Toontasker's +Toontown +Toot +Tooth +ToothacheToothed +Toothless +Toothpaste +Toothpick +Toots +Top +Topaz +Topaz4293 +Topaz4293's +Topazs +Topazzius +Topazzius's +Topgun +Topher +Topher3001 +Topher3001's +Tophers +Tophopolis +Tophus +Topic +Topical +Topics +Topleft +Topless +Topmost +Topnotch +Topographic +Topographical +Topography +Topological +Topology +Topped +Topper +Topping +Toppings +Topple +Toppled +Toppling +Tops +Topsail +Topside +Topsoil +Tor +Torah +Torch +Torchbearer +Torched +Torches +Torching +Tore +Torment +Tormented +Tormentor +Torn +Tornado +Tornadoes +Toronto +Torpedo +Torpedoes +Torpid +Torpor +Torrent +Torrid +Torso +Tort +Tortoise +Tortuga +Tortuous +Tortuously +Torture +Tortured +Torturing +Torturous +Torus +Torynado +Torynado's +Tosh +Toss +Tossed +Tosser +Tossers +Tosses +Tossing +Total +Totaled +Totaling +Totalitarian +Totalitarianism +Totality +Totalled +Totalling +Totally +TotallyNotHigh_ +TotallyNotHigh_'s +TotallyTorchic +TotallyTorchic's +Totals +Totem +Totems +Totes +Toting +Totter +Tottering +Touch +Touchdown +Touche +Touched +Touches +Touching +Touchscreen +Touchstone +Touchy +Tough +Tougher +Toughest +Toughness +Touhou +Toulouse +Tour +Toured +Touring +Tourism +Tourist +Touristguide +Tourists +Touristy +Tournament +Tournaments +Tourney +Tourniquet +Tours +Touted +Toutes +Touting +Tovarisch +Tow +Toward +Towards +Towel +Towels +Tower +Towered +Towering +Towers +Towing +Town +Towners +Townfolk +Townhall +Townhouse +Townhouses +Townies +Townlet +Townmate +Townmates +Towns +Townsfolk +Township +Townships +Townsman +Townsmen +Townspeople +Townsville +Towny +Toxic +ToxicShot79 +ToxicShot79's +Toxicity +Toy +Toyed +Toying +Toyota +Toys +Tpost +Tposting +Tps +Tpskiller +Tr1ckyD1ckNixon +Tr1ckyD1ckNixon's +Trabant Outpost +Trace +Traceability +Traceable +Traced +Tracer +Tracers +Traces +Tracing +Track +Trackback +Trackbacks +Trackball +Trackballs +Tracked +Tracker +Tracking +Trackless +Trackpad +Tracks +Tracksuit +Tract +Tractable +Traction +Tractor +Tracts +Tradable +Trade +Tradeable +Traded +Tradedeal +Tradedeals +Tradegood +Trademark +Trademarked +Trademarking +Trademarks +Tradeoff +Tradeoffs +Trader +Traders +Trades +Tradesman +Tradesmen +Tradespeople +Tradewar +Trading +Tradition +Traditional +Traditionalism +Traditionalist +Traditionally +Traditionary +Traditions +Traffic +Trafficked +Trafficking +Trafickers +Tragedian +Tragedies +Tragedy +Tragic +Tragically +Trail +Trailed +Trailer +Trailers +Trailing +Trails +Train +Trained +Trainer +Trainers +Training +Trains +Trainstation +Trainwreck +Trait +Traitor +Traitorous +Traitors +Traits +Trajectory +Tram +Tramp +Trample +Trampled +Trampling +Trampoline +Trance +Tranquil +Tranquility +Trans +Transaction +Transactions +Transatlantic +Transcend +Transcended +Transcendence +Transcendent +Transcendental +Transcending +Transcends +Transcontinental +Transcribe +Transcribed +Transcriber +Transcript +Transcription +Transcriptions +Transcripts +Transdimensional +Transfer +Transferable +Transfered +Transference +Transfering +Transferred +Transferring +Transfers +Transfiguration +Transform +Transformation +Transformed +Transformers +Transforming +Transforms +Transfusions +Transgender +Transgress +Transgressed +Transgression +Transgressions +Transgressor +Transhumanist +Transient +Transit +Transiting +Transition +Transitional +Transitioned +Transitioning +Transitions +Transitive +Transitory +Translate +Translated +Translates +Translating +Translation +Translations +Translator +Translators +Translucent +Transmigration +Transmission +Transmit +Transmitted +Transmitter +Transmitters +Transmitting +Transmutation +Transmute +Transmuter +Transmuters +Transnational +Transnistria +Transparency +Transparent +Transparently +Transpiler +Transpired +Transpires +Transplant +Transport +Transportable +Transportation +Transported +Transporting +Transports +Transubstantiation +Transvaal +Transverse +Transversely +Transwarp +Transylvania +TransylvaniaMan +TransylvaniaMan's +Trap +Trapdoor +Trapdoors +Trappable +Trapped +Trapper +Trapping +Trappings +Traps +Trash +Trashcan +Trashed +Trashes +Trashing +Trashtalk +Trashtalker +Trashtalking +Trashy +Trauma +Traumatic +Traumatised +Traumatising +Traumatized +Travail +Travel +Travelable +Traveled +Traveler +Travelers +Traveling +Travelled +Traveller +Travellers +Travelling +Travels +Travers +Traverse +Traversed +Traversing +Travesty +Travis +Trawl +Trawling +Tray +Trays +Treacherous +Treachery +Treacle +Tread +Treading +Treadmill +Treason +Treasonable +Treasonous +Treasons +Treasure +Treasured +Treasurer +Treasures +Treasury +Treat +Treatable +Treated +Treaties +Treating +Treatise +Treatises +Treatment +Treatments +Treats +Treaty +Treble +Trebuchet +Trebuchets +Tree +TreeDB +TreeDB's +Treebeard +Treebot +Treebots +Treed +Treefarm +Treefeller +Treehouse +Treehouses +Treehuggers +Treeless +Trees +Trek +Trekestan +Trekked +Trekking +Trellis +Tremble +Trembles +Trembling +Tremendous +Tremendously +Tremerus +Tremerus's +Trench +Trenchant +Trenchcoat +Trenched +Trenches +Trenching +Trend +Trending +Trends +Trendy +Trenzalore +Trepidation +Trespass +Trespassed +Trespasser +Trespassers +Trespasses +Trespassing +Tress +Trestle +Trevor +Triage +Trial +Trials +Triangle +Triangles +Triangular +Triangulate +Triangulating +Trianon +Triarchy +Triathlon +Tribal +Tribalism +Tribalistic +Tribe +Tribes +Tribespeople +Tribulation +Tribulations +Tribunal +Tribune +Tribunes +Tributaries +Tributary +Tribute +Tributes +Trick +Tricked +Trickeries +Trickery +Trickier +Trickiest +Trickiness +Tricking +Trickle +Trickled +Trickles +Trickling +Trickmaster +Tricks +Trickshot +Trickster +Tricky +Tricolor +Tricolour +Tricycle +Tride +Trident +Tridents +Tried +Tries +Trieste +Trifecta +Trifled +Triforce +Trig +Trigger +Triggerbot +Triggerbots +Triggerbotting +Triggered +Triggerer +Triggering +Triggers +Trigonometry +Trilby +Trill +Trillion +Trillions +Trillionth +Trillonaire +Trilogy +Trim +Trimming +Trimmings +Trinidad +Trinidad and Tobago +Trinith +Trinity +Trinket +Trio +Trip +Tripadvisor +Tripe +Tripel +Triple +TripleLuxen +TripleLuxen's +Tripled +Triples +Triplets +Triplicate +Tripling +Tripod +Tripoli +Tripped +Trippers +Trippin +Tripping +Trippy +Trips +Tripwire +Tripwires +Trisha +Tristan +Trite +Triton +Triumph +Triumphal +Triumphant +Triumphantly +Triumphed +Triumvate +Triumvirate +Trivalize +Trivia +Trivial +Trivialities +Trivialize +Trivialized +Trivializing +Trivially +Trog +Troglodyte +Troglodytes +Trojan +Trojans +Troll +Troll_Bebek +Troll_Bebek's +Trollbait +Trolled +Troller +Trolley +Trolling +Trollish +Trollpasta +Trolls +Trololindo132 +Trololindo132's +Tromping +Troop +Trooper +Troopers +Troops +Trope +Tropes +Trophies +Trophy +Trophy Chord +Tropic +Tropica +Tropical +Tropican +Tropics +Trot +Trots +Trotsky +Trotskyist +Trotted +Trotting +Troubadour +Trouble +Troubled +Troublemaker +Troublemakers +Troublemaking +Troubles +Troubleshoot +Troubleshooter +Troubleshooting +Troublesome +Troubling +Trough +Troupe +Trousers +Trout +Trove +Troves +Troy +Truce +Truck +Truck_Man1234 +Truck_Man1234's +Truckboi +Trucker +Truckers +Trucking +Truckload +Truckman +Trucks +Truculent +Trud +Trudge +Trudging +True +TrueEnergy +TrueEnergy's +Truer +Truest +Truetania +Truetania's +Truidence +Truidencia +Truidencian +Truidencians +Truly +Truman +Trump +Trumped +Trumper +Trumpers +Trumpery +Trumpet +Trumpeter +Trumpets +Trumpism +Trumps +Truncated +Truncheon +Trundle +Trunk +Trunks +Truss +Trussy +Trust +TrustThePlan +TrustThePlan's +Trustable +Trusted +Trustee +Trustees +Trusting +Trustless +Trusts +Trustworthiness +Trustworthy +Trusty +Truth +Truthful +Truthfully +Truthfulness +Truthiness +Truthing +Truths +Try +Tryhard +Tryharding +Tryhards +Trying +Tryout +Tsar +Tsar Iosif +Tsar Iosif's +Tshola +Tsunami +Tsundere +Ttk2 +Ttk2's +Tub +Tubbiegang +Tubbiegang's +Tube +Tubes +Tubular +Tuck +Tucked +Tucker +Tuckin' +Tudor +Tuesday +Tuesdays +Tuff +Tuft +Tug +Tugboat +Tugging +Tuition +Tukidoki +Tukidoki's +Tulen +Tulip +Tulips +Tull +Tulle +Tulpa +Tulpamancer +Tulpamancers +Tulpamancing +Tulpamancy +Tulpas +Tum +Tumble +Tumbled +Tumbler +Tumbling +Tummy +Tumor +Tumults +Tumultuous +Tumultuously +Tun +Tuna +Tuna420 +Tuna420's +Tundra +Tune +Tuned +Tuneful +Tuner +Tunes +Tungsten +Tunic +Tuning +Tunis +Tunisia +Tunnel +Tunneled +Tunnelers +Tunneling +Tunnelled +Tunnels +Tuomasz +Tuomasz's +Tuomasz_ +Tuomasz_'s +Tupac +Tupperware +Turban +Turbid +Turbo +Turbulence +Turbulent +Turf +Turin +Turing +Turk +Turkey +Turkeys +Turkish +Turkiye +Turkmenistan +Turks +Turks and Caicos Islands +Turmeric +Turmoil +Turn +Turnaround +Turncoating +Turned +Turner +Turning +Turnip +Turnkey +Turnoff +Turnout +Turnover +Turnpike +Turnpikes +Turns +Turnstile +Turpentine +Turquoise +Turret +Turrets +Turtle +Turtles +Turtling +Tuscan +Tuscany +Tusk +Tussle +Tutelage +Tutelary +Tutor +Tutorial +Tutorials +Tutsi +Tutsis +Tutter +Tutterise +Tutters +Tutu +Tuvalu +Tuxedo +Tv +Tvman +Tvmans +Tvtopia +Tvtopian +Tvtopians +Twaddle +Twaded +Twang +Twat +Twats +Twattery +Twatty +Tweak +Tweakable +Tweaked +Tweaker +Tweaking +Tweaks +Tween +Tweenaged +TweenagerTweens +Tweeny +Tweet +Tweetabix +Tweetabix's +Tweeted +Tweets +Twelve +Twelves +Twenties +Twentieth +Twenty +Twerp +Twerps +Twice +Twiddle +Twiddling +Twig +Twiggy +Twigs +Twilight +Twilight_Edge +Twilight_Edge's +Twilightzone +Twin +Twine +Twinge +Twink +Twinkle +Twinks +Twinky +Twirl +Twist +TwistTheCat +TwistTheCat's +Twisted +Twisting +Twists +Twit +Twitch +Twitch, Vessel of the Immortal +Twitches +Twitching +Twitchy +Twitter +Two +Twofold +Tycoons +Tying +Tylenol +Tyler +Tylers +Type +Typed +Typeface +Typeform +Typepad +Types +Typewriter +Typewriters +Typewritten +Typical +Typically +Typing +Typo +Typography +Typos +Tyrannical +Tyrannis +Tyrannosaurus +Tyrannous +Tyranny +Tyrant +Tyrants +Tyre +Tyrol +Tyrolese +Tyson +Tzar +U +UAK +UB40 +UB40's +UDMH +UTSS +Uber +Ubiquitous +Ubiquity +Ubuntu +Udder +Uganda +Ugandan +Ugh +Uglier +Ugliest +Ugliness +Ugly +Uh +Uhh +Uhmmm +Ukai +Ukai's +Ukasso +Ukasso's +Ukraine +Ukrainian +Ukrainians +Ukrayina +Ukulele +Ulcer +Ulcers +Uliminussalt +Uliminussalt's +Ulster +Ult +Ulterior +Ultimate +Ultimate nullifier +Ultimately +Ultimatum +Ultimatums +Ultimo +Ultra +Ultrasounds +Ultron +Um +Umbrage +Umbrella +Umbrellas +Umpire +Umpteen +Unabashed +Unabashedly +Unabated +Unable +Unabridged +Unacceptable +Unacceptably +Unaccepted +Unaccessible +Unaccompanied +Unaccountable +Unaddressed +Unadulterated +Unaffected +Unaffiliated +Unaffordable +Unafraid +Unagreeable +Unaided +Unaligned +Unallied +Unallowed +Unalloyed +Unalterable +Unaltered +Unambiguous +Unambiguously +Unanimity +Unanimous +Unanimously +Unannounced +Unanswerable +Unanswered +Unapologetic +Unappealable +Unappealing +Unappreciated +Unappreciative +Unapproachable +Unappropriate +Unapproved +Unarguably +Unarmed +Unarmored +Unarmoured +Unashamedly +Unassailable +Unassigned +Unassociated +Unassuming +Unattainable +Unattended +Unattractive +Unauthorised +Unauthorized +Unavailability +Unavailable +Unavailing +Unavoidable +Unaware +Unawares +Unbalance +Unbalanced +Unbalancing +Unbanned +Unbastioned +Unbearable +Unbearably +Unbeatable +Unbecoming +Unbeknownst +Unbelievable +Unbelievably +Unbeliever +Unbending +Unbiased +Unbidden +Unblemished +Unblock +Unblocking +Unborn +Unbottable +Unbound +Unbounded +Unbreakable +Unbreaking +Unbridled +Unbroken +Unbuffed +Unbuildable +Unbuilt +Uncalculated +Uncalled +Uncanny +Uncapitalized +Uncaring +Uncarted +Uncatchable +Uncategorized +Uncaught +Unceasing +Uncensored +Unceremoniously +Uncertain +Uncertainties +Uncertainty +Unchained +Unchallenged +Unchangeable +Unchanged +Unchanging +Uncharacteristic +Uncharted +Unchecked +Uncivil +Uncivilised +Uncivilized +Uncivlike +Unclaim +Unclaimed +Unclaiming +Uncle +Unclear +Uncles +Uncolored +Uncombined +Uncomfortable +Uncomfortably +Uncommitted +Uncommon +Uncommonly +Uncompact +Uncompelling +Uncompensated +Uncompetitive +Uncompleted +Uncomplimentary +Uncompressed +Uncompromising +Unconcealed +Unconcern +Unconcerned +Unconditional +Unconditionally +Unconfirmed +Unconnected +Unconquerable +Unconscious +Unconsciously +Unconsciousness +Unconstitutional +Unconstitutionally +Unconstructive +Uncontacted +Uncontested +Uncontrollable +Uncontrollably +Uncontrolled +Uncontroversially +Unconventional +Unconvicted +Unconvinced +Unconvincing +Uncooked +Uncool +Uncooperative +Uncoordinated +Uncorrupted +Uncounted +Uncouth +Uncover +Uncovered +Uncovering +Uncraftable +Uncreative +Uncredited +Uncritical +Uncropped +Unction +Unctuous +Uncullable +Uncultivated +Uncultured +Uncurable +Uncut +Undamaged +Undaunted +Undead +Undeceive +Undecided +Undecidedly +Undeclared +Undeepfried +Undefeated +Undefendable +Undefended +Undefinable +Undefined +Undeniable +Undeniably +Under +Underage +Underappreciated +Underbelly +Undercity +Underclaimed +Undercoat +Undercover +Undercurrent +Undercut +Undercutting +Underdeveloped +Underdog +Underdogs +Underestimate +Underestimated +Underestimating +Underestimation +Underfoot +Underfunded +Undergo +Undergoing +Undergone +Undergrad +Undergraduate +Underground +Undergrounds +Undergrowth +Underhand +Underhanded +Underhandedness +Underinformed +Underlie +Underline +Underlined +Underling +Underlings +Underlying +Undermanned +Undermine +Undermined +Undermines +Undermining +Underneath +Underpaid +Underpasses +Underpay +Underpinned +Underpinning +Underpins +Underpopulated +Underpowered +Underprepared +Underpriced +Underprivileged +Underrate +Underrated +Underrepresented +Underscore +Underscored +Underscores +Undersea +Undersell +Underselling +Underside +Undersigned +Understaffed +Understand +Understandable +Understandably +Understanding +Understandings +Understands +Understated +Understatement +Understood +Undertake +Undertaken +Undertaker +Undertakes +Undertaking +Undertakings +Undertone +Undertones +Undertook +Underused +Underutilized +Undervaluation +Undervalue +Undervaluing +Underwater +Underway +Underweight +Underwent +Underwhelming +Underwood +Underworld +Underwriters +Underwriting +Undeserved +Undeserving +Undesirable +Undesirables +Undesired +Undesiring +Undetailed +Undetectable +Undetected +Undetermined +Undeveloped +Undeviating +Undid +Undies +Undignified +Undiplomatic +Undisciplined +Undisclosed +Undiscovered +Undisguised +Undisputable +Undisputed +Undistinguishable +Undisturbed +Undivided +Undo +Undoable +Undocumented +Undoes +Undoing +Undone +Undoubtedly +Undoxable +Undue +Unduly +Undupe +Undyed +Undying +UneSombre +UneSombre's +Unearned +Unearth +Unearthed +Unearthly +Unease +Uneasily +Uneasy +Unedit +Unedited +Uneducated +Unelected +Unemployable +Unemployed +Unemployment +Unenchanted +Unencrypted +Unencumbered +Unending +Unenforceable +Unenforced +Unenjoyable +Unequal +Unequally +Unequivocal +Unequivocally +Unerring +Unethical +Uneven +Unevenly +Uneventful +Unexpected +Unexpectedly +Unexpectedness +Unexpecting +Unexperienced +Unexplainable +Unexplained +Unexplored +Unfair +Unfairly +Unfairness +Unfaithful +Unfaltering +Unfamiliar +Unfamiliarity +Unfashionable +Unfathomable +Unfathomably +Unfavorable +Unfavourable +Unfeasible +Unfeeling +Unfeigned +Unfettered +Unfilled +Unfiltered +Unfindable +Unfinished +Unfit +Unfix +Unfixable +Unfixed +Unflagged +Unflagging +Unfocus +Unfocused +Unfold +Unfolded +Unfolding +Unfolds +Unforeseeable +Unforeseen +Unforgeable +Unforgettable +Unforgivable +Unforgiving +Unformed +Unforseen +Unfortunate +Unfortunately +Unfounded +Unfriend +Unfriended +Unfriendliness +Unfriendly +Unfulfilled +Unfulfilling +Unfunny +Ungainly +Ungantoed +Ungeared +Ungenerous +Ungentle +Ungentlemanly +Ungodly +Ungoverned +Ungracious +Ungrateful +Ungriefed +Ungriefing +Unguarded +Unhacked +Unhappiness +Unhappy +Unharmed +Unharvested +Unhealthily +Unhealthy +Unheard +Unhelpful +Unhindered +Unhinged +Unholy +UnholyLove +UnholyLove's +Uni +Unicameral +Unicode +Unicorn +Unicorns +Unicycle +Unidentified +Unification +Unified +Uniform +Uniformed +Uniformity +Uniformly +Uniforms +Unify +Unifying +Unignore +Unilateral +Unilaterally +Unimaginable +Unimaginably +Unimaginative +Unimpeachable +Unimpeded +Unimplementable +Unimportant +Unimpressed +Unimpressive +Unimproved +Unincorporated +Uninfluenced +Uninformed +Uninhabitable +Uninhabited +Uninhibited +Uninitiated +Uninjured +Uninspired +Uninspiring +Uninstall +Uninstalled +Uninstalling +Unintelligent +Unintelligible +Unintended +Unintentional +Unintentionally +Uninterested +Uninteresting +Uninterrupted +Unintrusive +Uninvited +Uninvoled +Uninvolved +Union +Unionist +Unionists +Unionized +Unions +Unique +Uniquely +Uniqueness +Unironic +Unironically +Unison +Unit +Unitarian +Unitary +Unitas +Unite +United +United Aggish Kingdom +United Arab Emirates +United Kingdom +United States +United States of America +Unites +Uniting +Units +Unity +Univ +Universal +Universalist +Universality +Universalized +Universally +Universe +Universes +Universities +University +Unix +Unjailed +Unjust +Unjustifiable +Unjustifiably +Unjustified +Unjustly +Unkempt +Unkillable +Unkilled +Unkind +Unkindly +Unknowable +Unknowing +Unknowingly +Unknown +Unknowns +Unlabeled +Unlabelled +Unlawful +Unlawfully +Unleash +Unleashed +Unleashes +Unleashing +Unleavened +Unless +Unlettered +Unlicensed +Unlikable +Unlike +Unlikeable +Unlikelihood +Unlikely +Unlimited +Unlinked +Unlisted +Unlit +Unlivable +Unload +Unloaded +Unloading +Unloads +Unlock +Unlocked +Unlocking +Unlogbox +Unlooted +Unloved +Unluckiest +Unluckily +Unlucky +Unmaintainable +Unmaintained +Unmanageable +Unmanned +Unmapped +Unmarked +Unmasked +Unmasking +Unmatched +Unmentioned +Unmerciful +Unmet +Unmindful +Unmistakable +Unmitigated +Unmodded +Unmoderated +Unmodernised +Unmodified +Unmolested +Unmotivated +Unmoved +Unmute +Unnamed +Unnatural +Unnaturally +Unnecessarily +Unnecessary +Unneeded +Unnerved +Unnerving +Unnoticeable +Unnoticed +Unobjective +Unobtainable +Unobtrusive +Unobvious +Unoccupied +Unoffical +Unofficial +Unofficially +Unopened +Unopposed +Unorganised +Unorganized +Unoriginal +Unorthodox +Unpack +Unpacked +Unpacking +Unpaid +Unpalatable +Unparalleled +Unpardonable +Unpartisan +Unpatched +Unpearl +Unpearlable +Unpearled +Unpearling +Unperma +Unpin +Unpinned +Unplaceable +Unplayable +Unpleasant +Unpleasantness +Unplug +Unplugging +Unpolished +Unpopular +Unpopularity +Unpopulated +Unpowered +Unprecedented +Unpredictability +Unpredictable +Unpredictably +Unpremeditated +Unprepared +Unpretending +Unpretentious +Unpreventable +Unprincipled +Unprivate +Unprivileged +Unproductive +Unprofessional +Unprofitable +Unpropitious +Unprotected +Unproven +Unprovoked +Unpublished +Unpunished +Unpushable +Unqualified +Unquestionable +Unquestionably +Unquestioning +Unquote +Unraidable +Unraided +Unranked +Unravel +Unraveled +Unravelling +Unreachable +Unread +Unreadable +Unreal +UnrealJesus +UnrealJesus's +Unrealistic +Unrealistically +Unrealized +Unreasonable +Unreasonably +Unreclaimable +Unreclaiming +Unrecognisable +Unrecognised +Unrecognizable +Unrecognized +Unrecoverable +Unredeemable +Unrefined +Unregistered +Unregistered HyperCam 2 +Unregulated +Unreimbursed +Unreinforceable +Unreinforced +Unreinforcing +Unrelated +Unreleased +Unrelenting +Unreliability +Unreliable +Unremarkable +Unremitting +Unremorseful +Unremoved +Unrendered +Unrenewable +Unrepairable +Unrepentant +Unreported +Unrepresentative +Unrequited +Unresolved +Unresponsive +Unrest +Unrestrained +Unrestricted +Unrewarding +Unrightfully +Unripe +Unrivaled +Unrivalled +Unruled +Unruly +Unsafe +Unsafely +Unsaid +Unsalted +Unsanctioned +Unsatisfied +Unsatisfying +Unsavory +Unsavoury +Unscathed +Unscientific +Unseat +Unsecured +Unseemly +Unseen +Unsellable +Unset +Unsettled +Unsettling +Unshaven +Unsheathe +Unsheathed +Unsheathes +Unsheathing +Unsightly +Unsigned +Unskilled +Unsnitched +Unsociable +Unsold +Unsolicited +Unsolvable +Unsolved +Unsophisticated +Unsorted +Unsound +UnsoundMussel +UnsoundMussel's +Unspeakable +Unspecified +Unspoiled +Unspoken +Unstable +Unstackable +Unstated +Unsteady +Unstealable +Unsticky +Unstocked +Unstoppable +Unstructured +Unstuck +Unsubscribe +Unsubscribed +Unsubscribes +Unsubscribing +Unsubstantiated +Unsubtle +Unsuccessful +Unsuccessfully +Unsuitable +Unsung +Unsupervised +Unsupported +Unsure +Unsurprised +Unsurprising +Unsurprisingly +Unsuspecting +Unsustainable +Unsympathetic +Untamed +Untangle +Untapped +Untenable +Untended +Untested +Untethered +Unthinkable +Untidy +Untie +Untied +Until +Untimely +Untitled +Unto +Untold +Untouchable +Untouchables +Untouched +Untoward +Untraceable +Untrained +Untried +Untrue +Untrusted +Untrustworthy +Untruth +Untruthful +Unusable +Unused +Unusual +Unusually +Unutterable +Unvarying +Unveil +Unveiled +Unveiling +Unverifiable +Unverified +Unversed +Unviewable +Unvoiced +Unwanted +Unwarranted +Unwashed +Unwatered +Unwavering +Unwelcome +Unwelcoming +Unwell +Unwholesome +Unwieldy +Unwilling +Unwillingly +Unwillingness +Unwind +Unwinnable +Unwise +Unwisely +Unwitting +Unworkable +Unworthy +Unwound +Unwrap +Unwritten +Unyielding +Up +Upbeat +Upbraid +Upbringing +Upcoming +Update +Updated +Updater +Updates +Updating +Updooted +Upend +Upfront +Upgrade +Upgraded +Upgrades +Upgrading +Upheaval +Upheld +Uphill +Uphold +Upholding +Upholds +Upholstered +Upholstery +Uphost +Uphost's +Upkeep +Upkeeping +Upland +Uplift +Uplifted +Uplifting +Upload +Uploaded +Uploading +Uploads +Upmost +Upon +Upped +Upper +Uppercase +Upperclassman +Upperhand +Uppermost +Upping +Uppity +Upright +Uprightness +Uprising +Uprisings +Uproar +Uproarious +Uprooted +Ups +Upscale +Upset +Upsets +Upsetting +Upshot +Upside +Upsides +Upstaged +Upstairs +Upstanding +Upstart +Upstarts +Upstream +Upswing +Uptick +Uptight +Uptown +Upturned +Upvote +Upvoted +Upvoting +Upward +Upwards +Ur +Ural +Urals +Urania +Uranium +Uranus +Urban +Urbane +Urbanity +Urbanization +Urchin +Urea +Urethra +Urge +Urged +Urgency +Urgent +Urgently +Urges +Urging +Uriel +Urn +Urns +Ursa +Ursula +Uruguay +Us +Usability +Usable +Usage +Usages +Use +Used +Useful +Usefully +Usefulness +Useless +Uselessly +Uselessness +Usenet +User +Username +Usernames +Users +Uses +Usher +Ushered +Ushering +Using +Usu +Usual +Usually +Usurer +Usurp +Usurpation +Usurped +Usurper +Usurpers +Usury +Ut +Utah +UteisGod +UteisGod's +Utilisation +Utilise +Utilised +Utilises +Utilising +Utilitarian +Utilitarianism +Utilitarianist +Utilities +Utility +Utilization +Utilize +Utilized +Utilizes +Utilizing +Utmost +Utopia +Utopian +Utopias +Utrecht +Utter +Utterances +Uttered +Uttering +Utterly +Utters +Utumno +Utumno's +Uuuuh +UwU +UwU +Uzbekistan +Uzbekiston Respublikasi +Uzi +V +V4rial +V4rial's +VA_11HALL_A +VA_11HALL_A's +VHS_DREAMER +VHS_DREAMER's +VTuber +VViIIiam +VViIIiam's +Vaape +Vaapes +Vacancies +Vacant +Vacar +Vacari +Vacarn +Vacate +Vacated +Vacating +Vacation +Vacationing +Vacations +Vaccinate +Vaccination +Vaccine +Vaccines +Vaccuum +Vaciaste +Vacillation +Vacuous +Vacuum +Vacuumed +Vader +Vagabond +Vagabonds +Vagaries +Vagas +Vagene +Vagima +Vagina +Vaginas +Vagrant +Vague +Vaguely +Vagueness +Vagueposting +Vahalla +Vail +Vain +Vais +Vajra +Vajra's +Vakonia +Vakoojaverkkooni +Valadian +Valar +Vale +Valehart +Valeheart +Valencia +Valenti +Valentime +Valentina +Valentine +Valentines +Valenwood +Valeon +Valera +Valerian +Valerie +Vales +Valex +Valhalla +Valhalla, Tribute of Reckoning +Valiant +Valiantly +Valid +Validate +Validated +Validates +Validating +Validation +Validity +Validly +Valine +Valise +Valium +Valkyria +Valkyrie +Vallera +Valleran +Vallerans +Valleras +Valleria +Vallerian +Valley +Valleys +Vallued +Valor +Valour +Valparaiso +Valterran +Valuable +Valuables +Valuation +Value +Valued +Valueless +Values +Valuing +Valve +Valves +Valyria +Valyrian +Valyrians +Valyrias +Vame +Vampire +Vampyr +Van +Vana +Vancouver +Vandaag +Vandal +Vandalise +Vandalised +Vandalising +Vandalism +Vandalize +Vandalizing +Vandals +Vane +Vanessa +Vangar +Vangard +Vanguard +Vanguardista +Vanhoover +Vanilla +Vanillacraft +Vanillaish +Vanillaraids +Vanillas +Vanillaseahorse +Vanillish +Vanir +Vanish +Vanished +Vanishes +Vanishing +Vanity +Vanitys +Vanquish +Vanquished +Vanquisher Crux +Vanquishing +Vans +Vantage +Vanuatu +Vape +VapeNation +Vapee +Vapid +Vapor +Vaporizing +Vaporous +Vaporware +Vaporwave +Var +Varanus +Varathia +Varautua +Variability +Variable +Variables +Variably +Variance +Variances +Variant +Variants +Variate +Variation +Variations +Varied +Variegated +Varies +Varieties +Variety +Various +Various's +Variously +Varkanos +Varkanox +Varkonia +Varkonian +Varkonians +Varlet +Varnish +Varsany +Varsity +Varuna +Varus +Vary +Varying +Vas +Vascular +Vase +Vasectomy +Vases +Vaskr +Vassal +Vassalise +Vassalization +Vassalize +Vassalized +Vassalizes +Vassalizing +Vassals +Vast +Vastly +Vastness +Vat +Vaterland +Vatican +Vatican City State +Vatniks +Vats +Vatuu +Vatuu's +Vaudeville +Vault +Vault Science +Vaultbreak +Vaultbreaker +Vaultbreakers +Vaultbreaking +Vaultbreaks +Vaultcracker +Vaultcraft +Vaultcrafters +Vaultcuck +Vaulted +Vaultfriend +Vaulthole +Vaulting +Vaultman +Vaultrat +Vaultress +Vaultroom +Vaults +Vaultside +Vaulty +Vaunt +Vaunted +Vaunting +Vazkii +Vcr +Veal +Vecna +Vectius +Vector +Vectoran__ +Vectoran__'s +Vectors +Veda +Vedd +Vedd's +Vedic +Vee +Veeeeeeery +Veer +Veg +Vega +Vegan +Vegans +Vegas +Vegatables +Vegeta +Vegetable +Vegetables +Vegetarian +Vegetation +Veggie +Veggies +Vehemence +Vehement +Vehemently +Vehicle +Vehicles +Veigar +Veil +Veiled +Vein +Veined +Veiniest +Veinify +Veins +Veldt +Velkoz +Vellum +Velocities +Velocity +Velvet +Venal +Vend +Vend3tta__ +Vend3tta__'s +Vendetta +Vendettas +Vending +Vendor +Vendors +Veneer +Venerable +Venerate +Venerated +Venerating +Venereal +Venetian +Venetians +Veneto +Venezuela +Venezuelan +Vengeance +Vengeful +Venial +Venice +Venison +Venmo +Venn +Venne +Venom +Venomous +Venomshank +Venomstrike, Heirloom of the Whispers +Vent +Vented +Venting +Ventral +Ventricle +Venture +Ventured +Ventures +Venturing +Venue +Venues +Venus +Vera +Veracity +Verandah +Verb +Verbal +Verbalised +Verbally +Verbatim +Verberate +Verberate's +Verbose +Verbosity +Verboten +Verbs +Verbunden +Vercingetorix +Verda +Verdad +Verdant +Verdant Valley +Verde +Verdict +Verdicts +Verge +Verging +Veria +Verian +Veridian +Verifiability +Verifiable +Verifiably +Verification +Verified +Verifies +Verify +Verifying +Veritable +Veritas +Veritas Order +Vermilion +Vermin +Verminus +Vermont +Vernacular +Vernago +Vernago's +Vernal +Vero_ +Vero_'s +Verona +Veronica +Verrrrry +Versace +Versaille +Versailles +Versatile +Versatility +Verse +Versed +Verses +Versification +Version +Versions +Versus +Vertebrate +Vertex +Vertical +Verticality +Vertically +Verticalness +Vertigo +Verum_Dwarf +Verum_Dwarf's +Very +Verygood +Veryyyy +Vespa +Vespasian +Vespucci +Vessel +Vessels +Vest +Vesta +Vestal +Vested +Vestibule +Vestige +Vestiges +Vestigial +Vestlige +Vests +Vesuvius +Vet +Veteran +Veterans +Veterinary +Veto +Vetoed +Vets +Vetted +Vetting +Vex +Vexatious +Vexed +Vexillology +Viability +Viable +Viaduct +Viagra +Vial +Vials +Vibe +Vibes +Vibrancy +Vibrant +Vibrate +Vibrating +Vibration +Vibrational +Vibrations +Vibrator +Vibrators +Vicar +Vicarage +Vicarious +Vicariously +Vicccccccccyy +Vicccy +Viccy +Vice +Vicenza +Viceroy +Vices +Vichy +Vicinity +Vicious +Vicious Goblet +Viciously +Vicissitude +Vicissitudes +Vicksburg +Vicky +Victim +Victimhood +Victimisation +Victimise +Victimised +Victimization +Victimize +Victimized +Victimizing +Victims +Victor +Victoria +Victorian +Victories +Victorious +Victors +Victory +Victual +Vid +Video +Videocam +Videogame +Videogameaddiction +Videogames +Videos +Videotape +Vids +Vidya +Vie +Vienna +Viennas +Viennese +Viens +Vies +Vietcong +Vietnam +Vietnamese +View +Viewable +Viewdistance +Viewed +Viewer +Viewers +Viewership +Viewform +Viewing +Viewpoint +Viewpointed +Viewpoints +Views +Vigarista +Vigil +Vigilance +Vigilant +Vigilante +Vigilantes +Vigilantism +Vigils +Vignette +Vigor +Vigorous +Vigorously +Vii +Viii +Viking +Vikings +Vikings of Vintage +Viktor +ViktorAxel2002 +ViktorAxel2002's +ViktorHr +ViktorHr's +Vile +Vile Core +Vileness +Vilification +Vilified +Vilifies +Vilify +Vill +Villa +Village +Villageidiot +Villager +Villagers +Villages +Villain +Villainous +Villains +Villainy +Villany +Villas +Villified +Vilsek +VilyanZ +VilyanZ's +Vimeo +VinBing +VinBing's +Vince +Vincent +Vindemiatrix +Vindicate +Vindicated +Vindicates +Vindication +Vindicator +Vindicators +Vindictive +Vindictiveness +Vine +Vinebot +Vinegar +Vines +Vinetown +Vineyard +Vineyards +Vinland +Vinlander +Vinlanders +Vinlandian +Vinlandic +Vinlands +Vinnie +Vintage +Vintage Civ 1.0 +Vintage Civ 2.0 +Vintage Civ Beta +Vinyl +Viola +Violate +Violated +Violates +Violating +Violation +Violations +Violator +Violators +Violence +Violent +Violenta +Violently +Violet +Violets +Violin +Violinist +Violins +Violista +Vip +Viper +Viral +Virgin +Virgin Islands +Virginia +Virginian +Virginity +Virginly +Virgins +Virgo +Viridian +Viridians +Virile +Virility +Virizion +Virizion's +Virtual +Virtualbox +Virtualization +Virtually +Virtue +Virtues +Virtuoso +Virtuous +Virulent +Virulently +Virus +Viruses +Vis +Visa +Visas +Viscera +Viscid +Viscount +Viscous +Vise +Visegard +Visegrad +Vishnu +Visibile +Visibility +Visible +Visibly +Vision +Visionary +Visioned +Visioning +Visions +Visit +Visitation +Visited +Visiting +Visitor +Visitors +Visits +Visor +Visual +Visualisation +Visualise +Visualiser +Visualization +Visualizations +Visualize +Visualized +Visualizer +Visualizes +Visualizing +Visually +Visuals +VitaCoco +Vitacoco +Vitae +Vitagod +Vital +Vitalcqt +Vitalcqt's +Vitalia +Vitalias +Vitality +Vitalized +Vitals +Vitamin +Vitamins +Vitelia +Vitelian +Vitelians +Vitelias +Viteliavault +Vitiated +Vitriol +Vitriolic +Vituperation +Viva +Vivacious +Vivian +Vivid +Vividly +Vivienne +Vixen +Vizier +Việt Nam +Vladimir +Vladivostok +Vlog +Vocabulary +Vocal +Vocalista +Vocally +Vocals +Vocation +Vocational +Vociferous +Vodka +Vogelburg +Vogue +VogueBadger +VogueBadger's +Voice +Voicechat +Voicechats +Voiced +Voiceless +Voicemail +Voicemails +Voiceover +Voiceovers +Voices +Voicing +Void +VoidCipher +VoidCipher's +Voided +Voiding +Voids +Voila +Volan +Volans +Volantian +Volantians +Volatile +Volatility +Volcania +Volcanic +Volcano +Volcanoes +Volcanos +Voldemort +Volga +Volgograd +Volition +Volk +Volkswagen +Volley +Volleyball +Volleyed +Volohai +Volt +Volta +Voltage +Voltaic +Voltera +Volteran +Volterans +Volterra +Volterra's +Volterran +Volterrans +Volterraptor +Voltz +Voluble +Volume +Volumes +Volumetric +Voluminous +Voluntairly +Voluntarily +Voluntarism +Voluntary +Voluntaryism +Voluntaryist +Voluntaryists +Voluntee +Volunteer +Volunteered +Volunteering +Volunteerism +Volunteers +Volunter +Voluptuary +Voluptuous +Voluptuousness +Volution +Volvo +Vom +Vomit +Vomited +Vomiting +Vomits +Von +VonZhok +VonZhok's +Vongola ring +Voodoo +Voracious +Vore +Vored +Vores +Vorpal +Vortex +Vote +Votebot +Votebrigade +Voteconservative +Voted +Votelabour +Voter +Voters +Votes +Voteukip +Voting +Votive +Vouch +Vouched +Voucher +Vouchers +Vouches +Vouching +Vouchsafe +Voulez +Vow +Vowed +Vowed Instrument +Vowed Talisman +Vowel +Vowels +Vowing +Vows +Voxel +Voxelmap +Voxels +Voyage +Voyager +Voyeur +Voyeurista +Vp +Vpn +Vpned +Vpner +Vpners +Vpning +Vpns +Vr +Vroom +Vrooms +Vs +Vsauce +Vulcan +Vulgar +Vulgarity +Vulnerabilities +Vulnerability +Vulnerable +Vult +Vulture +Vultures +Vusitania +Vvvvvvvery +Vyta +Vyzedrix +Vyzedrix's +Vzis +Vzisian +W +WAAR +WNS2 +WNS2's +Waarom +Wacc +Wachowskis +Wack +Wackiacky +Wackiest +Wacko +Wacky +WackyAki +WackyAki 's +Wackyaki +Waco +Wacom +Wad +Waddle +Waddup +Wade +Wading +Wads +Wafer +Waffle +Wafflecore +Waffled +Waffler +Wafflers +Waffles +Waffling +Waft +Wafted +Wafting +Wag +Wage +Waged +Wager +Wagers +Wages +Waggles +Waging +Wagner Group +Wagon +Wagons +Wags +Wah +Waif +Waifu +Wail +Wailing +Wails +Wain +Wainscot +Wainwright +Waist +Wait +Waited +Waiter +Waiting +Waitress +Waits +Waive +Waived +Waiver +Waiving +Waiws +Wak +Wakanda +Wakanda's +Wakandan +Wakandans +Wakandas +Wakandian +Wakandians +Wake +Waken +Wakerlink +Wakes +Waking +Wakroy +Wal +Wald +Walde +Walden +Waldenherz +Waldo +Wales +Walk +Walkable +Walked +Walker +Walkers +Walkers' +Walkers's +Walkersgaming +Walking +Walkman +Walks +Walkthrough +Walkway +Walkways +Wall +Wallabies +Wallace +Wallachia +Wallah +Wallbastion +Wallbastioned +Wallbastions +Walled +Wallet +Wallets +Wallflower +Walling +Wallis +Wallis and Futuna Islands +Wallis et Futuna +Walloon +Wallow +Wallowing +Wallpaper +Wallpapers +Walls +Wallville +Wally +Walmart +Walnut +Walnuts +Walrus +Walruses +Walt +Walt Disney World +Walter +Walters +Walton +Waltz +Waltzed +Waltzing +Wam +Wampum +Wan +Wana +Wanado +Wanan +Wand +Wand3r +Wand3r's +Wanda +Wandarian +Wander +Wandered +Wanderer +Wanderers +Wandering +Wanders +Wands +Wane +Waned +Wanes +Wang +Wangs +Waning +Wanna +Wannabe +Wannabes +Want +Wanted +Wanting +Wanton +Wantonly +Wants +War +WarLuke22 +WarLuke22's +Warband +Warbands +Warble +Warbler +Warchest +Warchief +Warcraft +Warcrime +Warcrimes +Ward +Warded +Warden +Wardens +Wardenship +Warder +Wardrobe +Wards +Ware +Warehouse +Warehouses +Wares +Warfare +Warframe +Warfront +Wargoals +Warhammer +Warhawks +Warheads +Warily +Warlike +Warlizard +Warlord +Warlord's Diamond Sabre +Warlords +Warm +Warmed +Warmer +Warmest +Warmia +Warmian Nitro +Warming +Warmly +Warmonger +Warmongerer +Warmongerers +Warmongering +Warmongers +Warms +Warmth +Warmup +Warn +Warned +Warner +Warning +Warnings +Warns +Waroom +Warosu +Warp +Warped +Warping +Warps +Warpwood Compound Crossbow +Warpwood Shooter +Warrant +Warranted +Warranties +Warranting +Warrantless +Warrants +Warranty +Warred +Warren +Warring +Warrior +Warriorheart +Warriors +Wars +Warsaw +Warship +Warships +Wart +Warthog +Warthunder +Wartime +Wartorn +Warts +Warwickshire +Wary +Warzone +Warzones +Was +Wasa +Wasd +Wash +Washed +Washer +Washes +Washing +Washington +Washingtondc +Washingtonpost +Washstand +Wasnt +Wasp +Wasps +Wassenaar +Wassenaar's +Wasser +Wassup +Wast +Waste +Wasted +Wasteful +Wastefulness +Wasteland +Wastelands +Wasteman +Waster +Wasters +Wastes +Wasting +Wasup +Waswya +Wat +Watashi +Watch +Watcha +Watched +Watcher +Watchers +Watches +Watchful +Watchfulness +Watching +Watchlist +Watchman +Watchmen +Watchout +Watchtower +Watchu +Watchword +Water +Waterboard +Waterboarded +Waterboarding +Waterbombed +Waterborne +Waterbottles +Waterbreathing +Waterchunks +Watercloset +Waterdrop +Waterdrops +Watered +Waterfall +Waterfalls +Waterflow +Waterfront +Watergate +Watergrief +Watering +Waterlift +Waterloo +Waterman +Watermark +Watermarked +Watermarks +Watermashen +Watermashen's +Watermelon +Watermelons +Watermills +Waterpark +Waterproof +Waters +Waterschedule +Watershed +Waterslide +Waterson +Waterwalker +Waterway +Waterways +Waterworld +Watery +Wateva +Wats +Watsky +Watson +Watt +Watts +Wav +Wave +Waved +Wavelength +Waver +Wavered +Waves +Waving +Wavy +Wax +Waxing +Waxman +Way +Wayback +Waybackmachine +Wayfarer +Waylaid +Waylay +Wayne +Waypoint +Waypointed +Waypoints +Wayrest +Ways +Wayside +Wayward +Wb +Wbu +Wc +We +Weak +Weaken +Weakened +Weakening +Weakens +Weaker +Weakest +Weakish +Weakling +Weaklings +Weakly +Weakness +Weaknesses +Weakpoint +Weal +Wealth +Wealthier +Wealthiest +Wealthy +Wean +Weaned +Weapon +Weaponised +Weaponising +Weaponizable +Weaponize +Weaponized +Weaponizing +Weaponry +Weapons +Wear +Wearer +Wearers +Wearing +Wearisome +Wears +Weary +Weasel +Weaselling +Weasels +Weasley +Weather +Weathered +Weathering +Weave +Weaved +Weaver +Weaving +Weazel +Web +Webapp +Webapps +Webb +Webbed +Webbing +Webblocks +Webcache +Webcam +Webcams +Webcast +Webcomic +Weber +Webers +Webhook +Webhooks +Webinar +Weblog +Weblogs +Webmap +Webmaster +Webmasters +Webmd +Webpage +Webs +Webservice +Webshots +Webside +Website +Webster +Websters +Webstore +Wed +Wedding +Weddings +Wedge +Wedged +Wedges +Wedging +Wedlock +Wednesday +Weeb +WeebFuel +Weebly +Weebs +Weed +Weeded +Weeding +Weedsville +Weedy +Week +Weekday +Weekdays +Weekend +Weekends +Weekly +Weeknights +Weeks +Ween +Weenie +Weenies +Weep +Weepee +Weepees +Weeps +Weepy +Weer +Weezer +Weigh +Weighed +Weighing +Weighs +Weight +Weighted +Weighting +Weights +Weimar +Weir +Weird +Weirded +Weirder +Weirdest +Weirdly +Weirdness +Weirdo +Weirdos +Welch +Welcome +Welcoming +Weld +Welding +Weldon +Welfare +Well +Wellbeing +Welled +Welling +Wellington +Wellness +Wells +Welp +Welsh +Welt +Welter +Wen +Wench +Wenches +Wendies +Wendy +Wendys +Went +Wept +Werde +Werden +Were +Werent +Werewolf +Wergo +Werk +Wes +Wesbury +Wesley +West +Westbound +Westerly +Western +Western Boundary +Western Sahara +Westerner +Westerners +Westeros +Westgrove +Westminster +Westmore +Weston +Westphalia +Westphalian +Westpoint +Wests +Westward +Westworld +Wet +Wetness +Wetted +Wetter +Wetting +Wey +Weymouth +Whack +Whacked +Whacking +Whacky +Whale +Whaler +Whales +Whaling +Wharves +What +Whataboutism +Whatcha +Whatever +Wheat +Wheatbot +Wheatcrew +Wheaten +Wheatfarm +Wheaties24 +Wheaties24's +Wheats +Whee +Wheedle +Wheel +Wheelbarrow +Wheelchair +Wheeled +Wheels +Wheelwright +Wheeze +Wheezer +Wheezes +Whelming +Whelp +When +Whence +Whenever +Where +Whereabout +Whereabouts +Whereas +Whereby +Wherefore +Wherein +Whereupon +Wherever +Whether +Whew +Which +Whichever +Whiff +Whiffle +While +Whiles +Whilst +Whim +Whimper +Whims +Whimsical +Whimsically +Whimsy +Whine +Whined +Whiner +Whiners +Whinge +Whinging +Whip +Whiplash +Whipped +Whippersnappers +Whipping +Whips +Whir +Whirl +Whirlpool +Whirlwind +Whirring +Whisk +Whisked +Whiskers +Whiskey +Whiskeys +Whisky +Whisper +Whispered +Whispering +Whisperings +Whispers +Whistle +Whistleblower +Whistleblowing +Whistled +Whistler +Whistles +Whistling +Whistling Focus +Whit +Whitby +White +Whiteboard +Whitehall +Whitehouse +Whiteknight +Whitelist +Whiten +Whitening +Whitest +Whitewash +Whitewashing +Whitewater +Whiting +Whittle +Whittled +Whiz +Who +Whoa +Whoah +Whoever +Whole +Wholehearted +Wholeheartedly +Wholeness +Wholesale +Wholesaler +Wholesome +Wholesomeness +Wholly +Whom +Whomever +Whomped +Whomping +Whomsoever +Whoop +Whooping +Whoops +Whoopsie +Whoopsy +Whoosh +Whopper +Whopping +Whose +Whosoever +Whovian +Whoville +Whupped +Whut +Why +Wibblywobbly +Wichita +Wick +Wicked +Wickedly +Wicker +Wicket +Wide +Widely +Widen +Widened +Widening +Widens +Wider +Widescreen +Widespread +Widest +Widget +Widgets +Widow +Widow Maker +Widowed +Widower +Widowhood +Widows +Width +Wie +Wield +Wielded +Wielder +Wielders +Wielding +Wields +Wien +Wife +Wifey +Wifi +Wifipassword +Wiggle +Wiggles +Wiggling +Wiggum +Wight +Wigs +Wii Fit +Wii Play +Wii Sports +Wiki +Wikibooks +Wikibot +Wikihow +Wikimedia +Wikipage +Wikipedia +Wikisummaries +Wikitextbot +Wikiwars +Wiktionary +Wil +Wilbur +Wild +WildWeazel +WildWeazel's +Wildcard +Wildcards +Wildcat +Wildcats +Wilder +Wilderness +Wildest +Wildfire +Wildflame +Wildgrey +Wildheart +Wildlife +Wildlings +Wildly +Wildness +Wilds +Wildweasel +Wile +Wiley +Wilful +Wilfully +Wilgar +Wilhelm +Wiling +Wilkes +WilkinsCoffee23 +WilkinsCoffee23's +Wilkinson +Will +Willa +Willed +William +Williams +Willing +Willingly +Willingness +Willis +Willow +Willow Recurve +Willpower +Wills +Wilson +Wilson5756 +Wilson5756's +Wilt +Wilted +Wilting +Wilton +Wiltshire +Wilwithonel +Wily +Wilycoyotee +Wimbledon +Wimp +WimpyShrimp +WimpyShrimp's +Win +Wince +Winces +Wincing +Wind +Windbag +Winded +Winder +Windermere +Windex +Windfall +Windforce, Favor of Slaughter +Winding +Windlass +Windlass, Arch of Suffering +Windlass, Pledge of the Shadows +Windmill +Window +Windowed +Windowless +Windowlicker +Windows +Windpipe +Winds +Windscreen +Windshield +Windsor +Windsors +Windsurfing +Windu +Windward +Windy +Wine +Winepress +Wines +Wing +Wingardium +Winged +Winger +Wingers +Winging +Wingman +Wings +Wingspan +Wingzero +Wingzero54 +Wingzero54's +Wingzeros +Winifred +Wining +Wink +Winking +Winkle +Winkles +Winnable +Winner +Winners +Winnery +Winnie +Winning +Winnipeg +Winny +Wino +Winrar +Wins +Winslow +Winsome +Winston +Winter +Winterbourne +Wintergreen +Winterhill +Wintery +Wip +Wipe +Wiped +Wipes +Wiping +Wire +Wired +Wireframe +Wireless +Wires +Wireshark +Wiretapping +Wiring +Wiry +Wisconsin +Wisdom +Wise +Wised +Wisely +Wisened +Wiser +Wisest +Wish +Wished +Wishes +Wishful +Wishing +Wishlist +Wishperer +Wismar +Wisp +Wispers +Wistful +Wit +Wit's End +Witch +Witchcraft +Witchdoctor +Witcher +Witches +Witchhunt +With +WithDraw, Vengeance of the Burning Sun +Withdraw +Withdrawal +Withdrawing +Withdrawn +Withdraws +Withdrew +Wither +Wither's +Withered +Withering +Withers +Witherskeletons +Witherskulls +Witherspoon +Withheld +Withhold +Withholding +Within +Without +Withstand +Withstanding +Withstood +Witless +Witness +Witnessed +Witnesses +Witnessing +Wits +Witted +Witticism +Wittier +Witting +Wittle +Witty +Wiv +Wives +Wix +Wiz +Wizard +WizardCraft2021 +WizardCraft2021's +Wizardry +Wizards +Wize +Wizened +Wjkroeker +Wjkroeker's +Wjroeker +Wjs +Wjuice +Wmd +Wns2 +WoW +Woah +Wobble +Wobbling +Wobbly +Woe +Woeful +Woeful Steel Shooter +Woefully +Woes +Wohlf +Woke +Woken +Wokeness +Wokest +Wokingham +Wold +Wolf +WolfMontjuic +WolfMontjuic's +Wolfeyes +Wolfgirl +Wolfing +Wolfish +Wolfram +Wolframalpha +Wolfs +Wolken +Wololol +Wolpert +Wolv77 +Wolv77's +Wolvania +Wolves +Wolvesgaming +Woman +Womanish +Womanizer +Womankind +Womb +Wombo +Women +Won +Wonder +Wondered +Wonderful +Wonderfully +Wondering +Wonderland +Wondern +Wonderopolis +Wonderous +Wonders +Wondershare +Wonderwall +Wondrous +Wonka +Wonky +Wont +Wonton +Woo +Wood +Woodbot +Woodcut +Woodcutter +Woodcutters +Woodcutting +Wooded +Wooden +Woodfired +Woodland +Woodlands +Woodman +Woodpecker +Woodrow +Woods +Woodsman +Woodstock +Woodwork +Woodworking +Woodworks +Woody +Woodys +Woof +Woofers +Wooh +Woohoo +Wool +Woolen +Wooling +Woolly +Wooooooh +Woooooow +Wooosh +Woop +Woops +Woopsie +Woopsy +Woopy +Woord +Woosh +Woot +Woozerd +Woozerd's +Worcester +Worcestershire +Word +Wordage +Wordbank +Wordcloud +Worded +Wording +Wordings +Wordplay +Wordpress +Words +Wordsmith +Wordvomit +Wordy +Wore +Work +Workable +Workaround +Workarounds +Workbench +Workbenches +Workcrew +Workday +Worked +Worker +Workers +Workflow +Workforce +Workhorse +Workhouse +Working +Workings +Workload +Workout +Workouts +Workplace +Workroom +Works +Workshop +Workshops +Workspace +Workstation +World +World Police +World of Warcraft +WorldPolice +WorldSculptor +WorldSculptor's +Worldatlas +Worldborder +Worldbox +Worldbuilders +Worldbuilding +Worldcat +Worldcop +Worlddownload +Worlddownloaded +Worlddownloader +Worlddownloading +Worldedit +Worldedited +Worldediting +Worlders +Worldgen +Worldliness +Worldly +Worldmap +Worldnews +Worldpainted +Worldpolice +Worldpoliceoffice +Worldpowers +Worlds +Worldview +Worldviews +Worldwide +Worm +Wormed +Wormhole +Worms +Wormwizard +Wormwood +Worn +Worried +Worries +Worrisome +Worry +Worrying +Worse +Worsen +Worsened +Worsening +Worsens +Worship +Worshiped +Worshiper +Worshiping +Worshipped +Worshipper +Worshippers +Worshipping +Worships +Worst +Worstcivtools +Wort +Worth +Worthiness +Worthing +Worthless +Worthlessness +Worthwhile +Worthy +Wot +Wotjek +Wots +Would +Wouldnt +Woulds +Wouldve +Wound +Wounded +Wounder +Wounding +Wounds +Wove +Woven +Wow +Wowd +Wowee +Wowowowow +Wowza +Wowzah +Wowzers +Wp +Wpd +Wpers +Wrack +Wracked +Wracking +Wraith +Wrangle +Wrangler +Wrangling +Wrap +Wrapped +Wrapper +Wrapping +Wraps +Wrath +Wrathful +Wreak +Wreaked +Wreaking +Wreaths +Wreck +Wreckage +Wrecked +Wreckers +Wrecking +Wren +Wrench +Wrenches +Wrest +Wresting +Wrestle +Wrestler +Wrestling +Wretched +Wriggle +Wright +Wrights +Wring +Wringing +Wrinkle +Wrinkled +Wrist +Wrists +Writ +Writable +Write +Writer +Writers +Writes +Writeup +Writhe +Writing +Writingexplained +Writingprompt +Writings +Writs +Written +Wrong +Wrongdoer +Wrongdoers +Wrongdoing +Wrongdoings +Wronged +Wrongful +Wrongfully +Wrongfulness +Wrongly +Wrongness +Wrongs +Wrote +Wroth +Wrought +Wry +Wtaf +Wtb +Wtc +Wtf +Wth +Wto +Wu +Wub +Wublit +Wublit's +Wubzy +Wud +Wuh +Wulfkaine +Wull +Wumbo +Wumbology +Wunderland +Wuns +Wurdest +Wurm +Wurms +Wurst +Wurtz +Wuss +Wut +Wut2273 +Wut2273's +Wuz +Wwe +Www +Wya +Wyatt +Wyd +Wym +Wyoming +Wyot +Wyot's +Wyr Karak +Wystus +Wyze +X +XCstar +XCstar's +XSideEffectX +XSideEffectX's +Xa +Xa_n +Xa_n's +XabierGallo +XabierGallo's +Xaeros +Xalta Moro +Xanadu +Xanax +Xander +Xavier +Xavter +Xbone +Xbox +Xchange +Xcios +Xcios's +Xcstar +Xd +Xena +Xeon +Xeph +Xer +Xeriphose +Xfier +Xha +Xhe +Xi +Xia +Xian +Xianggang +Xias +Ximena +Xinjiang +Xinteng +Xiphas +Xiphian +Xir +Xiv +Xkcd +Xl +Xmas +Xml +Xo +Xoigcin +Xombies +Xoxoxoxo +Xp +Xpauditor +Xperians +Xphomegra +Xpland +Xpless +Xposed +Xpost +Xps +Xpureownx +Xray +Xrayable +Xrayed +Xrayer +Xrayers +Xraying +Xrays +Xriptidex +Xriwa +Xs +Xsammy +Xsphinxhdx +Xtincz +Xuan +Xuancabritu +Xugjawx +Xurksice +Xuziakw +Xvitox +Xx +XxTBxX3276 +XxTBxX3276's +Xxdovahkiinx +Xxl +Xxlsniper +Xxoo +Xxrealgamerzxx +Xxroguedarkxx +Xxscreamerxxx +Xxtbxx +Xxx +Xxxrandomaltxxx +Xy +Xyamius +Xyamius's +Xylophone +Xyloto +Xypros +Xyrin +Xyz +Xz +Y +Ya +Yabber +Yabbies +Yacht +Yachtland +Yachts +Yackabu +Yackabu +Yackabu 's +Yackabu's +Yadda +Yadi +Yags +Yah +Yahoo +Yahweh +Yahya +Yak +Yakman +Yaknow +Yakov +Yakumo +Yal +Yale +Yalish +Yall +Yalta +Yamaha +Yamato +Yamato-Ken +Yamete +Yami +Yaml +Yammer +Yana +Yander +Yandere +Yang +Yanggang +Yank +Yankee +Yankees +Yanking +Yanks +Yapp +Yapping +Yar +Yara +Yard +Yardbird +Yards +Yardstick +Yarn +Yarns +Yarp +Yarr +Yarrr +Yasmin +Yass +Yasss +Yassss +Yasssssss +Yatchal +Yatching +Yaw +Yawl +Yawn +Yawned +Yawns +Yaws +Yay +Yayyy +Yayyyy +Yayyyyyy +Ye +Yeaaa +Yeaaaah +Yeaaah +Yeaahh +Yeah +Yeahhh +Yeahp +Yeap +Year +Yearbook +Yearbooks +Yearling +Yearly +Yearn +Yearning +Yearns +Years +Yeast +Yeats +Yee +Yeehaw +Yeesh +Yeet +Yeeted +Yeezus +Yeezy +Yeh +Yeha +Yeilded +Yell +Yelled +Yeller +Yelling +Yellow +Yellowed +Yellowhat +Yellowhats +Yellowish +Yellows +Yells +Yelp +Yemen +Yen +Yeoman +Yep +Yes +Yesh +Yesovia +Yess +Yessir +Yessum +Yesterday +Yesterdays +Yet +Yeti +Yew +Yew Speargun +Yggdrasil +Ygo +Ygorwyth +Yhey +Yid +Yiddish +Yield +Yielded +Yielding +Yields +Yiff +Yiffers +Yiffing +Yikes +Yin +Yiona +Yippy +Yngland +Yo +Yoahtalitarian +Yoahtl +Yoahtl +Yoahtlan +Yoahtlans +Yoathl +Yoda +Yodabird19 +Yodabird19's +Yodel +Yoga +Yogaland +Yoghurt +Yogi +Yogurt +Yoh +Yoink +Yoinked +Yoinking +YoitsDoc +YoitsDoc's +Yoitsu +Yoke +Yokohama +Yolk +Yolks +Yolo +Yoloing +Yoloswaglord +Yom +Yon +Yondu +Yonks +Yoo +Yooklid +Yooklidpost +Yooklids +Yore +Yori +York +Yorker +Yorkshire +Yorue +Yoshi +Yoshis +Yoshivault +You +You_Are_Good_ +You_Are_Good_'s +Young +Younger +Youngest +Younglings +Youngster +Youngsters +Your +YourAverageRick +YourAverageRick's +Youraveragerick +Youraveragericks +Youre +Yourmothersdildo +Yourmoviesucks +Yourname +Yours +Yourself +Yourselves +Yousef +Youth +Youthful +Youthfulness +Youths +Youtube +Youtuber +Youtubers +Youve +Yowzas +Yuan +Yuck +Yucky +Yugoslavia +Yugoslavian +Yugusta +Yuh +Yuki +Yukon +Yule +Yum +Yummy +Yumyumland +Yung +Yup +Yupp +Yuppp +Yur +Yuri +Yurt +Yurts +Yutaka4 +Yutaka4's +Yvonne +Z +ZRAINH20 +ZRAINH20's +Za State +Zab +Zach +Zachary +Zachattack +Zachattacks +Zachs +Zachtheking +Zachy +Zack +Zacks +Zaddek_Vandread +Zaddek_Vandread's +Zags +Zaid +Zain +Zainab +Zaira +Zak +Zalelf +Zalelf's +Zam +Zambezi +Zambia +Zamin +Zamoradin +Zams +Zana +Zanbato +Zander +Zane +Zanidow +Zans +Zantid +Zany +Zanzibar +Zaph +Zaphod +Zaphods +Zaporozhian +Zaporozhians +Zapped +Zappos +Zapu +Zara +Zaratath +Zaratath's +Zaria +Zariah +Zaros +Zatoka +Zayknow +Zayknown +Zayn +Zayne +Zaz_rep +Zaz_rep's +Zazzed +Zeal +Zealand +Zealots +Zealous +Zealously +Zeb +Zebra +Zebras +Zed +Zedd808 +Zedd808's +Zedong +Zee +Zeeland +Zeit +Zeitgeist +Zeke +Zelascelar +Zelascelar 's +Zelda +Zelda_smile +Zelda_smile's +Zeldronix +Zeldronix's +Zelmisburg +Zelmisburg's +Zen +ZenWhite +ZenWhite's +Zena +Zendesk +Zendor +Zenith +Zenithangel +Zenosol +Zenosol's +Zephusss +Zephusss's +Zephyr +Zephyr709 +Zephyr709's +Zeppelin +Zeppelins +Zer +Zeratul +Zerg +Zerging +Zergling +Zeriah +Zero +Zero Strawberry Marching Band Company +Zerod +Zeroes +Zerorussia +Zeros +Zest +Zestroso +Zesty +Zeus +Zhirall +Zhirall's +Zhong Guo +Zhuge_Kongming +Zhuge_Kongming's +Zia +ZibeKabir +ZibeKabir's +Zig +Ziggurat +Ziggy +Ziggys +Zigzag +Zigzagging +Zilch +Zim +Zimbabwe +Zimmer +Zimmerman +Zin +Zinc +Zing +Zinger +Zion +Zionism +Zionist +Zionists +Zions +Zip +Zipped +Zipper +Zipping +Zippos +Zips +Zipzapcat +Ziva +Ziwin +Ziwin's +Zo +Zodiac +Zoe +Zoey +Zoidberg +Zoinked +Zoinks +Zola +Zolagiageek +Zolo +Zolo17 +Zoloft +Zoltan +Zoltans +Zombie +ZombieLenin +ZombieLenin's +ZombieMikasa +ZombieMikasa's +Zombielenin +Zombieleninism +Zombieleninist +Zombiemccarthy +Zombiepigmen +Zombiereagan +Zombies +Zomg +Zone +Zoned +Zones +Zoning +Zoo +Zoolander +Zoological +Zoology +Zoom +Zoomer +Zoomers +Zooming +Zoop +Zoos +Zootopia +Zoya +Zrain +Zu +Zuck +Zulu +Zulus +Zuoj +Zuoj's +Zuri +Zurich +Zwirlo +Zygon +Zygon's +Zyra_Bot +Zyra_Bot's +Zzaarr +Zzaarr's +^*^ +^-^ +^_^ +^︵^ +_Abbot_ +_Abbot_'s +_BaniShed +_BaniShed's +_Chras +_Chras's +_Cicero_ +_Cicero_'s +_Excalibur +_Excalibur's +_FF5 +_FF5's +_Feltz +_Feltz's +_Flip_Flop +_Flip_Flop's +_Funne +_Funne's +_Highboy_ +_Highboy_'s +_IceDucky +_IceDucky's +_Iron +_Iron's +_Klopsik +_Klopsik's +_Lathander_ +_Lathander_'s +_Lord_Fuzzy_ +_Lord_Fuzzy_'s +_Melonist +_Melonist's +_MotokoKusanagi +_MotokoKusanagi's +_Oceanstar +_Oceanstar's +_Pool +_Pool's +_Shamus +_Shamus's +_SteveBuscemi +_SteveBuscemi's +_The_Hamburglar_ +_The_Hamburglar_'s +_ZEDACTED_ +_ZEDACTED_'s +__Dawny +__Dawny's +___TheBoss___ +___TheBoss___'s +_anidnmeno +_anidnmeno's +_aperson1 +_aperson1's +a1234fireball +a1234fireball's +aSmellyBird +aSmellyBird's +acid +acuhdemiic +acuhdemiic's +adawee +adawee's +addmusket +adeadhead +adeadhead's +adeadheads +adh +adh's +adhs +aelar_was_here +aelar_was_here's +aerobar200 +aerobar200's +ahme63 +ahme63's +al-Urdunn +al-ʿIrāq +alberlb96 +alberlb96's +aldries +aldries's +alekcoolman1 +alekcoolman1's +aleleo11 +aleleo11's +alexkyry +alexkyry's +alexmanescu +alexmanescu's +alphg +alphg's +altmine998 +altmine998's +alzuBloxxer11 +alzuBloxxer11's +alzubloxxer11 +alzubloxxer11 +alzubloxxer11 's +alzubloxxer11's +amogus +andr3wsm +andr3wsm's +andreab003 +andreab003's +angel +anidnmeno +anidnmeno's +animeme_master +animeme_master's +anon00014 +anon00014's +aprilia2002 +aprilia2002's +around +arson +artray11111 +artray11111's +asakuun +asakuun's +asduncan +asduncan's +asgeir9 +asgeir9's +ash +ashash1509 +ashash1509's +ashnwill +ashnwill's +asianhaydenxd +asianhaydenxd's +astrohuncho +astrohuncho's +asyhlshk +asyhlshk's +attoprak +attoprak's +auqust +auqust's +authomoton +authomoton's +awart1881 +awart1881's +awoo +awoo's +axusgrad +axusgrad's +axwin +axwin's +baghold +baghold's +banksnlb +banksnlb's +banyough +banyough's +baraa17 +baraa17's +batton +bawal +bbaarr77 +bbaarr77's +benburt +benburt's +bewsiej +bewsiej's +bgbba +bgbba's +big_brrr +big_brrr's +bilzander +bilzander's +binchymonkey +binchymonkey's +bitwyz +bitwyz's +blob +blokthug +blokthug's +bloof_ +bloof_'s +blyatism +blyatism's +bog_trotter_ +bog_trotter_'s +bothan13 +bothan13's +boywar3 +boywar3's +brandonzx3 +brandonzx3's +brinton +brinton's +bumble_art +bumble_art's +burger +carcino +cat_alunya +cat_alunya's +catx8 +catx8's +chicken +chickenwinggeek +chickenwinggeek's +china +choosing +chosentwicelol +chosentwicelol's +citylion +citylion's +civva +cleb_art +cleb_art's +cmjmine +cmjmine's +cnamav +cnamav's +cokeandmentos +cokeandmentos's +conflictedmoose +conflictedmoose's +conman577 +conman577's +cooliomoose +cooliomoose's +coolmanabdul +coolmanabdul's +coolof28 +coolof28's +coolyellow +coolyellow's +crab +crlsniper +crlsniper's +dBeatzx +dBeatzx's +daddo69 +daddo69's +daeshik +daeshik's +darthorangejuice +darthorangejuice's +dcruzyx +dcruzyx's +ddpl +ddpl's +ddyl224 +ddyl224's +degenerate +delivery +desert +deyan +deyan's +diem +dirt +disobeyedtoast +disobeyedtoast's +dito +dizzygang! +djmeffy +djmeffy's +down +dragonhunter241 +dragonhunter241's +dread +dredd_kiji +dredd_kiji's +dreeeeeeeeeeeeam +dreeeeeeeeeeeeam's +drek +drone +duck +dustyrayton2 +dustyrayton2's +dynamiczbee +dynamiczbee's +dyylll123 +dyylll123's +ecstatic +edibro +edibro's +eggknub +eggknub's +elf +emilpop2 +emilpop2's +emnite +emnite's +enderbenzx +enderbenzx's +eslusshchi +esorscher +esorscher's +evilltroll +evilltroll's +excinda +excinda's +ez +falls +fastestgrass +fastestgrass's +fatesveil +fatesveil's +femfox +femfox's +ferret_irl +ferret_irl's +fetalfeast +fetalfeast's +fire1eater +fire1eater's +fk_54 +fk_54's +fogrose +fogrose's +foot +for +franknbrry +franknbrry's +fredhun14 +fredhun14's +funkywee +funkywee's +fuzzyx3 +fuzzyx3's +gabeladela1 +gabeladela1's +gamified +gamified's +gemster108 +gemster108's +gertyyyy +gertyyyy's +ggmrap +ggmrap's +give +glaze7928 +glaze7928's +gleeglor +gleeglor's +goldenegg +gonna +grenadeninja21 +grenadeninja21's +grepsedawk +grepsedawk's +griffinht +griffinht's +gronrul +gruebleen +gruebleen's +happy_ninja +happy_ninja's +hawkeye0066 +hawkeye0066's +headshot_0515 +headshot_0515's +hellcp +hellcp's +herobrine_Nm +herobrine_Nm's +heyyshiba +heyyshiba's +hi +hispersong +hitobashiru +hitobashiru's +hjaltcraft +hockey328 +hotdog +hsm +hugepoopie +hugepoopie's +hyper-homo +iHate2Craft +iHate2Craft's +iOminous +iOminous's +iPrizefighter +iPrizefighter's +iiNvisible_ +iiNvisible_'s +immediateDescent +immediateDescent's +inferno_alex +inferno_alex's +insert name here +is +itsAdoozy +itsAdoozy's +ivanovic +ivanovic's +jackamooo98 +jackamooo98's +jaded +jamietech +jamietech's +jan_Kata +jan_Kata's +jarltalos +jarltalos's +jayms +jayms's +jayods +jayods's +jbblocker +jbblocker's +jeeper3 +jeeper3's +jeffthebaker +jeffthebaker's +jimps0n +jimps0n's +johnson +joint pick +jolibee +joshyutah +joshyutah's +jupruvi +ka'yev +kaimanfrosty +kaimanfrosty's +kaprediem +kaprediem's +karolox5 +karolox5's +katzmoor +katzmoor's +kdeeks +kdeeks's +kennudy +kennudy's +kepisty +kepisty's +keuradeurva +keuradeurva 's +kicky_ +kicky_'s +king +kllr_bee +kllr_bee's +koala_beer55 +koala_beer55's +koentinius +koentinius's +krclam +krclam's +krunl +krunl's +kudasai +kurgis +kurgis's +kwizzle +kwizzle's +ky Piercer +kymac +kymac's +lakemachine +lakemachine's +lasoogna +lasoogna's +legosteenHD +legosteenHD's +lettuce +lichume +lichume's +lintlicker578 +lintlicker578's +live +lokilog +lokilog's +lone22wolf +lone22wolf's +loo_wee_gee +loo_wee_gee's +love +low-minded +lowtierloot +lowtierloot's +lxlbacon +lxlbacon's +m3ee +m3ee's +mTfUJi +mTfUJi's +ma kepesi +madmonstermax +madmonstermax's +masqis +masqis's +masterwinner96 +masterwinner96's +matanic1107 +matanic1107's +matekrey +matekrey's +maybejorts +maybejorts's +mayynophobia +mayynophobia's +measle_patches +measle_patches's +meat312 +meat312's +meeshkingaming +meeshkingaming's +melcant +melcant's +mike0war +mike0war's +minataurous +minataurous's +minemaster933 +minemaster933's +molliam +molliam's +mountain +mr_unavailable1 +mr_unavailable1's +mummybundles +mummybundles's +n +nara +natiedacrazie +natiedacrazie's +naydnn +naydnn's +neocatzeo +neocatzeo's +nerd.nu Survival Rev 26 +newfriend +nico0078111 +nico0078111's +ninjajackh12 +ninjajackh12's +nisawwa +nisawwa's +noknight24 +noknight24's +noo018 +noo018's +nuggetking141 +nuggetking141's +nyashlover +nyashlover's +o +omnissiah +omokami +omokami's +omuck3 +omuck3's +onlineboy74 +onlineboy74's +or +owenlefloppa173 +owenlefloppa173's +paagf +paagf's +pakmanlie +pakmanlie's +paronaayne +paronaayne's +pds0303 +pds0303's +peakman2 +peakman2's +peejaythecat +peejaythecat's +peon5000 +peon5000's +pes_t +pes_t's +peyt1212 +peyt1212's +phobitica +phobitica's +pirate +pog +polpot_theancom +polpot_theancom's +polvrbear +polvrbear's +poncho_cat +poncho_cat's +pookie_kins +pookie_kins's +poop +poortea +poortea's +prawny331 +prawny331's +preriak +preriak's +prettyparfait +prettyparfait's +psygate +psygate's +qBBQ +qBBQ's +qfp64 +qfp64's +qji +qji's +quarter-pounder +quinn +r +rana +rana's +rasmu361 +rasmu361's +ravioli_flesh +ravioli_flesh's +real +reffelruz +reffelruz's +rendezook99 +rendezook99's +retroQ +retroQ's +rhode +richard +rocsdaman +rocsdaman's +rugpuller +rugpuller's +run +s0uthw3st +s0uthw3st's +s1c26 +s1c26's +s1eepyhead +s1eepyhead's +sEpTiCrEaPeR +sEpTiCrEaPeR's +sake +salame88 +salame88's +salt +sam070_ +sam070_'s +samnrad +samnrad's +sauceu +sauceu's +scotg +scotg's +scramble0 +scramble0's +sefe_au +sefe_au's +selicc +selicc's +senogii +senogii's +setonix +setonix's +sgtshannon +sgtshannon's +shadedoom +shadedoom's +shtim +shtim's +silly +sillyness +siph_c +siph_c's +sisteriss +sisteriss's +skubcat +skubcat's +sloorjuice +sloorjuice's +slowlyfunny2 +slutty builder wrists +smal +smal's +smallfry834618 +smallfry834618's +smartredstone +smartredstone's +smol_bee_ +smol_bee_'s +smothyhoo +smothyhoo's +soomanbasob +soomanbasob's +sorry +spacemacs +spacemacs's +spaceposeidon +spaceposeidon's +spada81 +spada81's +sparda00 +sparda00's +specificlanguage +specificlanguage's +spooky +spoonINspace +spoonINspace's +squ8i +squ8i's +squareblob +squareblob's +squidsoaps101 +squidsoaps101's +stardarkness +stardarkness's +stratmatt57 +stratmatt57's +strattmatt57 +string +sugarwater_ +sugarwater_'s +suwiJeni +suwiJeni's +swampbog +swampbog's +tactical_maid +tactical_maid's +talerthegamer343 +talerthegamer343's +tankbuster44 +tankbuster44's +thatfellowLuke +thatfellowLuke's +theJKH +thejkh +thejkh's +theprochaos79 +theprochaos79's +thrawn21 +thrawn21's +togoshigekata +togoshigekata's +tonight +toontasker +toontasker's +trinitymelons +trinitymelons's +tshola +ttk2 +tubbzie +tubbzie's +tulpyev +turq0 +turq0's +turquoise_dog +turquoise_dog's +tvman2 +tvman2's +tvman999 +tvman999's +tvrreto +tvrreto's +twink +tybug2 +tybug2's +uglidoll +uglidoll's +umihi +uncle_krunkel +uncle_krunkel's +unnaturaltopple +unnaturaltopple's +unpearl +unpearl's +unwholesome +up +valdean3 +valdean3's +vault +vaultslave +vaultslave's +vgex1 +vgex1's +virizion +vxstly +vxstly's +wFang +wFang's +waifu +warkocz +warkocz's +weeb +what777 +what777's +whoag +whoag's +wiard +wilwithonel +wilwithonel's +wimpyzombie22 +wimpyzombie22's +wingnut4096 +wingnut4096's +winkws +winkws's +wjkroeker +wjkroeker's +wlmp +wlmp's +wooweeanswer +wubwubwub +wyssal +wyssal's +xBarteg +xBarteg's +xDarkDiamond +xDarkDiamond's +xDerArische +xDerArische's +xFier +xFier's +xPon3x +xPon3x's +xabad +xabad's +xjiro_ +xjiro_'s +xkevio +xkevio's +yackabu +yackabu's +yammy014 +yammy014's +yodabird19 +yodabird19's +you +youeatass +youeatass's +yough +youresam +youresam's +yourqt +yourqt's +zakary_ztl +zakary_ztl's +zaphod +zedacted +zer0thenumber +zer0thenumber's +ziwin +ziwin's +zolo17 +zolo17's +zooooooooooooooooom +~.~ +© +® +Äggland +Éire +Ísland +Österreich +ÚwÚ +Īrān +˯˽˯ +Косово +۞ +۩ +™ +▲ +► +▼ +◄ +☀ +☁ +☂ +☃ +★ +☆w☆ +☚ +☛ +☜ +☝ +☞ +☟ +☠ +☢ +☣ +☪ +☭ +☮ +☯ +☹ +☺ +☻ +☿ +♀ +♂ +♔ +♕ +♚ +♛ +♠ +♡ +♣ +♤ +♥ +♥w♥ +♧ +♨ +♩ +♪ +♫ +♬ +♭ +♰ +⚒ +⚔ +⚜ +⛏ +✂ +✉ +✌ +✍ +✎ +✔ +✧w✧ +✿ +❀ +❁ +❂ +❃ +❣ +❤ +❥ +❦ +❧ +ツ +🌊 +🌳 +🌷 +🌹 +🌺 +🌻 +🌼 +🍄 +🍉 +🍏 +🍞 +🍪 +🍰 +🎣 +🏠 +🏹 +🐄 +🐆 +🐈 +🐉 +🐑 +🐔 +🐖 +🐝 +🐟 +🐠 +🐡 +🐲 +🐺 +👦 +👧 +💎 +🔥 +🥔 +🥕 +🥛 +🥧 +🦊 +🧊 +🧱 +。◕‿ ◕。 diff --git a/ansible/files/gamma-config/plugins/Finale/config.yml b/ansible/files/gamma-config/plugins/Finale/config.yml new file mode 100644 index 000000000..866b3a7d9 --- /dev/null +++ b/ansible/files/gamma-config/plugins/Finale/config.yml @@ -0,0 +1,643 @@ +# alters the base CPS for all players, set enabled to false to disable +alterAttack: + enabled: true + speed: 1024 +#CombatTag player on login? +ctpOnLogin: true + +cleanerCombat: + maxReach: 6.0 + cps: + limit: 9 + counterInterval: 1000 + attackCooldownEnabled: false + sweepEnabled: false + sprintResetEnabled: true # should the sprint of the attacker reset upon hitting the victim? + waterSprintResetEnabled: false # should the sprint of the attacker reset upon hitting if they are in water? + knockbackSwordsEnabled: true # should knockback swords work? + sounds: + weak: false + strong: false + knockback: false + crit: true + knockbackLevelMultiplier: 0.67 # a constant to control the knockback sword level + strategy: standard + normal: + groundModifier: # modifies knockback in general. + type: MULTIPLY # MULTIPLY or ADD + x: 0.57 + y: 0.95 + z: 0.57 + airModifier: # modifies knockback if the victim is in the air. + type: MULTIPLY # MULTIPLY or ADD + x: 1.0 + y: 0.56 + z: 1.0 + waterModifier: # modifies knockback if the victim is in water. + type: MULTIPLY # MULTIPLY or ADD + x: 1.0 + y: 1.0 + z: 1.0 + sprint: # modifies knockback if the attacker is sprinting. + groundModifier: # modifies knockback in general. + type: MULTIPLY # MULTIPLY or ADD + x: 0.72 + y: 0.95 + z: 0.72 + airModifier: # modifies knockback if the victim is in the air. + type: MULTIPLY + x: 1.0 + y: 0.6 + z: 1.0 + waterModifier: # modifies knockback if the victim is in water. + type: MULTIPLY + x: 1.0 + y: 1.0 + z: 1.0 + attackerMotion: # modifies motion of attacker upon attacking. + x: 0.75 + y: 1.0 + z: 0.75 + victimMotion: # modifies motion of victim upon getting hit. + x: 0.65 + y: 1.0 + z: 0.65 + maxVictimMotion: # maximum motion of victim upon getting hit. + x: 10.0 + y: 1.1 + z: 10.0 + +# gives full control over health / regen, default is full reversion to 1.8 mechanics +foodHealthRegen: + enabled: true + interval: 3s + exhaustionPerHeal: 1.5 + minimumFood: 17 + healthPerCycle: 1.0 + blockFoodRegen: true + blockSaturationRegen: true +# alters pearl cooldown using vanilla mechanism, optionally combattags on pearl (if combattagplus is available) +pearls: + #Enable custom cooldown? + enabled: true + #Custom pearl cooldown + cooldown: 16s + #Combat tag using CTP when pearling? + combatTag: true +gapples: + enabled: true + cooldown: 15s + enchantedCooldown: 5m + +#allows adjusting the attack damage of any item by its spigot material identifier +weaponModification: + netheriteAxe: + material: NETHERITE_AXE + damage: 6 + armourDamageMultiplier: 2 + diamondAxe: + material: DIAMOND_AXE + damage: 5 + ironAxe: + material: IRON_AXE + damage: 4 + stoneAxe: + material: STONE_AXE + damage: 3 + goldAxe: + material: GOLDEN_AXE + damage: 2 + woodAxe: + material: WOODEN_AXE + damage: 1 + netheriteSword: + material: NETHERITE_SWORD + damage: 8 + diamondSword: + material: DIAMOND_SWORD + damage: 7 + ironSword: + material: IRON_SWORD + damage: 6 + stoneSword: + material: STONE_SWORD + damage: 5 + goldSword: + material: GOLDEN_SWORD + damage: 4 + woodSword: + material: WOODEN_SWORD + damage: 3 + trident: + material: TRIDENT + damage: 8 + meteoricIronSword: + key: meteoric_iron_sword + damage: 8 + meteoricIronSwordKb: + key: meteoric_iron_sword_knockback + damage: 8 + meteoricIronSwordKb1: + key: meteoric_iron_sword_knockback1 + damage: 8 + +armourModification: + diamondHelmet: + material: DIAMOND_HELMET + armour: 3 + toughness: 2 + extraDurabilityHits: 1 # how many extra hits a player needs to take for the durability of the piece to fall + diamondChestplate: + material: DIAMOND_CHESTPLATE + armour: 8 + toughness: 2 + extraDurabilityHits: 1 + diamondLeggings: + material: DIAMOND_LEGGINGS + armour: 6 + toughness: 2 + extraDurabilityHits: 1 + diamondBoots: + material: DIAMOND_BOOTS + armour: 3 + toughness: 2 + extraDurabilityHits: 1 + netheriteHelmet: + material: NETHERITE_HELMET + armour: 4 + toughness: 3 + extraDurabilityHits: 1 + knockbackResistance: 0 # knockback resistance is a value between 0 and 1. + netheriteChestplate: + material: NETHERITE_CHESTPLATE + armour: 8 + toughness: 3 + extraDurabilityHits: 1 + knockbackResistance: 0.1 + netheriteLeggings: + material: NETHERITE_LEGGINGS + armour: 6 + toughness: 3 + extraDurabilityHits: 1 + knockbackResistance: 0.1 + netheriteBoots: + material: NETHERITE_BOOTS + armour: 4 + toughness: 3 + extraDurabilityHits: 1 + knockbackResistance: 0 + meteoricIronHelmet: + key: meteoric_iron_helmet + armour: 4 + toughness: 2 + extraDurabilityHits: 1 + meteoricIronChestplate: + key: meteoric_iron_chestplate + armour: 8 + toughness: 3 + extraDurabilityHits: 1 + meteoricIronLeggings: + key: meteoric_iron_leggings + armour: 6 + toughness: 2 + extraDurabilityHits: 1 + meteoricIronBoots: + key: meteoric_iron_boots + armour: 4 + toughness: 2 + extraDurabilityHits: 1 + +#allows disabling enchantments. Use official spigot identifiers from https://hub.spigotmc.org/javadocs/spigot/org/bukkit/enchantments/Enchantment.html +#This will not remove them from enchanting, but simply remove the enchant as soon as the item is touched +disabledEnchantments: + - MENDING + - FROST_WALKER + +potions: + #Allows applying a multiplier to the intensity of potions. Intensities <= 1.0 will always work fine, but intensities > 1 + #may lead to unintended results for instant effects like INSTANT_HEALTH. + #All entries may have the following entries: + # type: + # A potion type (https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/potion/PotionType.html) + # upgraded: + # Boolean to specify whether the pot is upgraded (tier 2) + # extended: + # Boolean to specify whether the pot is extended + # splash: + # Boolean to specify whether the pot is splash + # multiplier: + # Double value, the multiplier applied to the duration. May not be negative and defaults to 1.0 + + # --- + #All values specifying the kind of option are optional and will wildcard if not specified, for example: + + #An entry applying to all extended splash potions: + # splash: + # splash: true + # extended: true + # multiplier: 0.8 + + #Or one applying only to speed 8, both splash&drinkable + # speed8: + # type: SPEED + # extended: true + # multiplier: 0.8 + potIntensity: + splash: + #All splash pots reduced + splash: true + multiplier: 1.0 + #Except for health + health: + type: INSTANT_HEAL + multiplier: 1.0 + #Multiplier applied to the health gain from all health potions + healthMultiplier: 1.5 + minIntensityCutOff: 0.223 # minimum intensity for non-thrower to steal some health effect. + minIntensityImpact: 0.5 # minimum intensity for thrower to get full health effect. + +velocity: + #In newer Minecraft versions when a player launches a projectile the players velocity will be added to the projectiles base velocity. This can lead to + #weird behavior sometimes and reverted with this setting. Add entity types (https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/EntityType.html) + #of projectiles to the list to revert their behavior regarding initial velocity to 1.7 + ENDER_PEARL: + type: REVERTED + power: 1.4 + SPLASH_POTION: + type: REVERTED + power: 0.5 + vertical: 0.4 + horizontal: 0.4 + pitchOffset: -20 + +#This option allows modifying the damage dealt by/to players based on certain properties. All entries look like this: + +# SWORD: +# multiplier: 1.2 +# mode: LINEAR +# flatAddition: 0.0 + +#Key of the entry is the type of damage modified, allowed here are: ALL, SWORD, SHARPNESS_ENCHANT, STRENGTH_EFFECT, ARROW, POWER_ENCHANT, CRIT +#'multiplier' is the multiplier applied to the preexisting vanilla damage, defaults to 1.0 +#'mode' is the mode used to apply the multiplier for types with different levels like SHARPNESS_ENCHANT. Allowed are LINEAR and EXPONENTIAL +#'flatAddition' is a flat amount added per level. Flat addition is applied before the multiplier + +#The order in which modifiers are applied is: ALL, ARROW, POWER_ENCHANT, STRENGTH_EFFECT, SWORD, SHARPNESS_ENCHANT, CRIT +#Note that these effects are applied after vanilla damage additions and before vanilla damage reductions +damageModifiers: + ALL: + multiplier: 0.8 + mode: DIRECT + SHARPNESS_ENCHANT: + multiplier: 1.23 + mode: DIRECT + SWORD: + mode: DIRECT + multiplier: 1.0 + CRIT: + mode: DIRECT + multiplier: 0.82 + STRENGTH_EFFECT: + mode: DIRECT + multiplier: 0.86 + ARROW: + mode: DIRECT + multiplier: 1.0 + POWER_ENCHANT: + mode: DIRECT + multiplier: 1.0 + TRIDENT: + mode: DIRECT + multiplier: 1.0 + IMPALE_ENCHANT: + mode: DIRECT + multiplier: 1.0 + FIREWORK: + mode: DIRECT + multiplier: 1.0 + +invulTicksEnabled: false +invulnerableTicks: + POISON: 1 + PROJECTILE: 1 + ENTITY_ATTACK: 10 + +# the warp fruit will roll back to 7 seconds ago +warpFruit: # logSize * logInterval = how far back in time you go + logSize: 35 # log queue size + logInterval: 200ms # in milliseconds + cooldown: 180s + maxDistance: 100 # max warp distance + spectralWhileChanneling: true + +trident: + returnToOffhand: + enabled: true # if you throw the trident with your offhand, should it return to your offhand? + bypassFullInv: true # work even when player's inventory is full + generalCooldown: 10s + riptideCooldown: 60s + +shield: + bash: + enabled: false + activationResistance: + enabled: false + amplifier: 0 + duration: 200 + power: + fromGround: + x: 1.5 + y: 0.7 + z: 1.5 + inAir: + x: 0.75 + y: 0.35 + z: 0.75 + targetDistance: 3 + damage: 1 + cooldown: 5s + passive: + enabled: false + amplifier: 0 + +crossbow: + enabled: false + radius: 2 + reinforcementDamage: 1 + bastionDamage: 5 + cooldown: 60000ms + antiAir: + standardAA: + key: standardAA + item: + name: Anti Air Missile + color: + r: 255 + g: 0 + b: 0 + power: 2 + speed: 2 + damage: 5 + damageRadius: 3 + homingRadius: 10 + homingStrength: 0.2 # how sharp should homing turns be? + activateRadius: 1 + maxRange: 500 + gravity: 0.005 + +ally: + enabled: false + seeInvis: true # should you be able to see invisible allies? + animateLink: # settings for animating adding/removing ally + enabled: true + maxDistance: 20 + storage: + file: ally.sqlite + +enhancedArrows: + enabled: true + minDistance: 10 # how far should arrow travel for arrows to become area of effect? + radius: 1 + damage: 0.25 + allyDamageReduction: 1 # how much damage to reduce against allied players? 1 = negate all damage, 0 = full friendly fire + allyCollide: false # should arrows collide with allies? + allyExemptArrowTypes: # which tipped arrows should apply to allies? + - NIGHT_VISION + - INVISIBILITY + - JUMP + - FIRE_RESISTANCE + - SPEED + - STRENGTH + - REGEN + - TURTLE_MASTER + - LUCK + - SLOW_FALLING + +# customize tipped arrows +tippedArrows: + night_vision: &nightvision + name: Arrow of Night Vision + type: night_vision + duration: 440 + color: + r: 3 + g: 32 + b: 126 + long_night_vision: + <<: *nightvision + type: long_night_vision + duration: 1200 + invisibility: &invisibility + name: Arrow of Invisibility + type: invisibility + duration: 440 + color: + r: 120 + g: 124 + b: 131 + long_invisibility: + <<: *invisibility + type: long_invisibility + duration: 1200 + leaping: &leaping + name: Arrow of Leaping + type: leaping + duration: 440 + color: + r: 83 + g: 230 + b: 87 + long_leaping: + <<: *leaping + type: long_leaping + duration: 1200 + strong_leaping: + <<: *leaping + type: strong_leaping + duration: 220 + fire_resistance: &fire_resistance + name: Arrow of Fire Resistance + type: fire_resistance + duration: 440 + color: + r: 221 + g: 147 + b: 68 + long_fire_resistance: + <<: *fire_resistance + type: long_fire_resistance + duration: 1200 + speed: &speed + name: Arrow of Swiftness + type: swiftness + duration: 440 + color: + r: 104 + g: 159 + b: 185 + long_speed: + <<: *speed + type: long_swiftness + duration: 1200 + strong_speed: + <<: *speed + type: strong_swiftness + duration: 220 + slow: &slow + name: Arrow of Slowness + type: slowness + duration: 220 + color: + r: 89 + g: 103 + b: 112 + long_slow: + <<: *slow + type: long_slowness + duration: 600 + strong_slow: + <<: *slow + type: strong_slowness + duration: 40 + turtle_master: &turtle_master + name: Arrow of Turtle Master + type: turtle_master + duration: 40 + color: + r: 119 + g: 89 + b: 78 + long_turtle_master: + <<: *turtle_master + type: long_turtle_master + duration: 100 + strong_turtle_master: + <<: *turtle_master + type: strong_turtle_master + duration: 40 + water_breathing: &water_breathing + name: Arrow of Water Breathing + type: water_breathing + duration: 440 + color: + r: 19 + g: 71 + b: 134 + long_water_breathing: + <<: *water_breathing + type: long_water_breathing + duration: 1200 + poison: &poison + name: Arrow of Poison + type: poison + duration: 100 + color: + r: 94 + g: 129 + b: 43 + long_poison: + <<: *poison + type: long_poison + duration: 220 + strong_poison: + <<: *poison + type: strong_poison + duration: 40 + regen: ®en + name: Arrow of Regeneration + type: regeneration + duration: 100 + color: + r: 188 + g: 102 + b: 146 + long_regen: + <<: *regen + type: long_regeneration + duration: 220 + strong_regen: + <<: *regen + type: strong_regeneration + duration: 40 + strength: &strength + name: Arrow of Strength + type: strength + duration: 440 + color: + r: 110 + g: 28 + b: 31 + long_strength: + <<: *strength + type: long_strength + duration: 1200 + strong_strength: + <<: *strength + type: strong_strength + duration: 220 + weakness: &weakness + name: Arrow of Weakness + type: weakness + duration: 220 + color: + r: 110 + g: 28 + b: 31 + long_weakness: + <<: *weakness + type: long_weakness + duration: 600 + luck: + name: Arrow of Luck + type: luck + duration: 740 + color: + r: 74 + g: 131 + b: 18 + slow_falling: &slow_falling + name: Arrow of Slow Falling + type: slow_falling + duration: 220 + color: + r: 254 + g: 232 + b: 198 + long_slow_falling: + <<: *slow_falling + type: long_slow_falling + duration: 600 +blockPlacementRestrictions: + enabled: false + mode: BLACKLIST # BLACKLIST, WHITELIST, NOLIST (only cooldowns) + reinforce: true # should players be allowed to reinforce while in combat? + zones: + obsidian: + type: OBSIDIAN + radius: 10 + cobweb: + type: COBWEB + radius: 5 + waterbucket: + type: WATER_BUCKET + radius: 5 + lavabucket: + type: LAVA_BUCKET + radius: 5 + blacklist: + - COBWEB + - OBSIDIAN + - WATER_BUCKET + - LAVA_BUCKET + whitelist: + - COBBLESTONE + - STONE + cooldowns: + obsidian: + type: OBSIDIAN + cooldown: 1s + +netheriteFireResistance: true +meteoricIronSlowness: true + +fireworkExplosions: false diff --git a/ansible/files/gamma-config/plugins/GEmote/config.yml b/ansible/files/gamma-config/plugins/GEmote/config.yml new file mode 100644 index 000000000..0d5b381b3 --- /dev/null +++ b/ansible/files/gamma-config/plugins/GEmote/config.yml @@ -0,0 +1,27 @@ +Lang: + + # Defines the plugin language + lang: en_us + + # Defines whether the client language should be used, if it is available + client-lang: true + + + +Options: + + # Defines whether the plugin should notify when a new version is available + check-for-update: true + + # Defines whether a player's emote is restore on rejoin / reload + restore: true + + # Defines the maximum range at which emotes can be seen + max-distance: 128.0 + + # Defines the worlds in which a player cannot emote + WorldBlacklist: + - blocked_world + + # Defines the worlds in which a player can emote (all other worlds will be blocked when the list is not empty) + WorldWhitelist: [] diff --git a/ansible/files/gamma-config/plugins/GEmote/emotes/Aqua-trail.gex b/ansible/files/gamma-config/plugins/GEmote/emotes/Aqua-trail.gex new file mode 100644 index 000000000..57f83934f --- /dev/null +++ b/ansible/files/gamma-config/plugins/GEmote/emotes/Aqua-trail.gex @@ -0,0 +1,31 @@ +# Defines how often the emote is looped (0 means unlimited) +loop: 0 + +# Defines whether the emote is played from the entity's head height +head: false + +# Defines the pattern of the emote +# +# Available Options: +# +# particle:particle_id - the id of the particle +# delay:integer - the delay until the particle is played +# repeat:integer - the amount of times the particle is repeated +# amount:integer - the amount of particles displayed +# xoffset:number - the x offset of the spawn location +# yoffset:number - the y offset of the spawn location +# zoffset:number - the z offset of the spawn location +# extra:number - the speed or other specific parameter of the particle +# data:particle_data - the specific data of the particle + +pattern: +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:-0.2 yoffset:0.0 zoffset:0.0 extra:1.0 data:5:195:221" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.0 extra:1.0 data:5:195:221" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:0.2 extra:1.0 data:5:195:221" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:-0.2 extra:1.0 data:5:195:221" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.0 extra:1.0 data:5:195:221" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:-0.2 yoffset:0.0 zoffset:0.2 extra:1.0 data:5:195:221" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.2 extra:1.0 data:5:195:221" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:0.0 extra:1.0 data:5:195:221" + + diff --git a/ansible/files/gamma-config/plugins/GEmote/emotes/Fire-trail.gex b/ansible/files/gamma-config/plugins/GEmote/emotes/Fire-trail.gex new file mode 100644 index 000000000..47ddd8ed0 --- /dev/null +++ b/ansible/files/gamma-config/plugins/GEmote/emotes/Fire-trail.gex @@ -0,0 +1,31 @@ +# Defines how often the emote is looped (0 means unlimited) +loop: 0 + +# Defines whether the emote is played from the entity's head height +head: false + +# Defines the pattern of the emote +# +# Available Options: +# +# particle:particle_id - the id of the particle +# delay:integer - the delay until the particle is played +# repeat:integer - the amount of times the particle is repeated +# amount:integer - the amount of particles displayed +# xoffset:number - the x offset of the spawn location +# yoffset:number - the y offset of the spawn location +# zoffset:number - the z offset of the spawn location +# extra:number - the speed or other specific parameter of the particle +# data:particle_data - the specific data of the particle + +pattern: +- "particle:flame delay:0 repeat:1 amount:1 xoffset:-0.2 yoffset:0.0 zoffset:0.0 extra:0.01" +- "particle:flame delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.0 extra:0.01" +- "particle:flame delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:0.2 extra:0.01" +- "particle:flame delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:-0.2 extra:0.01" +- "particle:flame delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.0 extra:0.01" +- "particle:flame delay:0 repeat:1 amount:1 xoffset:-0.2 yoffset:0.0 zoffset:0.2 extra:0.01" +- "particle:flame delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.2 extra:0.01" +- "particle:flame delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:0.0 extra:0.01" + + diff --git a/ansible/files/gamma-config/plugins/GEmote/emotes/Gold-trail.gex b/ansible/files/gamma-config/plugins/GEmote/emotes/Gold-trail.gex new file mode 100644 index 000000000..33041577a --- /dev/null +++ b/ansible/files/gamma-config/plugins/GEmote/emotes/Gold-trail.gex @@ -0,0 +1,31 @@ +# Defines how often the emote is looped (0 means unlimited) +loop: 0 + +# Defines whether the emote is played from the entity's head height +head: false + +# Defines the pattern of the emote +# +# Available Options: +# +# particle:particle_id - the id of the particle +# delay:integer - the delay until the particle is played +# repeat:integer - the amount of times the particle is repeated +# amount:integer - the amount of particles displayed +# xoffset:number - the x offset of the spawn location +# yoffset:number - the y offset of the spawn location +# zoffset:number - the z offset of the spawn location +# extra:number - the speed or other specific parameter of the particle +# data:particle_data - the specific data of the particle + +pattern: +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:-0.2 yoffset:0.0 zoffset:0.0 extra:1.0 data:218:165:32" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.0 extra:1.0 data:218:165:32" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:0.2 extra:1.0 data:218:165:32" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:-0.2 extra:1.0 data:218:165:32" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.0 extra:1.0 data:218:165:32" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:-0.2 yoffset:0.0 zoffset:0.2 extra:1.0 data:218:165:32" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.2 extra:1.0 data:218:165:32" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:0.0 extra:1.0 data:218:165:32" + + diff --git a/ansible/files/gamma-config/plugins/GEmote/emotes/Love-trail.gex b/ansible/files/gamma-config/plugins/GEmote/emotes/Love-trail.gex new file mode 100644 index 000000000..b57950b42 --- /dev/null +++ b/ansible/files/gamma-config/plugins/GEmote/emotes/Love-trail.gex @@ -0,0 +1,24 @@ +# Defines how often the emote is looped (0 means unlimited) +loop: 0 + +# Defines whether the emote is played from the entity's head height +head: false + +# Defines the pattern of the emote +# +# Available Options: +# +# particle:particle_id - the id of the particle +# delay:integer - the delay until the particle is played +# repeat:integer - the amount of times the particle is repeated +# amount:integer - the amount of particles displayed +# xoffset:number - the x offset of the spawn location +# yoffset:number - the y offset of the spawn location +# zoffset:number - the z offset of the spawn location +# extra:number - the speed or other specific parameter of the particle +# data:particle_data - the specific data of the particle + +pattern: +- "particle:heart delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:0.0 extra:0.01" + + diff --git a/ansible/files/gamma-config/plugins/GEmote/emotes/Music-trail.gex b/ansible/files/gamma-config/plugins/GEmote/emotes/Music-trail.gex new file mode 100644 index 000000000..b3e184393 --- /dev/null +++ b/ansible/files/gamma-config/plugins/GEmote/emotes/Music-trail.gex @@ -0,0 +1,24 @@ +# Defines how often the emote is looped (0 means unlimited) +loop: 0 + +# Defines whether the emote is played from the entity's head height +head: false + +# Defines the pattern of the emote +# +# Available Options: +# +# particle:particle_id - the id of the particle +# delay:integer - the delay until the particle is played +# repeat:integer - the amount of times the particle is repeated +# amount:integer - the amount of particles displayed +# xoffset:number - the x offset of the spawn location +# yoffset:number - the y offset of the spawn location +# zoffset:number - the z offset of the spawn location +# extra:number - the speed or other specific parameter of the particle +# data:particle_data - the specific data of the particle + +pattern: +- "particle:note delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:0.0 extra:1" + + diff --git a/ansible/files/gamma-config/plugins/GEmote/emotes/Orange-trail.gex b/ansible/files/gamma-config/plugins/GEmote/emotes/Orange-trail.gex new file mode 100644 index 000000000..56d0bb038 --- /dev/null +++ b/ansible/files/gamma-config/plugins/GEmote/emotes/Orange-trail.gex @@ -0,0 +1,31 @@ +# Defines how often the emote is looped (0 means unlimited) +loop: 0 + +# Defines whether the emote is played from the entity's head height +head: false + +# Defines the pattern of the emote +# +# Available Options: +# +# particle:particle_id - the id of the particle +# delay:integer - the delay until the particle is played +# repeat:integer - the amount of times the particle is repeated +# amount:integer - the amount of particles displayed +# xoffset:number - the x offset of the spawn location +# yoffset:number - the y offset of the spawn location +# zoffset:number - the z offset of the spawn location +# extra:number - the speed or other specific parameter of the particle +# data:particle_data - the specific data of the particle + +pattern: +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:-0.2 yoffset:0.0 zoffset:0.0 extra:1.0 data:255:130:0" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.0 extra:1.0 data:255:130:0" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:0.2 extra:1.0 data:255:130:0" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:-0.2 extra:1.0 data:255:130:0" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.0 extra:1.0 data:255:130:0" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:-0.2 yoffset:0.0 zoffset:0.2 extra:1.0 data:255:130:0" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.2 extra:1.0 data:255:130:0" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:0.0 extra:1.0 data:255:130:0" + + diff --git a/ansible/files/gamma-config/plugins/GEmote/emotes/Pink-trail.gex b/ansible/files/gamma-config/plugins/GEmote/emotes/Pink-trail.gex new file mode 100644 index 000000000..e4f10299f --- /dev/null +++ b/ansible/files/gamma-config/plugins/GEmote/emotes/Pink-trail.gex @@ -0,0 +1,31 @@ +# Defines how often the emote is looped (0 means unlimited) +loop: 0 + +# Defines whether the emote is played from the entity's head height +head: false + +# Defines the pattern of the emote +# +# Available Options: +# +# particle:particle_id - the id of the particle +# delay:integer - the delay until the particle is played +# repeat:integer - the amount of times the particle is repeated +# amount:integer - the amount of particles displayed +# xoffset:number - the x offset of the spawn location +# yoffset:number - the y offset of the spawn location +# zoffset:number - the z offset of the spawn location +# extra:number - the speed or other specific parameter of the particle +# data:particle_data - the specific data of the particle + +pattern: +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:-0.2 yoffset:0.0 zoffset:0.0 extra:1.0 data:255:105:180" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.0 extra:1.0 data:255:105:180" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:0.2 extra:1.0 data:255:105:180" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:-0.2 extra:1.0 data:255:105:180" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.0 extra:1.0 data:255:105:180" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:-0.2 yoffset:0.0 zoffset:0.2 extra:1.0 data:255:105:180" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.2 extra:1.0 data:255:105:180" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:0.0 extra:1.0 data:255:105:180" + + diff --git a/ansible/files/gamma-config/plugins/GEmote/emotes/Red-trail.gex b/ansible/files/gamma-config/plugins/GEmote/emotes/Red-trail.gex new file mode 100644 index 000000000..771a992a4 --- /dev/null +++ b/ansible/files/gamma-config/plugins/GEmote/emotes/Red-trail.gex @@ -0,0 +1,31 @@ +# Defines how often the emote is looped (0 means unlimited) +loop: 0 + +# Defines whether the emote is played from the entity's head height +head: false + +# Defines the pattern of the emote +# +# Available Options: +# +# particle:particle_id - the id of the particle +# delay:integer - the delay until the particle is played +# repeat:integer - the amount of times the particle is repeated +# amount:integer - the amount of particles displayed +# xoffset:number - the x offset of the spawn location +# yoffset:number - the y offset of the spawn location +# zoffset:number - the z offset of the spawn location +# extra:number - the speed or other specific parameter of the particle +# data:particle_data - the specific data of the particle + +pattern: +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:-0.2 yoffset:0.0 zoffset:0.0 extra:1.0 data:100:0:0" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.0 extra:1.0 data:150:0:0" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:0.2 extra:1.0 data:200:0:0" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:-0.2 extra:1.0 data:100:0:0" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.0 extra:1.0 data:150:0:0" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:-0.2 yoffset:0.0 zoffset:0.2 extra:1.0 data:200:0:0" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.2 extra:1.0 data:100:0:0" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:0.0 extra:1.0 data:200:0:0" + + diff --git a/ansible/files/gamma-config/plugins/GEmote/emotes/Smoke-trail.gex b/ansible/files/gamma-config/plugins/GEmote/emotes/Smoke-trail.gex new file mode 100644 index 000000000..59ce011ac --- /dev/null +++ b/ansible/files/gamma-config/plugins/GEmote/emotes/Smoke-trail.gex @@ -0,0 +1,31 @@ +# Defines how often the emote is looped (0 means unlimited) +loop: 0 + +# Defines whether the emote is played from the entity's head height +head: false + +# Defines the pattern of the emote +# +# Available Options: +# +# particle:particle_id - the id of the particle +# delay:integer - the delay until the particle is played +# repeat:integer - the amount of times the particle is repeated +# amount:integer - the amount of particles displayed +# xoffset:number - the x offset of the spawn location +# yoffset:number - the y offset of the spawn location +# zoffset:number - the z offset of the spawn location +# extra:number - the speed or other specific parameter of the particle +# data:particle_data - the specific data of the particle + +pattern: +- "particle:campfire_cosy_smoke delay:0 repeat:1 amount:1 xoffset:-0.2 yoffset:0.0 zoffset:0.0 extra:0.005" +- "particle:campfire_cosy_smoke delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.0 extra:0.005" +- "particle:campfire_cosy_smoke delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:0.2 extra:0.005" +- "particle:campfire_cosy_smoke delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:-0.2 extra:0.005" +- "particle:campfire_cosy_smoke delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.0 extra:0.005" +- "particle:campfire_cosy_smoke delay:0 repeat:1 amount:1 xoffset:-0.2 yoffset:0.0 zoffset:0.2 extra:0.005" +- "particle:campfire_cosy_smoke delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.2 extra:0.005" +- "particle:campfire_cosy_smoke delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:0.0 extra:0.005" + + diff --git a/ansible/files/gamma-config/plugins/GEmote/emotes/Soul-Fire-trail.gex b/ansible/files/gamma-config/plugins/GEmote/emotes/Soul-Fire-trail.gex new file mode 100644 index 000000000..036a7ea8c --- /dev/null +++ b/ansible/files/gamma-config/plugins/GEmote/emotes/Soul-Fire-trail.gex @@ -0,0 +1,31 @@ +# Defines how often the emote is looped (0 means unlimited) +loop: 0 + +# Defines whether the emote is played from the entity's head height +head: false + +# Defines the pattern of the emote +# +# Available Options: +# +# particle:particle_id - the id of the particle +# delay:integer - the delay until the particle is played +# repeat:integer - the amount of times the particle is repeated +# amount:integer - the amount of particles displayed +# xoffset:number - the x offset of the spawn location +# yoffset:number - the y offset of the spawn location +# zoffset:number - the z offset of the spawn location +# extra:number - the speed or other specific parameter of the particle +# data:particle_data - the specific data of the particle + +pattern: +- "particle:soul_fire_flame delay:0 repeat:1 amount:1 xoffset:-0.2 yoffset:0.0 zoffset:0.0 extra:0.01" +- "particle:soul_fire_flame delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.0 extra:0.01" +- "particle:soul_fire_flame delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:0.2 extra:0.01" +- "particle:soul_fire_flame delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:-0.2 extra:0.01" +- "particle:soul_fire_flame delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.0 extra:0.01" +- "particle:soul_fire_flame delay:0 repeat:1 amount:1 xoffset:-0.2 yoffset:0.0 zoffset:0.2 extra:0.01" +- "particle:soul_fire_flame delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.2 extra:0.01" +- "particle:soul_fire_flame delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:0.0 extra:0.01" + + diff --git a/ansible/files/gamma-config/plugins/GEmote/emotes/black-trail.gex b/ansible/files/gamma-config/plugins/GEmote/emotes/black-trail.gex new file mode 100644 index 000000000..a865efb36 --- /dev/null +++ b/ansible/files/gamma-config/plugins/GEmote/emotes/black-trail.gex @@ -0,0 +1,30 @@ +# Defines how often the emote is looped (0 means unlimited) +loop: 0 + +# Defines whether the emote is played from the entity's head height +head: false + +# Defines the pattern of the emote +# +# Available Options: +# +# particle:particle_id - the id of the particle +# delay:integer - the delay until the particle is played +# repeat:integer - the amount of times the particle is repeated +# amount:integer - the amount of particles displayed +# xoffset:number - the x offset of the spawn location +# yoffset:number - the y offset of the spawn location +# zoffset:number - the z offset of the spawn location +# extra:number - the speed or other specific parameter of the particle +# data:particle_data - the specific data of the particle + +pattern: +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:0.0 extra:1.0 data:000:000:000" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:-0.2 yoffset:0.0 zoffset:0.0 extra:1.0 data:000:000:000" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.0 extra:1.0 data:000:000:000" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:-0.2 yoffset:0.0 zoffset:0.0 extra:1.0 data:000:000:000" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.0 extra:1.0 data:000:000:000" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:0.2 extra:1.0 data:000:000:000" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:-0.2 extra:1.0 data:000:000:000" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.0 extra:1.0 data:000:000:000" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.0 extra:1.0 data:000:000:000" \ No newline at end of file diff --git a/ansible/files/gamma-config/plugins/GEmote/emotes/blue-trail.gex b/ansible/files/gamma-config/plugins/GEmote/emotes/blue-trail.gex new file mode 100644 index 000000000..d4cc1c493 --- /dev/null +++ b/ansible/files/gamma-config/plugins/GEmote/emotes/blue-trail.gex @@ -0,0 +1,32 @@ +# Defines how often the emote is looped (0 means unlimited) +loop: 0 + +# Defines whether the emote is played from the entity's head height +head: false + +# Defines the pattern of the emote +# +# Available Options: +# +# particle:particle_id - the id of the particle +# delay:integer - the delay until the particle is played +# repeat:integer - the amount of times the particle is repeated +# amount:integer - the amount of particles displayed +# xoffset:number - the x offset of the spawn location +# yoffset:number - the y offset of the spawn location +# zoffset:number - the z offset of the spawn location +# extra:number - the speed or other specific parameter of the particle +# data:particle_data - the specific data of the particle + +pattern: +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:-0.2 yoffset:0.0 zoffset:0.0 extra:1.0 data:0:0:128" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.0 extra:1.0 data:0:0:128" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:0.2 extra:1.0 data:0:0:128" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:-0.2 extra:1.0 data:0:0:128" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.0 extra:1.0 data:0:0:128" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:-0.2 yoffset:0.0 zoffset:0.2 extra:1.0 data:0:0:128" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.2 extra:1.0 data:0:0:128" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:0.0 extra:1.0 data:0:0:128" + + + diff --git a/ansible/files/gamma-config/plugins/GEmote/emotes/green-trail.gex b/ansible/files/gamma-config/plugins/GEmote/emotes/green-trail.gex new file mode 100644 index 000000000..2678f1590 --- /dev/null +++ b/ansible/files/gamma-config/plugins/GEmote/emotes/green-trail.gex @@ -0,0 +1,31 @@ +# Defines how often the emote is looped (0 means unlimited) +loop: 0 + +# Defines whether the emote is played from the entity's head height +head: false + +# Defines the pattern of the emote +# +# Available Options: +# +# particle:particle_id - the id of the particle +# delay:integer - the delay until the particle is played +# repeat:integer - the amount of times the particle is repeated +# amount:integer - the amount of particles displayed +# xoffset:number - the x offset of the spawn location +# yoffset:number - the y offset of the spawn location +# zoffset:number - the z offset of the spawn location +# extra:number - the speed or other specific parameter of the particle +# data:particle_data - the specific data of the particle + +pattern: +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:-0.2 yoffset:0.0 zoffset:0.0 extra:1.0 data:0:100:0" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.0 extra:1.0 data:0:150:0" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:0.2 extra:1.0 data:0:200:0" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:-0.2 extra:1.0 data:0:100:0" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.0 extra:1.0 data:0:150:0" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:-0.2 yoffset:0.0 zoffset:0.2 extra:1.0 data:0:200:0" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.2 yoffset:0.0 zoffset:0.2 extra:1.0 data:0:100:0" +- "particle:redstone delay:0 repeat:1 amount:1 xoffset:0.0 yoffset:0.0 zoffset:0.0 extra:1.0 data:178:172:136" + + diff --git a/ansible/files/gamma-config/plugins/GSit/config.yml b/ansible/files/gamma-config/plugins/GSit/config.yml new file mode 100644 index 000000000..169722096 --- /dev/null +++ b/ansible/files/gamma-config/plugins/GSit/config.yml @@ -0,0 +1,163 @@ +Lang: + + # Defines the plugin language + lang: en_en + + + +Options: + + # Defines whether the plugin should notify when a new version is available + check-for-update: true + + # Defines whether a player should get up after taking damage + get-up-damage: true + + # Defines whether a player can get up from sitting or posing by sneaking + get-up-sneak: true + + # Defines whether a player is returned to the original location + get-up-return: true + + # Defines whether a player gets up when the block below breaks + get-up-break: true + + # Defines whether a player can sit or pose in an unsafe location + allow-unsafe: false + + # Defines whether more than one player can sit or pose on the same block + same-block-rest: false + + # Defines whether a player is centered on the block when sitting or posing + center-block: true + + Sit: + + # Defines the blocks a player can sit on by clicking (materials and tags) (* means every block) + # Separate a material or tag from its y-offset with a ";" character + SitMaterials: + - "#stairs" + - "#slabs" + - "#carpets" + - "#wool_carpets" + - "moss_carpet" + - "big_dripleaf" + - "snow" + + # Defines whether you can sit on stairs and slabs that are not in the bottom part of a block + bottom-part-only: true + + # Defines whether a player needs an empty main hand to sit down by clicking + empty-hand-only: true + + # Defines the maximum range in which a player can sit down by clicking (0 means unlimited) + max-distance: 2.0 + + # Defines whether a player should receive a custom message when sitting + sit-message: true + + # Defines whether a player can sit by default without using the sit toggle command + default-sit-mode: true + + + + PlayerSit: + + # Defines whether a player can right-click to sit on another player + allow-sit: false + + # Defines whether a player can right-click to sit on an NPC + allow-sit-npc: false + + # Defines the maximum number of players that can be stacked (0 means unlimited) + max-stack: 1 + + # Defines whether a player should kick out all passengers when sneaking + sneak-ejects: true + + # Defines whether a player should be placed at the bottom of the player sit stack when dismounting + bottom-return: true + + # Defines whether a player needs an empty main hand to sit on another player + empty-hand-only: true + + # Defines the maximum range in which a player can sit on another player (0 means unlimited) + max-distance: 2.0 + + # Defines whether a player should receive a custom message when sitting on top of another player + sit-message: true + + # Defines whether a player can sit on another player by default without using the sit playertoggle command + default-sit-mode: false + + + + Pose: + + # Defines whether a player should receive a custom message when posing + pose-message: true + + # Defines whether a player can interact with the environment or other players while posing + interact: false + + # Defines whether to reset the time since a player's last rest (affects phantom spawn timer) + lay-rest: true + + # Defines whether a player makes snoring sounds when lying down + lay-snoring-sounds: true + + # Defines whether snoring sounds are only heard at night + lay-snoring-night-only: true + + # Defines whether a lying player counts for skipping the night (at least one player must be sleeping in a bed to skip the night!) + lay-night-skip: true + + + + Crawl: + + # Defines whether a player can get up from crawling by sneaking + get-up-sneak: false + + # Defines whether a player can double-sneak in a short amount of time to start crawling + # In order for it to work, you must be looking straight down + double-sneak: false + + + + Emote: + + # Defines the maximum range at which emotes can be seen + max-distance: 64.0 + + # Defines whether to create the default "happy" emote in the emotes folder if it is missing + create-default-emote: false + + + + # Defines whether a player can only sit or pose in a region where they are trusted + trusted-region-only: false + + # Defines the worlds in which a player cannot sit, pose, crawl or emote + WorldBlacklist: + - "blocked_world" + + # Defines the worlds in which a player can sit, pose, crawl or emote (all other worlds will be blocked when the list is not empty) + WorldWhitelist: [] + + # Defines the list of materials on which a player may not sit or pose + MaterialBlacklist: + - "lava" + - "Water" + + # Defines the list of commands that cannot be executed while sitting or posing + CommandBlacklist: + - "skin" + - "nick" + + # Defines whether the plugin uses an extended compatibility mode for all features + # Enable this option only if, for example, anti-cheat plugins report false feedback + enhanced-compatibility: false + + # Defines the list of active feature flags (most likely unofficial features for individual use) + FeatureFlags: [] diff --git a/ansible/files/gamma-config/plugins/Insights/config.yml b/ansible/files/gamma-config/plugins/Insights/config.yml new file mode 100644 index 000000000..73171d181 --- /dev/null +++ b/ansible/files/gamma-config/plugins/Insights/config.yml @@ -0,0 +1,49 @@ +settings: + update-checker: + enabled: false + interval-seconds: 10800 + scans: + concurrent-threads: -1 + iteration-interval-ticks: 1 + chunks-per-iteration: 256 + info-interval-millis: 100 + chunk-scans: + mode: ALWAYS + player-tracker-interval-ticks: 5 + notification: + type: BOSSBAR + bossbar: + color: BLUE + overlay: NOTCHED_10 + flags: [] + duration-ticks: 60 + actionbar: + segments: 50 + progress-sequence: '|' + done-color: + total-color: + separator: ' ' + area-scan-notifications: + enabled: true + permission: '' + spigot: + entity-tracker-interval-ticks: 10 + apply-piston-limits: true + pagination-results-per-page: 6 + disabled-listeners: + - BlockFromToEvent + - FluidLevelChangeEvent + - SpongeAbsorbEvent + - LeavesDecayEvent + listener-priorities: + BlockPlaceEvent: LOWEST + HangingPlaceEvent: LOWEST + EntityPlaceEvent: LOWEST + BlockPistonExtendEvent: LOWEST + BlockPistonRetractEvent: LOWEST + redstone-update-limiter: + enabled: false + limit: 50000 + aggregate-ticks: 10 + aggregate-size: 30 + block-outside-region: false diff --git a/ansible/files/gamma-config/plugins/Insights/limits/bed-limit.yml b/ansible/files/gamma-config/plugins/Insights/limits/bed-limit.yml new file mode 100644 index 000000000..fda8badf3 --- /dev/null +++ b/ansible/files/gamma-config/plugins/Insights/limits/bed-limit.yml @@ -0,0 +1,2 @@ +# Blank to override the default +limit: diff --git a/ansible/files/gamma-config/plugins/Insights/limits/blastfurnace-limit.yml b/ansible/files/gamma-config/plugins/Insights/limits/blastfurnace-limit.yml new file mode 100644 index 000000000..bb80bd03a --- /dev/null +++ b/ansible/files/gamma-config/plugins/Insights/limits/blastfurnace-limit.yml @@ -0,0 +1,15 @@ +limit: + name: "Blast Furnace" + type: "GROUP" + bypass-permission: "insights.bypass.limit.table" + limit: 48 + materials: + - "BLAST_FURNACE" + settings: + enabled-worlds: + whitelist: false + worlds: [] + enabled-addons: + whitelist: false + addons: [] + disallow-placement-outside-region: false diff --git a/ansible/files/gamma-config/plugins/Insights/limits/brewingstand-limit.yml b/ansible/files/gamma-config/plugins/Insights/limits/brewingstand-limit.yml new file mode 100644 index 000000000..804e663b0 --- /dev/null +++ b/ansible/files/gamma-config/plugins/Insights/limits/brewingstand-limit.yml @@ -0,0 +1,15 @@ +limit: + name: "Brewing Stand" + type: "GROUP" + bypass-permission: "insights.bypass.limit.table" + limit: 48 + materials: + - "BREWING_STAND" + settings: + enabled-worlds: + whitelist: false + worlds: [] + enabled-addons: + whitelist: false + addons: [] + disallow-placement-outside-region: false diff --git a/ansible/files/gamma-config/plugins/Insights/limits/entity-limit.yml b/ansible/files/gamma-config/plugins/Insights/limits/entity-limit.yml new file mode 100644 index 000000000..6a4f7dd8a --- /dev/null +++ b/ansible/files/gamma-config/plugins/Insights/limits/entity-limit.yml @@ -0,0 +1,18 @@ +limit: + name: "Tile Entities" + type: "GROUP" + bypass-permission: "insights.bypass.limit.entity" + limit: 64 + entities: + - "ITEM_FRAME" + - "GLOW_ITEM_FRAME" + - "PAINTING" + - "ARMOR_STAND" + settings: + enabled-worlds: + whitelist: false + worlds: [] + enabled-addons: + whitelist: false + addons: [] + disallow-placement-outside-region: false diff --git a/ansible/files/gamma-config/plugins/Insights/limits/furnace-limit.yml b/ansible/files/gamma-config/plugins/Insights/limits/furnace-limit.yml new file mode 100644 index 000000000..c922bf81e --- /dev/null +++ b/ansible/files/gamma-config/plugins/Insights/limits/furnace-limit.yml @@ -0,0 +1,15 @@ +limit: + name: "Furnace" + type: "GROUP" + bypass-permission: "insights.bypass.limit.tables" + limit: 48 + materials: + - "FURNACE" + settings: + enabled-worlds: + whitelist: false + worlds: [] + enabled-addons: + whitelist: false + addons: [] + disallow-placement-outside-region: false diff --git a/ansible/files/gamma-config/plugins/Insights/limits/hopper-limit.yml b/ansible/files/gamma-config/plugins/Insights/limits/hopper-limit.yml new file mode 100644 index 000000000..28f812f37 --- /dev/null +++ b/ansible/files/gamma-config/plugins/Insights/limits/hopper-limit.yml @@ -0,0 +1,15 @@ +limit: + name: "Hopper" + type: "GROUP" + bypass-permission: "insights.bypass.limit.redstone" + limit: 16 + materials: + - "HOPPER" + settings: + enabled-worlds: + whitelist: false + worlds: [] + enabled-addons: + whitelist: false + addons: [] + disallow-placement-outside-region: false diff --git a/ansible/files/gamma-config/plugins/Insights/limits/piston-limit.yml b/ansible/files/gamma-config/plugins/Insights/limits/piston-limit.yml new file mode 100644 index 000000000..0cfef1708 --- /dev/null +++ b/ansible/files/gamma-config/plugins/Insights/limits/piston-limit.yml @@ -0,0 +1,15 @@ +limit: + name: "Piston" + type: "GROUP" + bypass-permission: "insights.bypass.limit.redstone" + limit: 128 + materials: + - "PISTON" + settings: + enabled-worlds: + whitelist: false + worlds: [] + enabled-addons: + whitelist: false + addons: [] + disallow-placement-outside-region: false diff --git a/ansible/files/gamma-config/plugins/Insights/limits/redstone-limit.yml b/ansible/files/gamma-config/plugins/Insights/limits/redstone-limit.yml new file mode 100644 index 000000000..fda8badf3 --- /dev/null +++ b/ansible/files/gamma-config/plugins/Insights/limits/redstone-limit.yml @@ -0,0 +1,2 @@ +# Blank to override the default +limit: diff --git a/ansible/files/gamma-config/plugins/Insights/limits/smoker-limit.yml b/ansible/files/gamma-config/plugins/Insights/limits/smoker-limit.yml new file mode 100644 index 000000000..b9b9d6e34 --- /dev/null +++ b/ansible/files/gamma-config/plugins/Insights/limits/smoker-limit.yml @@ -0,0 +1,15 @@ +limit: + name: "smoker" + type: "GROUP" + bypass-permission: "insights.bypass.limit.table" + limit: 48 + materials: + - "SMOKER" + settings: + enabled-worlds: + whitelist: false + worlds: [] + enabled-addons: + whitelist: false + addons: [] + disallow-placement-outside-region: false diff --git a/ansible/files/gamma-config/plugins/Insights/limits/stickypiston-limit.yml b/ansible/files/gamma-config/plugins/Insights/limits/stickypiston-limit.yml new file mode 100644 index 000000000..2f8f2031a --- /dev/null +++ b/ansible/files/gamma-config/plugins/Insights/limits/stickypiston-limit.yml @@ -0,0 +1,15 @@ +limit: + name: "Sticky Piston" + type: "GROUP" + bypass-permission: "insights.bypass.limit.redstone" + limit: 128 + materials: + - "STICKY_PISTON" + settings: + enabled-worlds: + whitelist: false + worlds: [] + enabled-addons: + whitelist: false + addons: [] + disallow-placement-outside-region: false diff --git a/ansible/files/gamma-config/plugins/Insights/limits/tile-limit.yml b/ansible/files/gamma-config/plugins/Insights/limits/tile-limit.yml new file mode 100644 index 000000000..fda8badf3 --- /dev/null +++ b/ansible/files/gamma-config/plugins/Insights/limits/tile-limit.yml @@ -0,0 +1,2 @@ +# Blank to override the default +limit: diff --git a/ansible/files/gamma-config/plugins/ItemExchange/config.yml b/ansible/files/gamma-config/plugins/ItemExchange/config.yml new file mode 100644 index 000000000..b9b476989 --- /dev/null +++ b/ansible/files/gamma-config/plugins/ItemExchange/config.yml @@ -0,0 +1,143 @@ +enabled: true +debug: false + +# The blocks that are valid shop blocks for ItemExchange. +# The block must have a natively retrievable inventory. +supportedBlocks: + - "CHEST" + - "TRAPPED_CHEST" + - "BARREL" + - "DISPENSER" + - "DROPPER" + +# Supported blocks allowed to trigger the successful transaction button. +# Make sure not to add blocks that themselves would be activated by the transaction button, like dispensers. +# Additionally, make sure to only specify blocks that are directional. +successButtonBlocks: + - "CHEST" + - "TRAPPED_CHEST" + - "BARREL" + - "ENDER_CHEST" + +createShopFromChest: true + +# The item of which the exchange data will be encoded onto, eg: STONE_BUTTON +ruleItem: "STONE_BUTTON" + +repairables: + - "NETHERITE_HELMET" + - "NETHERITE_CHESTPLATE" + - "NETHERITE_LEGGINGS" + - "NETHERITE_BOOTS" + - "DIAMOND_HELMET" + - "DIAMOND_CHESTPLATE" + - "DIAMOND_LEGGINGS" + - "DIAMOND_BOOTS" + - "GOLDEN_HELMET" + - "GOLDEN_CHESTPLATE" + - "GOLDEN_LEGGINGS" + - "GOLDEN_BOOTS" + - "IRON_HELMET" + - "IRON_CHESTPLATE" + - "IRON_LEGGINGS" + - "IRON_BOOTS" + - "CHAINMAIL_HELMET" + - "CHAINMAIL_CHESTPLATE" + - "CHAINMAIL_LEGGINGS" + - "CHAINMAIL_BOOTS" + - "LEATHER_HELMET" + - "LEATHER_CHESTPLATE" + - "LEATHER_LEGGINGS" + - "LEATHER_BOOTS" + - "NETHERITE_SWORD" + - "DIAMOND_SWORD" + - "GOLDEN_SWORD" + - "IRON_SWORD" + - "STONE_SWORD" + - "WOODEN_SWORD" + - "NETHERITE_AXE" + - "DIAMOND_AXE" + - "GOLDEN_AXE" + - "IRON_AXE" + - "STONE_AXE" + - "WOODEN_AXE" + - "NETHERITE_PICKAXE" + - "DIAMOND_PICKAXE" + - "GOLDEN_PICKAXE" + - "IRON_PICKAXE" + - "STONE_PICKAXE" + - "WOODEN_PICKAXE" + - "NETHERITE_SHOVEL" + - "DIAMOND_SHOVEL" + - "GOLDEN_SHOVEL" + - "IRON_SHOVEL" + - "STONE_SHOVEL" + - "WOODEN_SHOVEL" + - "NETHERITE_HOE" + - "DIAMOND_HOE" + - "GOLDEN_HOE" + - "IRON_HOE" + - "STONE_HOE" + - "WOODEN_HOE" + - "BOW" + - "CROSSBOW" + - "TRIDENT" + - "SHEARS" + - "FISHING_ROD" + - "FLINT_AND_STEEL" + - "CARROT_ON_A_STICK" + - "WARPED_FUNGUS_ON_A_STICK" + - "ELYTRA" + - "SHIELD" + - "ENCHANTED_BOOK" + +shopRelay: + # The blocks that can be used as shop relay blocks (must be valid block materials and distinct from shop blocks) + relayBlocks: + - "ENDER_CHEST" + # Determines how many times a relay can be relayed + recursionLimit: 0 + # Determines how far (in blocks) a relay can search + reachDistance: 4 + # Determines which blocks will be ignored by relays (wont end the search for shops) + permeable: + - AIR + - CAVE_AIR + - WATER + - LAVA + - IRON_BARS + - GLASS + - TINTED_GLASS + - WHITE_STAINED_GLASS + - ORANGE_STAINED_GLASS + - MAGENTA_STAINED_GLASS + - LIGHT_BLUE_STAINED_GLASS + - YELLOW_STAINED_GLASS + - LIME_STAINED_GLASS + - PINK_STAINED_GLASS + - GRAY_STAINED_GLASS + - LIGHT_GRAY_STAINED_GLASS + - CYAN_STAINED_GLASS + - PURPLE_STAINED_GLASS + - BLUE_STAINED_GLASS + - BROWN_STAINED_GLASS + - GREEN_STAINED_GLASS + - RED_STAINED_GLASS + - BLACK_STAINED_GLASS + - GLASS_PANE + - WHITE_STAINED_GLASS_PANE + - ORANGE_STAINED_GLASS_PANE + - MAGENTA_STAINED_GLASS_PANE + - LIGHT_BLUE_STAINED_GLASS_PANE + - YELLOW_STAINED_GLASS_PANE + - LIME_STAINED_GLASS_PANE + - PINK_STAINED_GLASS_PANE + - GRAY_STAINED_GLASS_PANE + - LIGHT_GRAY_STAINED_GLASS_PANE + - CYAN_STAINED_GLASS_PANE + - PURPLE_STAINED_GLASS_PANE + - BLUE_STAINED_GLASS_PANE + - BROWN_STAINED_GLASS_PANE + - GREEN_STAINED_GLASS_PANE + - RED_STAINED_GLASS_PANE + - BLACK_STAINED_GLASS_PANE diff --git a/ansible/files/gamma-config/plugins/JukeAlert/config.yml b/ansible/files/gamma-config/plugins/JukeAlert/config.yml new file mode 100644 index 000000000..c237d410f --- /dev/null +++ b/ansible/files/gamma-config/plugins/JukeAlert/config.yml @@ -0,0 +1,67 @@ +snitchConfigs: + note: + item: + ==: org.bukkit.inventory.ItemStack + type: NOTE_BLOCK + amount: 1 + id: 0 + name: Snitch + range: 11 + appender: + broadcast: + trigger: + - ENTRY + - LOGIN + - LOGOUT + dormantcull: + lifeTime: 4 weeks + dormantTime: 4 weeks + showownerondestroy: {} + juke: + item: + ==: org.bukkit.inventory.ItemStack + type: JUKEBOX + amount: 1 + id: 1 + name: Logsnitch + range: 11 + appender: + broadcast: + trigger: + - ENTRY + - LOGIN + - LOGOUT + dormantcull: + lifeTime: 6 weeks + dormantTime: 6 weeks + showownerondestroy: {} + levertoggle: + NORTH: + trigger: + - ENTRY + - LOGIN + SOUTH: + trigger: + - OPEN_CONTAINER + EAST: + trigger: + - BLOCK_PLACE + WEST: + trigger: + - BLOCK_BREAK + log: + acceptAll: true + + +database: + ==: vg.civcraft.mc.civmodcore.dao.DatabaseCredentials + plugin: JukeAlert + user: ${CIV_MYSQL_USERNAME} + password: ${CIV_MYSQL_PASSWORD} + host: ${CIV_MYSQL_HOST} + port: 3306 + database: ${CIV_DATABASE_PREFIX}jukealert + poolsize: 20 + connection_timeout: 10000 + idle_timeout: 600000 + max_lifetime: 7200000 diff --git a/ansible/files/gamma-config/plugins/LuckPerms/config.yml b/ansible/files/gamma-config/plugins/LuckPerms/config.yml new file mode 100644 index 000000000..224b6b5c3 --- /dev/null +++ b/ansible/files/gamma-config/plugins/LuckPerms/config.yml @@ -0,0 +1,710 @@ +#################################################################################################### +# +----------------------------------------------------------------------------------------------+ # +# | __ __ ___ __ __ | # +# | | | | / ` |__/ |__) |__ |__) |\/| /__` | # +# | |___ \__/ \__, | \ | |___ | \ | | .__/ | # +# | | # +# | https://luckperms.net | # +# | | # +# | WIKI: https://luckperms.net/wiki | # +# | DISCORD: https://discord.gg/luckperms | # +# | BUG REPORTS: https://github.com/lucko/LuckPerms/issues | # +# | | # +# | Each option in this file is documented and explained here: | # +# | ==> https://luckperms.net/wiki/Configuration | # +# | | # +# | New options are not added to this file automatically. Default values are used if an | # +# | option cannot be found. The latest config versions can be obtained at the link above. | # +# +----------------------------------------------------------------------------------------------+ # +#################################################################################################### + +# +----------------------------------------------------------------------------------------------+ # +# | | # +# | ESSENTIAL SETTINGS | # +# | | # +# | Important settings that control how LuckPerms functions. | # +# | | # +# +----------------------------------------------------------------------------------------------+ # + +# The name of the server, used for server specific permissions. +# +# - When set to "global" this setting is effectively ignored. +# - In all other cases, the value here is added to all players in a "server" context. +# - See: https://luckperms.net/wiki/Context +server: global + +# If the servers own UUID cache/lookup facility should be used when there is no record for a player +# already in LuckPerms. +# +# - When this is set to 'false', commands using a player's username will not work unless the player +# has joined since LuckPerms was first installed. +# - To get around this, you can use a player's uuid directly in the command, or enable this option. +# - When this is set to 'true', the server facility is used. This may use a number of methods, +# including checking the servers local cache, or making a request to the Mojang API. +use-server-uuid-cache: false + + + + +# +----------------------------------------------------------------------------------------------+ # +# | | # +# | STORAGE SETTINGS | # +# | | # +# | Controls which storage method LuckPerms will use to store data. | # +# | | # +# +----------------------------------------------------------------------------------------------+ # + +# How the plugin should store data +# +# - The various options are explained in more detail on the wiki: +# https://luckperms.net/wiki/Storage-types +# +# - Possible options: +# +# | Remote databases - require connection information to be configured below +# |=> MySQL +# |=> MariaDB (preferred over MySQL) +# |=> PostgreSQL +# |=> MongoDB +# +# | Flatfile/local database - don't require any extra configuration +# |=> H2 (preferred over SQLite) +# |=> SQLite +# +# | Readable & editable text files - don't require any extra configuration +# |=> YAML (.yml files) +# |=> JSON (.json files) +# |=> HOCON (.conf files) +# |=> TOML (.toml files) +# | +# | By default, user, group and track data is separated into different files. Data can be combined +# | and all stored in the same file by switching to a combined storage variant. +# | Just add '-combined' to the end of the storage-method, e.g. 'yaml-combined' +# +# - A H2 database is the default option. +# - If you want to edit data manually in "traditional" storage files, we suggest using YAML. +storage-method: postgresql + +# The following block defines the settings for remote database storage methods. +# +# - You don't need to touch any of the settings here if you're using a local storage method! +# - The connection detail options are shared between all remote storage types. +data: + + # Define the address and port for the database. + # - The standard DB engine port is used by default + # (MySQL: 3306, PostgreSQL: 5432, MongoDB: 27017) + # - Specify as "host:port" if differs + address: ${CIV_POSTGRES_HOST} + + # The name of the database to store LuckPerms data in. + # - This must be created already. Don't worry about this setting if you're using MongoDB. + database: luckperms # should be shared + + # Credentials for the database. + username: ${CIV_POSTGRES_USERNAME} + password: ${CIV_POSTGRES_PASSWORD} + + # These settings apply to the MySQL connection pool. + # - The default values will be suitable for the majority of users. + # - Do not change these settings unless you know what you're doing! + pool-settings: + + # Sets the maximum size of the MySQL connection pool. + # - Basically this value will determine the maximum number of actual + # connections to the database backend. + # - More information about determining the size of connection pools can be found here: + # https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing + maximum-pool-size: 10 + + # Sets the minimum number of idle connections that the pool will try to maintain. + # - For maximum performance and responsiveness to spike demands, it is recommended to not set + # this value and instead allow the pool to act as a fixed size connection pool. + # (set this value to the same as 'maximum-pool-size') + minimum-idle: 10 + + # This setting controls the maximum lifetime of a connection in the pool in milliseconds. + # - The value should be at least 30 seconds less than any database or infrastructure imposed + # connection time limit. + maximum-lifetime: 1800000 # 30 minutes + + # This setting controls how frequently the pool will 'ping' a connection in order to prevent it + # from being timed out by the database or network infrastructure, measured in milliseconds. + # - The value should be less than maximum-lifetime and greater than 30000 (30 seconds). + # - Setting the value to zero will disable the keepalive functionality. + keepalive-time: 0 + + # This setting controls the maximum number of milliseconds that the plugin will wait for a + # connection from the pool, before timing out. + connection-timeout: 5000 # 5 seconds + + # This setting allows you to define extra properties for connections. + # + # By default, the following options are set to enable utf8 encoding. (you may need to remove + # these if you are using PostgreSQL) + # useUnicode: true + # characterEncoding: utf8 + # + # You can also use this section to disable SSL connections, by uncommenting the 'useSSL' and + # 'verifyServerCertificate' options below. + properties: + useUnicode: true + characterEncoding: utf8 + #useSSL: false + #verifyServerCertificate: false + + # The prefix for all LuckPerms SQL tables. + # + # - This only applies for remote SQL storage types (MySQL, MariaDB, etc). + # - Change this if you want to use different tables for different servers. + table-prefix: 'luckperms_' + + # The prefix to use for all LuckPerms MongoDB collections. + # + # - This only applies for the MongoDB storage type. + # - Change this if you want to use different collections for different servers. The default is no + # prefix. + mongodb-collection-prefix: '' + + # The connection string URI to use to connect to the MongoDB instance. + # + # - When configured, this setting will override anything defined in the address, database, + # username or password fields above. + # - If you have a connection string that starts with 'mongodb://' or 'mongodb+srv://', enter it + # below. + # - For more information, please see https://docs.mongodb.com/manual/reference/connection-string/ + mongodb-connection-uri: '' + +# Define settings for a "split" storage setup. +# +# - This allows you to define a storage method for each type of data. +# - The connection options above still have to be correct for each type here. +split-storage: + # Don't touch this if you don't want to use split storage! + enabled: false + methods: + # These options don't need to be modified if split storage isn't enabled. + user: h2 + group: h2 + track: h2 + uuid: h2 + log: h2 + + + + +# +----------------------------------------------------------------------------------------------+ # +# | | # +# | UPDATE PROPAGATION & MESSAGING SERVICE | # +# | | # +# | Controls the ways in which LuckPerms will sync data & notify other servers of changes. | # +# | These options are documented on greater detail on the wiki under "Instant Updates". | # +# | | # +# +----------------------------------------------------------------------------------------------+ # + +# This option controls how frequently LuckPerms will perform a sync task. +# +# - A sync task will refresh all data from the storage, and ensure that the most up-to-date data is +# being used by the plugin. +# - This is disabled by default, as most users will not need it. However, if you're using a remote +# storage type without a messaging service setup, you may wish to set this to something like 3. +# - Set to -1 to disable the task completely. +sync-minutes: -1 + +# If the file watcher should be enabled. +# +# - When using a file-based storage type, LuckPerms can monitor the data files for changes, and +# automatically update when changes are detected. +# - If you don't want this feature to be active, set this option to false. +watch-files: true + +# Define which messaging service should be used by the plugin. +# +# - If enabled and configured, LuckPerms will use the messaging service to inform other connected +# servers of changes. +# - Use the command "/lp networksync" to manually push changes. +# - Data is NOT stored using this service. It is only used as a messaging platform. +# +# - If you decide to enable this feature, you should set "sync-minutes" to -1, as there is no need +# for LuckPerms to poll the database for changes. +# +# - Possible options: +# => sql Uses the SQL database to form a queue system for communication. Will only work when +# 'storage-method' is set to MySQL or MariaDB. This is chosen by default if the +# option is set to 'auto' and SQL storage is in use. Set to 'notsql' to disable this. +# => pluginmsg Uses the plugin messaging channels to communicate with the proxy. +# LuckPerms must be installed on your proxy & all connected servers backend servers. +# Won't work if you have more than one proxy. +# => lilypad Uses LilyPad pub-sub to push changes. You need to have the LilyPad-Connect plugin +# installed. +# => redis Uses Redis pub-sub to push changes. Your server connection info must be configured +# below. +# => rabbitmq Uses RabbitMQ pub-sub to push changes. Your server connection info must be +# configured below. +# => custom Uses a messaging service provided using the LuckPerms API. +# => auto Attempts to automatically setup a messaging service using redis or sql. +messaging-service: none + +# If LuckPerms should automatically push updates after a change has been made with a command. +auto-push-updates: true + +# If LuckPerms should push logging entries to connected servers via the messaging service. +push-log-entries: true + +# If LuckPerms should broadcast received logging entries to players on this platform. +# +# - If you have LuckPerms installed on your backend servers as well as a BungeeCord proxy, you +# should set this option to false on either your backends or your proxies, to avoid players being +# messaged twice about log entries. +broadcast-received-log-entries: true + +# Settings for Redis. +# Port 6379 is used by default; set address to "host:port" if differs +redis: + enabled: false + address: localhost + username: '' + password: '' + +# Settings for RabbitMQ. +# Port 5672 is used by default; set address to "host:port" if differs +rabbitmq: + enabled: false + address: localhost + vhost: '/' + username: 'guest' + password: 'guest' + + + + +# +----------------------------------------------------------------------------------------------+ # +# | | # +# | CUSTOMIZATION SETTINGS | # +# | | # +# | Settings that allow admins to customize the way LuckPerms operates. | # +# | | # +# +----------------------------------------------------------------------------------------------+ # + +# Controls how temporary permissions/parents/meta should be accumulated. +# +# - The default behaviour is "deny". +# - This behaviour can also be specified when the command is executed. See the command usage +# documentation for more info. +# +# - Possible options: +# => accumulate durations will be added to the existing expiry time +# => replace durations will be replaced if the new duration is later than the current +# expiration +# => deny the command will just fail if you try to add another node with the same expiry +temporary-add-behaviour: deny + +# Controls how LuckPerms will determine a users "primary" group. +# +# - The meaning and influence of "primary groups" are explained in detail on the wiki. +# - The preferred approach is to let LuckPerms automatically determine a users primary group +# based on the relative weight of their parent groups. +# +# - Possible options: +# => stored use the value stored against the users record in the file/database +# => parents-by-weight just use the users most highly weighted parent +# => all-parents-by-weight same as above, but calculates based upon all parents inherited from +# both directly and indirectly +primary-group-calculation: parents-by-weight + +# If the plugin should check for "extra" permissions with users run LP commands. +# +# - These extra permissions allow finer control over what users can do with each command, and who +# they have access to edit. +# - The nature of the checks are documented on the wiki under "Argument based command permissions". +# - Argument based permissions are *not* static, unlike the 'base' permissions, and will depend upon +# the arguments given within the command. +argument-based-command-permissions: false + +# If the plugin should check whether senders are a member of a given group before they're able to +# edit the groups data or add/remove other users to/from it. +# Note: these limitations do not apply to the web editor! +require-sender-group-membership-to-modify: false + +# If the plugin should send log notifications to users whenever permissions are modified. +# +# - Notifications are only sent to those with the appropriate permission to receive them +# - They can also be temporarily enabled/disabled on a per-user basis using +# '/lp log notify ' +log-notify: true + +# Defines a list of log entries which should not be sent as notifications to users. +# +# - Each entry in the list is a RegEx expression which is matched against the log entry description. +log-notify-filtered-descriptions: +# - "parent add example" + +# If LuckPerms should automatically install translation bundles and periodically update them. +auto-install-translations: true + +# Defines the options for prefix and suffix stacking. +# +# - The feature allows you to display multiple prefixes or suffixes alongside a players username in +# chat. +# - It is explained and documented in more detail on the wiki under "Prefix & Suffix Stacking". +# +# - The options are divided into separate sections for prefixes and suffixes. +# - The 'duplicates' setting refers to how duplicate elements are handled. Can be 'retain-all', +# 'first-only' or 'last-only'. +# - The value of 'start-spacer' is included at the start of the resultant prefix/suffix. +# - The value of 'end-spacer' is included at the end of the resultant prefix/suffix. +# - The value of 'middle-spacer' is included between each element in the resultant prefix/suffix. +# +# - Possible format options: +# => highest Selects the value with the highest weight, from all values +# held by or inherited by the player. +# +# => lowest Same as above, except takes the one with the lowest weight. +# +# => highest_own Selects the value with the highest weight, but will not +# accept any inherited values. +# +# => lowest_own Same as above, except takes the value with the lowest weight. +# +# => highest_inherited Selects the value with the highest weight, but will only +# accept inherited values. +# +# => lowest_inherited Same as above, except takes the value with the lowest weight. +# +# => highest_on_track_ Selects the value with the highest weight, but only if the +# value was inherited from a group on the given track. +# +# => lowest_on_track_ Same as above, except takes the value with the lowest weight. +# +# => highest_not_on_track_ Selects the value with the highest weight, but only if the +# value was inherited from a group not on the given track. +# +# => lowest_not_on_track_ Same as above, except takes the value with the lowest weight. +# +# => highest_from_group_ Selects the value with the highest weight, but only if the +# value was inherited from the given group. +# +# => lowest_from_group_ Same as above, except takes the value with the lowest weight. +# +# => highest_not_from_group_ Selects the value with the highest weight, but only if the +# value was not inherited from the given group. +# +# => lowest_not_from_group_ Same as above, except takes the value with the lowest weight. +meta-formatting: + prefix: + format: + - "highest" + duplicates: first-only + start-spacer: "" + middle-spacer: " " + end-spacer: "" + suffix: + format: + - "highest" + duplicates: first-only + start-spacer: "" + middle-spacer: " " + end-spacer: "" + + + + +# +----------------------------------------------------------------------------------------------+ # +# | | # +# | PERMISSION CALCULATION AND INHERITANCE | # +# | | # +# | Modify the way permission checks, meta lookups and inheritance resolutions are handled. | # +# | | # +# +----------------------------------------------------------------------------------------------+ # + +# The algorithm LuckPerms should use when traversing the "inheritance tree". +# +# - Possible options: +# => breadth-first See: https://en.wikipedia.org/wiki/Breadth-first_search +# => depth-first-pre-order See: https://en.wikipedia.org/wiki/Depth-first_search +# => depth-first-post-order See: https://en.wikipedia.org/wiki/Depth-first_search +inheritance-traversal-algorithm: depth-first-pre-order + +# If a final sort according to "inheritance rules" should be performed after the traversal algorithm +# has resolved the inheritance tree. +# +# "Inheritance rules" refers to things such as group weightings, primary group status, and the +# natural contextual ordering of the group nodes. +# +# Setting this to 'true' will allow for the inheritance rules to take priority over the structure of +# the inheritance tree. +# +# Effectively when this setting is 'true': the tree is flattened, and rules applied afterwards, +# and when this setting is 'false':, the rules are just applied during each step of the traversal. +post-traversal-inheritance-sort: false + +# Defines the mode used to determine whether a set of contexts are satisfied. +# +# - Possible options: +# => at-least-one-value-per-key Set A will be satisfied by another set B, if at least one of the +# key-value entries per key in A are also in B. +# => all-values-per-key Set A will be satisfied by another set B, if all key-value +# entries in A are also in B. +context-satisfy-mode: at-least-one-value-per-key + +# LuckPerms has a number of built-in contexts. These can be disabled by adding the context key to +# the list below. +disabled-contexts: +# - "world" + +# +----------------------------------------------------------------------------------------------+ # +# | Permission resolution settings | # +# +----------------------------------------------------------------------------------------------+ # + +# If users on this server should have their global permissions applied. +# When set to false, only server specific permissions will apply for users on this server +include-global: true + +# If users on this server should have their global world permissions applied. +# When set to false, only world specific permissions will apply for users on this server +include-global-world: true + +# If users on this server should have global (non-server specific) groups applied +apply-global-groups: true + +# If users on this server should have global (non-world specific) groups applied +apply-global-world-groups: true + +# +----------------------------------------------------------------------------------------------+ # +# | Meta lookup settings | # +# +----------------------------------------------------------------------------------------------+ # + +# Defines how meta values should be selected. +# +# - Possible options: +# => inheritance Selects the meta value that was inherited first +# => highest-number Selects the highest numerical meta value +# => lowest-number Selects the lowest numerical meta value +meta-value-selection-default: inheritance + +# Defines how meta values should be selected per key. +meta-value-selection: +# max-homes: highest-number + +# +----------------------------------------------------------------------------------------------+ # +# | Inheritance settings | # +# +----------------------------------------------------------------------------------------------+ # + +# If the plugin should apply wildcard permissions. +# +# - If set to true, LuckPerms will detect wildcard permissions, and resolve & apply all registered +# permissions matching the wildcard. +apply-wildcards: true + +# If LuckPerms should resolve and apply permissions according to the Sponge style implicit wildcard +# inheritance system. +# +# - That being: If a user has been granted "example", then the player should have also be +# automatically granted "example.function", "example.another", "example.deeper.nesting", +# and so on. +apply-sponge-implicit-wildcards: false + +# If the plugin should apply negated Bukkit default permissions before it considers wildcard +# assignments. +# +# - Plugin authors can define permissions which explicitly should not be given automatically to OPs. +# This is usually used for so called "anti-permissions" - permissions which, when granted, apply +# something negative. +# - If this option is set to true, LuckPerms will consider any negated declarations made by +# plugins before it considers wildcards. (similar to the way the OP system works) +# - If this option is set to false, LuckPerms will consider any wildcard assignments first. +apply-default-negated-permissions-before-wildcards: false + +# If the plugin should parse regex permissions. +# +# - If set to true, LuckPerms will detect regex permissions, marked with "r=" at the start of the +# node, and resolve & apply all registered permissions matching the regex. +apply-regex: true + +# If the plugin should complete and apply shorthand permissions. +# +# - If set to true, LuckPerms will detect and expand shorthand node patterns. +apply-shorthand: true + +# If the plugin should apply Bukkit child permissions. +# +# - Plugin authors can define custom permissions structures for their plugin, which will be resolved +# and used by LuckPerms if this setting is enabled. +apply-bukkit-child-permissions: true + +# If the plugin should apply Bukkit default permissions. +# +# - Plugin authors can define permissions which should be given to all users by default, or setup +# permissions which should/shouldn't be given to opped players. +# - If this option is set to false, LuckPerms will ignore these defaults. +apply-bukkit-default-permissions: true + +# If the plugin should apply attachment permissions. +# +# - Other plugins on the server are able to add their own "permission attachments" to players. +# - This allows them to grant players additional permissions which last until the end of the +# session, or until they're removed. +# - If this option is set to false, LuckPerms will not include these attachment permissions when +# considering if a player should have access to a certain permission. +apply-bukkit-attachment-permissions: true + +# +----------------------------------------------------------------------------------------------+ # +# | Extra settings | # +# +----------------------------------------------------------------------------------------------+ # + +# A list of context calculators which will be skipped when calculating contexts. +# +# - You can disable context calculators by either: +# => specifying the Java class name used by the calculator (e.g. com.example.ExampleCalculator) +# => specifying a sub-section of the Java package used by the calculator (e.g. com.example) +disabled-context-calculators: [] + +# Allows you to set "aliases" for the worlds sent forward for context calculation. +# +# - These aliases are provided in addition to the real world name. Applied recursively. +# - Remove the comment characters for the default aliases to apply. +world-rewrite: + world_nether: world + world_the_end: world + +# Define special group weights for this server. +# +# - Group weights can also be applied directly to group data, using the setweight command. +# - This section allows weights to be set on a per-server basis. +group-weight: +# admin: 10 + + + + +# +----------------------------------------------------------------------------------------------+ # +# | | # +# | FINE TUNING OPTIONS | # +# | | # +# | A number of more niche settings for tweaking and changing behaviour. The section also | # +# | contains toggles for some more specialised features. It is only necessary to make changes to | # +# | these options if you want to fine-tune LuckPerms behaviour. | # +# | | # +# +----------------------------------------------------------------------------------------------+ # + +# +----------------------------------------------------------------------------------------------+ # +# | Server Operator (OP) settings | # +# +----------------------------------------------------------------------------------------------+ # + +# Controls whether server operators should exist at all. +# +# - When set to 'false', all players will be de-opped, and the /op and /deop commands will be +# disabled. Note that vanilla features like the spawn-protection require an operator on the +# server to work. +enable-ops: true + +# Enables or disables a special permission based system in LuckPerms for controlling OP status. +# +# - If set to true, any user with the permission "luckperms.autoop" will automatically be granted +# server operator status. This permission can be inherited, or set on specific servers/worlds, +# temporarily, etc. +# - Additionally, setting this to true will force the "enable-ops" option above to false. All users +# will be de-opped unless they have the permission node, and the op/deop commands will be +# disabled. +# - It is recommended that you use this option instead of assigning a single '*' permission. +auto-op: false + +# Defines if "opped" players should be able to use all LuckPerms commands by default. +# +# - Set to false to only allow users who have the permissions access to the commands +commands-allow-op: true + +# +----------------------------------------------------------------------------------------------+ # +# | Vault integration settings | # +# +----------------------------------------------------------------------------------------------+ # + +# If Vault lookups for offline players on the main server thread should be enabled. +# +# LuckPerms has a "catch" for plugins attempting to perform unsafe offline player data lookups +# from the main server thread. This catch raises an exception (causes an error to occur) when unsafe +# lookups are made, instead of allowing the lookup to happen, which would likely cause the server +# to lag. +# +# However, if you're willing to accept the consequences, the catch can be disabled by setting this +# option to 'true. +vault-unsafe-lookups: false + +# If LuckPerms should use the 'display name' of a group when returning groups in Vault API calls. +# +# - When this option is set to true, the display name of the group is returned. +# - When this option is set to false, the standard name/id of the group is returned. +vault-group-use-displaynames: true + +# Controls which group LuckPerms should use for NPC players when handling Vault requests. +# +# - As NPCs aren't actually real players, LuckPerms does not load any user data for them. This +# becomes an issue when plugins want to check for their permissions using Vault. +# - As a solution, Vault checks for NPCs fallback to a group, which is defined below. +vault-npc-group: default + +# Controls how LuckPerms should consider the OP status of NPC players when handing Vault requests. +# +# - If you want NPCs to have the same permissions as "normal" players, set this option to false. +# - If you want NPCs to have OP status, set this option to true. +vault-npc-op-status: false + +# If the vault-server option below should be used. +# +# - When this option is set to false, the server value defined above under "server" is used. +use-vault-server: false + +# The name of the server used within Vault operations. +# +# - If you don't want Vault operations to be server specific, set this to "global". +# - Will only take effect if use-vault-server is set to true above. +vault-server: global + +# If global permissions should be considered when retrieving meta or player groups +vault-include-global: true + +# If Vault operations should ignore any world arguments if supplied. +vault-ignore-world: false + +# +----------------------------------------------------------------------------------------------+ # +# | Miscellaneous (and rarely used) settings | # +# +----------------------------------------------------------------------------------------------+ # + +# If LuckPerms should produce extra logging output when it handles logins. +# +# - Useful if you're having issues with UUID forwarding or data not being loaded. +debug-logins: false + +# If LuckPerms should allow usernames with non alphanumeric characters. +# +# - Note that due to the design of the storage implementation, usernames must still be 16 characters +# or less. +allow-invalid-usernames: false + +# If LuckPerms should not require users to confirm bulkupdate operations. +# +# - When set to true, operations will be executed immediately. +# - This is not recommended, as bulkupdate has the potential to irreversibly delete large amounts of +# data, and is not designed to be executed automatically. +# - If automation is needed, users should prefer using the LuckPerms API. +skip-bulkupdate-confirmation: false + +# If LuckPerms should prevent bulkupdate operations. +# +# - When set to true, bulkupdate operations (the /lp bulkupdate command) will not work. +# - When set to false, bulkupdate operations will be allowed via the console. +disable-bulkupdate: false + +# If LuckPerms should allow a users primary group to be removed with the 'parent remove' command. +# +# - When this happens, the plugin will set their primary group back to default. +prevent-primary-group-removal: false + +# If LuckPerms should update the list of commands sent to the client when permissions are changed. +update-client-command-list: true + +# If LuckPerms should attempt to register "Brigadier" command list data for its commands. +register-command-list-data: true + +# If LuckPerms should attempt to resolve Vanilla command target selectors for LP commands. +# See here for more info: https://minecraft.gamepedia.com/Commands#Target_selectors +resolve-command-selectors: false diff --git a/ansible/files/gamma-config/plugins/MythicMobs/config.yml b/ansible/files/gamma-config/plugins/MythicMobs/config.yml new file mode 100644 index 000000000..b89285a27 --- /dev/null +++ b/ansible/files/gamma-config/plugins/MythicMobs/config.yml @@ -0,0 +1,101 @@ +# For more information, check out the plugin manual or join us on Discord: +# http://www.mythiccraft.io +# +Configuration: + Version: 5.0.1 + General: + AllowMetrics: true + CheckForUpdates: true + CompatibilityMode: false + DebugLevel: 0 + ErrorLogging: true + Language: enUS + UseVolatileFeatures: true + SendGiveItemFeedback: true + Clock: + ClockInterval: 1 + SaveInterval: 5 + SpawnsInterval: 2 + ScannerInterval: 10 + CleanupInterval: 600 + Components: + CustomSpawners: true + RandomSpawning: true + Targeters: + Filters: + Default: + TargetSelf: false + TargetPlayers: true + TargetArmorStands: false + TargetMarkers: false + TargetCreativeMode: true + TargetSpectatorMode: true + TargetCitizensNPCs: false + TargetAnimals: true + TargetCreatures: true + TargetMonsters: true + TargetWaterMobs: true + TargetFlyingMobs: true + TargetSameFaction: true + TargetOwner: true + TargetNonMythic: true + TargetVillagers: true + Mobs: + DespawnByDefault: true + EnableAIModifiers: true + EnableTimerSkills: true + EnableThreatTables: true + EnablePlayerFactions: true + EnableLegacySkills: false + KillMessagePrefix: '' + PreventOtherDropsByDefault: false + Scaling: + Default: + Enabled: true + PerBlocksFromSpawn: 250 + world2: + Enabled: true + PerBlocksFromSpawn: 250 + world2_nether: + Enabled: false + PerBlocksFromSpawn: 100 + BossBar: + UpdateInterval: 20 + ScalingEquations: + Health: V * ((1.05)^(L-1)) + Damage: V * ((1.05)^(L-1)) + DefaultLevelModifiers: + Health: 0.1 + Armor: 0 + Damage: 0 + KnockbackResistance: 0 + Power: 0 + RandomSpawning: + DisableVanillaSpawns: false + GenerateSpawnPoints: false + MaxMobsPerChunk: 2 + SpawnRadiusPerPlayer: 64 + SpawnRadiusPerPlayerY: 32 + DespawnLazyRandomMobs: true + MaxGenerationTime: 20 + PointsPerSecond: + Land: 5 + Air: 0 + Sea: 2 + Lava: 0 + Ground: 0 + Compatibility: + Heroes: + Enabled: true + McMMO: + Enabled: true + ShowXPMessage: true + XPMessageFormat: '&7You receive experience for slaying ' + SkillAPI: + Enabled: true + ShowXPMessage: true + XPMessageFormat: '&7You receive experience for slaying ' + Vault: + Enabled: true + ShowMoneyMessage: true + MoneyMessageFormat: '&7You receive currency for slaying ' diff --git a/ansible/files/gamma-config/plugins/NameLayer/config.yml b/ansible/files/gamma-config/plugins/NameLayer/config.yml new file mode 100644 index 000000000..ee58deb77 --- /dev/null +++ b/ansible/files/gamma-config/plugins/NameLayer/config.yml @@ -0,0 +1,41 @@ +sql: + hostname: ${CIV_MYSQL_HOST} + port: 3306 + dbname: namelayer + username: ${CIV_MYSQL_USERNAME} + password: ${CIV_MYSQL_PASSWORD} + poolsize: 10 + connection_timeout: 10000 + idle_timeout: 600000 + max_lifetime: 7200000 +groups: + enable: true + grouplimit: 20 + creationOnFirstJoin: true +persistance: + forceloadnamecaching: true +#name_cleanser: +## this section holds a list of words you consider offensive or innapropriate +# bad_words: +# - ugly +# - silly +# - fart +## this section holds various "substitutes" that players will use in names to bypass filtering +# opts: +# a: ['4', '&'] +# b: ['&', '5'] +# c: ['(',')'] +# clean_words: +## this section holds a list of words to replace offensive words with +# - pretty +# - smart +# - rainbow +## set to true to activate, don't include this section or set to false to deactivate +# clean_names: true +## Do we alert OPs when a name is changed b/c dirty? +# alert_ops: true +## Do we alert people who have this permission, when a name is changed b/c dirty? +# alert_perm: namelayer.alert_dirty_name +nameRandomizer: + active: false + grace: 600000 diff --git a/ansible/files/gamma-config/plugins/Orebfuscator/config.yml b/ansible/files/gamma-config/plugins/Orebfuscator/config.yml new file mode 100644 index 000000000..5f82b24b2 --- /dev/null +++ b/ansible/files/gamma-config/plugins/Orebfuscator/config.yml @@ -0,0 +1,159 @@ +version: 2 +general: + checkForUpdates: true + updateOnBlockDamage: true + bypassNotification: true + ignoreSpectator: false + updateRadius: 2 +advanced: + verbose: false + maxMillisecondsPerTick: 10 + protocolLibThreads: -1 + obfuscationWorkerThreads: -1 + proximityHiderThreads: -1 +cache: + enabled: true + baseDirectory: orebfuscator_cache + maximumOpenRegionFiles: 256 + deleteRegionFilesAfterAccess: 172800000 + maximumSize: 8192 + expireAfterAccess: 30000 + maximumTaskQueueSize: 32768 +obfuscation: + obfuscation-overworld: + enabled: true + minY: -64 + maxY: 70 + worlds: + - world + hiddenBlocks: + - minecraft:emerald_ore + - minecraft:deepslate_emerald_ore + - minecraft:diamond_ore + - minecraft:deepslate_diamond_ore + - minecraft:gold_ore + - minecraft:deepslate_gold_ore + - minecraft:raw_gold_block + - minecraft:iron_ore + - minecraft:deepslate_iron_ore + - minecraft:raw_iron_block + - minecraft:coal_ore + - minecraft:deepslate_coal_ore + - minecraft:lapis_ore + - minecraft:deepslate_lapis_ore + - minecraft:redstone_ore + - minecraft:deepslate_redstone_ore + - minecraft:copper_ore + - minecraft:raw_copper_block + - minecraft:deepslate_copper_ore + - minecraft:stone + - minecraft:obsidian + - minecraft:deepslate + - minecraft:chest + - minecraft:ender_chest + - minecraft:trapped_chest + - minecraft:barrel + - minecraft:jukebox + - minecraft:sponge + - minecraft:note_block + - minecraft:spawner + - minecraft:terracotta + - minecraft:light_gray_terracotta + - minecraft:white_terracotta + - minecraft:orange_terracotta + - minecraft:red_terracotta + - minecraft:brown_terracotta + - minecraft:yellow_terracotta + randomBlocks: + minecraft:cave_air: 1 + minecraft:clay: 1 + minecraft:coal_ore: 1 + minecraft:cobblestone: 1 + minecraft:diamond_ore: 5 + minecraft:emerald_ore: 5 + minecraft:gold_ore: 5 + minecraft:iron_ore: 5 + minecraft:lapis_ore: 1 + minecraft:mossy_cobblestone: 1 + minecraft:obsidian: 1 + minecraft:stone: 1 + minecraft:deepslate: 1 + obfuscation-nether: + enabled: true + minY: 1 + maxY: 128 + worlds: + - world_nether + hiddenBlocks: + - minecraft:netherrack + - minecraft:obsidian + - minecraft:nether_quartz_ore + - minecraft:chest + - minecraft:ender_chest + - minecraft:trapped_chest + - minecraft:barrel + - minecraft:jukebox + - minecraft:sponge + - minecraft:note_block + - minecraft:spawner + - minecraft:ancient_debris + - minecraft:nether_gold_ore + - minecraft:basalt + - minecraft:soul_sand + - minecraft:soul_soil + randomBlocks: + minecraft:netherrack: 4 + minecraft:nether_quartz_ore: 1 + minecraft:nether_gold_ore: 1 + minecraft:ancient_debris: 1 +proximity: + proximity-overworld: + enabled: true + minY: -64 + maxY: 150 + worlds: + - world + distance: 16 + useFastGazeCheck: false + useBlockBelow: false + hiddenBlocks: + minecraft:diamond_ore: {} + minecraft:deepslate_diamond_ore: {} + minecraft:chest: {} + minecraft:trapped_chest: {} + minecraft:barrel: {} + minecraft:jukebox: {} + minecraft:note_block: {} + minecraft:sponge: {} + minecraft:crafting_table: {} + minecraft:dispenser: {} + minecraft:furnace: {} + minecraft:blast_furnace: {} + minecraft:hopper: {} + randomBlocks: + minecraft:stone: 1 + proximity-nether: + enabled: true + minY: 1 + maxY: 128 + worlds: + - world_nether + distance: 16 + useFastGazeCheck: false + useBlockBelow: true + hiddenBlocks: + minecraft:ancient_debris: {} + minecraft:chest: {} + minecraft:trapped_chest: {} + minecraft:barrel: {} + minecraft:jukebox: {} + minecraft:note_block: {} + minecraft:sponge: {} + minecraft:crafting_table: {} + minecraft:dispenser: {} + minecraft:furnace: {} + minecraft:blast_furnace: {} + minecraft:hopper: {} + minecraft:respawn_anchor: {} + randomBlocks: + minecraft:netherrack: 1 diff --git a/ansible/files/gamma-config/plugins/RandomSpawn/config.yml b/ansible/files/gamma-config/plugins/RandomSpawn/config.yml new file mode 100644 index 000000000..b94a6abb6 --- /dev/null +++ b/ansible/files/gamma-config/plugins/RandomSpawn/config.yml @@ -0,0 +1,5 @@ +debug: false +messages: + randomspawned: "You wake up in an unfamiliar place." +nodamagetime: 5 +rs-sign-text: "[RandomSpawn]" diff --git a/ansible/files/gamma-config/plugins/RealisticBiomes/config.yml b/ansible/files/gamma-config/plugins/RealisticBiomes/config.yml new file mode 100644 index 000000000..49413fd11 --- /dev/null +++ b/ansible/files/gamma-config/plugins/RealisticBiomes/config.yml @@ -0,0 +1,906 @@ + # Set to true if you want tapping a plant with bonemeal to double it. +allow_tallplant_replication: true + +auto_replant_enabled: true +# true for right click auto replant, false for left click +auto_replant_right_click: true + +no_bonemeal_blocks: + - KELP + - TWISTING_VINES + - WEEPING_VINES + - CAVE_VINES + - BAMBOO + - BAMBOO_SAPLING + - KELP_PLANT + - TWISTING_VINES_PLANT + - WEEPING_VINES_PLANT + - BAMBOO_SAPLING + - SWEET_BERRY_BUSH + - BIG_DRIPLEAF + - BIG_DRIPLEAF_STEM + - RED_MUSHROOM + - BROWN_MUSHROOM + - WHEAT + - CARROTS + - POTATOES + - BEETROOTS + - NETHER_WART + - COCOA + - MELON_STEM + - PUMPKIN_STEM + - CACTUS + - SUGAR_CANE + - OAK_SAPLING + - BIRCH_SAPLING + - SPRUCE_SAPLING + - JUNGLE_SAPLING + - DARK_OAK_SAPLING + - PALE_OAK_SAPLING + - ACACIA_SAPLING + - FLOWERING_AZALEA + - AZALEA + - CRIMSON_FUNGUS + - WARPED_FUNGUS + - CHERRY_SAPLING + - MANGROVE_PROPAGULE + - TORCHFLOWER_CROP + - PITCHER_CROP + + # categories of biomes +biome_aliases: + oceans: + - OCEAN + - WARM_OCEAN + - COLD_OCEAN + - LUKEWARM_OCEAN + - FROZEN_OCEAN + deep_oceans: + - DEEP_OCEAN + - DEEP_COLD_OCEAN + - DEEP_LUKEWARM_OCEAN + - DEEP_FROZEN_OCEAN + freshwater: + - RIVER + - BEACH + cold_water: + - SNOWY_BEACH + - FROZEN_OCEAN + - FROZEN_RIVER + tall_mountains: + - SNOWY_SLOPES + + + flatlands: + - PLAINS + - SUNFLOWER_PLAINS + forests: + - FLOWER_FOREST + - FOREST + birch_forests: + - BIRCH_FOREST + - OLD_GROWTH_BIRCH_FOREST + meadows: + - MEADOW + - CHERRY_GROVE + taigas: + - TAIGA + - OLD_GROWTH_SPRUCE_TAIGA + - OLD_GROWTH_PINE_TAIGA + - WINDSWEPT_HILLS + - WINDSWEPT_GRAVELLY_HILLS + - WINDSWEPT_FOREST + cold_taiga: + - SNOWY_TAIGA + - GROVE + - JAGGED_PEAKS + tundra: + - ICE_SPIKES + - SNOWY_PLAINS + cold_mountain: + - FROZEN_PEAKS + + savannas: + - SAVANNA + - SAVANNA_PLATEAU + - WINDSWEPT_SAVANNA + desert: + - DESERT + mesa: + - BADLANDS + - ERODED_BADLANDS + - WOODED_BADLANDS + + jungles: + - JUNGLE + - SPARSE_JUNGLE + bamboo: + - BAMBOO_JUNGLE + dark_forest: + - DARK_FOREST + pale_garden: + - PALE_GARDEN + mushroom: + - MUSHROOM_FIELDS + swamp: + - SWAMP + - MANGROVE_SWAMP + + nether_wastes: + - NETHER_WASTES + soul_sand: + - SOUL_SAND_VALLEY + crimson: + - CRIMSON_FOREST + warped: + - WARPED_FOREST + basalt: + - BASALT_DELTAS + end: + - END_BARRENS + - END_HIGHLANDS + - END_MIDLANDS + - THE_VOID + - THE_END + caves: + - DEEP_DARK + - DRIPSTONE_CAVES + - LUSH_CAVES + +plants: + +# formerly inheriting CROP properties + WHEAT: + persistent_growth_period: 16h + name: Wheat + id: 1 + item: + ==: org.bukkit.inventory.ItemStack + type: WHEAT_SEEDS + v: 1 + grower: + type: ageable + material: WHEAT + max_stage: 7 + increment: 1 + vanilla_materials: + - WHEAT + soil_max_layers: 8 + soil_boni: + CLAY: 0.125 + greenhouse_rates: + GLOWSTONE: 0.5 + biomes: + flatlands: 1.0 + meadows: 0.5 + forests: 0.5 + birch_forests: 0.5 + + + CARROT: + persistent_growth_period: 16h + name: Carrots + id: 2 + item: + ==: org.bukkit.inventory.ItemStack + type: CARROT + v: 1 + grower: + type: ageable + material: CARROTS + max_stage: 7 + increment: 3 + vanilla_materials: + - CARROTS + soil_max_layers: 8 + soil_boni: + CLAY: 0.125 + greenhouse_rates: + GLOWSTONE: 0.5 + biomes: + meadows: 1.0 + flatlands: 0.5 + forests: 0.5 + birch_forests: 0.5 + + POTATO: + persistent_growth_period: 16h + name: Potatoes + id: 3 + item: + ==: org.bukkit.inventory.ItemStack + type: POTATO + v: 1 + grower: + type: ageable + material: POTATOES + max_stage: 7 + increment: 3 + vanilla_materials: + - POTATOES + soil_max_layers: 8 + soil_boni: + CLAY: 0.125 + greenhouse_rates: + GLOWSTONE: 0.5 + biomes: + taigas: 0.5 + cold_taiga: 1.0 + tundra: 0.5 + cold_mountain: 0.5 + + BEETROOT: + persistent_growth_period: 16h + name: Beetroots + id: 4 + item: + ==: org.bukkit.inventory.ItemStack + type: BEETROOT_SEEDS + v: 1 + grower: + type: ageable + material: BEETROOTS + max_stage: 3 + increment: 1 + vanilla_materials: + - BEETROOTS + soil_max_layers: 8 + soil_boni: + CLAY: 0.125 + greenhouse_rates: + GLOWSTONE: 0.5 + biomes: + taigas: 0.5 + cold_taiga: 0.5 + tundra: 1.0 + cold_mountain: 0.5 + + NETHER_WART: + persistent_growth_period: 16h + name: Nether wart + id: 5 + item: + ==: org.bukkit.inventory.ItemStack + type: NETHER_WART + v: 1 + grower: + type: ageable + material: NETHER_WART + max_stage: 3 + increment: 1 + vanilla_materials: + - NETHER_WART + needs_sun_light: false + soil_max_layers: 8 + soil_boni: + SOUL_SAND: 0.125 + greenhouse_rates: + GLOWSTONE: 0.5 + biomes: + CRIMSON_FOREST: 0.5 + WARPED_FOREST: 0.5 + NETHER_WASTES: 1.0 + SOUL_SAND_VALLEY: 0.5 + BASALT_DELTAS: 0.5 + + COCOA: + persistent_growth_period: 24h + name: Cocoa + id: 6 + item: + ==: org.bukkit.inventory.ItemStack + type: COCOA_BEANS + v: 1 + grower: + type: ageable + material: COCOA + max_stage: 2 + increment: 1 + vanilla_materials: + - COCOA + soil_max_layers: 25 + soil_boni: + VINE: 0.15 + greenhouse_rates: + GLOWSTONE: 0.5 + biomes: + jungles: 1.0 + bamboo_jungle: 0.6 + swamp: 0.4 + dark_forest: 0.25 + mushroom: 0.25 + + MELON: + persistent_growth_period: 16h + name: Melon + id: 7 + item: + ==: org.bukkit.inventory.ItemStack + type: MELON + v: 2584 + can_be_planted: false + soil_max_layers: 8 + soil_boni: + CLAY: 0.125 + greenhouse_rates: + GLOWSTONE: 0.5 + grower: + type: fruit + material: MELON + stem_type: MELON_STEM + attached_stem_type: ATTACHED_MELON_STEM + vanilla_materials: + - ATTACHED_MELON_STEM + - MELON_STEM + - MELON + biomes: + mesa: 0.6 + savannas: 1.0 + desert: 0.4 + + MELON_STEM: + persistent_growth_period: 0 + name: Melon stem + id: 8 + item: + ==: org.bukkit.inventory.ItemStack + type: MELON_SEEDS + v: 1 + grower: + type: stem + material: MELON_STEM + fruit_config: Melon + soil_max_layers: 8 + soil_boni: + CLAY: 0.125 + greenhouse_rates: + GLOWSTONE: 0.5 + biomes: + mesa: 0.6 + savannas: 1.0 + desert: 0.4 + + PUMPKIN: + persistent_growth_period: 16h + name: Pumpkin + id: 9 + can_be_planted: false + item: + ==: org.bukkit.inventory.ItemStack + type: PUMPKIN + v: 1 + grower: + type: fruit + material: PUMPKIN + stem_type: PUMPKIN_STEM + attached_stem_type: ATTACHED_PUMPKIN_STEM + vanilla_materials: + - ATTACHED_PUMPKIN_STEM + - PUMPKIN_STEM + - PUMPKIN + soil_max_layers: 8 + soil_boni: + CLAY: 0.125 + greenhouse_rates: + GLOWSTONE: 0.5 + biomes: + taigas: 1.0 + cold_taiga: 0.5 + tundra: 0.5 + cold_mountain: 0.5 + + PUMPKIN_STEM: + persistent_growth_period: 0 + name: Pumpkin stem + grower: + type: stem + material: PUMPKIN_STEM + fruit_config: Pumpkin + id: 10 + item: + ==: org.bukkit.inventory.ItemStack + type: PUMPKIN_SEEDS + v: 1 + soil_max_layers: 8 + soil_boni: + CLAY: 0.125 + greenhouse_rates: + GLOWSTONE: 0.5 + biomes: + taigas: 1.0 + cold_taiga: 0.5 + tundra: 0.5 + cold_mountain: 0.5 + +# formerly inheriting Column properties + + CACTUS: + persistent_growth_period: 12h + name: Cactus + grower: + type: column + material: CACTUS + max_height: 3 + insta_break_toching: true + vanilla_materials: + - CACTUS + id: 11 + item: + ==: org.bukkit.inventory.ItemStack + type: CACTUS + v: 1 + biomes: + desert: 1.0 + mesa: 0.6 + savannas: 0.0 + + SUGAR_CANE: + persistent_growth_period: 12h + name: Sugar cane + id: 12 + grower: + type: column + material: SUGAR_CANE + max_height: 3 + vanilla_materials: + - SUGAR_CANE + item: + ==: org.bukkit.inventory.ItemStack + type: SUGAR_CANE + v: 1 + biomes: + jungles: 1.0 + bamboo: 1.0 + swamp: 0.5 + mushroom: 1.0 + dark_forest: 0.25 +# formerly inheriting "basetree" properties + + OAK_SAPLING: + persistent_growth_period: 12h + name: Oak Tree + id: 13 + grower: + type: tree + material: OAK_SAPLING + vanilla_materials: + - OAK_SAPLING + item: + ==: org.bukkit.inventory.ItemStack + type: OAK_SAPLING + v: 1 + greenhouse_rates: + GLOWSTONE: 0.5 + biomes: + forests: 1.0 + birch_forests: 0.8 + flatlands: 0.25 + meadows: 0.25 + savannas: 0.5 + mesa: 0.25 + swamp: 0.5 + + BIRCH_SAPLING: + persistent_growth_period: 12h + name: Birch Tree + id: 14 + grower: + type: tree + material: BIRCH_SAPLING + vanilla_materials: + - BIRCH_SAPLING + item: + ==: org.bukkit.inventory.ItemStack + type: BIRCH_SAPLING + v: 1 + greenhouse_rates: + GLOWSTONE: 0.5 + biomes: + forests: 0.5 + birch_forests: 1.0 + flatland: 0.25 + meadows: 0.25 + + SPRUCE_SAPLING: + persistent_growth_period: 12h + name: Spruce Tree + id: 15 + grower: + type: tree + material: SPRUCE_SAPLING + vanilla_materials: + - SPRUCE_SAPLING + item: + ==: org.bukkit.inventory.ItemStack + type: SPRUCE_SAPLING + v: 1 + greenhouse_rates: + GLOWSTONE: 0.5 + biomes: + taigas: 1.0 + cold_taiga: 1.0 + tundra: 0.25 + cold_mountain: 0.25 + + JUNGLE_SAPLING: + persistent_growth_period: 12h + name: Jungle Tree + id: 16 + grower: + type: tree + material: JUNGLE_SAPLING + vanilla_materials: + - JUNGLE_SAPLING + item: + ==: org.bukkit.inventory.ItemStack + type: JUNGLE_SAPLING + v: 1 + greenhouse_rates: + GLOWSTONE: 0.5 + biomes: + jungles: 1.0 + bamboo: 0.8 + mushroom: 0.25 + swamp: 0.25 + dark_forest: 0.6 + + ACACIA_SAPLING: + persistent_growth_period: 12h + name: Acacia Tree + grower: + type: tree + material: ACACIA_SAPLING + vanilla_materials: + - ACACIA_SAPLING + id: 17 + item: + ==: org.bukkit.inventory.ItemStack + type: ACACIA_SAPLING + v: 1 + greenhouse_rates: + GLOWSTONE: 0.5 + biomes: + savannas: 1.0 + desert: 0.6 + mesa: 0.6 + + DARK_OAK_SAPLING: + persistent_growth_period: 12h + name: Dark Oak Tree + grower: + type: tree + material: DARK_OAK_SAPLING + vanilla_materials: + - DARK_OAK_SAPLING + id: 18 + item: + ==: org.bukkit.inventory.ItemStack + type: DARK_OAK_SAPLING + v: 1 + greenhouse_rates: + GLOWSTONE: 0.5 + biomes: + jungles: 0.6 + forests: 0.6 + taigas: 0.6 + birch_forests: 0.6 + dark_forest: 1.0 + swamp: 0.8 + meadows: 0.5 + + PALE_OAK_SAPLING: + persistent_growth_period: 12h + name: Pale Oak Tree + grower: + type: tree + material: PALE_OAK_SAPLING + vanilla_materials: + - PALE_OAK_SAPLING + id: 19 + item: + ==: org.bukkit.inventory.ItemStack + type: PALE_OAK_SAPLING + v: 1 + greenhouse_rates: + GLOWSTONE: 0.5 + biomes: + cold_taiga: 1.0 + tundra: 1.5 + cold_mountain: 0.25 + pale_garden: 2.0 + + CHERRY_SAPLING: + persistent_growth_period: 12h + name: Cherry Tree + grower: + type: tree + material: CHERRY_SAPLING + vanilla_materials: + - CHERRY_SAPLING + id: 20 + item: + ==: org.bukkit.inventory.ItemStack + type: CHERRY_SAPLING + v: 1 + greenhouse_rates: + GLOWSTONE: 0.5 + biomes: + jungles: 0.25 + forests: 0.6 + taigas: 0.8 + birch_forests: 0.5 + dark_forest: 0.25 + swamp: 0.25 + meadows: 1.0 + taigas: 0.25 + cold_taiga: 0.1 + tundra: 0.1 + cold_mountain: 0.25 + flatlands: 0.5 + + MANGROVE_PROPAGULE: + persistent_growth_period: 12h + name: Mangrove Tree + grower: + type: tree + material: MANGROVE_PROPAGULE + vanilla_materials: + - MANGROVE_PROPAGULE + id: 21 + item: + ==: org.bukkit.inventory.ItemStack + type: MANGROVE_PROPAGULE + v: 1 + greenhouse_rates: + GLOWSTONE: 0.5 + biomes: + jungles: 0.25 + dark_forest: 0.25 + swamp: 1.0 + + GLOW_BERRIES: + persistent_growth_period: 8h + name: Glow Berries + grower: + type: tip + material: CAVE_VINES + stem_material: CAVE_VINES_PLANT + growth_direction: DOWN + max_height: 25 + id: 22 + item: + ==: org.bukkit.inventory.ItemStack + type: GLOW_BERRIES + v: 2730 + greenhouse_rates: + GLOWSTONE: 0.5 + biomes: + LUSH_CAVES: 1.0 + + TWISTING_VINES: + persistent_growth_period: 6h + name: Twisting Vines + grower: + type: tip + material: TWISTING_VINES + stem_material: TWISTING_VINES_PLANT + growth_direction: UP + max_height: 25 + id: 23 + item: + ==: org.bukkit.inventory.ItemStack + type: TWISTING_VINES + v: 2730 + greenhouse_rates: + GLOWSTONE: 0.5 + biomes: + WARPED_FOREST: 1.0 + + WEEPING_VINES: + persistent_growth_period: 6h + name: Weeping Vines + grower: + type: tip + material: WEEPING_VINES + stem_material: WEEPING_VINES_PLANT + growth_direction: DOWN + max_height: 25 + id: 24 + item: + ==: org.bukkit.inventory.ItemStack + type: WEEPING_VINES + v: 2730 + greenhouse_rates: + GLOWSTONE: 0.5 + biomes: + CRIMSON_FOREST: 1.0 + + KELP: + persistent_growth_period: 8h + name: Kelp + grower: + type: kelp + max_height: 25 + id: 25 + item: + ==: org.bukkit.inventory.ItemStack + type: KELP + v: 2730 + greenhouse_rates: + GLOWSTONE: 0.5 + needs_sun_light: false + biomes: + deep_oceans: 1.0 + oceans: 0.5 + + RED_MUSHROOM: + persistent_growth_period: 0 + base_rate: 1.0 + name: Red Mushroom + vanilla_materials: + - RED_MUSHROOM + grower: + type: horizontalspread + max_amount: 60 + max_range: 9 + replaceable_blocks: + - AIR + - CAVE_AIR + - VOID_AIR + valid_soil: + - MYCELIUM + - PODZOL + id: 26 + item: + ==: org.bukkit.inventory.ItemStack + type: RED_MUSHROOM + v: 2730 + needs_sun_light: false + biomes: + swamp: 0.6 + jungles: 0.25 + bamboo: 0.25 + mushroom: 1.0 + dark_forest: 0.6 + + BROWN_MUSHROOM: + persistent_growth_period: 0 + base_rate: 1.0 + name: Brown Mushroom + vanilla_materials: + - BROWN_MUSHROOM + grower: + type: horizontalspread + max_amount: 60 + max_range: 9 + replaceable_blocks: + - AIR + - CAVE_AIR + - VOID_AIR + valid_soil: + - MYCELIUM + - PODZOL + id: 27 + item: + ==: org.bukkit.inventory.ItemStack + type: BROWN_MUSHROOM + v: 2730 + needs_sun_light: false + biomes: + swamp: 0.6 + jungles: 0.25 + bamboo: 0.25 + mushroom: 1.0 + dark_forest: 0.6 + + CRIMSON_FUNGUS: + persistent_growth_period: 12h + name: Crimson Fungus + grower: + type: fungus + material: CRIMSON_FUNGUS + vanilla_materials: + - CRIMSON_FUNGUS + id: 28 + item: + ==: org.bukkit.inventory.ItemStack + type: CRIMSON_FUNGUS + v: 2730 + needs_sun_light: false + biomes: + CRIMSON_FOREST: 1.0 + NETHER_WASTES: 0.5 + SOUL_SAND_VALLEY: 0.3 + + WARPED_FUNGUS: + persistent_growth_period: 12h + name: Warped Fungus + grower: + type: fungus + material: WARPED_FUNGUS + vanilla_materials: + - WARPED_FUNGUS + id: 29 + item: + ==: org.bukkit.inventory.ItemStack + type: WARPED_FUNGUS + v: 2730 + needs_sun_light: false + biomes: + WARPED_FOREST: 1.0 + NETHER_WASTES: 0.5 + SOUL_SAND_VALLEY: 0.3 + + BAMBOO: + persistent_growth_period: 24h + name: Bamboo + grower: + type: bamboo + max_height: 10 + id: 30 + item: + ==: org.bukkit.inventory.ItemStack + type: BAMBOO + v: 2730 + greenhouse_rates: + GLOWSTONE: 0.5 + biomes: + swamp: 0.25 + jungles: 0.5 + bamboo: 1.0 + mushroom: 0.25 + dark_forest: 0.25 + + SWEET_BERRY: + persistent_growth_period: 12h + name: Sweet Berry + id: 31 + item: + ==: org.bukkit.inventory.ItemStack + type: SWEET_BERRIES + v: 2730 + grower: + type: ageable + material: SWEET_BERRY_BUSH + max_stage: 3 + increment: 1 + vanilla_materials: + - SWEET_BERRIES + greenhouse_rates: + GLOWSTONE: 0.5 + biomes: + taigas: 0.5 + cold_taiga: 0.5 + tundra: 0.5 + cold_mountain: 1.0 + + BIG_DRIPLEAF: + persistent_growth_period: 12h + name: Big Dripleaf + grower: + type: tip + material: BIG_DRIPLEAF + stem_material: BIG_DRIPLEAF_STEM + growth_direction: UP + max_height: 25 + id: 32 + item: + ==: org.bukkit.inventory.ItemStack + type: BIG_DRIPLEAF + v: 2730 + greenhouse_rates: + GLOWSTONE: 0.5 + biomes: + freshwater: 1.0 +database: + ==: vg.civcraft.mc.civmodcore.dao.DatabaseCredentials + plugin: RealisticBiomes + user: ${CIV_MYSQL_USERNAME} + password: ${CIV_MYSQL_PASSWORD} + host: ${CIV_MYSQL_HOST} + port: 3306 + database: ${CIV_DATABASE_PREFIX}realisticbiomes + poolsize: 5 + connection_timeout: 10000 + idle_timeout: 600000 + max_lifetime: 7200000 diff --git a/ansible/files/gamma-config/plugins/SimpleAdminHacks/config.yml b/ansible/files/gamma-config/plugins/SimpleAdminHacks/config.yml new file mode 100644 index 000000000..6b921f785 --- /dev/null +++ b/ansible/files/gamma-config/plugins/SimpleAdminHacks/config.yml @@ -0,0 +1,610 @@ +configuration_file_version: 1 + +debug: true +broadcast_permission: simpleadmin.broadcast + +hacks: + ############################################################ + ## Basic Hacks + ############################################################ + AntiFastBreak: + enabled: false + laggLenciency: 1.5 + breakDenyDuration: 3000 + #Prevents pearls from landing that have been in flight for more than the configured amount of time + AntiStatisChamber: + enabled: true + pearlLifetime: 2m + #Bounds armour to specific players disallowing others to wear the same armour piece after first equip + ArmourBound: + enabled: true + whitelist: + - DIAMOND_HELMET + - DIAMOND_CHESTPLATE + - DIAMOND_LEGGINGS + - DIAMOND_BOOTS + - NETHERITE_HELMET + - NETHERITE_CHESTPLATE + - NETHERITE_LEGGINGS + - NETHERITE_BOOTS + ArthropodEggHack: + enabled: true + eggChance: 0.03 + lootingChance: 0.02 + removeDrops: true + allowedTypes: + - SHEEP + - PIG + - COW + - BAT + - CHICKEN + - WOLF + - SQUID + - MOOSHROOM + - RABBIT + - HORSE + - DONKEY + - MULE + - VILLAGER + - LLAMA + - OCELOT + - FOX + - COD + - TROPICAL_FISH + - SALMON + - TURTLE + - DOLPHIN + - BEE + - STRIDER + - GLOW_SQUID + - CAT + - AXOLOTL + - GOAT + - PARROT + - PANDA + - CAMEL + - SNIFFER + - FROG + - TADPOLE + - ARMADILLO + AttrHider: + enabled: true + # Hide potion effects on entities, except for particles + hideEffects: true + # Hide the health of entities + hideHealth: true + # Limit player ping in the tablist to the same 6 values vanilla clients can discern visually + roundPlayerListPing: true + AutoRespawn: + enabled: true + # Delay in MS + # Default: 300000 (five minutes) + respawnDelay: 10000 + # The respawn delay (in MS) if someone logs in dead + # Default 0 (instant) + loginRespawnDelay: 0 + # Jokey joke messages sent to the player if auto-respawned + # Deactivate by removing all the quotes below + respawnQuotes: + - You wake up in an unfamiliar place... + # Allows any player with the "simpleadmin.bedlocator" permission to request their bed location. + BedLocator: + enabled: false + BeeKeeping: + enabled: true + # Value between 0 and 1 that determines the percentage chance that a bee will replace + # the natural spawning of a passive creature should certain conditions be met. + # Default: 0.2 (20%) + spawnChance: 0.0 + # Value between 0 and 1 that determines the percentage chance that a bee will lose + # its stinger and thus die when successfully attacking an entity. + # Default: 1.0 (100%) + severStingerChance: 0.7 + BuffSpanker: + enabled: true + # The list of PotionEffectType's that you do not wish players to receive. + naughty: + - DOLPHINS_GRACE + - BAD_OMEN + - SLOW_DIGGING + - SLOW_FALLING + - UNLUCK + DebugWand: + enabled: true + DogFacts: + enabled: true + intervalTime: 15m + announcements: + - '["",{"text":"[CivMC] ","color":"gold"},{"text":"Join the Official Discord at https://discord.gg/zp63BaX3Uf","color":"green","clickEvent":{"action":"open_url","value":"https://discord.gg/zp63BaX3Uf"}}]' + - '["",{"text":"[CivMC] ","color":"gold"},{"text":"Visit the community wiki at civwiki.org","color":"green","clickEvent":{"action":"open_url","value":"https://civwiki.org/wiki/Main_Page"}}]' + - '["",{"text":"[CivMC] ","color":"gold"},{"text":"Visit our wiki at wiki.civmc.net","color":"green","clickEvent":{"action":"open_url","value":"https://wiki.civmc.net/"}}]' + - '["",{"text":"[CivMC] ","color":"gold"},{"text":"Check out the player made map at civmc-map.github.io","color":"green","clickEvent":{"action":"open_url","value":"https://civmc-map.github.io/"}}]' + - '["",{"text":"[CivMC] ","color":"gold"},{"text":"Type /global to talk in global chat","color":"green"}]' + - '["",{"text":"[CivMC] ","color":"gold"},{"text":"Type /vote to vote for CivMC and receive essence!","color":"green"}]' + - '["",{"text":"[CivMC] ","color":"gold"},{"text":"Consider donating to the server at patreon.com/civ_mc! And get some unique perks!","color":"blue","clickEvent":{"action":"open_url","value":"https://www.patreon.com/civ_mc"}}]' + - '["",{"text":"[CivMC] ","color":"gold"},{"text":"All ores except coal and copper can spawn in big veins. Click for more info","color":"green","clickEvent":{"action":"open_url","value":"https://wiki.civmc.net/pages/plugins/unique/hiddenore"}}]' + - '["",{"text":"[CivMC] ","color":"gold"},{"text":"All ores except diamond spawn randomly as you dig. Click for more info","color":"green","clickEvent":{"action":"open_url","value":"https://wiki.civmc.net/pages/plugins/unique/hiddenore"}}]' + - '["",{"text":"[CivMC] ","color":"gold"},{"text":"The command /config will let you adjust various settings","color":"green"}]' + - '["",{"text":"[CivMC] ","color":"gold"},{"text":"Type /rb to see the crop information for the biome you are in","color":"green"}]' + - '["",{"text":"[CivMC] ","color":"gold"},{"text":"Type /chunklimits to see the restrictions on how many blocks can be placed in a chunk","color":"green"}]' + - '["",{"text":"[CivMC] ","color":"gold"},{"text":"Type /emf toggle to turn off/on fishing of decorative heads and custom loot","color":"green"}]' + - '["",{"text":"[CivMC] ","color":"gold"},{"text":"If you type /fm you can see all the types of factories you can make","color":"green"}]' + - '["",{"text":"[CivMC] ","color":"gold"},{"text":"Please review the server rules at reddit.com/r/civmc/wiki/index","color":"green","clickEvent":{"action":"open_url","value":"https://www.reddit.com/r/civmc/wiki/index/"}}]' + - '["",{"text":"[CivMC] ","color":"gold"},{"text":"The use of VPNs or multiple accounts is not allowed, Logging in from the same place as a friend will result in an automatic ban. Accidental use of either may be resolved via a ticket on the official CivMC Discord","color":"green","clickEvent":{"action":"open_url","value":"https://discord.gg/zp63BaX3Uf"}}]' + - '["",{"text":"[CivMC] ","color":"gold"},{"text":"Check out the player run newsletter at https://civwiki.news/ to see whats been going on!","color":"green"}]' + - '["",{"text":"[CivMC] ","color":"gold"},{"text":"Check out the starter guide at wiki.civmc.net/pages/getting-started","color":"green","clickEvent":{"action":"open_url","value":"https://wiki.civmc.net/pages/getting-started"}}]' + - '["",{"text":"[CivMC] ","color":"gold"},{"text":"Make sure to reinforce your buildings/chests to protect them from others. Click for more info","color":"green","clickEvent":{"action":"open_url","value":"https://wiki.civmc.net/pages/plugins/essential/citadel"}}]' + - '["",{"text":"[CivMC] ","color":"gold"},{"text":"Jukeboxes and Noteblocks act as CCTV, when reinforced they record player actions. Click for more info","color":"green","clickEvent":{"action":"open_url","value":"https://wiki.civmc.net/pages/plugins/unique/jukealert"}}]' + - '["",{"text":"[CivMC] ","color":"gold"},{"text":"Killing someone with an ender pearl in your hotbar will lock them in the nether! Player essence is used to keep the players trapped. Click for more info","color":"green","clickEvent":{"action":"open_url","value":"https://wiki.civmc.net/pages/plugins/essential/exilepearl"}}]' + + ElytraFeatures: + enabled: false + # Whether Elytra flight should be outright disabled + disableFlight: false + # Whether Elytra flight should be disabled in combat + disableFlightInCombat: false + # Whether firework boosting should be outright disabled + disableFireworkBoosting: false + # Whether firework boosting should be disabled in combat + disableFireworkBoostingInCombat: true + # Whether to restrict firework boosting to explosive fireworks + disableSafeFireworkBoosting: false + # This regulates player damage when Elytra flying above world height. + heightDamage: + # The amount of damage (in half-hearts) the flier should take. + # NOTE: Setting to 0 will disable the damage. + damage: 1 + # The damage is multiplied by the number of blocks above world height multiplied by this number. + scales: 1.0 + # The amount of blocks above height limit where damage is not applied. + buffer: 5 + # The interval (in milliseconds) between damage ticks. + interval: 1000 + EventDebugHack: + enabled: true + EventHandlerList: + enabled: true + GoldBlockElevators: + enabled: true + HumbugBatchOne: + enabled: true + allowSheepDying: true + allowUsingAnvils: true + allowUsingEnchantingTables: true + infiniteCauldrons: true + disableEnderDragon: true + disableIronFarms: true + disableEnderCrystalDamage: true + disableMiningFatigue: true + canEquipBanners: true + disableLavaCobbleMountains: true + disableWanderingTrader: false + preventPearlGlitching: true + preventUsingEyeOfEnder: false + disablePiglins: false + disableGapples: true + disableEndGatewayTP: false + ItemMetaConverterHack: + enabled: true + ItemSerializerHack: + enabled: true + MapCopyProtection: + enabled: true + OldEnchanting: + enabled: true + # Hides what enchantment will be granted within the Enchanting Table + hideEnchants: true + # Automatically fills the consumable slot with the Enchanting Table with Lapis Lazuli that cannot be taken + fillLapis: false + # Randomises the enchantment offers each time the item is placed in an Enchanting Table + randomiseEnchants: true + # Force enchantments to cost what they appear in the Enchanting Table + fixEnchantCosts: true + # Experience modifier, all experience drops will be multiplied by this (does not apply to player exp) + # NOTE: Modifier must be 0 or greater + experienceModifier: 0.2 + # Loot modifier, multiply the amount of exp dropped from each level of Looting (does not apply to player exp) + # NOTE: Modifier must be 0 or greater + lootModifier: 1.5 + # Enables xp bottles to be crafted from emeralds and vice versa + emeraldCrafting: true + # Enables gaining xp from emeralds directly if emeraldCrafting is enabled + emeraldLeveling: true + # Disables exp from mobs, fishing, mining, breeding, furnace extracting, etc + disableGrindExp: true + # Prevents exp orbs from granting xp + preventOrbExp: true + # Ensures that the player who threw the xp bottle is the one to get the xp (experienceModifier does not apply) + directBottleExp: true + # Defines the maximum repair cost of an item + # NOTE: Value must be 2 or greater, or -1 to disable + maxRepairCost: -1 + # Defines the set amount of xp that xp bottles will produce + # NOTE: Value must be a 0 or greater, or -1 for vanilla random + expPerBottle: 10 + # Allows player's to store their levels in bottles if expPerBottle has a value higher than 0 + allowExpRecovery: true + # Disallows players from creating enchanted books + disableEnchantedBookCreation: true + # Disallows players from using enchanted books + disableEnchantedBookUsage: false + # Modifies the exp drops for specific mob types, which will be used in lieu of experienceModifier + # NOTE: Players have an implicit modifier of 1.0 + # NOTE: Modifiers must be 0 or greater + entityExpDropModifiers: + ENDER_DRAGON: 0.0 + PhantomMenace: + enabled: false + # Players have a statistic called TIME_SINCE_REST. If a player's value is above 72k (3 days minecraft time) then + # they will start spawning phantoms. Setting the cap to below 72k will effectively disable phantoms. Setting the + # cap to -1 will disable the cap. Default: 80k (10% chance per two minutes during the night and thunder storms.) + # Read more here: https://minecraft.gamepedia.com/Phantom#Java_Edition + timeSinceRestCap: 75000 + # Determines whether phantoms are allowed to spawn during the night. + nightSpawn: true + # Determines whether phantoms are allowed to spawn during thunder storms. + stormSpawn: true + # Determines the maximum light level at the spawning entity's location that phantoms are allowed to spawn at. + # Note: 15 will enable spawning at all light levels. + maximumLightSpawn: 7 + PlayerRevive: + enabled: true + PlayerStatistics: + enabled: true + MobCondenser: + enabled: false + mobSpawnModifiers: + ZOMBIFIED_PIGLIN: 0.10 + materialModificationWhitelist: + - GHAST_TEAR + - WITHER_SKELETON_SKULL + - GUNPOWDER + - BONE + - COAL + - ROTTEN_FLESH + - GOLD_NUGGET + #Alters end portals to send you to a target dimension instead of just the end + #This is a very specific hack made for CivMC, it is not recommended to enable + #Unless you want to fully mimic their behaviour + PortalModifyHack: + enabled: true + targetWorld: world_nether + homeWorld: world + PortalSpawnModifier: + enabled: false + pigManChance: 0.15 + ghastChance: 0.001 + witherSkeletonChance: 0.02 + witherHeadDropChance: 0.01 + SafeOreBreak: + enabled: true + ores: + - [DIAMOND_ORE,DEEPSLATE_DIAMOND_ORE] + - [REDSTONE_ORE,DEEPSLATE_REDSTONE_ORE] + - [LAPIS_ORE,DEEPSLATE_LAPIS_ORE] + - [GOLD_ORE,DEEPSLATE_GOLD_ORE] + - [IRON_ORE,DEEPSLATE_IRON_ORE] + - [COPPER_ORE,DEEPSLATE_COPPER_ORE] + - [COAL_ORE,DEEPSLATE_COAL_ORE] + - [NETHER_GOLD_ORE] + - [GILDED_BLACKSTONE] + - [NETHER_QUARTZ_ORE] + - [GLOWSTONE] + - [SEA_LANTERN] + - [BOOKSHELF] + ShipOutOfLuck: + enabled: true + boatBreakers: + - ICE + - PACKED_ICE + - FROSTED_ICE + - BLUE_ICE + # Currently changes a striders speed to be between 0.175 (Default) and 0.3375 (Horse max speed) + # aswell as default health to between 20 (Default) and 50 (2.5 heart bars) + # Only works on newly spawned striders, not pre-existing mobs + StriderBreeding: + enabled: true + #Default strider speed is 0.175 + minSpeed: 0.175 + #Max horse speed is 0.3375 + maxSpeed: 0.3375 + #10 Hearts + minHealth: 20 + #25 Hearts + maxHealth: 50 + StrayStats: + enabled: true + TestConfigHack: + enabled: true + # Please do not change any of the values below, otherwise it will undermine the test. + boolValue: true + byteValue: 8 + shortValue: 14646 + intValue: 33822776 + longValue: 2486941267899177 + maybeLongValue: 6543 + floatValue: 3847.1234 + doubleValue: 345978623.178569873 + charValue: 'c' + ############################################################ + ## Simple Hacks + ############################################################ + BadBoyWatch: + # tracks players breaking these blocks and logs information + enabled: true + trackingDepth: 16 + clearOnMatch: true + minDepthToMatch: 2 + watchedMaterials: + - CHEST + - FURNACE + - JUKEBOX + - NOTE_BLOCK + - BEACON + - SPONGE + - HOPPER + CTAnnounce: + enabled: true + delay: 10000 + message: '%Victim% was combat tagged by %Attacker%' + broadcast: [OP, CONSOLE] + Experimental: + enabled: true + combatspy: false + teleportspy: false + postteleport: + spy: false + count: 10 + GameFeatures: + enabled: true + disablePotatoXP: false + villagerTrading: false + witherSpawning: true + patrolSpawning: true + phantomSpawning: false + enderChestPlacement: true + enderChestUse: true + grindstoneUse: false + shulkerBoxUse: false + totemPower: true + chorusFruitTeleportation: false + weepingAngel: + enabled: false + environment: 5000 + playerKill: 5000 + blockWaterInHell: true + minecartTeleport: false + obsidianGenerators: false + personalDeathMessages: false + disableNetheriteCrafting: false + GameFixes: + enabled: true + # Does not fully work atm + blockElytraBreakBug: false + damageOnElytraBreakBug: 0.0 + stopHopperDupe: false + stopRailDupe: true + stopEndPortalDeletion: true + stopBedBombingInHellBiomes: true + stopAnchorBombing: true + preventTreeWraparound: true + maintainFlatBedrock: false + preventLongSigns: true + signLengthLimit: 100 + preventLongSignsAbsolute: true + cancelLongSignEvent: false + hardLimitBookPageCount: true + GameTuning: + enabled: true + chunkLimits: + enabled: false + exceededMessage: '&9Limit (%Limit%) reached for this chunk, you cannot place more of this type of block (%Material%).' + tileEntities: + HOPPER: 16 + PISTON: 128 + STICKY_PISTON: 128 + FURNACE: 48 + BLAST_FURNACE: 48 + BREWING_STAND: 48 + SMOKER: 48 + ITEM_FRAME: 64 + GLOW_ITEM_FRAME: 64 + ARMOR_STAND: 48 + PAINTING: 48 + exempt: + - Steve + - Alex + daytimeBed: + enabled: true + spawnSetMessage: '&bYour spawn has been set.' + rainReduction: + enabled: false + rainOccurrenceChance: .5 + # Makes nether ratio 1 to 1 + oneToOneNether: true + # Return nether portal, true = enabled false = disabled + returnNetherPortal: true + allowNetherTravel: false + # Disables minecart inventories (trying to fix dupe issues) + # enabled = able to right click disabled = not able to right click + chestedMinecartInventories: true #These were false to prevent a chestcart dupe, think it's patched now? + hopperMinecartInventories: true #These were false to prevent a chestcart dupe, think it's patched now? + enderChestInventories: false + stopTrapHorses: true + killTrapHorses: true + changeSpawnerType: false + allowVillagerTrading: false + enderGrief: false + witherGrief: false + dragonGrief: true + allowEnchantedApples: false + preventFallingThroughBedrock: false + # Disable the Bad Omen effect that player receive when killing pillager patrols + badOmen: false + #a list of materials players shouldn't be allowed to place at all + noplace: + #- GRINDSTONE Leaving this here for reference + HorseStats: + enabled: true + wand: COMPASS + Insight: + enabled: false + into: + - org.bukkit.event.player + - org.bukkit.event.entity + - org.bukkit.event.block + - org.bukkit.event.inventory + - org.bukkit.event.enchantment + - org.bukkit.event.hanging + - org.bukkit.event.painting + - org.bukkit.event.vehicle + - org.bukkit.event.weather + - org.bukkit.event.world + Introbook: + enabled: true + follow: true + contents: + title: Welcome ${player}! + author: RedDevel + pages: + - "&5 Welcome &2${player}!\n &5to CivMC!&r\n\nThis book will guide your first steps!\nIf you die or lose it you can open it via the /introbook command\n\nLet's begin your journey!" + - "You've just spawned near another player or town, say something in chat!\n\nIf nobody responds try out global chat instead by using the /global command!\n\nMany nations will want a potential new productive member.\nTake your pick!" + - "Maybe you've joined at a time of lower activity, and nobody is responding.\n\nThen you can join the official discord and take your pick of the nation ads there!\n\n &9discord.gg/\n HkD79GfmQQ&r" + - "Is the nation you want to join far away?\nWell you're in luck!\n\nEvery new player in their first 24 hours on the server gets a singular free tp!\n\nSimply use the command below:\n\n &c/ott to &r" + - "Want to start your own settlement?\nVery possible! but incredibly difficult.\n\nNot just because of a lack of resources!\n\nKnowledge and connections are power in CivMC. You'd be better off building those up first." + - "Joining a nation never ties you down. You can even join multiple at once! That's why it's important to remember that you can always start your own nation at a later time.\nThere's not rush!\nTake your time to learn the game first\n\nOn that note:" + - " &5Plugins!&r\n\nCivMC has many many different features and mechanics that make it unique.\nYou can learn about all of them on our handy Wiki!\n\n &9wiki.civmc.net\n\n&4IT IS VITAL YOU LOOK\n AT THIS WIKI&r" + - "When you join a nation the players there will likely explain some of the basic important plugins to you\n\nThese are:\nCitadel (protect your stuff)\nJukeAlert (know who's breaking your stuff)\nExilepearl (Jail people who broke your stuff)" + - " &5AVOID DOING\n THE FOLLOWING\n IF YOU WANT TO\n SURVIVE\n\n&r1. Breaking people's stuff\n2. Jumping into obsidian pits\n3. Crossing into excluded areas\n4. Anything people would kill you for." + - " &5THEY WILL KILL YOU&r\nLeave the raiding until you understand how to get away with it.\nCameras are watching!\n\nLoot stolen without care is easily taken away, and damages your reputation with others!\nOr will find you killed and banished to the nether" + - "It is always important to remember this:\n\nOn CivMC your actions have consequences.\n\nYou have 1 account. 1 name. Don't dirty it the first chance you get.\n\nThat is if you want to make something of yourself.\nWhatever that may be." + - " &5TOS&r\nCivMC is not complete anarchy. You can and will be banned if you break the server rules.\n (Find on the discord)\n\nRefrain from using hacks or spouting slurs.\nAct like a decent human being and all will be well." + - " &5Bugs/Issues&r\n\nIf you've found a bug or have any other issues that require an admin.\nThen you can either raise a ticket on the discord or send a modmail via our reddit.\n\n &9R/CivMC&r" + - " &5Goodluck!&r\nThere are many things to do on CivMC. Let your ambitions run wild!\n\nLeave something behind people will remember for years to come.\n\nBe it your actions, your creations or your destruction..." + NewfriendAssist: + enabled: true + announce: '&f%Player% is brand new!' + giveIntroKitToRandomSpawners: false + broadcast: [CONSOLE, ALL] + helptips: on + helptips_end: 20m + introkit: + enabled: true + contents: + - ==: org.bukkit.inventory.ItemStack + type: COOKIE + amount: 32 + meta: + ==: ItemMeta + meta-type: UNSPECIFIC + lore: + - "Gift from the Admins as you" + - "begin your journey on CivMC" + - ==: org.bukkit.inventory.ItemStack + type: BED + amount: 1 + meta: + ==: ItemMeta + meta-type: UNSPECIFIC + lore: + - "This world is unforgiving." + - "Be sure to get a good night's" + - "rest soon." + - ==: org.bukkit.inventory.ItemStack + type: BOAT + amount: 1 + meta: + ==: ItemMeta + meta-type: UNSPECIFIC + lore: + - "The world is your oyster" + - ==: org.bukkit.inventory.ItemStack + type: MINECART + amount: 1 + meta: + ==: ItemMeta + meta-type: UNSPECIFIC + lore: + - "This will help you" + - "get on track." + ReinforcedChestBreak: + enabled: true + # in seconds + delay: 180 + message: "&4%player% is raiding a chest at %x% %y% %z%." + SanityHack: + enabled: false + trackPlace: false + trackBreak: false + belowYLevel: 7 + #Used to roll a dice on whether to drop an additional sapling on block break or leaf decay + SaplingHack: + enabled: true + #Should we still roll the dice for people when using a fortune enchanted tool? + allow_fortune: true + blocks: + JUNGLE_LEAVES: 0.025 + DARK_OAK_LEAVES: 0.05 + OAK_LEAVES: 0 + BIRCH_LEAVES: 0 + ACACIA_LEAVES: 0 + SPRUCE_LEAVES: 0 + OneTimeTeleport: + enabled: true + material_blacklist: [] + unsafe_materials: [LAVA, WATER] + ott_timeout: 1d + ToggleLamp: + enabled: true + cooldownTime: 100 + DespawnFix: + enabled: true + BetterRails: + enabled: true + # All in metres per second + # Minecraft will prevent you going faster than 30m/s + base: 9 + materials: + COBBLESTONE: 8 + COPPER_BLOCK: 29 + EXPOSED_COPPER: 23 + WEATHERED_COPPER: 18 + OXIDIZED_COPPER: 14 + skyBase: 10 + skyMaterials: + COBBLESTONE: 8 + COPPER_BLOCK: 30 + EXPOSED_COPPER: 24 + WEATHERED_COPPER: 19 + OXIDIZED_COPPER: 15 + CopperRail: + enabled: true + deoxidise: true + # Chance to oxidise copper one level. + # Unoxidised copper will oxidise at 75% of this level. + damage: 0.0175 + FasterHorses: + enabled: true + minSpeed: 0.1125 + maxSpeed: 0.438827582278 # 18.5m/s + AntiDerailment: + enabled: true + CreeperDiscHack: + enabled: true + discChance: 0.003 + NoOozing: + enabled: true + BuildLimits: + enabled: true + limits: + - ==: com.programmerdan.minecraft.simpleadminhacks.framework.utilities.BuildLimit + world: "world_nether" + type: ALTITUDE + min_y: -64 + max_y: 128 + PortalConnect: + enabled: false + server: main + world: world + TooHappyGhasts: + enabled: true diff --git a/ansible/files/gamma-config/plugins/SuperVanish/config.yml b/ansible/files/gamma-config/plugins/SuperVanish/config.yml new file mode 100644 index 000000000..0ab791a7b --- /dev/null +++ b/ansible/files/gamma-config/plugins/SuperVanish/config.yml @@ -0,0 +1,179 @@ +# SuperVanish v6.2.5 - Configuration + +############# Invisibility Features ############## +InvisibilityFeatures: + # Should invisible players get night vision? (client-side; Requires ProtocolLib) + NightVisionEffect: true + # Should SV disable damage for invisible players? + DisableDamage: true + # Should SV disable hunger for invisible players? + DisableHunger: true + # Should SV prevent mobs from targeting invisible players? + DisableMobTarget: true + # Should invisible players open chests and shulker boxes without the animation and sound? + # This makes them go into spectator mode temporarily. It's better to only give access to this feature + # to staff members since a server crash can cause players to stay in spectator mode. + # Permission: sv.silentchest + OpenChestsSilently: true + # Should invisible players not be able to trigger pressure plates and tripwire? + # If this feature is enabled invisible players can't trigger pressure plates and tripwire. + DisablePressurePlates: true + # Should invisible players not be able to push other players or be able to be pushed? + # WARNING: Uses the scoreboard and may conflict with other plugins! + DisablePush: false + # Should vanished players pick up items by default? This can be changed individually with /sv tipu + DefaultPickUpItemsOption: false + # Should SV modify tablist packets to prevent the server from leaking who is online? + ModifyTablistPackets: true + + Fly: + # Should invisible players be able to fly even if they aren't in creative/spectator mode? + Enable: true + # Should invisible players WITHOUT the permission 'sv.keepfly' lose the ability to fly on reappear? + DisableOnReappear: true + +############# Vanish State Features ############## +VanishStateFeatures: + # Should players with the permission 'sv.joinvanished' join vanished all the time? + # Doesn't work if you use GroupManager for permissions + AutoVanishOnJoin: true + # Should invisible players reappear automatically when they change their world? + ReappearOnWorldChange: false + # Should invisible players reappear automatically when they leave the server? + ReappearOnQuit: false + # Should invisible players reappear automatically + # when they change their world and don't have the permission 'sv.use' anymore? + CheckPermissionOnWorldChange: false + # Should invisible players reappear automatically + # when they leave the server and don't have the permission 'sv.use' anymore? + CheckPermissionOnQuit: false + # Should invisible players reappear automatically + # when they join the server and don't have the permission 'sv.use' anymore? + # Doesn't work if you use GroupManager for permissions + CheckPermissionOnLogin: false + +############## Indication Features ############### +IndicationFeatures: + LayeredPermissions: + # Should players with the permission 'sv.see' be able to see invisible players in the tablist & in-game? + EnableSeePermission: true + # Should sv.use and sv.see be layered? => sv.use.levelX, sv.see.levelX + # Players can see a vanished player if their see level is higher or equal to the other player's use level + # Note: You have to rejoin for changes to take effect if you changed those permissions while being online + LayeredSeeAndUsePermissions: false + # What should be the highest level for both permissions? + # Lower amounts might improve performance with more players since they reduce the amount of permission checks + MaxLevel: 100 + # Should vanished players show up dark gray in the tablist and should only their head be visible? + # Only players who are allowed to see the player will see this effect; this helps other staff with + # differentiating them from players they should talk to; Requires ProtocolLib + MarkVanishedPlayersAsSpectators: true + +################ Message Options ################# +MessageOptions: + + FakeJoinQuitMessages: + # Should SV broadcast any kind of announcement (fake quit or player vanished) when a player vanishes? + # You can change the messages in the messages.yml file. + BroadcastFakeQuitOnVanish: true + # Should SV broadcast any kind of announcement (fake join or player reappeared) when a player reappears? + # You can change the messages in the messages.yml file. + BroadcastFakeJoinOnReappear: true + # Should players with the permission 'sv.see' get an admin announcement instead of a fake join/quit message? + # You can change the messages in the messages.yml file. + AnnounceVanishReappearToAdmins: true + # Should there only be admin announcements and no fake join/quit messages? + SendMessageOnlyToAdmins: false + # Should there only be fake join/quit messages and no admin announcements? + SendMessageOnlyToUsers: false + + # Should SV hide the real join/leave messages of invisible players? + HideRealJoinQuitMessages: true + # Should SV hide leave messages for invisible players if 'VanishStateFeatures->ReappearOnQuit' is turned on? + # Overrides 'HideRealJoinQuitMessages' + ReappearOnQuitHideLeaveMsg: true + # If the setting above is turned on, should players with the permission 'sv.see' get + # a message when an invisible player joins/quits? + AnnounceRealJoinQuitToAdmins: true + # If the setting above is turned on, should players with the permission 'sv.see' get + # a message when an invisible player dies? + AnnounceDeathToAdmins: true + # Should SV remind players who join the server vanished of being invisible (in chat)? + # You can change the message in the messages.yml file. + RemindVanishedOnJoin: true + # Should invisible players have an action bar which tells them that they're invisible? + # You can change the action bar in the messages.yml file. + DisplayActionBar: true + +############## Restrictive Options ############### +RestrictiveOptions: + # Should invisible players not be able to break blocks? + # Bypass permission: sv.breakblocks + PreventBlockBreaking: false + # Should invisible players not be able to place blocks? + # Bypass permission: sv.placeblocks + PreventBlockPlacing: false + # Should invisible players not be able to damage players or mobs? + # Bypass permission: sv.damage + PreventHittingEntities: false + +############# External Invisibility ############## +ExternalInvisibility: + + ServerList: + # Should this plugin adjust the amount of players in the serverlist? (-1 per invisible player) + AdjustAmountOfOnlinePlayers: false + # Should this plugin hide invisible players in the list of logged in players? + # You can view this list when your mouse hovers over the amount of online players. + AdjustListOfLoggedInPlayers: true + +################## Hook Options ################## +HookOptions: + # Should SV hide invisible players in /who, /list, /online, /near, etc? + # Note: Players with the permission essentials.vanish.interact can still see invisible players in these commands + # Important: You have to reload both SV and Essentials if you change this setting (reload SV first) + EnableEssentialsHook: true + # Should SV hide invisible players on your dynamic map and broadcast join/leave messages if you use Dynmap? + EnableDynmapHook: true + # Should SV send fake join/leave messages in dynmap's web-chat? + # You can configure the join/leave messages in the messages.yml file + DynmapSendJoinLeaveMessages: true + # Should SV hook into TrailGUI and disable trails while you're vanished? + EnableTrailGUIHook: true + # Should SV hook into SuperTrails and disable trails while you're vanished? + EnableSuperTrailsHook: true + # Should SV hook into PlaceholderAPI and add new placeholders to SV + register its own ones for other plugins? + # Own ones: isvanished, vanishedplayers, playercount + # Format: %supervanish_% + EnablePlaceholderAPIHook: true + # Should SV hook into MVdWPlaceholderAPI and add new placeholders to SV + register its own ones for other + # plugins? + # Own ones: isvanished, vanishedplayers, playercount + # Format: {supervanish_} + EnableMVdWPlaceholderAPIHook: true + # Should SV stop NPCs from greeting or talking about hidden players? + EnableCitizensHook: true + +############# Compatibility Options ############## +CompatibilityOptions: + # This section is for advanced users only! + # The event priority which SuperVanish should use for the specific event. + # Allowed values are LOWEST, LOW, NORMAL, HIGH, HIGHEST and MONITOR + # Higher priorities might override other plugins while lower ones might not + + # The priority for removing the join message + PlayerJoinEventPriority: HIGH # <- keep HIGH if you use Essentials to modify join/quit messages !! + # The priority for removing the quit message + PlayerQuitEventPriority: HIGH + +############# Miscellaneous Options ############## +MiscellaneousOptions: + + UpdateChecker: + # Should SV check for updates on spigot regularly? There is no automatic update; this just informs you + Enable: true + # Should players with the permission 'sv.notify' get notified if the current version of SV is outdated? + NotifyAdmins: true + +################# Do Not Touch ################### +ConfigVersion: 6.2.5 diff --git a/ansible/files/gamma-config/plugins/SuperVanish/messages.yml b/ansible/files/gamma-config/plugins/SuperVanish/messages.yml new file mode 100644 index 000000000..a9a7b8536 --- /dev/null +++ b/ansible/files/gamma-config/plugins/SuperVanish/messages.yml @@ -0,0 +1,74 @@ +# SuperVanish v6.2.7 - Messages +# +# Information: +# <..> means that .. is required; [..] means that .. is optional and can be left out; | inside [] or <> stands for 'OR' +# You can use the & character for color codes; Example: '&cThe color of this text would be red!' +# You can use #XXXXXX for HEX color codes. Example: '#663EF6This text would be purple!' +# You can use %p% to get the player's name; Example: '&4&l%p%, you aren't allowed to execute this command!' +# You can use %other% to get the name of the target or cause +# You can use %d% to get the player's display name; if you use Essentials then the display name contains the prefix too +# You can use %tab% to get the player's name in the player list (TAB) +# You can use %prefix% to get the player's prefix (Requires Vault) +# You can use %suffix% to get the player's suffix (Requires Vault) +# You can use %group% to get the player's group (Requires Vault) +# You can use %nick% to get the player's nickname (Requires Essentials) +# Some messages allow different, unique variables too +# +# NOTE: You can get WAY more placeholders by installing PlaceholderAPI or MVdWPlaceholderAPI +# +# Empty messages will not be sent +# Using \n starts a new line +# +# Important: +# You must double single quotes if you want to use them inside a message. +# You must NOT use any tab characters inside this file (indent key) otherwise YAML will spam your console with errors! +# !! If there are errors in the console after editing this file paste it into an online YAML parser to see if +# there are any YAML syntax errors !! +Messages: + NoPermission: '&4Denied access! You are not allowed to do this.' + InvalidUsage: '&cInvalid usage, you can use &6/sv help&c for a list of commands.' + VanishMessage: '&f%p% &eleft the game' + ReappearMessage: '&f%p% &ejoined the game' + VanishMessageWithPermission: '&a[SV] %p% vanished.' + ReappearMessageWithPermission: '&a[SV] %p% reappeared.' + OnVanish: '&aYou are now invisible!' + OnReappear: '&aYou are no longer invisible!' + OnVanishCausedByOtherPlayer: '&a%other% hid you, you are now invisible!' + OnReappearCausedByOtherPlayer: '&a%other% showed you, you are now visible!' + AlreadyVanishedError: '&cYou are already invisible!' + NotVanishedError: '&cYou are not invisible!' + SilentJoinMessageForAdmins: '&a[SV] %p% joined silently.' + SilentQuitMessageForAdmins: '&a[SV] %p% left silently.' + SilentDeathMessage: '&a[SV] %deathmsg%' + RemindingMessage: '&aYou are still invisible!' + ListMessagePrefix: '&aInvisible Players:&f %l' + ActionBarMessage: '&aYou are invisible to other players!' + HideOtherMessage: '&aPlayer &e%other%&a is now invisible!' + ShowOtherMessage: '&aPlayer &e%other%&a is now visible!' + CannotHideOtherPlayer: '&cYou''re not allowed to change %other%''s visibility!' + AlreadyInvisibleMessage: '&cPlayer &e%other%&c is already invisible!' + AlreadyVisibleMessage: '&cPlayer &e%other%&c is already visible!' + PluginReloaded: '&aSuccessfully reloaded SuperVanish (%time%ms)!' + InvalidSender: '&cYou must be a player to execute this command!' + PlayerNotOnline: '&cThat player is not online!' + PlayerNonExistent: '&cThat player doesn''t exist!' + ToggledPickingUpItemsOn: '&ePicking up items is now turned &aON&e.' + ToggledPickingUpItemsOff: '&ePicking up items is now turned &cOFF&e.' + UpdateWarning: '&cWarning! Recreating %updates% resets %changes%. Please use &e/sv recreatefiles confirm&c if you''d like to continue.' + RecreatedConfig: '&aSuccessfully recreated %updates%! Please check %changes%.' + NoConfigUpdateAvailable: '&eYour SuperVanish-files are up to date!' + RecreationRequiredMsg: '&c[SV] Your SuperVanish-files are not up to date, you can use &e/sv recreatefiles&c to recreate them + or use /sv recreatefiles dismiss to dismiss this message. + Recreating SuperVanish''s files gives you access to newer settings and features of the plugin.' + DismissedRecreationWarning: '&eYou are no longer receiving notifications about this recreation.' + UndismissedRecreationWarning: '&eYou are now receiving notifications about this recreation.' + PrintedStacktrace: '&eSuccessfully created a stacktrace, see console!' + EntityHitDenied: '&c[SV] You can''t hit players or mobs in vanish!' + BlockPlaceDenied: '&c[SV] You can''t place blocks in vanish!' + BlockBreakDenied: '&c[SV] You can''t break blocks in vanish!' + PluginOutdated: '&c[SV] Your current version of SuperVanish is outdated. New version: ''%new%''; Currently: ''%current%''' + DynmapFakeJoin: '%d% joined' + DynmapFakeQuit: '%d% quit' + HelpHeader: "&a<---------------&e SuperVanish-Help &a--------------->" + HelpFormat: "&6%usage% &7- &b%description% &c(%permission%)" +MessagesVersion: 6.2.7 diff --git a/ansible/files/gamma-config/plugins/TAB/config.yml b/ansible/files/gamma-config/plugins/TAB/config.yml new file mode 100644 index 000000000..0f41bf233 --- /dev/null +++ b/ansible/files/gamma-config/plugins/TAB/config.yml @@ -0,0 +1,226 @@ +# https://github.com/NEZNAMY/TAB/wiki/Feature-guide:-Header-&-Footer +header-footer: + enabled: true + disable-in-worlds: + - disabledworld + header: + - '&6&kAAAA&r&6&l Welcome to CivMC &x&3&e&c&0&d&1Gamma&6&l!&r&6&kAAAA' + - "&7Online players: &f%online%" + footer: + - '&9Modmail at &6reddit.com/r/civmc' + - '&a%tps% TPS &r&6discord.gg/nDnsU6vJqg' + - '&cPatreon: &6patreon.com/Civ_MC' + - '&6Admins: Wingzero54, RedDevel, Okx, HaKr_' + per-world: + world1: + header: + - "an example of world with custom" + footer: + - "header/footer and prefix/suffix" + world2;world3: + header: + - "This is a shared header for" + - "world2 and world3" + +# https://github.com/NEZNAMY/TAB/wiki/Feature-guide:-Tablist-name-formatting +tablist-name-formatting: + enabled: true + align-tabsuffix-on-the-right: false + character-width-overrides: {} + anti-override: true + disable-in-worlds: + - disabledworld + +# https://github.com/NEZNAMY/TAB/wiki/Feature-guide:-Nametags +scoreboard-teams: + enabled: false + enable-collision: true + invisible-nametags: false + anti-override: true + # https://github.com/NEZNAMY/TAB/wiki/Feature-guide:-Sorting-players-in-tablist + sorting-types: + - "GROUPS:owner,admin,mod,helper,builder,vip,default" + - "PLACEHOLDER_A_TO_Z:%player%" + case-sensitive-sorting: true + disable-in-worlds: + - disabledworld + # https://github.com/NEZNAMY/TAB/wiki/Feature-guide:-Unlimited-nametag-mode + unlimited-nametag-mode: + enabled: false + use-marker-tag-for-1-8-x-clients: false + disable-on-boats: true + space-between-lines: 0.22 + disable-in-worlds: + - disabledworld + dynamic-lines: + - abovename + - nametag #the original one, combination of tagprefix + customtagname + tagsuffix + - belowname + - another + static-lines: + myCustomLine: 0.66 + +# https://github.com/NEZNAMY/TAB/wiki/Feature-guide:-Yellow-number +yellow-number-in-tablist: + enabled: false + value: "%ping%" + disable-in-worlds: + - disabledworld + +# https://github.com/NEZNAMY/TAB/wiki/Feature-guide:-Belowname +belowname-objective: + enabled: false + number: "%health%" + text: "&cHealth" + disable-in-worlds: + - disabledworld + +# https://github.com/NEZNAMY/TAB/wiki/Feature-guide:-Spectator-fix +prevent-spectator-effect: + enabled: false + +# https://github.com/NEZNAMY/TAB/wiki/Feature-guide:-Bossbar +bossbar: + enabled: false + toggle-command: /bossbar + remember-toggle-choice: false + hidden-by-default: false + disable-in-worlds: + - disabledworld + bars: + ServerInfo: + style: "PROGRESS" # for 1.9+: PROGRESS, NOTCHED_6, NOTCHED_10, NOTCHED_12, NOTCHED_20 + color: "%animation:barcolors%" # for 1.9+: BLUE, GREEN, PINK, PURPLE, RED, WHITE, YELLOW + progress: "100" # in % + text: "&fWebsite: &bwww.domain.com" + +# https://github.com/NEZNAMY/TAB/wiki/Feature-guide:-Per-world-playerlist +per-world-playerlist: + enabled: false + # players with tab.staff will always see all players + allow-bypass-permission: false + # players in these worlds will always see all players + ignore-effect-in-worlds: + - ignoredworld + - build + shared-playerlist-world-groups: + lobby: + - lobby1 + - lobby2 + minigames: + - paintball + - bedwars + +# https://github.com/NEZNAMY/TAB/wiki/Feature-guide:-Scoreboard +scoreboard: + enabled: false + toggle-command: /sb + remember-toggle-choice: false + hidden-by-default: false + use-numbers: false + static-number: 0 + delay-on-join-milliseconds: 0 + respect-other-plugins: true + disable-in-worlds: + - disabledworld + scoreboards: + admin: + # Only players with tab.scoreboard.admin can see this scoreboard, others will see scoreboard1 + display-condition: "permission:tab.scoreboard.admin" + title: "Admin scoreboard" + lines: + - "%animation:MyAnimation1%" + - "&6Online:" + - "* &eOnline&7: &f%online%&7/&4%maxplayers%" + - "* &eCurrent World&7: &f%worldonline%" + - "* &eStaff&7: &f%staffonline%" + - " " + - "&6Server Info:" + - "* &bTPS&7: %tps%" + - "* &bUptime&7: &f%server_uptime%" + - "* &bMemory&7: &f%memory-used%&7/&4%memory-max%" + - "%animation:MyAnimation1%" + scoreboard1: + title: "Default" + lines: + - "%animation:MyAnimation1%" + - "&6My Stats:" + - "* &eKills&7: &f%statistic_player_kills%" + - "* &eDeaths&7: &f%statistic_deaths%" + - "* &eHealth&7: &f%health%" + - " " + - "&6Personal Info:" + - "* &bRank&7: &f%group%" + - "* &bPing&7: &f%ping%&7ms" + - "* &bWorld&7: &f%world%" + - "%animation:MyAnimation1%" + +# https://github.com/NEZNAMY/TAB/wiki/Feature-guide:-Ping-Spoof +ping-spoof: + enabled: true + value: 0 + +# https://github.com/NEZNAMY/TAB/wiki/Feature-guide:-Pet-name-fix +fix-pet-names: + enabled: false + +placeholders: + date-format: "dd.MM.yyyy" + time-format: "[HH:mm:ss / h:mm a]" + time-offset: 0 + register-tab-expansion: false + +# https://github.com/NEZNAMY/TAB/wiki/Feature-guide:-Placeholder-output-replacements +placeholder-output-replacements: + "%essentials_vanished%": + "yes": "&7| Vanished" + "no": "" + "%afk%": + true: " &o[AFK]&r" + false: "" + "%essentials_nickname%": + "%essentials_nickname%": "%player%" #placeholder did not parse correctly, show real name instead + +# https://github.com/NEZNAMY/TAB/wiki/Feature-guide:-Conditional-placeholders +conditions: + nick: # use it with %condition:nick% + conditions: + - "%player%=%essentials_nickname%" + yes: "%player%" + no: "~%essentials_nickname%" + +placeholderapi-refresh-intervals: + default-refresh-interval: 500 + server: + "%server_uptime%": 1000 + "%server_tps_1_colored%": 1000 + "%server_unique_joins%": 5000 + player: + "%player_health%": 200 + "%player_ping%": 1000 + "%vault_prefix%": 1000 + relational: + "%rel_factionsuuid_relation_color%": 1000 + +# assigning groups by permission nodes instead of taking them from permission plugin +assign-groups-by-permissions: false + +# if the option above is true, all groups are taken based on permissions and the one higher in this list is used as primary +# Warning! This is not sorting list and has nothing to do with sorting players in tablist! +primary-group-finding-list: + - Owner + - Admin + - Mod + - Helper + - default + +debug: false + +# https://github.com/NEZNAMY/TAB/wiki/MySQL +mysql: + enabled: false + host: 127.0.0.1 + port: 3306 + database: tab + username: user + password: password diff --git a/ansible/files/gamma-config/plugins/TAB/groups.yml b/ansible/files/gamma-config/plugins/TAB/groups.yml new file mode 100644 index 000000000..2ed803735 --- /dev/null +++ b/ansible/files/gamma-config/plugins/TAB/groups.yml @@ -0,0 +1,29 @@ +Owner: + tabprefix: "&0&l[&a&lOwner&0&l] &a" + tagprefix: "&2&lOwner &a" +Admin: + tabprefix: "&0&l[&4&lAdmin&0&l] &1" + tagprefix: "&4&lAdmin &a" +Player: + tabprefix: "&0&l[&7&lPlayer&0&l] &3" + tagprefix: "&2&lPlayer &3" +example_group: + header: + - "This is an example of per-group header/footer" + footer: + - "applied to a group" + + # default settings for all groups, all groups will take properties from this section unless player's primary group overrides a specific setting +_DEFAULT_: + tabprefix: "%vault-prefix%" + tagprefix: "%vault-prefix%" + customtabname: "%essentials_nickname%" + customtagname: "%essentials_nickname%" # don't forget to enable unlimited nametag mode to make this one work + tabsuffix: "%vault-suffix%" + tagsuffix: "%vault-suffix%" + +per-world: + world1: + Owner: + tabprefix: "&0&l[&a&lOwner&0&l] &a" + tagprefix: "&2&lOwner &a" diff --git a/ansible/files/gamma-config/plugins/ViaVersion/config.yml b/ansible/files/gamma-config/plugins/ViaVersion/config.yml new file mode 100644 index 000000000..6197325de --- /dev/null +++ b/ansible/files/gamma-config/plugins/ViaVersion/config.yml @@ -0,0 +1,229 @@ +# Thanks for downloading ViaVersion +# Ensure you look through all these options +# If you need help: +# Discord - https://viaversion.com/discord +# Docs - https://docs.viaversion.com/display/VIAVERSION/Configuration +# +#----------------------------------------------------------# +# GLOBAL OPTIONS # +#----------------------------------------------------------# +# +# Should ViaVersion check for updates? +checkforupdates: true +# Send the supported versions with the Status (Ping) response packet +send-supported-versions: false +# Easier to configure alternative to 'block-protocols'. Uses readable version strings with possible '<' and '>' prefixes. +# An example to block 1.16.4, everything below 1.16, as well as everything above 1.17.1 would be: ["<1.16", "1.16.4", ">1.17.1"] +# You can use both this and the block-protocols option at the same time as well. +block-versions: ["<1.20.5"] +# Block specific Minecraft protocol version numbers. +# List of all Minecraft protocol versions: https://wiki.vg/Protocol_version_numbers, or use a generator: https://via.krusic22.com +block-protocols: [] +# Change the blocked disconnect message +block-disconnect-msg: "You must use Minecraft version 1.20.5 or higher" +# If you use ProtocolLib, we can't reload without kicking the players. +# (We don't suggest using reload either, use a plugin manager) +# You can customise the message we kick people with if you use ProtocolLib here. +reload-disconnect-msg: "Server reload, please rejoin!" +# We warn when there's an error converting item and block data over versions, should we suppress these? (Only suggested if spamming) +suppress-conversion-warnings: false +# +#----------------------------------------------------------# +# BUNGEE OPTIONS # +#----------------------------------------------------------# +# +# BungeeCord allows you to have different server versions inside. +# Instead of you entering all the versions of these servers, we can ping them. +# +# What interval would you like us to ping at? (in seconds) +# Use -1 to disable. +bungee-ping-interval: 60 +# If the above is enabled, should we save the info to the config (in the section below) +bungee-ping-save: true +# To get a server's protocol, ViaVersion will do the following: +# Look for the server in the following section, then look for the last ping if bungee-ping is enabled +# otherwise use default. +# +# The format for the following is: +# servername: protocolversion +# You can find protocol ids on https://wiki.vg/Protocol_version_numbers +# It will use the default option if none found. +bungee-servers: {} +# +#----------------------------------------------------------# +# VELOCITY OPTIONS # +#----------------------------------------------------------# +# +# Velocity allows you to have different server versions inside. +# Instead of you entering all the versions of these servers, we can ping them. +# +# What interval would you like us to ping at? (in seconds) +# Use -1 to disable. +velocity-ping-interval: 60 +# If the above is enabled, should we save the info to the config (in the section below) +velocity-ping-save: true +# To get a server's protocol, ViaVersion will do the following: +# Look for the server in the following section, then look for the last ping if velocity-ping is enabled +# otherwise use default. +# +# The format for the following is: +# servername: protocolversion +# You can find protocol ids on https://wiki.vg/Protocol_version_numbers +# It will fall back to the default option if none found. +velocity-servers: {} +# +#----------------------------------------------------------# +# GLOBAL PACKET LIMITER # +#----------------------------------------------------------# +# THIS FEATURE IS DISABLED ON 1.17.1+ PAPER SERVERS, SINCE IT HAS A BETTER PACKET-LIMITER INBUILT +# +# Packets Per Second (PPS) limiter (Use -1 on max-pps and tracking-period to disable) +# Clients by default send around 20-90 packets per second. +# +# What is the maximum per second a client can send (Use %pps to display their pps) +# Use -1 to disable. +max-pps: 800 +max-pps-kick-msg: "You are sending too many packets!" +# +# We can also kick them if over a period they send over a threshold a certain amount of times. +# +# Period to track (in seconds) +# Use -1 to disable. +tracking-period: 6 +# How many packets per second counts as a warning +tracking-warning-pps: 120 +# How many warnings over the interval can we have +# This can never be higher than "tracking-period" +tracking-max-warnings: 4 +tracking-max-kick-msg: "You are sending too many packets, :(" +# +#----------------------------------------------------------# +# MULTIPLE VERSIONS OPTIONS # +#----------------------------------------------------------# +# +# Whether to make sure ViaVersion's UserConnection object is already available in the PlayerJoinEvent. +# You may disable this for faster startup/join time if you are 100% sure no plugin requires this. +register-userconnections-on-join: true +# Should we enable our hologram patch? +# If they're in the wrong place enable this +hologram-patch: false +# This is the offset, should work as default when enabled. +hologram-y: -0.96 +# Should we disable piston animation for 1.11/1.11.1 clients? +# In some cases when firing lots of pistons it crashes them. +piston-animation-patch: false +# Should we fix nbt for 1.12 and above clients in chat messages (causes invalid item) +chat-nbt-fix: true +# Experimental - Should we fix shift quick move action for 1.12 clients (causes shift + double click not to work when moving items) (only works on 1.8-1.11.2 bukkit based servers) +quick-move-action-fix: false +# Should we use prefix for team colour on 1.13 and above clients +team-colour-fix: true +# 1.13 introduced new auto complete which can trigger "Kicked for spamming" for servers older than 1.13, the following option will disable it completely. +disable-1_13-auto-complete: false +# The following option will delay the tab complete request in x ticks if greater than 0, if other tab-complete is received, the previous is cancelled +1_13-tab-complete-delay: 0 +# For 1.13 clients the smallest (1 layer) snow doesn't have collision, this will send these as 2 snowlayers for 1.13+ clients to prevent them bugging through them +fix-low-snow-collision: false +# Infested blocks are instantly breakable for 1.13+ clients, resulting in them being unable to break them on sub 1.13 servers. This remaps them to their normal stone variants +fix-infested-block-breaking: true +# In 1.14 the client page limit has been upped to 100 (from 50). Some anti-exploit plugins ban when clients go higher than 50. This option cuts edited books to 50 pages. +truncate-1_14-books: false +# This prevents clients using 1.9-1.13 on 1.8 servers from receiving no knockback/having velocity bugs whilst sneaking under a block. +change-1_9-hitbox: false +# Similar to the above, but for 1.14+ players on 1.8-1.13 servers. +# WARNING: This gives 1.14+ players the ability to sneak under blocks, that players under that version cannot (sneaking in places that are only 1.5 blocks high)! +# Another thing to remember is that those players might be missed by projectiles and other hits directed at the very top of their head whilst sneaking. +change-1_14-hitbox: false +# Fixes 1.14+ clients on sub 1.14 servers having a light value of 0 for non-full blocks. +fix-non-full-blocklight: true +# Fixes walk animation not shown when health is set to Float.NaN +fix-1_14-health-nan: true +# Should 1.15+ clients respawn instantly / without showing a death screen? +use-1_15-instant-respawn: false +# +# Enable serverside block-connections for 1.13+ clients - all the options in this section are built around this option +serverside-blockconnections: true +# Sets the method for the block connections (world for highly experimental (USE AT OWN RISK) world-level or packet for packet-level) +blockconnection-method: packet +# When activated, only the most important blocks are stored in the blockstorage. (fences, glass panes etc. won't connect to solid blocks) +reduce-blockstorage-memory: false +# When activated with serverside-blockconnections, flower parts with blocks above will be sent as stems +# Useful for lobbyservers where users can't build and those stems are used decoratively +flowerstem-when-block-above: false +# Vines that are not connected to blocks will be mapped to air, else 1.13+ would still be able to climb up on them. +vine-climb-fix: false +# +# Ignores incoming plugin channel messages of 1.16+ clients with channel names longer than 32 characters. +# CraftBukkit had this limit hardcoded until 1.16, so we have to assume any server/proxy might have this arbitrary check present. +ignore-long-1_16-channel-names: true +# +# Force 1.17+ client to accept the server resource pack; they will automatically disconnect if they decline. +forced-use-1_17-resource-pack: false +# The message to be displayed at the prompt when the 1.17+ client receives the server resource pack. +resource-pack-1_17-prompt: '' +# +# Caches light until chunks are unloaded to allow subsequent chunk update packets as opposed to instantly uncaching when the first chunk data is sent. +# Only disable this if you know what you are doing. +cache-1_17-light: true +# +# Force-update 1.19.4+ player's inventory when they try to swap armor in a pre-occupied slot. +armor-toggle-fix: true +# +# Get the world names which should be returned for each vanilla dimension +map-1_16-world-names: + overworld: "minecraft:overworld" + nether: "minecraft:the_nether" + end: "minecraft:the_end" +# +# If disabled, tamed cats will be displayed as ocelots to 1.14+ clients on 1.13 servers. Otherwise, ocelots (tamed and untamed) will be displayed as cats. +translate-ocelot-to-cat: false +# +# Determines the value sent to 1.19+ clients on join if currently not accessible by ViaVersion. +# It is not recommended to fake this value if your server is running 1.19 or later, as 1.20.5 have stricter chat handling and may get kicked otherwise. +enforce-secure-chat: false +# +#----------------------------------------------------------# +# 1.9+ CLIENTS ON 1.8 SERVERS OPTIONS # +#----------------------------------------------------------# +# +# No collide options, these allow you to configure how collision works. +# Do you want us to prevent collision? +prevent-collision: true +# If the above is true, should we automatically team players until you do? +auto-team: true +# When enabled if certain metadata can't be read we won't tell you about it +suppress-metadata-errors: false +# When enabled 1.9+ will be able to block by using shields +shield-blocking: true +# If this setting is active, the main hand is used instead of the off-hand to trigger the blocking of the player. +# With the main hand the blocking starts way faster. +# (Requires "show-shield-when-sword-in-hand" to be disabled) +no-delay-shield-blocking: false +# If this setting is active, the shield will appear immediately for 1.9+ when you hold a sword in your main hand. +# The shield disappears when you switch to another item. +# (Requires "shield-blocking" to be enabled) +show-shield-when-sword-in-hand: false +# Enable player tick simulation, this fixes eating, drinking, nether portals. +simulate-pt: true +# Should we use nms player to simulate packets, (may fix anti-cheat issues) +nms-player-ticking: true +# Should we patch boss bars so they work? (Default: true, disable if you're having issues) +bossbar-patch: true +# If your boss bar flickers on 1.9+, set this to 'true'. It will keep all boss bars on 100% (not recommended) +bossbar-anti-flicker: false +# This will show the new effect indicator in the top-right corner for 1.9+ players. +use-new-effect-indicator: true +# Show the new death messages for 1.9+ on the death screen +use-new-deathmessages: true +# Should we cache our items, this will prevent server from being lagged out, however the cost is a constant task caching items +item-cache: true +# Should we replace extended pistons to fix 1.10.1 (Only on chunk load) +replace-pistons: false +# What id should we replace with, default is air. (careful of players getting stuck standing on them) +replacement-piston-id: 0 +# Fix 1.9+ clients not rendering the far away chunks and improve chunk rendering when moving fast (Increases network usage and decreases client fps slightly) +chunk-border-fix: false +# Minimize the cooldown animation in 1.8 servers +minimize-cooldown: true +# Allows 1.9+ left-handedness (main hand) on 1.8 servers +left-handed-handling: true diff --git a/ansible/files/gamma-config/plugins/voicechat/voicechat-server.properties b/ansible/files/gamma-config/plugins/voicechat/voicechat-server.properties new file mode 100644 index 000000000..c25a038ca --- /dev/null +++ b/ansible/files/gamma-config/plugins/voicechat/voicechat-server.properties @@ -0,0 +1,50 @@ +# Simple Voice Chat server config v2.5.25 + +# The port number to use for the voice chat communication. +# Audio packets are always transmitted via the UDP protocol on the port number +# specified here, independently of other networking used for the game server. +# Set this to '-1' to use the same port number that is used by the Minecraft server. +# However, it is strongly recommended NOT to use the same port number because UDP on +# it is also used by default for the server query. Doing so may crash the server! +port=24454 +# The server IP address to bind the voice chat to +# Leave blank to use the 'server-ip' property from the 'server.properties' config file +# To bind to the wildcard IP address, use '*' +bind_address= +# The distance to which the voice can be heard +max_voice_distance=112.0 +# The multiplier of the voice distance when crouching +crouch_distance_multiplier=1.0 +# The multiplier of the voice distance when whispering +whisper_distance_multiplier=1.0 +# The Opus codec +# Valid values are 'VOIP', 'AUDIO', and 'RESTRICTED_LOWDELAY' +codec=VOIP +# The maximum size that audio packets are allowed to have (in bytes) +# Set this to a lower value if audio packets don't arrive +mtu_size=1024 +# The frequency at which keep-alive packets are sent (in milliseconds) +# Setting this to a higher value may result in timeouts +keep_alive=1000 +# If group chats are allowed +enable_groups=true +# The hostname that clients should use to connect to the voice chat +# This may also include a port, e.g. 'example.com:24454' +# Do NOT change this value if you don't know what you're doing +voice_host= +# If players are allowed to record the voice chat audio +allow_recording=false +# If spectators are allowed to talk to other players +spectator_interaction=true +# If spectators can talk to players they are spectating +spectator_player_possession=false +# If players without the voice chat mod should be kicked from the server +force_voice_chat=false +# The amount of time the server should wait to check if a player has the mod installed (in milliseconds) +# Only relevant when 'force_voice_chat' is set to 'true' +login_timeout=10000 +# The range in which the voice chat should broadcast audio +# A value less than 0 means 'max_voice_distance' +broadcast_range=-1.0 +# If the voice chat server should reply to external pings +allow_pings=true diff --git a/ansible/files/gamma-config/server-icon.png b/ansible/files/gamma-config/server-icon.png new file mode 100644 index 000000000..f8a6636a4 Binary files /dev/null and b/ansible/files/gamma-config/server-icon.png differ diff --git a/ansible/files/gamma-config/server.properties b/ansible/files/gamma-config/server.properties new file mode 100644 index 000000000..400263de4 --- /dev/null +++ b/ansible/files/gamma-config/server.properties @@ -0,0 +1,59 @@ +#Minecraft server properties +#Tue Mar 22 23:24:27 UTC 2022 +enable-jmx-monitoring=false +rcon.port=25575 +level-seed= +enable-command-block=true +gamemode=survival +enable-query=false +generator-settings={} +level-name=world +motd=You're a \u00A7l\u00A7abeautiful\u00A7r person. +query.port=25565 +texture-pack= +pvp=true +generate-structures=true +difficulty=hard +network-compression-threshold=256 +max-tick-time=60000 +require-resource-pack=false +max-players=115 +use-native-transport=true +online-mode=false +enable-status=true +allow-flight=false +broadcast-rcon-to-ops=true +view-distance=7 +max-build-height=256 +resource-pack-prompt= +server-ip= +allow-nether=true +server-port=25565 +enable-rcon=true +sync-chunk-writes=true +op-permission-level=4 +prevent-proxy-connections=false +hide-online-players=false +resource-pack= +entity-broadcast-range-percentage=100 +simulation-distance=3 +rcon.password=minecraft +player-idle-timeout=0 +force-gamemode=false +debug=false +rate-limit=0 +hardcore=false +white-list=${CIV_WHITELIST} +broadcast-console-to-ops=true +spawn-npcs=true +spawn-animals=true +snooper-enabled=true +function-permission-level=2 +level-type=default +text-filtering-config= +spawn-monsters=true +enforce-whitelist=true +enforce-secure-profile=false +resource-pack-sha1= +spawn-protection=0 +max-world-size=29999984 diff --git a/ansible/files/gamma-config/spigot.yml b/ansible/files/gamma-config/spigot.yml new file mode 100644 index 000000000..e71774b59 --- /dev/null +++ b/ansible/files/gamma-config/spigot.yml @@ -0,0 +1,174 @@ +# 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: false + sample-count: 12 + player-shuffle: 0 + user-cache-size: 1000 + save-user-cache-on-stop-only: false + moved-wrongly-threshold: 1.0625 + moved-too-quickly-multiplier: 50.0 + timeout-time: ${CIV_WATCHDOG_TIMEOUT_TIME} + restart-on-crash: false + restart-script: ./start.sh + netty-threads: 4 + attribute: + maxHealth: + max: 2048.0 + movementSpeed: + max: 2048.0 + attackDamage: + max: 2048.0 + log-villager-deaths: true + log-named-deaths: true + bungeecord: false +commands: + spam-exclusions: + - /skill + silent-commandblock-console: false + log: true + tab-complete: 0 + send-namespaced: true + replace-commands: + - setblock + - summon + - testforblock + - tellraw +world-settings: + default: + seed-nether: 30084232 + 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: 16 + monsters: 16 + raiders: 16 + misc: 16 + water: 16 + villagers: 16 + 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: 1 + villagers-every: 600 + villagers-for: 10 + flying-monsters-max-per-tick: 8 + flying-monsters-every: 200 + flying-monsters-for: 100 + villagers-work-immunity-after: 200 + villagers-work-immunity-for: 20 + villagers-active-for-panic: true + tick-inactive-villagers: false + ignore-spectators: false + entity-tracking-range: + players: 160 + animals: 32 + monsters: 32 + misc: 96 + other: 96 + ticks-per: + hopper-transfer: 16 + hopper-check: 8 + hopper-amount: 2 + 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 + wither-spawn-sound-radius: 0 + enable-zombie-pigmen-portal-spawns: false + item-despawn-rate: 6000 + view-distance: default + simulation-distance: default + thunder-chance: 10000 + arrow-despawn-rate: 100 + trident-despawn-rate: 100 + hanging-tick-frequency: 100 + zombie-aggressive-towards-villager: true + max-entity-collisions: 1 + nerf-spawner-mobs: true + mob-spawn-range: 3 + end-portal-sound-radius: 0 + worldeditregentempworld: + verbose: false +messages: + restart: Server is restarting + 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} +advancements: + disable-saving: false + disabled: + - minecraft:story/disabled +players: + disable-saving: false +config-version: 12 +stats: + disable-saving: false + forced-stats: {} diff --git a/ansible/files/paper-config/config/paper-world-defaults.yml b/ansible/files/paper-config/config/paper-world-defaults.yml index a8a5a8079..5a7c0766e 100644 --- a/ansible/files/paper-config/config/paper-world-defaults.yml +++ b/ansible/files/paper-config/config/paper-world-defaults.yml @@ -272,7 +272,7 @@ entities: maximum: default minimum: default tracking-range-y: - enabled: true + enabled: false animal: 64 display: 64 misc: default diff --git a/ansible/files/paper-config/plugins/RandomSpawn/worlds.yml b/ansible/files/paper-config/plugins/RandomSpawn/worlds.yml deleted file mode 100644 index bbd0fde0c..000000000 --- a/ansible/files/paper-config/plugins/RandomSpawn/worlds.yml +++ /dev/null @@ -1,337 +0,0 @@ -world: - randomspawnon: - - firstjoin - - respawn - # - bedrespawn - spawnpointson: - - firstjoin - - newplayer - keeprandomspawns: false - newplayertime: 3000 - spawnarea: - type: "circle" - radius: 7000 - spawnbyplayer: false - spawnbyplayerarea: - exclusionradius: 300 - radius: 900 - spawnblacklist: - - "WATER" # 8, 9 # water - - "LAVA" # 10, 11 # lava - - "FIRE" # 51 # fire - - "CACTUS" # 81 # cactus - - "OBSIDIAN" # 49 # obsidian - don't spawn in military infrastructure - - "BEDROCK" - - "MAGMA_BLOCK" - - "BLACK_CARPET" # 171 # carpet - don't spawn in military infrastructure - - "BLUE_CARPET" - - "BROWN_CARPET" - - "CYAN_CARPET" - - "GRAY_CARPET" - - "GREEN_CARPET" - - "LIGHT_BLUE_CARPET" - - "LIGHT_GRAY_CARPET" - - "LIME_CARPET" - - "MAGENTA_CARPET" - - "ORANGE_CARPET" - - "PINK_CARPET" - - "PURPLE_CARPET" - - "RED_CARPET" - - "WHITE_CARPET" - - "YELLOW_CARPET" - - "ACACIA_TRAPDOOR" - - "BIRCH_TRAPDOOR" - - "CRIMSON_TRAPDOOR" - - "DARK_OAK_TRAPDOOR" - - "IRON_TRAPDOOR" - - "JUNGLE_TRAPDOOR" - - "OAK_TRAPDOOR" - - "SPRUCE_TRAPDOOR" - - "WARPED_TRAPDOOR" - spawnpoints: - Amboise: #EVDan#1792 - x: 3524 - y: 250 # overridden in code, but must be set - z: -4276 - nearby: true # require another player nearby? - checkradius: 300 # require another player closer than this - radius: 50 # spawn area outer radius - exclusion: 0 # spawn area inner radius - Bloom: # EVDan - x: -4107 - y: 250 # overridden in code, but must be set - z: -5745 - nearby: true # require another player nearby? - checkradius: 300 # require another player closer than this - radius: 100 # spawn area outer radius - exclusion: 0 # spawn area inner radius - Commonwealth: # reffelruz#5046 - x: -4004 - y: 250 # overridden in code, but must be set - z: 102 - nearby: true # require another player nearby? - checkradius: 500 # require another player closer than this - radius: 100 # spawn area outer radius - exclusion: 0 # spawn area inner radius - Danzilona: # nobody - x: 5302 - y: 250 # overridden in code, but must be set - z: 4530 - nearby: true # require another player nearby? - checkradius: 500 # require another player closer than this - radius: 100 # spawn area outer radius - exclusion: 0 # spawn area inner radius - Icarus: # Zolo#7662 - x: -9110 - y: 250 # overridden in code, but must be set - z: -500 - nearby: true # require another player nearby? - checkradius: 500 # require another player closer than this - radius: 100 # spawn area outer radius - exclusion: 0 # spawn area inner radius - Icenia: # chrischrispie#7502 - x: -3800 - y: 250 # overridden in code, but must be set - z: -4330 - nearby: true # require another player nearby? - checkradius: 500 # require another player closer than this - radius: 100 # spawn area outer radius - exclusion: 0 # spawn area inner radius - IlaKyavul: # Caesar#5029 - x: 7051 - y: 250 # overridden in code, but must be set - z: 3412 - nearby: true # require another player nearby? - checkradius: 500 # require another player closer than this - radius: 100 # spawn area outer radius - exclusion: 0 # spawn area inner radius - Imperial Federation: #destroh. - x: -3312 - y: 250 # overridden in code, but must be set - z: 8063 - nearby: true # require another player nearby? - checkradius: 500 # require another player closer than this - radius: 100 # spawn area outer radius - exclusion: 0 # spawn area inner radius - Kallos: # Troll_bebek - x: 8301 - y: 250 # overridden in code, but must be set - z: 4563 - nearby: true # require another player nearby? - checkradius: 200 # require another player closer than this - radius: 50 # spawn area outer radius - exclusion: 0 # spawn area inner radius - Khalkedonia: # TophatAlexYt - x: 7940 - y: 250 # overridden in code, but must be set - z: -4664 - nearby: true # require another player nearby? - checkradius: 300 # require another player closer than this - radius: 70 # spawn area outer radius - exclusion: 0 # spawn area inner radius - Kingdom of Baile: # catiststudy - x: 2270 - y: 250 # overridden in code, but must be set - z: -9489 - nearby: true # require another player nearby? - checkradius: 500 # require another player closer than this - radius: 100 # spawn area outer radius - exclusion: 0 # spawn area inner radius - MtAugusta: # ComradeNick#9912 - x: 4632 - y: 250 # overridden in code, but must be set - z: -3033 - nearby: true # require another player nearby? - checkradius: 500 # require another player closer than this - radius: 250 # spawn area outer radius - exclusion: 150 # spawn area inner radius - Nara: # bronnakus#1195 - x: 3313 - y: 250 # overridden in code, but must be set - z: 4912 - nearby: true # require another player nearby? - checkradius: 600 # require another player closer than this - radius: 250 # spawn area outer radius - exclusion: 100 # spawn area inner radius - Nara: # Orestraya - x: 3764 - y: 250 # overridden in code, but must be set - z: 6985 - nearby: true # require another player nearby? - checkradius: 300 # require another player closer than this - radius: 20 # spawn area outer radius - exclusion: 0 # spawn area inner radius - Pacem: # Wheaties#7056 - x: -5214 - y: 250 # overridden in code, but must be set - z: -1074 - nearby: true # require another player nearby? - checkradius: 500 # require another player closer than this - radius: 100 # spawn area outer radius - exclusion: 0 # spawn area inner radius - Pavia: #roamingbrit - x: 913 - y: 250 # overridden in code, but must be set - z: -3041 - nearby: true # require another player nearby? - checkradius: 500 # require another player closer than this - radius: 30 # spawn area outer radius - exclusion: 0 # spawn area inner radius - Pridelands: # Gillilaeous#0662 - x: -2238 - y: 250 # overridden in code, but must be set - z: 9216 - nearby: true # require another player nearby? - checkradius: 900 # require another player closer than this - radius: 200 # spawn area outer radius - exclusion: 0 # spawn area inner radius - PrideRock: # Britisher#3253 - x: -2235 - y: 250 # overridden in code, but must be set - z: 9200 - nearby: true # require another player nearby? - checkradius: 300 # require another player closer than this - radius: 50 # spawn area outer radius - exclusion: 0 # spawn area inner radius - Qbarra: # Loobiz#1628 - x: 7058 - y: 250 # overridden in code, but must be set - z: 715 - nearby: true # require another player nearby? - checkradius: 200 # require another player closer than this - radius: 50 # spawn area outer radius - exclusion: 0 # spawn area inner radius - RepublicOfTransylvania: # TransylvaniaMan#4471 - x: 5344 - y: 250 # overridden in code, but must be set - z: 5627 - nearby: true # require another player nearby? - checkradius: 500 # require another player closer than this - radius: 100 # spawn area outer radius - exclusion: 0 # spawn area inner radius - Salerno: #israelinetanyahu - x: -7244 - y: 250 # overridden in code, but must be set - z: 4703 - nearby: true # require another player nearby? - checkradius: 300 # require another player closer than this - radius: 50 # spawn area outer radius - exclusion: 0 # spawn area inner radius - SPQR: # Antonius_Jones#1007 - x: 2950 - y: 250 # overridden in code, but must be set - z: -5550 - nearby: true # require another player nearby? - checkradius: 500 # require another player closer than this - radius: 100 # spawn area outer radius - exclusion: 0 # spawn area inner radius - Suramir: # #tuomasz - x: 14 - y: 250 # overridden in code, but must be set - z: -585 - nearby: true # require another player nearby? - checkradius: 500 # require another player closer than this - radius: 15 # spawn area outer radius - exclusion: 0 # spawn area inner radius - TemporalIsles: # dr_bacon_hair - x: -1808 - y: 250 # overridden in code, but must be set - z: -5851 - nearby: true # require another player nearby? - checkradius: 200 # require another player closer than this - radius: 100 # spawn area outer radius - exclusion: 0 # spawn area inner radius - The Papal States: # Antares - x: -6700 - y: 250 # overridden in code, but must be set - z: 625 - nearby: true # require another player nearby? - checkradius: 300 # require another player closer than this - radius: 50 # spawn area outer radius - exclusion: 0 # spawn area inner radius - Truidencia: # Hylian Cellist#8553 - x: 6681 - y: 250 # overridden in code, but must be set - z: 6376 - nearby: true # require another player nearby? - checkradius: 500 # require another player closer than this - radius: 100 # spawn area outer radius - exclusion: 0 # spawn area inner radius - Volterra: # Mickale#6186 - x: -1070 - y: 250 # overridden in code, but must be set - z: -1171 - nearby: true # require another player nearby? - checkradius: 500 # require another player closer than this - radius: 100 # spawn area outer radius - exclusion: 0 # spawn area inner radius - Winterbourne: # 795046514363727923 - x: -37 - y: 250 # overridden in code, but must be set - z: -7585 - nearby: true # require another player nearby? - checkradius: 500 # require another player closer than this - radius: 100 # spawn area outer radius - exclusion: 0 # spawn area inner radius - Yoahtl: # Solitaire7#3180 - x: 7478 - y: 250 # overridden in code, but must be set - z: -726 - nearby: true # require another player nearby? - checkradius: 500 # require another player closer than this - radius: 15 # spawn area outer radius - exclusion: 0 # spawn area inner radius -world_nether: - randomspawnon: - - respawn - keeprandomspawns: false - newplayertime: 3000 - spawnarea: - type: "circle" - radius: 9000 - spawnbyplayer: false - spawnbyplayerarea: - exclusionradius: 300 - radius: 900 - spawnblacklist: - - "WATER" # 8, 9 # water - - "LAVA" # 10, 11 # lava - # - 18 # leaves - - "FIRE" # 51 # fire - - "CACTUS" # 81 # cactus - - "OBSIDIAN" # 49 # obsidian - don't spawn in military infrastructure - - "BEDROCK" - - "MAGMA_BLOCK" - - "BLACK_CARPET" # 171 # carpet - don't spawn in military infrastructure - - "BLUE_CARPET" - - "BROWN_CARPET" - - "CYAN_CARPET" - - "GRAY_CARPET" - - "GREEN_CARPET" - - "LIGHT_BLUE_CARPET" - - "LIGHT_GRAY_CARPET" - - "LIME_CARPET" - - "MAGENTA_CARPET" - - "ORANGE_CARPET" - - "PINK_CARPET" - - "PURPLE_CARPET" - - "RED_CARPET" - - "WHITE_CARPET" - - "YELLOW_CARPET" - spawnpoints: -# Acadia: #SpacemanSpleef#0212 -# x: 3600 -# y: 250 # overridden in code, but must be set -# z: -9950 -# nearby: true # require another player nearby? -# checkradius: 900 # require another player closer than this -# radius: 200 # spawn area outer radius -# exclusion: 0 # spawn area inner radius -# Yoahtl: # @Aki#3250 -# x: -4989 -# y: 250 # overridden in code, but must be set -# z: 6887 -# nearby: true # require another player nearby? -# checkradius: 900 # require another player closer than this -# radius: 215 # spawn area outer radius -# exclusion: 78 # spawn area inner radius diff --git a/ansible/files/paper-config/plugins/Terra/addons/Terra-biome-provider-image-0.1.0-BETA+834404c47.jar b/ansible/files/paper-config/plugins/Terra/addons/Terra-biome-provider-image-0.1.0-BETA+834404c47.jar deleted file mode 100644 index 099da7759..000000000 Binary files a/ansible/files/paper-config/plugins/Terra/addons/Terra-biome-provider-image-0.1.0-BETA+834404c47.jar and /dev/null differ diff --git a/ansible/files/paper-config/plugins/Terra/addons/Terra-biome-provider-pipeline-0.1.0-BETA+834404c47.jar b/ansible/files/paper-config/plugins/Terra/addons/Terra-biome-provider-pipeline-0.1.0-BETA+834404c47.jar deleted file mode 100644 index fde064e84..000000000 Binary files a/ansible/files/paper-config/plugins/Terra/addons/Terra-biome-provider-pipeline-0.1.0-BETA+834404c47.jar and /dev/null differ diff --git a/ansible/files/paper-config/plugins/Terra/addons/Terra-biome-provider-single-0.1.0-BETA+834404c47.jar b/ansible/files/paper-config/plugins/Terra/addons/Terra-biome-provider-single-0.1.0-BETA+834404c47.jar deleted file mode 100644 index 87978a230..000000000 Binary files a/ansible/files/paper-config/plugins/Terra/addons/Terra-biome-provider-single-0.1.0-BETA+834404c47.jar and /dev/null differ diff --git a/ansible/files/paper-config/plugins/Terra/addons/Terra-chunk-generator-noise-3d-0.1.0-BETA+834404c47.jar b/ansible/files/paper-config/plugins/Terra/addons/Terra-chunk-generator-noise-3d-0.1.0-BETA+834404c47.jar deleted file mode 100644 index 1142f7a20..000000000 Binary files a/ansible/files/paper-config/plugins/Terra/addons/Terra-chunk-generator-noise-3d-0.1.0-BETA+834404c47.jar and /dev/null differ diff --git a/ansible/files/paper-config/plugins/Terra/addons/Terra-command-addons-0.1.0-BETA+834404c47.jar b/ansible/files/paper-config/plugins/Terra/addons/Terra-command-addons-0.1.0-BETA+834404c47.jar deleted file mode 100644 index 8de541f64..000000000 Binary files a/ansible/files/paper-config/plugins/Terra/addons/Terra-command-addons-0.1.0-BETA+834404c47.jar and /dev/null differ diff --git a/ansible/files/paper-config/plugins/Terra/addons/Terra-command-packs-0.1.0-BETA+834404c47.jar b/ansible/files/paper-config/plugins/Terra/addons/Terra-command-packs-0.1.0-BETA+834404c47.jar deleted file mode 100644 index 64f892c7e..000000000 Binary files a/ansible/files/paper-config/plugins/Terra/addons/Terra-command-packs-0.1.0-BETA+834404c47.jar and /dev/null differ diff --git a/ansible/files/paper-config/plugins/Terra/addons/Terra-command-profiler-0.1.0-BETA+834404c47.jar b/ansible/files/paper-config/plugins/Terra/addons/Terra-command-profiler-0.1.0-BETA+834404c47.jar deleted file mode 100644 index 7c33d8d38..000000000 Binary files a/ansible/files/paper-config/plugins/Terra/addons/Terra-command-profiler-0.1.0-BETA+834404c47.jar and /dev/null differ diff --git a/ansible/files/paper-config/plugins/Terra/addons/Terra-command-structures-0.1.0-BETA+834404c47.jar b/ansible/files/paper-config/plugins/Terra/addons/Terra-command-structures-0.1.0-BETA+834404c47.jar deleted file mode 100644 index 4ddd4c5f9..000000000 Binary files a/ansible/files/paper-config/plugins/Terra/addons/Terra-command-structures-0.1.0-BETA+834404c47.jar and /dev/null differ diff --git a/ansible/files/paper-config/plugins/Terra/addons/Terra-config-biome-0.1.0-BETA+834404c47.jar b/ansible/files/paper-config/plugins/Terra/addons/Terra-config-biome-0.1.0-BETA+834404c47.jar deleted file mode 100644 index 18bbb044c..000000000 Binary files a/ansible/files/paper-config/plugins/Terra/addons/Terra-config-biome-0.1.0-BETA+834404c47.jar and /dev/null differ diff --git a/ansible/files/paper-config/plugins/Terra/addons/Terra-config-distributors-0.1.0-BETA+834404c47.jar b/ansible/files/paper-config/plugins/Terra/addons/Terra-config-distributors-0.1.0-BETA+834404c47.jar deleted file mode 100644 index 7615f1363..000000000 Binary files a/ansible/files/paper-config/plugins/Terra/addons/Terra-config-distributors-0.1.0-BETA+834404c47.jar and /dev/null differ diff --git a/ansible/files/paper-config/plugins/Terra/addons/Terra-config-feature-0.1.0-BETA+834404c47.jar b/ansible/files/paper-config/plugins/Terra/addons/Terra-config-feature-0.1.0-BETA+834404c47.jar deleted file mode 100644 index 0485e2207..000000000 Binary files a/ansible/files/paper-config/plugins/Terra/addons/Terra-config-feature-0.1.0-BETA+834404c47.jar and /dev/null differ diff --git a/ansible/files/paper-config/plugins/Terra/addons/Terra-config-flora-0.1.0-BETA+834404c47.jar b/ansible/files/paper-config/plugins/Terra/addons/Terra-config-flora-0.1.0-BETA+834404c47.jar deleted file mode 100644 index e2877e4f1..000000000 Binary files a/ansible/files/paper-config/plugins/Terra/addons/Terra-config-flora-0.1.0-BETA+834404c47.jar and /dev/null differ diff --git a/ansible/files/paper-config/plugins/Terra/addons/Terra-config-locators-0.1.0-BETA+834404c47.jar b/ansible/files/paper-config/plugins/Terra/addons/Terra-config-locators-0.1.0-BETA+834404c47.jar deleted file mode 100644 index 74240e9e8..000000000 Binary files a/ansible/files/paper-config/plugins/Terra/addons/Terra-config-locators-0.1.0-BETA+834404c47.jar and /dev/null differ diff --git a/ansible/files/paper-config/plugins/Terra/addons/Terra-config-noise-function-0.1.0-BETA+834404c47.jar b/ansible/files/paper-config/plugins/Terra/addons/Terra-config-noise-function-0.1.0-BETA+834404c47.jar deleted file mode 100644 index bafd0b883..000000000 Binary files a/ansible/files/paper-config/plugins/Terra/addons/Terra-config-noise-function-0.1.0-BETA+834404c47.jar and /dev/null differ diff --git a/ansible/files/paper-config/plugins/Terra/addons/Terra-config-ore-0.1.0-BETA+e339b2665-all.jar b/ansible/files/paper-config/plugins/Terra/addons/Terra-config-ore-0.1.0-BETA+e339b2665-all.jar deleted file mode 100644 index 965551e26..000000000 Binary files a/ansible/files/paper-config/plugins/Terra/addons/Terra-config-ore-0.1.0-BETA+e339b2665-all.jar and /dev/null differ diff --git a/ansible/files/paper-config/plugins/Terra/addons/Terra-config-palette-0.1.0-BETA+834404c47.jar b/ansible/files/paper-config/plugins/Terra/addons/Terra-config-palette-0.1.0-BETA+834404c47.jar deleted file mode 100644 index 3bfb99e03..000000000 Binary files a/ansible/files/paper-config/plugins/Terra/addons/Terra-config-palette-0.1.0-BETA+834404c47.jar and /dev/null differ diff --git a/ansible/files/paper-config/plugins/Terra/addons/Terra-config-structure-0.1.0-BETA+834404c47.jar b/ansible/files/paper-config/plugins/Terra/addons/Terra-config-structure-0.1.0-BETA+834404c47.jar deleted file mode 100644 index f06371aa7..000000000 Binary files a/ansible/files/paper-config/plugins/Terra/addons/Terra-config-structure-0.1.0-BETA+834404c47.jar and /dev/null differ diff --git a/ansible/files/paper-config/plugins/Terra/addons/Terra-generation-stage-feature-0.1.0-BETA+834404c47.jar b/ansible/files/paper-config/plugins/Terra/addons/Terra-generation-stage-feature-0.1.0-BETA+834404c47.jar deleted file mode 100644 index c2c6363bc..000000000 Binary files a/ansible/files/paper-config/plugins/Terra/addons/Terra-generation-stage-feature-0.1.0-BETA+834404c47.jar and /dev/null differ diff --git a/ansible/files/paper-config/plugins/Terra/addons/Terra-generation-stage-structure-0.1.0-BETA+834404c47.jar b/ansible/files/paper-config/plugins/Terra/addons/Terra-generation-stage-structure-0.1.0-BETA+834404c47.jar deleted file mode 100644 index 303646a2a..000000000 Binary files a/ansible/files/paper-config/plugins/Terra/addons/Terra-generation-stage-structure-0.1.0-BETA+834404c47.jar and /dev/null differ diff --git a/ansible/files/paper-config/plugins/Terra/addons/Terra-language-yaml-0.1.0-BETA+834404c47.jar b/ansible/files/paper-config/plugins/Terra/addons/Terra-language-yaml-0.1.0-BETA+834404c47.jar deleted file mode 100644 index 1b3904161..000000000 Binary files a/ansible/files/paper-config/plugins/Terra/addons/Terra-language-yaml-0.1.0-BETA+834404c47.jar and /dev/null differ diff --git a/ansible/files/paper-config/plugins/Terra/addons/Terra-palette-block-shortcut-0.1.0-BETA+834404c47.jar b/ansible/files/paper-config/plugins/Terra/addons/Terra-palette-block-shortcut-0.1.0-BETA+834404c47.jar deleted file mode 100644 index db7d0fa07..000000000 Binary files a/ansible/files/paper-config/plugins/Terra/addons/Terra-palette-block-shortcut-0.1.0-BETA+834404c47.jar and /dev/null differ diff --git a/ansible/files/paper-config/plugins/Terra/addons/Terra-structure-block-shortcut-0.1.0-BETA+834404c47.jar b/ansible/files/paper-config/plugins/Terra/addons/Terra-structure-block-shortcut-0.1.0-BETA+834404c47.jar deleted file mode 100644 index f1922a44b..000000000 Binary files a/ansible/files/paper-config/plugins/Terra/addons/Terra-structure-block-shortcut-0.1.0-BETA+834404c47.jar and /dev/null differ diff --git a/ansible/files/paper-config/plugins/Terra/addons/Terra-structure-mutator-0.1.0-BETA+834404c47.jar b/ansible/files/paper-config/plugins/Terra/addons/Terra-structure-mutator-0.1.0-BETA+834404c47.jar deleted file mode 100644 index c97e12cc2..000000000 Binary files a/ansible/files/paper-config/plugins/Terra/addons/Terra-structure-mutator-0.1.0-BETA+834404c47.jar and /dev/null differ diff --git a/ansible/files/paper-config/plugins/Terra/addons/Terra-structure-sponge-loader-0.1.0-BETA+834404c47-all.jar b/ansible/files/paper-config/plugins/Terra/addons/Terra-structure-sponge-loader-0.1.0-BETA+834404c47-all.jar deleted file mode 100644 index 184ed5d9a..000000000 Binary files a/ansible/files/paper-config/plugins/Terra/addons/Terra-structure-sponge-loader-0.1.0-BETA+834404c47-all.jar and /dev/null differ diff --git a/ansible/files/paper-config/plugins/Terra/addons/Terra-structure-terrascript-loader-0.1.0-BETA+834404c47-all.jar b/ansible/files/paper-config/plugins/Terra/addons/Terra-structure-terrascript-loader-0.1.0-BETA+834404c47-all.jar deleted file mode 100644 index ad2fbb80e..000000000 Binary files a/ansible/files/paper-config/plugins/Terra/addons/Terra-structure-terrascript-loader-0.1.0-BETA+834404c47-all.jar and /dev/null differ diff --git a/ansible/files/paper-config/plugins/Terra/addons/Terra-terrascript-function-check-noise-3d-0.1.0-BETA+834404c47.jar b/ansible/files/paper-config/plugins/Terra/addons/Terra-terrascript-function-check-noise-3d-0.1.0-BETA+834404c47.jar deleted file mode 100644 index c84f0a18c..000000000 Binary files a/ansible/files/paper-config/plugins/Terra/addons/Terra-terrascript-function-check-noise-3d-0.1.0-BETA+834404c47.jar and /dev/null differ diff --git a/ansible/files/paper-config/plugins/Terra/addons/Terra-terrascript-function-sampler-0.1.0-BETA+834404c47.jar b/ansible/files/paper-config/plugins/Terra/addons/Terra-terrascript-function-sampler-0.1.0-BETA+834404c47.jar deleted file mode 100644 index 37ab74015..000000000 Binary files a/ansible/files/paper-config/plugins/Terra/addons/Terra-terrascript-function-sampler-0.1.0-BETA+834404c47.jar and /dev/null differ diff --git a/ansible/files/paper-config/plugins/Terra/addons/bootstrap/Terra-api-addon-loader-0.1.0-BETA+834404c47.jar b/ansible/files/paper-config/plugins/Terra/addons/bootstrap/Terra-api-addon-loader-0.1.0-BETA+834404c47.jar deleted file mode 100644 index e68205e03..000000000 Binary files a/ansible/files/paper-config/plugins/Terra/addons/bootstrap/Terra-api-addon-loader-0.1.0-BETA+834404c47.jar and /dev/null differ diff --git a/ansible/files/paper-config/plugins/Terra/addons/bootstrap/Terra-manifest-addon-loader-0.1.0-BETA+834404c47.jar b/ansible/files/paper-config/plugins/Terra/addons/bootstrap/Terra-manifest-addon-loader-0.1.0-BETA+834404c47.jar deleted file mode 100644 index e383e770e..000000000 Binary files a/ansible/files/paper-config/plugins/Terra/addons/bootstrap/Terra-manifest-addon-loader-0.1.0-BETA+834404c47.jar and /dev/null differ diff --git a/ansible/files/paper-config/plugins/Terra/config.yml b/ansible/files/paper-config/plugins/Terra/config.yml deleted file mode 100644 index 2c177f8ff..000000000 --- a/ansible/files/paper-config/plugins/Terra/config.yml +++ /dev/null @@ -1,20 +0,0 @@ -# This file contains core configuration options for Terra -# -# As you can see, there is not that much to configure here. -# For advanced configuration, use config packs. Config -# packs are loaded from the packs directory. Check the -# wiki for information regarding config pack development. - -debug: - commands: false - log: false - profiler: false - script: false -dump-default: true -biome-search-resolution: 4 -cache: - structure: 32 - sampler: 128 - biome-provider: 32 -script: - max-recursion: 1000 diff --git a/ansible/files/proxy-config/plugins/minimotd-velocity/extra-configs/gamma.conf b/ansible/files/proxy-config/plugins/minimotd-velocity/extra-configs/gamma.conf new file mode 100644 index 000000000..76c67e968 --- /dev/null +++ b/ansible/files/proxy-config/plugins/minimotd-velocity/extra-configs/gamma.conf @@ -0,0 +1,17 @@ +icon-enabled=false +motd-enabled=true +motds=[ + { + icon=random + line1="<#3bad4c>Building with more than just blocks." + line2="<#3ec0d1>Gamma server" + } +] +player-count-settings { + allow-exceeding-maximum=true + disable-player-list-hover=false + hide-player-count=false + max-players=115 + max-players-enabled=true + servers=[] +} diff --git a/ansible/files/proxy-config/plugins/minimotd-velocity/plugin_settings.conf b/ansible/files/proxy-config/plugins/minimotd-velocity/plugin_settings.conf index c467bc1d3..451c7da24 100644 --- a/ansible/files/proxy-config/plugins/minimotd-velocity/plugin_settings.conf +++ b/ansible/files/proxy-config/plugins/minimotd-velocity/plugin_settings.conf @@ -2,6 +2,7 @@ proxy-settings { virtual-host-configs { "${CIV_HOSTNAME}:25565"=main "${CIV_PVP_HOSTNAME}:25565"=pvp + "${CIV_GAMMA_HOSTNAME}:25565"=gamma } # Set whether to enable virtual host testing mode. # When enabled, MiniMOTD will print virtual host debug info to the console on each server ping. diff --git a/ansible/files/proxy-config/velocity.toml b/ansible/files/proxy-config/velocity.toml index a1fb366aa..ee8c623da 100644 --- a/ansible/files/proxy-config/velocity.toml +++ b/ansible/files/proxy-config/velocity.toml @@ -74,6 +74,7 @@ enable-player-address-logging = true # represents the IP address of the server to connect to. main = "paper:25565" pvp = "pvp:25565" +gamma = "gamma:25565" # In what order we should try servers when a player logs in or is kicked from a server. try = ["main"] @@ -86,6 +87,9 @@ try = ["main"] "${CIV_PVP_HOSTNAME}" = [ "pvp" ] +"${CIV_GAMMA_HOSTNAME}" = [ + "gamma" +] [advanced] # How large a Minecraft packet has to be before we compress it. Setting this to zero will diff --git a/ansible/playbooks/stop-server.yml b/ansible/playbooks/stop-server.yml index 401e488b8..3d7115420 100644 --- a/ansible/playbooks/stop-server.yml +++ b/ansible/playbooks/stop-server.yml @@ -6,6 +6,7 @@ servers: - pvp - paper + - gamma - proxy tasks: diff --git a/ansible/playbooks/update-server-gamma.yml b/ansible/playbooks/update-server-gamma.yml new file mode 100644 index 000000000..a9902e9e9 --- /dev/null +++ b/ansible/playbooks/update-server-gamma.yml @@ -0,0 +1,26 @@ +- name: Update Gamma Server + hosts: all + become: true + + vars: + servers: + - gamma + + tasks: + - name: Update Serer | Include Preflight + include_tasks: ../tasks/preflight-checks.yml + + - name: Update Server | Expand setting + include_tasks: ../tasks/expand-setting.yml + + - name: Update Server | Include Stop Tasks + include_tasks: + file: '../tasks/stop-server.yml' + + - name: Update Server | Include Deployment Tasks + include_tasks: + file: '../tasks/deploy/{{deploy_task}}.yml' + loop: + - stacks + loop_control: + loop_var: deploy_task diff --git a/ansible/playbooks/update-server-minecraft.yml b/ansible/playbooks/update-server-minecraft.yml index 8ce75b24d..99b0f7e63 100644 --- a/ansible/playbooks/update-server-minecraft.yml +++ b/ansible/playbooks/update-server-minecraft.yml @@ -6,6 +6,7 @@ servers: - pvp - paper + - gamma - proxy tasks: diff --git a/ansible/playbooks/update-server.yml b/ansible/playbooks/update-server.yml index d6e62b6e9..360fb7691 100644 --- a/ansible/playbooks/update-server.yml +++ b/ansible/playbooks/update-server.yml @@ -6,6 +6,7 @@ servers: - pvp - paper + - gamma - proxy tasks: diff --git a/ansible/src/gamma-plugins/BreweryX-3.4.10.jar b/ansible/src/gamma-plugins/BreweryX-3.4.10.jar new file mode 120000 index 000000000..bf74be707 --- /dev/null +++ b/ansible/src/gamma-plugins/BreweryX-3.4.10.jar @@ -0,0 +1 @@ +../paper-plugins/BreweryX-3.4.10.jar \ No newline at end of file diff --git a/ansible/src/gamma-plugins/Chunky-Bukkit-1.4.40.jar b/ansible/src/gamma-plugins/Chunky-Bukkit-1.4.40.jar new file mode 120000 index 000000000..2f5606678 --- /dev/null +++ b/ansible/src/gamma-plugins/Chunky-Bukkit-1.4.40.jar @@ -0,0 +1 @@ +../paper-plugins/Chunky-Bukkit-1.4.40.jar \ No newline at end of file diff --git a/ansible/src/gamma-plugins/ChunkyBorder-Bukkit-1.2.23.jar b/ansible/src/gamma-plugins/ChunkyBorder-Bukkit-1.2.23.jar new file mode 120000 index 000000000..fa897952b --- /dev/null +++ b/ansible/src/gamma-plugins/ChunkyBorder-Bukkit-1.2.23.jar @@ -0,0 +1 @@ +../paper-plugins/ChunkyBorder-Bukkit-1.2.23.jar \ No newline at end of file diff --git a/ansible/src/gamma-plugins/Clearlag-3.2.2.jar b/ansible/src/gamma-plugins/Clearlag-3.2.2.jar new file mode 120000 index 000000000..f340971c3 --- /dev/null +++ b/ansible/src/gamma-plugins/Clearlag-3.2.2.jar @@ -0,0 +1 @@ +../paper-plugins/Clearlag-3.2.2.jar \ No newline at end of file diff --git a/ansible/src/gamma-plugins/CraftEnhance-2.6.0.0.jar b/ansible/src/gamma-plugins/CraftEnhance-2.6.0.0.jar new file mode 120000 index 000000000..64dd16e2a --- /dev/null +++ b/ansible/src/gamma-plugins/CraftEnhance-2.6.0.0.jar @@ -0,0 +1 @@ +../paper-plugins/CraftEnhance-2.6.0.0.jar \ No newline at end of file diff --git a/ansible/src/gamma-plugins/EntityDetection-1.2.0.jar b/ansible/src/gamma-plugins/EntityDetection-1.2.0.jar new file mode 120000 index 000000000..26de24c8f --- /dev/null +++ b/ansible/src/gamma-plugins/EntityDetection-1.2.0.jar @@ -0,0 +1 @@ +../paper-plugins/EntityDetection-1.2.0.jar \ No newline at end of file diff --git a/ansible/src/gamma-plugins/GEmote-1.0.1.jar b/ansible/src/gamma-plugins/GEmote-1.0.1.jar new file mode 120000 index 000000000..d86ea8e52 --- /dev/null +++ b/ansible/src/gamma-plugins/GEmote-1.0.1.jar @@ -0,0 +1 @@ +../paper-plugins/GEmote-1.0.1.jar \ No newline at end of file diff --git a/ansible/src/gamma-plugins/GSit-2.4.3.jar b/ansible/src/gamma-plugins/GSit-2.4.3.jar new file mode 120000 index 000000000..ff4ae545b --- /dev/null +++ b/ansible/src/gamma-plugins/GSit-2.4.3.jar @@ -0,0 +1 @@ +../paper-plugins/GSit-2.4.3.jar \ No newline at end of file diff --git a/ansible/src/gamma-plugins/Insights-6.19.7.jar b/ansible/src/gamma-plugins/Insights-6.19.7.jar new file mode 120000 index 000000000..84a42c6f0 --- /dev/null +++ b/ansible/src/gamma-plugins/Insights-6.19.7.jar @@ -0,0 +1 @@ +../paper-plugins/Insights-6.19.7.jar \ No newline at end of file diff --git a/ansible/src/gamma-plugins/InvSee++.jar b/ansible/src/gamma-plugins/InvSee++.jar new file mode 120000 index 000000000..77760a065 --- /dev/null +++ b/ansible/src/gamma-plugins/InvSee++.jar @@ -0,0 +1 @@ +../paper-plugins/InvSee++.jar \ No newline at end of file diff --git a/ansible/src/gamma-plugins/JoinBypass-1.0.jar b/ansible/src/gamma-plugins/JoinBypass-1.0.jar new file mode 120000 index 000000000..934b57a82 --- /dev/null +++ b/ansible/src/gamma-plugins/JoinBypass-1.0.jar @@ -0,0 +1 @@ +../paper-plugins/JoinBypass-1.0.jar \ No newline at end of file diff --git a/ansible/src/gamma-plugins/LuckPerms-Bukkit-5.5.10.jar b/ansible/src/gamma-plugins/LuckPerms-Bukkit-5.5.10.jar new file mode 120000 index 000000000..3fb76ec1e --- /dev/null +++ b/ansible/src/gamma-plugins/LuckPerms-Bukkit-5.5.10.jar @@ -0,0 +1 @@ +../paper-plugins/LuckPerms-Bukkit-5.5.10.jar \ No newline at end of file diff --git a/ansible/src/gamma-plugins/ProtocolLib.jar b/ansible/src/gamma-plugins/ProtocolLib.jar new file mode 120000 index 000000000..5f5fba007 --- /dev/null +++ b/ansible/src/gamma-plugins/ProtocolLib.jar @@ -0,0 +1 @@ +../paper-plugins/ProtocolLib.jar \ No newline at end of file diff --git a/ansible/src/gamma-plugins/SuperVanish-6.2.20.jar b/ansible/src/gamma-plugins/SuperVanish-6.2.20.jar new file mode 120000 index 000000000..0064e1eab --- /dev/null +++ b/ansible/src/gamma-plugins/SuperVanish-6.2.20.jar @@ -0,0 +1 @@ +../paper-plugins/SuperVanish-6.2.20.jar \ No newline at end of file diff --git a/ansible/src/gamma-plugins/TAB v5.2.5.jar b/ansible/src/gamma-plugins/TAB v5.2.5.jar new file mode 120000 index 000000000..8f6e4d480 --- /dev/null +++ b/ansible/src/gamma-plugins/TAB v5.2.5.jar @@ -0,0 +1 @@ +../paper-plugins/TAB v5.2.5.jar \ No newline at end of file diff --git a/ansible/src/gamma-plugins/Vault.jar b/ansible/src/gamma-plugins/Vault.jar new file mode 120000 index 000000000..355dbc7d6 --- /dev/null +++ b/ansible/src/gamma-plugins/Vault.jar @@ -0,0 +1 @@ +../paper-plugins/Vault.jar \ No newline at end of file diff --git a/ansible/src/gamma-plugins/ViaBackwards-5.4.3-SNAPSHOT.jar b/ansible/src/gamma-plugins/ViaBackwards-5.4.3-SNAPSHOT.jar new file mode 120000 index 000000000..b13bf0f31 --- /dev/null +++ b/ansible/src/gamma-plugins/ViaBackwards-5.4.3-SNAPSHOT.jar @@ -0,0 +1 @@ +../paper-plugins/ViaBackwards-5.4.3-SNAPSHOT.jar \ No newline at end of file diff --git a/ansible/src/gamma-plugins/ViaVersion-5.5.0-SNAPSHOT.jar b/ansible/src/gamma-plugins/ViaVersion-5.5.0-SNAPSHOT.jar new file mode 120000 index 000000000..f754b8b7e --- /dev/null +++ b/ansible/src/gamma-plugins/ViaVersion-5.5.0-SNAPSHOT.jar @@ -0,0 +1 @@ +../paper-plugins/ViaVersion-5.5.0-SNAPSHOT.jar \ No newline at end of file diff --git a/ansible/src/gamma-plugins/Votifier-2.7.3.jar b/ansible/src/gamma-plugins/Votifier-2.7.3.jar new file mode 120000 index 000000000..14c472624 --- /dev/null +++ b/ansible/src/gamma-plugins/Votifier-2.7.3.jar @@ -0,0 +1 @@ +../paper-plugins/Votifier-2.7.3.jar \ No newline at end of file diff --git a/ansible/src/gamma-plugins/WorldEditSelectionVisualizer-2.1.8.jar b/ansible/src/gamma-plugins/WorldEditSelectionVisualizer-2.1.8.jar new file mode 120000 index 000000000..e31bc1a7d --- /dev/null +++ b/ansible/src/gamma-plugins/WorldEditSelectionVisualizer-2.1.8.jar @@ -0,0 +1 @@ +../paper-plugins/WorldEditSelectionVisualizer-2.1.8.jar \ No newline at end of file diff --git a/ansible/src/gamma-plugins/aqua-1.1.1.jar b/ansible/src/gamma-plugins/aqua-1.1.1.jar new file mode 120000 index 000000000..6ce855a19 --- /dev/null +++ b/ansible/src/gamma-plugins/aqua-1.1.1.jar @@ -0,0 +1 @@ +../paper-plugins/aqua-1.1.1.jar \ No newline at end of file diff --git a/ansible/src/gamma-plugins/even-more-fish-2.0.8.jar b/ansible/src/gamma-plugins/even-more-fish-2.0.8.jar new file mode 120000 index 000000000..835ce2bb5 --- /dev/null +++ b/ansible/src/gamma-plugins/even-more-fish-2.0.8.jar @@ -0,0 +1 @@ +../paper-plugins/even-more-fish-2.0.8.jar \ No newline at end of file diff --git a/ansible/src/gamma-plugins/orebfuscator-plugin-5.5.4.jar b/ansible/src/gamma-plugins/orebfuscator-plugin-5.5.4.jar new file mode 120000 index 000000000..697da6fe1 --- /dev/null +++ b/ansible/src/gamma-plugins/orebfuscator-plugin-5.5.4.jar @@ -0,0 +1 @@ +../paper-plugins/orebfuscator-plugin-5.5.4.jar \ No newline at end of file diff --git a/ansible/src/gamma-plugins/voicechat-bukkit-2.5.35.jar b/ansible/src/gamma-plugins/voicechat-bukkit-2.5.35.jar new file mode 120000 index 000000000..fbcb123b6 --- /dev/null +++ b/ansible/src/gamma-plugins/voicechat-bukkit-2.5.35.jar @@ -0,0 +1 @@ +../paper-plugins/voicechat-bukkit-2.5.35.jar \ No newline at end of file diff --git a/ansible/src/gamma-plugins/worldedit-bukkit-7.3.16.jar b/ansible/src/gamma-plugins/worldedit-bukkit-7.3.16.jar new file mode 120000 index 000000000..0f32ace36 --- /dev/null +++ b/ansible/src/gamma-plugins/worldedit-bukkit-7.3.16.jar @@ -0,0 +1 @@ +../paper-plugins/worldedit-bukkit-7.3.16.jar \ No newline at end of file diff --git a/ansible/tasks/deploy/stacks.yml b/ansible/tasks/deploy/stacks.yml index b341a0bb3..77866e185 100644 --- a/ansible/tasks/deploy/stacks.yml +++ b/ansible/tasks/deploy/stacks.yml @@ -29,6 +29,7 @@ loop: - { path: '/opt/stacks/minecraft/paper-data', enabled: 'setting.minecraft.enabled and "''paper''" in servers' } - { path: '/opt/stacks/minecraft/pvp-data', enabled: 'setting.minecraft.enabled and "''pvp''" in servers' } + - { path: '/opt/stacks/minecraft/gamma-data', enabled: 'setting.minecraft.enabled and "''gamma''" in servers' } - { path: '/opt/stacks/minecraft/mariadb-data', enabled: setting.minecraft.enabled } - { path: '/opt/stacks/minecraft/postgres-data', enabled: setting.minecraft.enabled } diff --git a/ansible/tasks/start-server.yml b/ansible/tasks/start-server.yml index fda385111..98e776db0 100644 --- a/ansible/tasks/start-server.yml +++ b/ansible/tasks/start-server.yml @@ -5,6 +5,12 @@ - setting.minecraft.enabled command: docker service scale minecraft_paper=1 +- name: Start Server | Start Gamma + when: + - "'swarm_manager' in group_names" + - setting.minecraft.enabled + command: docker service scale minecraft_gamma=1 + - name: Start Server | Start PvP when: - "'swarm_manager' in group_names" diff --git a/ansible/tasks/stop-server.yml b/ansible/tasks/stop-server.yml index b92e0e65e..b5d841d7c 100644 --- a/ansible/tasks/stop-server.yml +++ b/ansible/tasks/stop-server.yml @@ -13,6 +13,14 @@ - setting.minecraft.enabled command: docker service scale minecraft_paper=0 +- name: Stop Server | Stop Gamma + when: + - "'swarm_manager' in group_names" + - "'gamma' in servers" + - setting.minecraft.enabled + ignore_errors: true + command: docker service scale minecraft_gamma=0 + - name: Stop Server | Stop PvP when: - "'swarm_manager' in group_names" diff --git a/ansible/templates/stacks/minecraft.yml.j2 b/ansible/templates/stacks/minecraft.yml.j2 index 8ebf8c00c..5e5bc18d9 100644 --- a/ansible/templates/stacks/minecraft.yml.j2 +++ b/ansible/templates/stacks/minecraft.yml.j2 @@ -34,6 +34,7 @@ services: CIV_FORWARDING_SECRET: '{{secret.minecraft.forwarding_secret}}' CIV_TIMEOUT_TIME: 30000 CIV_PVP_HOSTNAME: '{{setting.minecraft.pvp_hostname}}' + CIV_GAMMA_HOSTNAME: '{{setting.minecraft.gamma_hostname}}' CIV_HOSTNAME: '{{setting.minecraft.hostname}}' deploy: placement: @@ -144,6 +145,105 @@ services: limits: memory: '{{setting.minecraft.resources.memory_limit}}' + gamma: + image: itzg/minecraft-server:stable-java24-graalvm + restart: unless-stopped + tty: true + stdin_open: true + stop_grace_period: 60m + networks: + - minecraft_default + ports: + - target: 8192 + published: 8192 + protocol: tcp + mode: host + - target: 5004 + published: 5004 + protocol: tcp + mode: host + environment: + TYPE: 'paper' + VERSION: '1.21.8' + EULA: 'TRUE' + PAPER_CUSTOM_JAR: 'civpaper.jar' + + REMOVE_OLD_MODS: 'TRUE' + COPY_CONFIG_DEST: '/data' + SYNC_SKIP_NEWER_IN_DESTINATION: 'false' + REPLACE_ENV_DURING_SYNC: 'TRUE' + REPLACE_ENV_VARIABLE_PREFIX: 'CIV' + + INIT_MEMORY: '{{setting.minecraft.resources.gamma_memory}}' + MAX_MEMORY: '{{setting.minecraft.resources.gamma_memory}}' + USE_AIKAR_FLAGS: 'TRUE' + STOP_DURATION: 3600 + + CIV_SERVER_NAME: prod-server +{% if setting.minecraft.gamma_whitelist %} + ENABLE_WHITELIST: 'true' + CIV_WHITELIST: 'true' +{% else %} + ENABLE_WHITELIST: 'false' + CIV_WHITELIST: 'false' +{% endif %} + + CIV_WORDBANK_SEED: '{{secret.minecraft.gamma_wordbank_seed}}' + CIV_HIDDENORE_DENSITY_SEED: '{{ secret.minecraft.gamma_hiddenore_density_seed }}' + CIV_HIDDENORE_HEIGHT_SEED: '{{ secret.minecraft.gamma_hiddenore_height_seed }}' + + CIV_MYSQL_HOST: minecraft_mariadb + CIV_MYSQL_USERNAME: '{{secret.minecraft.mysql.username}}' + CIV_MYSQL_PASSWORD: '{{secret.minecraft.mysql.password}}' + + CIV_POSTGRES_HOST: minecraft_postgres + CIV_POSTGRES_USERNAME: '{{secret.minecraft.postgres.username}}' + CIV_POSTGRES_PASSWORD: '{{secret.minecraft.postgres.password}}' + + CIV_DATABASE_PREFIX: 'gamma_' + + CIV_RABBITMQ_HOST: minecraft_rabbitmq + CIV_RABBITMQ_USERNAME: rabbitmq + CIV_RABBITMQ_PASSWORD: '{{secret.minecraft.rabbitmq.password}}' + + CIV_WATCHDOG_TIMEOUT_TIME: 60 + CIV_FORWARDING_SECRET: '{{secret.minecraft.forwarding_secret}}' + + JVM_OPTS: -agentpath:./libti.so + volumes: + # Persistence + - /opt/stacks/minecraft/gamma-data:/data + # Config & Plugins + - /opt/stacks/minecraft/gamma-config:/config + - /opt/stacks/minecraft/gamma-plugins:/plugins + # Private Config & Plugins + - /opt/PrivateConfig/gamma/config/RealisticBiomes/config.yml:/config/plugins/RealisticBiomes/config.yml + - /opt/PrivateConfig/gamma/config/HiddenOre/config.yml:/config/plugins/HiddenOre/worlds.yml + - /opt/PrivateConfig/gamma/config/RandomSpawn/worlds.yml:/config/plugins/RandomSpawn/worlds.yml + - /opt/PrivateConfig/gamma/config/Heliodor/config.yml:/config/gamma/Heliodor/config.yml + - /opt/PrivateConfig/paper/plugins/Vulcan.jar:/config/plugins/Vulcan.jar + - /opt/PrivateConfig/paper/plugins/packetevents-spigot-2.9.4.jar:/config/plugins/packetevents-spgiot-2.9.4.jar + - /opt/PrivateConfig/paper/config/Vulcan/config.yml:/config/plugins/Vulcan/config.yml + - /opt/PrivateConfig/paper/config/HiddenOre/config.yml:/config/plugins/HiddenOre/config.yml + - /opt/PrivateConfig/paper/config/BreweryX/config.yml:/config/plugins/BreweryX/config.yml + - /opt/PrivateConfig/paper/config/BreweryX/cauldron.yml:/config/plugins/BreweryX/cauldron.yml + - /opt/PrivateConfig/paper/config/BreweryX/custom-items.yml:/config/plugins/BreweryX/custom-items.yml + - /opt/PrivateConfig/paper/config/BreweryX/recipes.yml:/config/plugins/BreweryX/recipes.yml + - /opt/PrivateConfig/paper/config/Votifier/config.yml:/config/plugins/Votifier/config.yml + - /opt/PrivateConfig/paper/config/Votifier/rsa/public.key:/config/plugins/Votifier/rsa/public.key + - /opt/PrivateConfig/paper/config/Votifier/rsa/private.key:/config/plugins/Votifier/rsa/private.key + - /opt/PrivateConfig/paper/config/EvenMoreFish/baits.yml:/config/plugins/EvenMoreFish/baits.yml + - /opt/PrivateConfig/paper/config/EvenMoreFish/fish.yml:/config/plugins/EvenMoreFish/fish.yml + - /opt/PrivateConfig/paper/config/EvenMoreFish/rarities.yml:/config/plugins/EvenMoreFish/rarities.yml + - /opt/PrivateConfig/paper/config/EvenMoreFish/competitions.yml:/config/plugins/EvenMoreFish/competitions.yml + + deploy: + placement: + constraints: [node.role == manager] + resources: + limits: + memory: '{{setting.minecraft.resources.gamma_memory_limit}}' + pvp: image: itzg/minecraft-server:stable-java24-graalvm restart: unless-stopped diff --git a/ansible/variables/settings.yml b/ansible/variables/settings.yml index b72d2a854..5662467f1 100644 --- a/ansible/variables/settings.yml +++ b/ansible/variables/settings.yml @@ -9,13 +9,17 @@ settings: enabled: true whitelist: false pvp_whitelist: false + gamma_whitelist: false pvp_hostname: 'pvp.civmc.net' hostname: 'play.civmc.net' + gamma_hostname: 'gamma.civmc.net' resources: &default_minecraft_resources memory: 40G memory_limit: 50G pvp_memory: 10G pvp_memory_limit: 13G + gamma_memory: 23G + gamma_memory_limit: 26G # Optional Stacks auth: enabled: false @@ -37,14 +41,17 @@ settings: <<: *default_minecraft whitelist: true pvp_whitelist: true + gamma_hostname: 'gamma-test.civmc.net' pvp_hostname: 'pvp-test.civmc.net' hostname: 'test.civmc.net' resources: <<: *default_minecraft_resources - memory: 6G - memory_limit: 8G - pvp_memory: 7G - pvp_memory_limit: 9G + memory: 4G + memory_limit: 6G + pvp_memory: 3G + pvp_memory_limit: 5G + gamma_memory: 4G + gamma_memory_limit: 6G auth: enabled: true # TODO: MOVE maven: diff --git a/containers/provisioning/mariadb/docker-entrypoint-initdb.d/0100_create_databases.sql b/containers/provisioning/mariadb/docker-entrypoint-initdb.d/0100_create_databases.sql index eb0852701..08b8cfad1 100644 --- a/containers/provisioning/mariadb/docker-entrypoint-initdb.d/0100_create_databases.sql +++ b/containers/provisioning/mariadb/docker-entrypoint-initdb.d/0100_create_databases.sql @@ -35,3 +35,29 @@ CREATE DATABASE pvp_kitpvp; GRANT ALL PRIVILEGES ON `pvp_civduties`.* TO 'mariadb'@'%'; GRANT ALL PRIVILEGES ON `pvp_civmodcore`.* TO 'mariadb'@'%'; GRANT ALL PRIVILEGES ON `pvp_kitpvp`.* TO 'mariadb'@'%'; + +CREATE DATABASE gamma_civduties; +CREATE DATABASE gamma_civmodcore; +CREATE DATABASE gamma_kitpvp; +CREATE DATABASE gamma_bastion; +CREATE DATABASE gamma_castlegates; +CREATE DATABASE gamma_citadel; +CREATE DATABASE gamma_civchat2; +CREATE DATABASE gamma_donum; +CREATE DATABASE gamma_essenceglue; +CREATE DATABASE gamma_jukealert; +CREATE DATABASE gamma_heliodor; +CREATE DATABASE gamma_realisticbiomes; + +GRANT ALL PRIVILEGES ON `gamma_civduties`.* TO 'mariadb'@'%'; +GRANT ALL PRIVILEGES ON `gamma_civmodcore`.* TO 'mariadb'@'%'; +GRANT ALL PRIVILEGES ON `gamma_kitpvp`.* TO 'mariadb'@'%'; +GRANT ALL PRIVILEGES ON `gamma_bastion`.* TO 'mariadb'@'%'; +GRANT ALL PRIVILEGES ON `gamma_castlegates`.* TO 'mariadb'@'%'; +GRANT ALL PRIVILEGES ON `gamma_citadel`.* TO 'mariadb'@'%'; +GRANT ALL PRIVILEGES ON `gamma_civchat2`.* TO 'mariadb'@'%'; +GRANT ALL PRIVILEGES ON `gamma_donum`.* TO 'mariadb'@'%'; +GRANT ALL PRIVILEGES ON `gamma_essenceglue`.* TO 'mariadb'@'%'; +GRANT ALL PRIVILEGES ON `gamma_jukealert`.* TO 'mariadb'@'%'; +GRANT ALL PRIVILEGES ON `gamma_heliodor`.* TO 'mariadb'@'%'; +GRANT ALL PRIVILEGES ON `gamma_realisticbiomes`.* TO 'mariadb'@'%'; diff --git a/docker-compose.yml b/docker-compose.yml index 72da751ee..55f8433f2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -32,6 +32,7 @@ services: CIV_TIMEOUT_TIME: 3000000 CIV_PVP_HOSTNAME: 'pvp.localhost' + CIV_GAMMA_HOSTNAME: 'gamma.localhost' CIV_HOSTNAME: 'main.localhost' CIV_FORWARDING_SECRET: '1234' @@ -98,6 +99,61 @@ services: - ./ansible/files/paper-config:/config - ./ansible/build/paper-plugins:/plugins + gamma: + image: itzg/minecraft-server:stable-java24-graalvm + restart: unless-stopped + tty: true + stdin_open: true + depends_on: + mariadb: + condition: service_healthy + postgres: + condition: service_healthy + rabbitmq: + condition: service_healthy + environment: + TYPE: 'paper' + VERSION: '1.21.8' + EULA: 'TRUE' + PAPER_CUSTOM_JAR: 'civpaper.jar' + + REMOVE_OLD_MODS: 'TRUE' + COPY_CONFIG_DEST: '/data' + SYNC_SKIP_NEWER_IN_DESTINATION: 'false' + REPLACE_ENV_DURING_SYNC: 'TRUE' + REPLACE_ENV_VARIABLE_PREFIX: 'CIV' + + INIT_MEMORY: 1G + MAX_MEMORY: 3G + + CIV_SERVER_NAME: local + + CIV_WORDBANK_SEED: wordbank + + CIV_MYSQL_HOST: mariadb + CIV_MYSQL_USERNAME: mariadb + CIV_MYSQL_PASSWORD: mariadb + + CIV_POSTGRES_HOST: postgres + CIV_POSTGRES_USERNAME: postgres + CIV_POSTGRES_PASSWORD: postgres + + CIV_DATABASE_PREFIX: 'gamma_' + + CIV_RABBITMQ_HOST: rabbitmq + CIV_RABBITMQ_USERNAME: rabbitmq + CIV_RABBITMQ_PASSWORD: rabbitmq + + JVM_OPTS: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5007 + CIV_WATCHDOG_TIMEOUT_TIME: 6000 + CIV_FORWARDING_SECRET: '1234' + ports: + - "5007:5007" + volumes: + - ./containers/data/gamma:/data + - ./ansible/files/gamma-config:/config + - ./ansible/build/gamma-plugins:/plugins + pvp: image: itzg/minecraft-server:stable-java24-graalvm restart: unless-stopped @@ -123,7 +179,7 @@ services: REPLACE_ENV_VARIABLE_PREFIX: 'CIV' INIT_MEMORY: 1G - MAX_MEMORY: 5G + MAX_MEMORY: 3G CIV_SERVER_NAME: local diff --git a/plugins/realisticbiomes-paper/src/main/java/com/untamedears/realisticbiomes/commands/Menu.java b/plugins/realisticbiomes-paper/src/main/java/com/untamedears/realisticbiomes/commands/Menu.java index e70ce244b..0924ba8aa 100644 --- a/plugins/realisticbiomes-paper/src/main/java/com/untamedears/realisticbiomes/commands/Menu.java +++ b/plugins/realisticbiomes-paper/src/main/java/com/untamedears/realisticbiomes/commands/Menu.java @@ -7,6 +7,8 @@ import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Optional; import co.aikar.commands.annotation.Syntax; import com.untamedears.realisticbiomes.utils.RealisticBiomesGUI; +import io.papermc.paper.registry.RegistryAccess; +import io.papermc.paper.registry.RegistryKey; import org.bukkit.ChatColor; import org.bukkit.block.Biome; import org.bukkit.entity.Player; @@ -31,8 +33,8 @@ public class Menu extends BaseCommand { return; } String concat = String.join(" ", biome); - for (Biome b : Biome.values()) { - if (b.toString().equals(concat)) { + for (Biome b : RegistryAccess.registryAccess().getRegistry(RegistryKey.BIOME)) { + if (b.getKey().value().equals(concat)) { RealisticBiomesGUI gui = new RealisticBiomesGUI(p); gui.showRBOverview(b); return; diff --git a/plugins/realisticbiomes-paper/src/main/java/com/untamedears/realisticbiomes/commands/RBCommandManager.java b/plugins/realisticbiomes-paper/src/main/java/com/untamedears/realisticbiomes/commands/RBCommandManager.java index 4e5a8ac18..e2e76d2b8 100644 --- a/plugins/realisticbiomes-paper/src/main/java/com/untamedears/realisticbiomes/commands/RBCommandManager.java +++ b/plugins/realisticbiomes-paper/src/main/java/com/untamedears/realisticbiomes/commands/RBCommandManager.java @@ -3,6 +3,9 @@ package com.untamedears.realisticbiomes.commands; import co.aikar.commands.BukkitCommandCompletionContext; import co.aikar.commands.CommandCompletions; import java.util.Arrays; +import io.papermc.paper.registry.RegistryAccess; +import io.papermc.paper.registry.RegistryKey; +import org.bukkit.NamespacedKey; import org.bukkit.block.Biome; import org.bukkit.plugin.Plugin; import org.jetbrains.annotations.NotNull; @@ -23,6 +26,6 @@ public class RBCommandManager extends CommandManager { @Override public void registerCompletions(@NotNull CommandCompletions completions) { super.registerCompletions(completions); - completions.registerCompletion("RB_Biomes", (context) -> Arrays.stream(Biome.values()).map(Biome::name).toList()); + completions.registerCompletion("RB_Biomes", (context) -> RegistryAccess.registryAccess().getRegistry(RegistryKey.BIOME).stream().map(Biome::getKey).map(NamespacedKey::value).toList()); } } diff --git a/plugins/realisticbiomes2-paper/LICENSE.txt b/plugins/realisticbiomes2-paper/LICENSE.txt new file mode 100644 index 000000000..fd5e2a21d --- /dev/null +++ b/plugins/realisticbiomes2-paper/LICENSE.txt @@ -0,0 +1,7 @@ +Copyright 2019 Civcraft + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/plugins/realisticbiomes2-paper/README.md b/plugins/realisticbiomes2-paper/README.md new file mode 100644 index 000000000..f6ef0993e --- /dev/null +++ b/plugins/realisticbiomes2-paper/README.md @@ -0,0 +1,31 @@ +RealisticBiomes +=============== + +![Illustration](http://i.imgur.com/sInZHEN.jpg) + +## Changes with 1.16.5 + +RealisticBiomes underwent a refactor and partial conversion to 1.16.5. It does not currently support controlling animal +reproduction and no longer supports altering fishing loot tables. + +Cactus, melons, pumpkins, sugarcane were previously non-persistent crops (you must load their chunk for them to grow). +The update to 1.16.5 made them persistent crops so that when you leave and re-enter a chunk, they will match the growth +that would have occurred in that time. However this introduced an issue with cactus causing immense server-crippling +lag. Therefore it is currently recommended to not enable persistent Cactus growth (AKA leave cactus growth totally +vanilla). + +Partially supports greenhouse growth but only with sources of light directly adjacent. + +## Description + +Fully configurable plant growth based on biome or biome category. Disallows plant growth without skylight, but allows +configuring greenhouse growth for configured light sources. Allows configuring of increased growth rates based on blocks +placed below the crop soil. + +Limits plant growth and animal reproduction to their naturally occuring biomes, or reasonable ones for plants that do +not occur naturally. Growth is persistent, so plants grow even when their chunk is not loaded. + +See [this spreadsheet](https://devotedmc.github.io/RealisticBiomes/spreadsheet/) for the default configuration of the +different plants, animals and actions. + +See [the wiki](https://github.com/DevotedMC/RealisticBiomes/wiki) for in depth explanation of the mechanics. diff --git a/plugins/realisticbiomes2-paper/build.gradle.kts b/plugins/realisticbiomes2-paper/build.gradle.kts new file mode 100644 index 000000000..34acfb202 --- /dev/null +++ b/plugins/realisticbiomes2-paper/build.gradle.kts @@ -0,0 +1,17 @@ +plugins { + id("io.papermc.paperweight.userdev") + id("xyz.jpenilla.run-paper") +} + +version = "3.2.3" + +dependencies { + paperweight { + paperDevBundle(libs.versions.paper) + } + + compileOnly(project(":plugins:civmodcore-paper")) + + compileOnly(libs.worldedit) + implementation(libs.commons.math3) +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/GrowthConfigManager.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/GrowthConfigManager.java new file mode 100644 index 000000000..53be893c3 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/GrowthConfigManager.java @@ -0,0 +1,97 @@ +package com.untamedears.realisticbiomes; + +import com.untamedears.realisticbiomes.breaker.HandPicked; +import com.untamedears.realisticbiomes.growthconfig.PlantGrowthConfig; +import com.untamedears.realisticbiomes.model.Plant; +import com.untamedears.realisticbiomes.utils.RBUtils; +import java.util.EnumMap; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.inventory.ItemStack; + +public class GrowthConfigManager { + + private Map fallbackPlantMap; + private Map plantsById; + private Map plantsByItem; + + public GrowthConfigManager(Set plantConfigs) { + fallbackPlantMap = new EnumMap<>(Material.class); + plantsById = new HashMap<>(); + plantsByItem = new HashMap<>(); + for (PlantGrowthConfig plant : plantConfigs) { + for (Material mat : plant.getApplicableVanillaPlants()) { + fallbackPlantMap.put(mat, plant); + } + if (plant.getItem() != null) { + plantsByItem.put(plant.getItem(), plant); + } + plantsById.put(plant.getID(), plant); + } + } + + public Set getAllGrowthConfigs() { + return new HashSet<>(plantsById.values()); + } + + public PlantGrowthConfig getConfigById(short id) { + return plantsById.get(id); + } + + /** + * Gets the config based on material only, does not include remapping to account + * for fruits, any special block tracking etc. + * + * @param material Material to get config for + * @return Growth config for the given material or null if no such config exists + */ + public PlantGrowthConfig getGrowthConfigFallback(Material material) { + return fallbackPlantMap.get(material); + } + + /** + * Retrieves a growth config by the Item used to plant it + * + * @param item ItemStack used to plant the item + * @return Growth config for the given item if one exists + */ + public PlantGrowthConfig getGrowthConfigByItem(ItemStack item) { + ItemStack copy = item.clone(); + copy.setAmount(1); + if (HandPicked.isHandPicked(copy)) { + copy.lore(null); + HandPicked.removeHandPicked(copy); + } + return plantsByItem.get(copy); + } + + /** + * Gets the plant growth config responsible for further growth related to this + * plant based on its block state. For fully grown stems this will return the fruits config, for + * everything else the normal growth config + * + * @param plant Plant to get growth config for + * @return Growth config, possibly null if no config for the block of the given plant exists + */ + public PlantGrowthConfig getPlantGrowthConfigFallback(Plant plant) { + Block block = plant.getLocation().getBlock(); + PlantGrowthConfig config = getGrowthConfigFallback(block.getType()); + if (config == null) { + return null; + } + Material fruit = RBUtils.getFruit(block.getType()); + if (fruit != null && config.isFullyGrown(new Plant(block.getLocation(), config))) { + PlantGrowthConfig fruitConfig = getGrowthConfigFallback(fruit); + if (fruitConfig != null) { + plant.setGrowthConfig(fruitConfig); + return fruitConfig; + } + } + plant.setGrowthConfig(config); + return config; + } +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/PlantLogicManager.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/PlantLogicManager.java new file mode 100644 index 000000000..01eb2ee84 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/PlantLogicManager.java @@ -0,0 +1,297 @@ +package com.untamedears.realisticbiomes; + +import com.untamedears.realisticbiomes.growth.ColumnPlantGrower; +import com.untamedears.realisticbiomes.growth.FruitGrower; +import com.untamedears.realisticbiomes.growth.TipGrower; +import com.untamedears.realisticbiomes.growth.VerticalGrower; +import com.untamedears.realisticbiomes.growthconfig.PlantGrowthConfig; +import com.untamedears.realisticbiomes.model.Plant; +import com.untamedears.realisticbiomes.utils.RBUtils; +import java.util.HashSet; +import java.util.Set; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.inventory.ItemStack; +import vg.civcraft.mc.civmodcore.world.WorldUtils; + +public class PlantLogicManager { + + private final PlantManager plantManager; + private final GrowthConfigManager growthConfigManager; + private Set fruitBlocks; + private Set columnBlocks; + + public PlantLogicManager(PlantManager plantManager, GrowthConfigManager growthConfigManager) { + this.plantManager = plantManager; + this.growthConfigManager = growthConfigManager; + initAdjacentPlantBlocks(growthConfigManager.getAllGrowthConfigs()); + } + + public void handleCactusPhysics(Block cactusBlock) { + Plant plant = plantManager.getPlant(cactusBlock); + Block bottom = cactusBlock; + int stage = 0; + + if (plant == null) { + Block below = cactusBlock.getRelative(BlockFace.DOWN); + while (below.getType() == Material.CACTUS) { + below = below.getRelative(BlockFace.DOWN); + stage++; + } + bottom = below.getRelative(BlockFace.UP); + plant = plantManager.getPlant(bottom); + } + + if (plant == null) { + return; + } + + if (plant.getGrowthConfig() == null + || !(plant.getGrowthConfig().getGrower() instanceof ColumnPlantGrower grower)) { + plant.resetCreationTime(); + updateGrowthTime(plant, bottom); + } else { + long growthTime = plant.getGrowthConfig().getPersistentGrowthTime(bottom, true); + updateGrowthTimeOnDestruction(plant, stage, growthTime); + } + } + + public void handleBlockDestruction(Block block) { + if (plantManager == null) { + return; + } + Plant plant = plantManager.getPlant(block); + if (plant != null) { + plantManager.deletePlant(plant); + return; + } + + if (!handleColumnBlockDestruction(block)) { + handleColumnBlockingBlockDestruction(block.getRelative(BlockFace.DOWN)); + handleColumnBlockingBlockDestruction(block.getRelative(BlockFace.UP)); + } + + handleFruitBlockDestruction(block); + } + + private boolean handleColumnBlockDestruction(Block block) { + // column plants will always hold the plant object in the bottom most block, so + // we need + // to update that if we just broke one of the upper blocks of a column plant + + if (columnBlocks == null || !columnBlocks.contains(block.getType())) + return false; + + Block sourceColumn = VerticalGrower.getRelativeBlock(block, RBUtils.getGrowthDirection(block.getType()).getOppositeFace()); + Plant bottomColumnPlant = plantManager.getPlant(sourceColumn); + if (bottomColumnPlant == null) { + return false; + } + + if (bottomColumnPlant.getGrowthConfig() == null + || !(bottomColumnPlant.getGrowthConfig().getGrower() instanceof ColumnPlantGrower grower)) { + // Fallback behaviour + bottomColumnPlant.resetCreationTime(); + updateGrowthTime(bottomColumnPlant, sourceColumn); + return true; + } + + Block topColumn = VerticalGrower.getRelativeBlock(block, RBUtils.getGrowthDirection(block.getType())); + int blocksBroken = Math.abs(topColumn.getY() - block.getY()) + 1; + long growthTime = bottomColumnPlant.getGrowthConfig().getPersistentGrowthTime(sourceColumn, true); + int oldStage = grower.getStage(bottomColumnPlant); + int currentStage = Math.max(oldStage - blocksBroken, 0); + + updateGrowthTimeOnDestruction(bottomColumnPlant, currentStage, growthTime); + + return true; + } + + private void handleColumnBlockingBlockDestruction(Block block) { + if (columnBlocks == null || !columnBlocks.contains(block.getType())) + return; + + Block sourceColumn = VerticalGrower.getRelativeBlock(block, RBUtils.getGrowthDirection(block.getType()).getOppositeFace()); + Plant bottomColumnPlant = plantManager.getPlant(sourceColumn); + if (bottomColumnPlant == null || bottomColumnPlant.getNextUpdate() != Long.MAX_VALUE) + return; + + if (bottomColumnPlant.getGrowthConfig() == null + || !(bottomColumnPlant.getGrowthConfig().getGrower() instanceof ColumnPlantGrower grower)) { + bottomColumnPlant.resetCreationTime(); + return; + } + + long growthTime = bottomColumnPlant.getGrowthConfig().getPersistentGrowthTime(sourceColumn, true); + int stage = grower.getStage(bottomColumnPlant); + + updateGrowthTimeOnDestruction(bottomColumnPlant, stage, growthTime); + } + + private void updateGrowthTimeOnDestruction(Plant plant, int stage, long growthTime) { + ColumnPlantGrower grower = (ColumnPlantGrower) plant.getGrowthConfig().getGrower(); + long creationTime = System.currentTimeMillis() - growthTime * stage / grower.getMaxStage(); + + plant.setCreationTime(System.currentTimeMillis() - growthTime * stage / grower.getMaxStage()); + + double incPerStage = grower.getIncrementPerStage(); + double nextProgressStage = (stage + incPerStage) / grower.getMaxStage(); + nextProgressStage = Math.min(nextProgressStage, 1.0); + long timeFromCreationTillNextStage = (long) (growthTime * nextProgressStage); + long nextUpdateTime = creationTime + timeFromCreationTillNextStage; + + plant.setNextGrowthTime(nextUpdateTime); + } + + private void handleFruitBlockDestruction(Block block) { + if (fruitBlocks == null || !fruitBlocks.contains(block.getType())) + return; + + for (BlockFace face : WorldUtils.PLANAR_SIDES) { + Block possibleStem = block.getRelative(face); + Plant stem = plantManager.getPlant(possibleStem); + if (stem == null) { + continue; + } + if (stem.getGrowthConfig() == null || !(stem.getGrowthConfig().getGrower() instanceof FruitGrower)) { + continue; + } + FruitGrower grower = (FruitGrower) stem.getGrowthConfig().getGrower(); + if (grower.getFruitMaterial() != block.getType()) { + continue; + } + if (grower.getStage(stem) != grower.getMaxStage()) { + continue; + } + if (grower.getTurnedDirection(possibleStem) == face.getOppositeFace()) { + stem.resetCreationTime(); + grower.setStage(stem, 0); + updateGrowthTime(stem, possibleStem); + } + } + } + + private void initAdjacentPlantBlocks(Set growthConfigs) { + for (PlantGrowthConfig config : growthConfigs) { + if (config.getGrower() instanceof FruitGrower) { + FruitGrower grower = (FruitGrower) config.getGrower(); + if (fruitBlocks == null) { + fruitBlocks = new HashSet<>(); + } + fruitBlocks.add(grower.getFruitMaterial()); + continue; + } + if (config.getGrower() instanceof ColumnPlantGrower) { + ColumnPlantGrower grower = (ColumnPlantGrower) config.getGrower(); + if (columnBlocks == null) { + columnBlocks = new HashSet<>(); + } + columnBlocks.add(grower.getMaterial()); + } + if (config.getGrower() instanceof TipGrower) { + TipGrower grower = (TipGrower) config.getGrower(); + if (columnBlocks == null) { + columnBlocks = new HashSet<>(); + } + columnBlocks.add(grower.getTipMaterial()); + columnBlocks.add(grower.getStemMaterial()); + } + } + } + + public void handlePlantCreation(Block block, ItemStack itemUsed) { + if (plantManager == null) { + return; + } + PlantGrowthConfig growthConfig = growthConfigManager.getGrowthConfigByItem(itemUsed); + if (growthConfig == null) { + return; + } + if (growthConfig.getGrower() instanceof VerticalGrower verticalGrower) { + BlockFace direction = verticalGrower.getPrimaryGrowthDirection().getOppositeFace(); + Material blockMaterial = block.getType(); + Material oppositeMaterial = block.getRelative(direction).getType(); + if (oppositeMaterial == blockMaterial + || oppositeMaterial == RBUtils.getStemMaterial(blockMaterial) + || oppositeMaterial == RBUtils.getTipMaterial(blockMaterial)) { + handleColumnBlockAdded(block); + return; + } + } + Plant plant = new Plant(block.getLocation(), growthConfig); + Plant existingPlant = plantManager.getPlant(block); + if (existingPlant != null) { + plantManager.deletePlant(existingPlant); + } + plantManager.putPlant(plant); + updateGrowthTime(plant, block); + } + + private void handleColumnBlockAdded(Block block) { + if (columnBlocks == null || !columnBlocks.contains(block.getType())) + return; + + Block sourceColumn = VerticalGrower.getRelativeBlock(block, RBUtils.getGrowthDirection(block.getType()).getOppositeFace()); + Plant bottomColumnPlant = plantManager.getPlant(sourceColumn); + if (bottomColumnPlant == null) + return; + + if (bottomColumnPlant.getGrowthConfig() == null + || !(bottomColumnPlant.getGrowthConfig().getGrower() instanceof ColumnPlantGrower grower)) { + return; + } + + int stage = grower.getStage(bottomColumnPlant); + if (stage == grower.getMaxStage()) + return; + + long create = bottomColumnPlant.getCreationTime(); + long growthTime = bottomColumnPlant.getGrowthConfig().getPersistentGrowthTime(sourceColumn, true); + long newCreationTime = Math.min(System.currentTimeMillis(), create - growthTime / grower.getMaxStage()); + + bottomColumnPlant.setCreationTime(newCreationTime); + + updateGrowthTime(bottomColumnPlant, sourceColumn); + } + + public Block remapColumnBlock(Block block, PlantGrowthConfig growthConfig, Material material) { + if (!columnBlocks.contains(block.getType())) { + return block; + } + if (growthConfig.getGrower() instanceof VerticalGrower) { + BlockFace direction = ((VerticalGrower) growthConfig.getGrower()).getPrimaryGrowthDirection(); + Block below = block.getRelative(direction); + while (below.getType() == material) { + below = below.getRelative(direction); + } + return below.getRelative(direction.getOppositeFace()); + } + if (growthConfig.getGrower() instanceof TipGrower) { + TipGrower config = ((TipGrower) growthConfig.getGrower()); + BlockFace direction = config.getPrimaryGrowthDirection(); + Block adjacent = block.getRelative(direction); + while (adjacent.getType() == material || adjacent.getType() == config.getStemMaterial()) { + adjacent = adjacent.getRelative(direction); + } + return adjacent.getRelative(direction.getOppositeFace()); + } + return block; + } + + public void updateGrowthTime(Plant plant, Block block) { + PlantGrowthConfig growthConfig = plant.getGrowthConfig(); + if (growthConfig == null) { + growthConfig = growthConfigManager.getGrowthConfigFallback(block.getType()); + if (growthConfig == null) { + plantManager.deletePlant(plant); + return; + } + plant.setGrowthConfig(growthConfig); + } + long nextUpdateTime = growthConfig.updatePlant(plant, block); + if (nextUpdateTime != -1) { + plant.setNextGrowthTime(nextUpdateTime); + } + } +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/PlantManager.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/PlantManager.java new file mode 100644 index 000000000..d6ade7159 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/PlantManager.java @@ -0,0 +1,50 @@ +package com.untamedears.realisticbiomes; + +import com.untamedears.realisticbiomes.model.Plant; +import com.untamedears.realisticbiomes.model.PlantLoadState; +import com.untamedears.realisticbiomes.model.RBChunkCache; +import org.bukkit.Location; +import org.bukkit.block.Block; +import vg.civcraft.mc.civmodcore.world.locations.chunkmeta.api.BlockBasedChunkMetaView; +import vg.civcraft.mc.civmodcore.world.locations.chunkmeta.block.BlockDataObjectLoadStatus; +import vg.civcraft.mc.civmodcore.world.locations.chunkmeta.block.table.TableBasedDataObject; +import vg.civcraft.mc.civmodcore.world.locations.chunkmeta.block.table.TableStorageEngine; + +public class PlantManager { + + private BlockBasedChunkMetaView> chunkMetaData; + + PlantManager(BlockBasedChunkMetaView> chunkMetaData) { + this.chunkMetaData = chunkMetaData; + } + + public void deletePlant(Plant plant) { + chunkMetaData.remove(plant); + } + + public Plant getPlant(Block block) { + return getPlant(block.getLocation()); + } + + public Plant getPlant(Location location) { + return (Plant) chunkMetaData.get(location); + } + + public PlantLoadState getPlantIfLoaded(Block block) { + return getPlantIfLoaded(block.getLocation()); + } + + public PlantLoadState getPlantIfLoaded(Location location) { + BlockDataObjectLoadStatus status = chunkMetaData.getIfLoaded(location); + return new PlantLoadState((Plant) status.data, status.isLoaded); + } + + public void putPlant(Plant plant) { + chunkMetaData.put(plant); + } + + void shutDown() { + chunkMetaData.disable(); + } + +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/PlantProgressManager.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/PlantProgressManager.java new file mode 100644 index 000000000..3682cbb6a --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/PlantProgressManager.java @@ -0,0 +1,36 @@ +package com.untamedears.realisticbiomes; + +import com.untamedears.realisticbiomes.model.RBChunkCache; +import org.bukkit.Bukkit; +import vg.civcraft.mc.civmodcore.utilities.progress.ProgressTracker; + +/** + * Keeps track of which plant needs to be updated next + */ +public class PlantProgressManager { + + private ProgressTracker tracker; + + public PlantProgressManager() { + this.tracker = new ProgressTracker<>(); + Bukkit.getScheduler().scheduleSyncRepeatingTask(RealisticBiomes.getInstance(), this::processUpdates, 1L, 1L); + } + + public void addChunk(RBChunkCache cache) { + tracker.addItem(cache); + } + + public void processUpdates() { + tracker.processItems(); + } + + public void removeChunk(RBChunkCache cache) { + tracker.removeItem(cache); + } + + public void updateTime(RBChunkCache cache, long time) { + tracker.updateItem(cache, time); + cache.updateInternalProgressTime(time); + } + +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/RBConfigManager.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/RBConfigManager.java new file mode 100644 index 000000000..da7c0b0db --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/RBConfigManager.java @@ -0,0 +1,431 @@ +package com.untamedears.realisticbiomes; + +import static vg.civcraft.mc.civmodcore.config.ConfigHelper.parseMaterialList; + + +import com.untamedears.realisticbiomes.growth.AgeableGrower; +import com.untamedears.realisticbiomes.growth.BambooGrower; +import com.untamedears.realisticbiomes.growth.ColumnPlantGrower; +import com.untamedears.realisticbiomes.growth.FruitGrower; +import com.untamedears.realisticbiomes.growth.FungusGrower; +import com.untamedears.realisticbiomes.growth.HorizontalBlockSpreadGrower; +import com.untamedears.realisticbiomes.growth.IArtificialGrower; +import com.untamedears.realisticbiomes.growth.KelpGrower; +import com.untamedears.realisticbiomes.growth.SchematicGrower; +import com.untamedears.realisticbiomes.growth.SeaPickleGrower; +import com.untamedears.realisticbiomes.growth.StemGrower; +import com.untamedears.realisticbiomes.growth.TipGrower; +import com.untamedears.realisticbiomes.growth.TreeGrower; +import com.untamedears.realisticbiomes.growthconfig.BreakerConfig; +import com.untamedears.realisticbiomes.growthconfig.PlantGrowthConfig; +import com.untamedears.realisticbiomes.model.RBSchematic; +import com.untamedears.realisticbiomes.model.ltree.BlockTransformation; +import com.untamedears.realisticbiomes.model.ltree.LStepConfig; +import com.untamedears.realisticbiomes.model.ltree.LTree; +import com.untamedears.realisticbiomes.model.ltree.SpreadRule; +import com.untamedears.realisticbiomes.noise.BiomeConfiguration; +import com.untamedears.realisticbiomes.noise.Climate; +import com.untamedears.realisticbiomes.noise.CropNoise; +import com.untamedears.realisticbiomes.utils.SchematicUtils; +import java.io.File; +import java.util.ArrayList; +import java.util.Collections; +import java.util.EnumMap; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; +import io.papermc.paper.registry.RegistryAccess; +import io.papermc.paper.registry.RegistryKey; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.NamespacedKey; +import org.bukkit.Registry; +import org.bukkit.block.Biome; +import org.bukkit.block.BlockFace; +import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.inventory.ItemStack; +import org.bukkit.util.Vector; +import vg.civcraft.mc.civmodcore.ACivMod; +import vg.civcraft.mc.civmodcore.config.ConfigHelper; +import vg.civcraft.mc.civmodcore.config.ConfigParser; +import vg.civcraft.mc.civmodcore.dao.DatabaseCredentials; +import vg.civcraft.mc.civmodcore.dao.ManagedDatasource; +import vg.civcraft.mc.civmodcore.inventory.items.MaterialUtils; + +public class RBConfigManager extends ConfigParser { + + private ManagedDatasource database; + + private String legacyPrefix; + + private Set plantConfigs; + private BiomeConfiguration biomeConfiguration; + private Map schematics; + private List lTrees; + + private List bonemealPreventedBlocks; + + public RBConfigManager(ACivMod plugin) { + super(plugin); + } + + public ManagedDatasource getDatabase() { + return database; + } + + public String getLegacyPrefix() { + return legacyPrefix; + } + + public Set getPlantGrowthConfigs() { + return plantConfigs; + } + + private Map> loadBiomeAliases(ConfigurationSection config) { + Map> result = new HashMap<>(); + if (config == null) { + return result; + } + for (String key : config.getKeys(false)) { + if (!config.isList(key)) { + logger.warning( + "Invalid non-list entry " + key + " found at " + config.getCurrentPath() + ". It was ignored."); + continue; + } + List biomeStrings = config.getStringList(key); + List biomes = new ArrayList<>(); + Registry registry = RegistryAccess.registryAccess().getRegistry(RegistryKey.BIOME); + for (String biomeString : biomeStrings) { + try { + biomes.add(registry.get(NamespacedKey.minecraft(biomeString.toLowerCase().trim()))); + } catch (IllegalArgumentException e) { + logger.warning(biomeString + " at " + config.getCurrentPath() + "." + key + + " is not a valid biome, it was ignored"); + } + } + result.put(key, biomes); + } + return result; + } + + private void loadSchematics() { + this.schematics = new HashMap<>(); + File folder = new File(plugin.getDataFolder(), "schematics"); + for (RBSchematic schem : SchematicUtils.loadAll(folder, logger)) { + this.schematics.put(schem.getName().toLowerCase(), schem); + } + } + + @Override + protected boolean parseInternal(ConfigurationSection config) { + database = ManagedDatasource.construct((ACivMod) plugin, (DatabaseCredentials) config.get("database")); + legacyPrefix = config.getString("database_prefix", null); + Map> biomeAliases = loadBiomeAliases(config.getConfigurationSection("biome_aliases")); + loadSchematics(); + FarmBeaconManager farmBeaconManager = FarmBeaconManager.fromConfiguration(config); + biomeConfiguration = BiomeConfiguration.fromConfiguration(CropNoise.fromConfiguration(config), farmBeaconManager, config.getMapList("climate"), biomeAliases); + plantConfigs = parsePlantGrowthConfig(config.getConfigurationSection("plants"), farmBeaconManager, biomeConfiguration); + remapStemFruitConfigs(); + List rawConfigs = parseRawLStepConfigs(config.getConfigurationSection("l_steps")); + lTrees = parseLTrees(config.getConfigurationSection("l_trees"), rawConfigs); + bonemealPreventedBlocks = parseMaterialList(config, "no_bonemeal_blocks"); + return true; + } + + private void remapStemFruitConfigs() { + for (PlantGrowthConfig plantConfig : plantConfigs) { + if (!(plantConfig.getGrower() instanceof StemGrower)) { + continue; + } + StemGrower stemGrower = (StemGrower) plantConfig.getGrower(); + for (PlantGrowthConfig otherConfig : plantConfigs) { // dont care about O(n) here + if (otherConfig.getName().equalsIgnoreCase(stemGrower.getFruitConfigName())) { + stemGrower.setFruitConfig(otherConfig); + break; + } + } + if (stemGrower.getFruitConfig() == null) { + logger.severe("Stem config " + plantConfig.getName() + " specified fruit type " + + stemGrower.getFruitConfigName() + ", but no such config was found"); + } + + } + } + + private Map parseMaterialDoubleMap(ConfigurationSection parent, String identifier) { + Map result = new EnumMap<>(Material.class); + ConfigHelper.parseKeyValueMap(parent, identifier, logger, Material::valueOf, Double::parseDouble, result); + return result; + } + + private Set parsePlantGrowthConfig(ConfigurationSection config, FarmBeaconManager farmBeaconManager, BiomeConfiguration biomeConfiguration) { + Set result = new HashSet<>(); + if (config == null) { + logger.warning("No plant growth configs found"); + return result; + } + for (String key : config.getKeys(false)) { + if (!config.isConfigurationSection(key)) { + logger.warning("Ignoring invalid entry " + key + " at " + config.getCurrentPath()); + continue; + } + ConfigurationSection current = config.getConfigurationSection(key); + if (!current.isItemStack("item")) { + logger.warning("Growth config " + key + " does not have an item specified, it was ignored"); + continue; + } + ItemStack item = current.getItemStack("item", null); + List vanillaMats = parseMaterialList(current, "vanilla_materials"); + if (vanillaMats == null) { + vanillaMats = Collections.emptyList(); + } + Map greenHouseRates = parseMaterialDoubleMap(current, "greenhouse_rates"); + Map soilBoniPerLevel = parseMaterialDoubleMap(current, "soil_boni"); + if (!current.isString("persistent_growth_period")) { + logger.warning( + "persistent_growth_path not specified at " + current.getCurrentPath()); + continue; + } + long persistTime = ConfigHelper.parseTime(current.getString("persistent_growth_period"), TimeUnit.MILLISECONDS); + Climate idealClimate = new Climate( + current.getDouble("ideal_temperature"), + current.getDouble("ideal_humidity"), + current.getBoolean("saline", false), + current.getBoolean("hell", false)); + String name = current.getString("name", key); + short id = (short) current.getInt("id", 0); + if (id == 0) { + logger.warning( + "Need to specify a non 0 id for each plant type, missing at " + current.getCurrentPath()); + continue; + } + int maximumSoilLayers = current.getInt("soil_max_layers", 0); + double maximumSoilBonus = current.getDouble("max_soil_bonus", Integer.MAX_VALUE); + boolean allowBoneMeal = current.getBoolean("allow_bonemeal", false); + boolean needsLight = current.getBoolean("needs_sun_light", true); + boolean canBePlantedDirectly = current.getBoolean("can_be_planted", true); + boolean needsToBeWaterLogged = current.getBoolean("waterlog_required", false); + IArtificialGrower grower = parseGrower(current.getConfigurationSection("grower"), item); + if (grower == null) { + logger.warning("Failed to parse a grower at " + current.getCurrentPath() + ", skipped it"); + continue; + } + BreakerConfig breaker = BreakerConfig.fromConfig(current.getConfigurationSection("breaker")); + PlantGrowthConfig growthConfig = new PlantGrowthConfig(name, id, item, greenHouseRates, soilBoniPerLevel, + maximumSoilLayers, maximumSoilBonus, allowBoneMeal, idealClimate, persistTime, biomeConfiguration, breaker, needsLight, grower, vanillaMats, + canBePlantedDirectly, needsToBeWaterLogged, farmBeaconManager); + result.add(growthConfig); + } + return result; + } + + private IArtificialGrower parseGrower(ConfigurationSection section, ItemStack item) { + if (section == null) { + return null; + } + if (!section.isString("type")) { + logger.warning("No grower type specified at " + section.getCurrentPath()); + return null; + } + Material material = MaterialUtils.getMaterial(section.getString("material")); + if (material == null) { + if (item == null) { + logger.warning("Neither an item nor a material specified for grower at " + section.getCurrentPath()); + return null; + } + material = item.getType(); + } + switch (section.getString("type").toLowerCase()) { + case "bamboo": + int maxHeight = section.getInt("max_height", 12); + return new BambooGrower(maxHeight); + case "column": + int maxHeight2 = section.getInt("max_height", 3); + boolean instaBreakTouching = section.getBoolean("insta_break_touching", false); + BlockFace direction = BlockFace.valueOf(section.getString("direction", "UP")); + return new ColumnPlantGrower(maxHeight2, material, direction, instaBreakTouching); + case "fruit": + Material stemMat = MaterialUtils.getMaterial(section.getString("stem_type")); + if (stemMat == null) { + logger.warning("No stem material specified at " + section.getCurrentPath()); + return null; + } + Material attachedStemMat = MaterialUtils.getMaterial(section.getString("attached_stem_type")); + if (attachedStemMat == null) { + logger.warning("No attached stem material specified at " + section.getCurrentPath()); + return null; + } + return new FruitGrower(material, attachedStemMat, stemMat); + case "fungus": + return new FungusGrower(material); + case "tip": + Material stem = MaterialUtils.getMaterial(section.getString("stem_material")); + BlockFace growthDirection = BlockFace.valueOf(section.getString("growth_direction")); + int maxHeight3 = section.getInt("max_height", 25); + return new TipGrower(material, stem, growthDirection, maxHeight3); + case "kelp": + int maxHeight4 = section.getInt("max_height", 25); + return new KelpGrower(maxHeight4); + case "ageable": + int maxStage = section.getInt("max_stage", 7); + int increment = section.getInt("increment", 1); + return new AgeableGrower(material, maxStage, increment); + case "stem": + String fruitConfig = section.getString("fruit_config", null); + return new StemGrower(material, fruitConfig); + case "tree": + return new TreeGrower(material); + case "horizontalspread": + int maxAmount = section.getInt("max_amount"); + int horRange = section.getInt("max_range"); + List replaceableBlocks = parseMaterialList(section, "replaceable_blocks"); + List validSoil = parseMaterialList(section, "valid_soil"); + return new HorizontalBlockSpreadGrower(material, maxAmount, horRange, replaceableBlocks, validSoil); + case "seapickle": + return new SeaPickleGrower(); + case "schematic": + String name = section.getString("schematic", "default"); + RBSchematic schem = schematics.get(name.toLowerCase()); + if (schem == null) { + logger.warning( + "Schematic " + name + " specified at " + section.getCurrentPath() + " was not found"); + return null; + } + Location offSet = section.getLocation("offset", new Location(null, 0, 0, 0)); + return new SchematicGrower(schem, offSet); + default: + logger.warning(section.getString("type") + " is not a valid grower type"); + return null; + } + } + + public List parseLTrees(ConfigurationSection config, List stepConfig) { + List result = new ArrayList<>(); + if (config == null) { + return result; + } + Map configMap = stepConfig.stream().collect(Collectors.toMap(LStepConfig::getID, l -> l)); + for (String key : config.getKeys(false)) { + if (!config.isConfigurationSection(key)) { + logger.warning("Found invalid entry " + key + " at " + config.getCurrentPath()); + continue; + } + ConfigurationSection current = config.getConfigurationSection(key); + String start = current.getString("start_symbol"); + Vector defaultVector = current.getVector("start_direction"); + Map> spreadRules = new HashMap<>(); + ConfigurationSection spreadSection = current.getConfigurationSection("rules"); + if (spreadSection != null) { + for (String spreadKey : spreadSection.getKeys(false)) { + List localSpreadRules = new ArrayList<>(); + ConfigurationSection currentKeySection = spreadSection.getConfigurationSection(spreadKey); + for (String subKey : currentKeySection.getKeys(false)) { + ConfigurationSection subSection = currentKeySection.getConfigurationSection(subKey); + double chance = subSection.getDouble("chance", 1.0); + List targets = new ArrayList<>(); + List targetDirections = new ArrayList<>(); + ConfigurationSection resultSection = subSection.getConfigurationSection("results"); + if (resultSection != null) { + for (String resultKey : resultSection.getKeys(false)) { + ConfigurationSection currentResultSection = resultSection + .getConfigurationSection(resultKey); + String name = currentResultSection.getString("name"); + Vector direction = currentResultSection.getVector("direction"); + if (name == null || direction == null) { + logger.warning("Incomplete entry at " + currentResultSection.getCurrentPath() + + " was ignored"); + continue; + } + targets.add(name); + targetDirections.add(direction); + } + } + localSpreadRules.add(new SpreadRule(chance, targets, targetDirections)); + } + spreadRules.put(spreadKey, localSpreadRules); + } + } + result.add(new LTree(key, start, defaultVector, spreadRules, i -> { + LStepConfig lConfig = configMap.get(i); + if (lConfig != null) { + lConfig = lConfig.clone(); + } else { + logger.warning("No lstep config with name " + i + " was specified, but it was set as target"); + } + return lConfig; + })); + } + return result; + } + + public List getLTrees() { + return lTrees; + } + + public List getBonemealPreventedBlocks() { + return bonemealPreventedBlocks; + } + + public List parseRawLStepConfigs(ConfigurationSection config) { + List result = new ArrayList<>(); + if (config == null) { + return result; + } + for (String key : config.getKeys(false)) { + if (!config.isConfigurationSection(key)) { + logger.warning("Found invalid entry " + key + " at " + config.getCurrentPath()); + continue; + } + ConfigurationSection current = config.getConfigurationSection(key); + double directionWeight = current.getDouble("direction_weight", 1.0); + List transforms = parseBlockTransformations( + current.getConfigurationSection("transformations")); + boolean normalizeBeforeDirectionTransformation = current + .getBoolean("normalize_direction_before_transformation", true); + boolean transformInWorldCoordinates = current.getBoolean("transform_in_world_coords", false); + result.add(new LStepConfig(key, directionWeight, transforms, normalizeBeforeDirectionTransformation, + transformInWorldCoordinates)); + } + return result; + } + + private List parseBlockTransformations(ConfigurationSection config) { + List result = new ArrayList<>(); + if (config == null) { + return result; + } + for (String key : config.getKeys(false)) { + if (!config.isConfigurationSection(key)) { + logger.warning("Found invalid entry " + key + " at " + config.getCurrentPath()); + continue; + } + ConfigurationSection current = config.getConfigurationSection(key); + Material mat; + try { + mat = Material.valueOf(current.getString("material", "")); + } catch (IllegalArgumentException e) { + logger.warning("No material specified at " + current.getCurrentPath()); + continue; + } + Map blockData = new HashMap<>(); + ConfigurationSection dataSection = current.getConfigurationSection("data"); + if (dataSection != null) { + for (String dataKey : dataSection.getKeys(false)) { + String value = dataSection.getString(dataKey); + blockData.put(dataKey, value); + } + } + + result.add(new BlockTransformation(mat, blockData)); + } + return result; + } + + public BiomeConfiguration getBiomeConfiguration() { + return biomeConfiguration; + } +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/RealisticBiomes.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/RealisticBiomes.java new file mode 100644 index 000000000..bca4ef8d6 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/RealisticBiomes.java @@ -0,0 +1,128 @@ +package com.untamedears.realisticbiomes; + +import com.untamedears.realisticbiomes.breaker.BreakListener; +import com.untamedears.realisticbiomes.breaker.BreakManager; +import com.untamedears.realisticbiomes.breaker.TreeBlockListener; +import com.untamedears.realisticbiomes.commands.RBCommandManager; +import com.untamedears.realisticbiomes.listener.BonemealListener; +import com.untamedears.realisticbiomes.listener.MobListener; +import com.untamedears.realisticbiomes.listener.PlantListener; +import com.untamedears.realisticbiomes.listener.PlayerListener; +import com.untamedears.realisticbiomes.model.Plant; +import com.untamedears.realisticbiomes.model.RBChunkCache; +import com.untamedears.realisticbiomes.model.RBDAO; +import com.untamedears.realisticbiomes.breaker.AutoReplantListener; +import com.untamedears.realisticbiomes.noise.MeasureCommand; +import com.untamedears.realisticbiomes.noise.MeasureListener; +import org.bukkit.Bukkit; +import org.bukkit.plugin.PluginManager; +import vg.civcraft.mc.civmodcore.ACivMod; +import vg.civcraft.mc.civmodcore.world.locations.chunkmeta.api.BlockBasedChunkMetaView; +import vg.civcraft.mc.civmodcore.world.locations.chunkmeta.api.ChunkMetaAPI; +import vg.civcraft.mc.civmodcore.world.locations.chunkmeta.block.table.TableBasedDataObject; +import vg.civcraft.mc.civmodcore.world.locations.chunkmeta.block.table.TableStorageEngine; + +public class RealisticBiomes extends ACivMod { + + private static RealisticBiomes plugin; + + public static RealisticBiomes getInstance() { + return plugin; + } + + private GrowthConfigManager growthConfigManager; + private RBConfigManager configManager; + private PlantManager plantManager; + private PlantLogicManager plantLogicManager; + private PlantProgressManager plantProgressManager; + private RBCommandManager commandManager; + + private RBDAO dao; + + public RBConfigManager getConfigManager() { + return configManager; + } + + public RBDAO getDAO() { + return dao; + } + + public GrowthConfigManager getGrowthConfigManager() { + return growthConfigManager; + } + + public PlantLogicManager getPlantLogicManager() { + return plantLogicManager; + } + + public PlantManager getPlantManager() { + return plantManager; + } + + public PlantProgressManager getPlantProgressManager() { + return plantProgressManager; + } + + @Override + public void onDisable() { + dao.setBatchMode(true); + if (plantManager != null) { + plantManager.shutDown(); + } + dao.cleanupBatches(); + } + + @Override + public void onEnable() { + super.onEnable(); + RealisticBiomes.plugin = this; + configManager = new RBConfigManager(this); + if (!configManager.parse()) { + return; + } + growthConfigManager = new GrowthConfigManager(configManager.getPlantGrowthConfigs()); + this.dao = new RBDAO(getLogger(), configManager.getDatabase()); + if (!dao.updateDatabase()) { + Bukkit.shutdown(); + return; + } + plantProgressManager = new PlantProgressManager(); + BlockBasedChunkMetaView> chunkMetaData = ChunkMetaAPI + .registerBlockBasedPlugin(this, () -> { + return new RBChunkCache(false, dao); + }, dao, false); + if (chunkMetaData == null) { + getLogger().severe("Errors setting up chunk metadata API, shutting down"); + Bukkit.shutdown(); + return; + } + plantManager = new PlantManager(chunkMetaData); + commandManager = new RBCommandManager(this); + + BreakManager breakManager = BreakManager.fromPlantConfigs(configManager.getBiomeConfiguration(), configManager.getPlantGrowthConfigs()); + if (getConfig().getBoolean("auto_replant_enabled", true)) { + getServer().getPluginManager() + .registerEvents(new AutoReplantListener(getConfig().getBoolean("auto_replant_right_click", true)), this); + } + getServer().getPluginManager().registerEvents(new BreakListener(breakManager), this); + + getServer().getPluginManager().registerEvents(MeasureListener.fromConfiguration(configManager.getBiomeConfiguration(), getConfig()), this); + + getServer().getPluginManager().registerEvents(new TreeBlockListener(), this); + + commandManager.registerCommand(new MeasureCommand(configManager.getBiomeConfiguration(), breakManager)); + + plantLogicManager = new PlantLogicManager(plantManager, growthConfigManager); + + registerListeners(); + } + + private void registerListeners() { + PluginManager pm = getServer().getPluginManager(); + pm.registerEvents(new PlantListener(this, plantManager, plantLogicManager), this); + pm.registerEvents(new PlayerListener(growthConfigManager, plantManager), this); + pm.registerEvents(new BonemealListener(configManager.getBonemealPreventedBlocks()), this); + pm.registerEvents(new MobListener(), this); + } + +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/commands/Menu.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/commands/Menu.java new file mode 100644 index 000000000..0924ba8aa --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/commands/Menu.java @@ -0,0 +1,46 @@ +package com.untamedears.realisticbiomes.commands; + +import co.aikar.commands.BaseCommand; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandCompletion; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Optional; +import co.aikar.commands.annotation.Syntax; +import com.untamedears.realisticbiomes.utils.RealisticBiomesGUI; +import io.papermc.paper.registry.RegistryAccess; +import io.papermc.paper.registry.RegistryKey; +import org.bukkit.ChatColor; +import org.bukkit.block.Biome; +import org.bukkit.entity.Player; + +public class Menu extends BaseCommand { + + @CommandAlias("rb|rbmenu|plants") + @Syntax("[biome]") + @Description("Opens a GUI allowing you to browse RealisticBiomes growth rates for current biome") + @CommandCompletion("@RB_Biomes") + public void onCommand(Player p, @Optional String biome) { + if (p.isInsideVehicle()) { + p.sendMessage(ChatColor.RED + "You can't use this command in vehicles"); + return; + } + if (biome == null) { + RealisticBiomesGUI gui = new RealisticBiomesGUI(p); + gui.showRBOverview(null); + } else { + if (!p.hasPermission("rb.pickBiome")) { + p.sendMessage(ChatColor.RED + "You lack permission to use this command with arguments"); + return; + } + String concat = String.join(" ", biome); + for (Biome b : RegistryAccess.registryAccess().getRegistry(RegistryKey.BIOME)) { + if (b.getKey().value().equals(concat)) { + RealisticBiomesGUI gui = new RealisticBiomesGUI(p); + gui.showRBOverview(b); + return; + } + } + p.sendMessage(ChatColor.RED + "The biome " + concat + " does not exist"); + } + } +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/commands/RBCommandManager.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/commands/RBCommandManager.java new file mode 100644 index 000000000..89ed5f999 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/commands/RBCommandManager.java @@ -0,0 +1,32 @@ +package com.untamedears.realisticbiomes.commands; + +import co.aikar.commands.BukkitCommandCompletionContext; +import co.aikar.commands.CommandCompletions; +import java.util.ArrayList; +import java.util.Arrays; +import io.papermc.paper.registry.RegistryAccess; +import io.papermc.paper.registry.RegistryKey; +import org.bukkit.NamespacedKey; +import org.bukkit.block.Biome; +import org.bukkit.plugin.Plugin; +import org.jetbrains.annotations.NotNull; +import vg.civcraft.mc.civmodcore.commands.CommandManager; + +public class RBCommandManager extends CommandManager { + + public RBCommandManager(@NotNull Plugin plugin) { + super(plugin); + init(); + } + + @Override + public void registerCommands() { + registerCommand(new Menu()); + } + + @Override + public void registerCompletions(@NotNull CommandCompletions completions) { + super.registerCompletions(completions); + completions.registerCompletion("RB_Biomes", (context) -> RegistryAccess.registryAccess().getRegistry(RegistryKey.BIOME).stream().map(Biome::getKey).map(NamespacedKey::value).toList()); + } +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/events/RealisticBiomesBlockBreakEvent.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/events/RealisticBiomesBlockBreakEvent.java new file mode 100644 index 000000000..caef3dce3 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/events/RealisticBiomesBlockBreakEvent.java @@ -0,0 +1,33 @@ +package com.untamedears.realisticbiomes.events; + +import org.bukkit.block.Block; +import org.bukkit.entity.Player; +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; +import org.bukkit.event.block.BlockBreakEvent; + +public class RealisticBiomesBlockBreakEvent extends Event { + + private static final HandlerList handlers = new HandlerList(); + + public static HandlerList getHandlerList() { + return handlers; + } + + private BlockBreakEvent wrapped; + + public RealisticBiomesBlockBreakEvent(Block theBlock, Player player) { + super(false); + wrapped = new BlockBreakEvent(theBlock, player); + } + + public BlockBreakEvent getEvent() { + return wrapped; + } + + @Override + public HandlerList getHandlers() { + return RealisticBiomesBlockBreakEvent.handlers; + } + +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/events/RealisticBiomesBlockGrowEvent.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/events/RealisticBiomesBlockGrowEvent.java new file mode 100644 index 000000000..86a1c8e80 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/events/RealisticBiomesBlockGrowEvent.java @@ -0,0 +1,32 @@ +package com.untamedears.realisticbiomes.events; + +import org.bukkit.block.Block; +import org.bukkit.block.BlockState; +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; +import org.bukkit.event.block.BlockGrowEvent; + +public final class RealisticBiomesBlockGrowEvent extends Event { + + private static final HandlerList handlers = new HandlerList(); + + public static HandlerList getHandlerList() { + return handlers; + } + + private BlockGrowEvent wrapped; + + public RealisticBiomesBlockGrowEvent(Block block, BlockState newState) { + super(false); + wrapped = new BlockGrowEvent(block, newState); + } + + public BlockGrowEvent getEvent() { + return wrapped; + } + + @Override + public HandlerList getHandlers() { + return RealisticBiomesBlockGrowEvent.handlers; + } +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/events/RealisticBiomesStructureGrowEvent.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/events/RealisticBiomesStructureGrowEvent.java new file mode 100644 index 000000000..18a57e38d --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/events/RealisticBiomesStructureGrowEvent.java @@ -0,0 +1,36 @@ +package com.untamedears.realisticbiomes.events; + +import java.util.List; +import org.bukkit.Location; +import org.bukkit.TreeType; +import org.bukkit.block.BlockState; +import org.bukkit.entity.Player; +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; +import org.bukkit.event.world.StructureGrowEvent; + +public class RealisticBiomesStructureGrowEvent extends Event { + + private static final HandlerList handlers = new HandlerList(); + + public static HandlerList getHandlerList() { + return handlers; + } + + private StructureGrowEvent wrapped; + + public RealisticBiomesStructureGrowEvent(Location location, TreeType species, boolean bonemeal, Player player, + List blocks) { + super(false); + wrapped = new StructureGrowEvent(location, species, bonemeal, player, blocks); + } + + public StructureGrowEvent getEvent() { + return wrapped; + } + + @Override + public HandlerList getHandlers() { + return RealisticBiomesStructureGrowEvent.handlers; + } +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/events/package-info.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/events/package-info.java new file mode 100644 index 000000000..efc60a380 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/events/package-info.java @@ -0,0 +1,14 @@ +/** + * RB blackholes a bunch of kind of important Spigot / Bukkit events related to growth and structure growth. + * This is not good for plugins that might want to do things based on those events, after RB's rewritten the outcome. + *

+ * This package includes thin wrappers for the "real" bukkit events, which plugins seeking to work with RB can capture + * and leverage. + * + * @author ProgrammerDan + */ +/** + * @author ProgrammerDan + * + */ +package com.untamedears.realisticbiomes.events; diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/AgeableGrower.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/AgeableGrower.java new file mode 100644 index 000000000..82ad8e948 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/AgeableGrower.java @@ -0,0 +1,63 @@ +package com.untamedears.realisticbiomes.growth; + +import com.untamedears.realisticbiomes.model.Plant; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.data.Ageable; + +/** + * Handles growing of anything implementing Ageable (Crops, Cocoa etc.) + */ +public class AgeableGrower extends IArtificialGrower { + + protected final int maxStage; + protected final int increment; + protected final Material material; + + public AgeableGrower(Material material, int maxStage, int increment) { + this.maxStage = maxStage; + this.increment = increment; + this.material = material; + } + + @Override + public int getIncrementPerStage() { + return increment; + } + + @Override + public int getMaxStage() { + return maxStage; + } + + @Override + public int getStage(Plant plant) { + Block block = plant.getLocation().getBlock(); + if (block.getType() != material) { + return -1; + } + if (!(block.getBlockData() instanceof Ageable)) { + return -1; + } + return ((Ageable) block.getBlockData()).getAge(); + } + + @Override + public boolean setStage(Plant plant, int stage) { + Block block = plant.getLocation().getBlock(); + if (!(block.getBlockData() instanceof Ageable)) { + throw new IllegalArgumentException("Can not set age for non Ageable plant " + plant.getGrowthConfig()); + } + Ageable ageable = ((Ageable) block.getBlockData()); + ageable.setAge(stage); + block.setBlockData(ageable, true); + + return true; + } + + @Override + public boolean deleteOnFullGrowth() { + return false; + } + +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/BambooGrower.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/BambooGrower.java new file mode 100644 index 000000000..625e10522 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/BambooGrower.java @@ -0,0 +1,64 @@ +package com.untamedears.realisticbiomes.growth; + +import com.untamedears.realisticbiomes.model.Plant; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Bamboo; + +public class BambooGrower extends ColumnPlantGrower { + + protected static final int LEAVES_AMOUNT = 3; + protected static final int LARGE_LEAVES_START_HEIGHT = 5; + + public BambooGrower(int maxHeight) { + super(maxHeight, Material.BAMBOO, BlockFace.UP, false); + } + + @Override + protected VerticalGrowResult growVertically(Plant plant, Block block, int howMany) { + // Actual growth is here: + VerticalGrowResult result = super.growVertically(plant, block, howMany); + handleProperLeafGrowth(block, result.top()); + return result; + } + + @Override + public int getStage(Plant plant) { + Block block = plant.getLocation().getBlock(); + if (block.getType() != Material.BAMBOO_SAPLING && block.getType() != Material.BAMBOO) { + return -1; + } + Block bottom = getRelativeBlock(block, getPrimaryGrowthDirection().getOppositeFace()); + if (!bottom.getLocation().equals(block.getLocation())) { + return -1; + } + int stage = getActualHeight(block) - 1; + return Math.min(stage, getMaxStage()); + } + + private void handleProperLeafGrowth(Block block, Block highestBlock) { + // according to https://minecraft.gamepedia.com/Bamboo#Appearance + int actualHeight = super.getActualHeight(block) + 1; + int leavesLeft = LEAVES_AMOUNT >= actualHeight ? actualHeight - 1 : LEAVES_AMOUNT; + Block underBlock = highestBlock; + Bamboo.Leaves leavesType = actualHeight >= LARGE_LEAVES_START_HEIGHT ? + Bamboo.Leaves.LARGE : Bamboo.Leaves.SMALL; + + // Makes Bamboo growth O(2n) but prevents forking column based growth into similar yet different code. + while (underBlock.getType() == highestBlock.getType()) { + Bamboo data = (Bamboo) underBlock.getBlockData(); + if (leavesLeft != 0) { + data.setLeaves(leavesType); + leavesLeft--; + if (leavesLeft == 1) { + leavesType = Bamboo.Leaves.SMALL; + } + } else { + data.setLeaves(Bamboo.Leaves.NONE); + } + underBlock.setBlockData(data); + underBlock = underBlock.getRelative(BlockFace.DOWN); + } + } +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/ColumnPlantGrower.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/ColumnPlantGrower.java new file mode 100644 index 000000000..906492661 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/ColumnPlantGrower.java @@ -0,0 +1,13 @@ +package com.untamedears.realisticbiomes.growth; + +import org.bukkit.Material; +import org.bukkit.block.BlockFace; + +public class ColumnPlantGrower extends VerticalGrower { + + public ColumnPlantGrower(int maxHeight, Material material, BlockFace direction, boolean instaBreakTouching) { + super(maxHeight, material, direction, instaBreakTouching); + } + + +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/CustomTreeGrower.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/CustomTreeGrower.java new file mode 100644 index 000000000..3f4bbc276 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/CustomTreeGrower.java @@ -0,0 +1,41 @@ +package com.untamedears.realisticbiomes.growth; + +import com.untamedears.realisticbiomes.model.Plant; +import org.bukkit.block.Block; + +public class CustomTreeGrower extends IArtificialGrower { + + @Override + public int getIncrementPerStage() { + return 1; + } + + @Override + public int getMaxStage() { + return 1; + } + + @Override + public int getStage(Plant plant) { + Block block = plant.getLocation().getBlock(); + if (block.getType() != plant.getGrowthConfig().getItem().getType()) { + return 1; + } + return 0; + } + + @Override + public boolean setStage(Plant plant, int stage) { + if (stage < 1) { + return true; + } + + return true; + } + + @Override + public boolean deleteOnFullGrowth() { + return true; + } + +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/DownwardsGrower.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/DownwardsGrower.java new file mode 100644 index 000000000..5ce31dd76 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/DownwardsGrower.java @@ -0,0 +1,13 @@ +package com.untamedears.realisticbiomes.growth; + +import org.bukkit.Material; +import org.bukkit.block.BlockFace; + +public class DownwardsGrower extends VerticalGrower { + + public DownwardsGrower(int maxHeight, Material material) { + super(maxHeight, material, BlockFace.DOWN, false); + } + + +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/FruitGrower.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/FruitGrower.java new file mode 100644 index 000000000..fb8e4c541 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/FruitGrower.java @@ -0,0 +1,123 @@ +package com.untamedears.realisticbiomes.growth; + +import com.untamedears.realisticbiomes.model.Plant; +import java.util.Arrays; +import java.util.List; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.Ageable; +import org.bukkit.block.data.BlockData; +import org.bukkit.block.data.Directional; +import vg.civcraft.mc.civmodcore.world.WorldUtils; + +public class FruitGrower extends IArtificialGrower { + + private List validSoil = Arrays.asList(Material.DIRT, Material.GRASS_BLOCK, Material.FARMLAND); + private Material attachedStem; + private Material nonAttachedStem; + private Material fruitMaterial; + + public FruitGrower(Material fruitMaterial, Material attachedStem, Material nonAttachedStem) { + this.fruitMaterial = fruitMaterial; + this.attachedStem = attachedStem; + this.nonAttachedStem = nonAttachedStem; + } + + public Material getAttachedStemMaterial() { + return attachedStem; + } + + public Material getNonattachedStemMaterial() { + return nonAttachedStem; + } + + public Material getFruitMaterial() { + return fruitMaterial; + } + + @Override + public int getIncrementPerStage() { + return 1; + } + + @Override + public int getMaxStage() { + return 1; + } + + @Override + public int getStage(Plant plant) { + Block block = plant.getLocation().getBlock(); + if (block.getType() == attachedStem) { + if (hasPlant(block)) { + return 1; + } + setStage(plant, 0); // doesn't have a fruit, but is attached type, so fix + return 0; + } + if (block.getType() != nonAttachedStem) { + return -1; + } + return 0; + } + + public BlockFace getTurnedDirection(Block block) { + if (!(block.getBlockData() instanceof Directional)) { + return null; + } + Directional data = (Directional) block.getBlockData(); + return data.getFacing(); + } + + private void growFruit(Block block) { + for (BlockFace face : WorldUtils.PLANAR_SIDES) { + Block fruitBlock = block.getRelative(face); + if (fruitBlock.getType() != Material.AIR) { + continue; + } + Block below = fruitBlock.getRelative(BlockFace.DOWN); + if (!validSoil.contains(below.getType())) { + continue; + } + fruitBlock.setType(fruitMaterial, true); + block.setType(attachedStem); + Directional stem = (Directional) block.getBlockData(); + stem.setFacing(face); + block.setBlockData(stem); + return; + } + } + + private boolean hasPlant(Block block) { + BlockData data = block.getBlockData(); + if (data instanceof Directional) { + Directional dir = (Directional) data; + return block.getRelative(dir.getFacing()).getType() == fruitMaterial; + } + return false; + } + + @Override + public boolean setStage(Plant plant, int stage) { + if (stage == 0) { + Block block = plant.getLocation().getBlock(); + block.setType(nonAttachedStem, true); + BlockData data = block.getBlockData(); + if (data instanceof Ageable) { + Ageable ageable = (Ageable) data; + ageable.setAge(ageable.getMaximumAge()); + } + block.setBlockData(data); + return true; + } + growFruit(plant.getLocation().getBlock()); + return true; + } + + @Override + public boolean deleteOnFullGrowth() { + return false; + } + +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/FungusGrower.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/FungusGrower.java new file mode 100644 index 000000000..926279376 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/FungusGrower.java @@ -0,0 +1,77 @@ +package com.untamedears.realisticbiomes.growth; + +import com.untamedears.realisticbiomes.model.Plant; +import java.util.Random; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Holder; +import net.minecraft.core.registries.Registries; +import net.minecraft.data.worldgen.features.TreeFeatures; +import net.minecraft.resources.ResourceKey; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; +import org.bukkit.Material; +import org.bukkit.TreeType; +import org.bukkit.block.Block; +import org.bukkit.craftbukkit.CraftWorld; +import org.bukkit.craftbukkit.util.RandomSourceWrapper; + +/** + * We need to differentiate fungus from other types of saplings thanks + * to the peculiarities with how Spigot handles tree generation. If you + * call {@code world.generateTree()} with the {@link TreeType}, it will + * generate the tree as if it were populating a newly generated chunk. + * Therefore we need to bypass that and pretend the sapling is being + * bone mealed so ensure a singular tree is generated. + */ +public class FungusGrower extends AgeableGrower { + + private final RandomSource randomSource = new RandomSourceWrapper(new Random()); + + public FungusGrower(final Material material) { + super(material, 1, 1); + } + + @Override + public int getStage(final Plant plant) { + final Block block = plant.getLocation().getBlock(); + if (block.getType() != this.material) { + return -1; + } + return 0; + } + + @Override + public boolean setStage(final Plant plant, final int stage) { + if (stage < 1) { + return true; + } + final Block block = plant.getLocation().getBlock(); + final Material material = block.getType(); + final ResourceKey> growth = + material == Material.CRIMSON_FUNGUS ? TreeFeatures.CRIMSON_FUNGUS : + material == Material.WARPED_FUNGUS ? TreeFeatures.WARPED_FUNGUS : + material == Material.FLOWERING_AZALEA ? TreeFeatures.AZALEA_TREE : + null; + if (growth == null) { + return true; + } + final ServerLevel world = ((CraftWorld) block.getWorld()).getHandle(); + final BlockPos position = new BlockPos(block.getX(), block.getY(), block.getZ()); + //Taken from CraftWorld.generateTree() + Holder> growthHolder = world.registryAccess().lookupOrThrow(Registries.CONFIGURED_FEATURE).get(growth).orElse(null); + + if (growthHolder == null) return false; + + if (!growthHolder.value().place(world, world.getChunkSource().getGenerator(), this.randomSource, position)) { + block.setType(material); + } + return true; + } + + @Override + public boolean deleteOnFullGrowth() { + return true; + } + +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/HorizontalBlockSpreadGrower.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/HorizontalBlockSpreadGrower.java new file mode 100644 index 000000000..de79658d7 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/HorizontalBlockSpreadGrower.java @@ -0,0 +1,144 @@ +package com.untamedears.realisticbiomes.growth; + +import com.google.common.base.Preconditions; +import com.untamedears.realisticbiomes.RealisticBiomes; +import com.untamedears.realisticbiomes.model.Plant; +import java.util.Collection; +import java.util.EnumSet; +import java.util.Random; +import java.util.Set; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; + +public class HorizontalBlockSpreadGrower extends IArtificialGrower { + + private static final Random rng = new Random(); + + private final int maximumInArea; + private final int maximumRange; + private Material material; + private Set validSoil; + private Set replaceableBlocks; + + public HorizontalBlockSpreadGrower(Material material, int maximumInArea, int maximumRange, + Collection replaceableBlocks, Collection validSoil) { + Preconditions.checkNotNull(material); + Preconditions.checkNotNull(replaceableBlocks); + Preconditions.checkNotNull(validSoil); + this.maximumInArea = maximumInArea; + this.maximumRange = maximumRange; + this.validSoil = EnumSet.copyOf(validSoil); + this.replaceableBlocks = EnumSet.copyOf(replaceableBlocks); + this.material = material; + } + + @Override + public int getIncrementPerStage() { + return 1; + } + + @Override + public int getMaxStage() { + return maximumInArea - 1; + } + + @Override + public int getStage(Plant plant) { + Block block = plant.getLocation().getBlock(); + if (block.getType() != material) { + return -1; + } + int maxX = block.getX() + maximumRange; + int maxZ = block.getZ() + maximumRange; + int count = 0; + for (int x = block.getX() - maximumRange; x < maxX; x++) { + for (int z = block.getZ() - maximumRange; z < maxZ; z++) { + if (block.getWorld().getBlockAt(x, block.getY(), z).getType() == material) { + count++; + } + } + } + // remove block itself which is always there, because stage 0 equals only the + // center block itself + return count - 1; + } + + @Override + public boolean setStage(Plant plant, int stage) { + int currentAmount = getStage(plant); + int toAdd = stage - currentAmount; + outer: + for (int i = 0; i < toAdd; i++) { + // pick a random spot in range, scan forward in lines from it, then scan + // backwards in lines from it + int xOffset = rng.nextInt(maximumRange * 2 + 1); + int zOffset = rng.nextInt(maximumRange * 2 + 1); + Location lowerCorner = plant.getLocation().clone(); + lowerCorner.subtract(maximumRange, 0, maximumRange); + int upperXBound = plant.getLocation().getBlockX() + maximumRange; + int upperZBound = plant.getLocation().getBlockZ() + maximumRange; + // starting line forward + for (int z = zOffset + lowerCorner.getBlockZ(); z <= upperZBound; z++) { + if (growAtSpot(plant, new Location(lowerCorner.getWorld(), lowerCorner.getBlockX() + xOffset, + lowerCorner.getBlockY(), z))) { + continue outer; + } + } + // scan forward + for (int x = xOffset + lowerCorner.getBlockX() + 1; x <= upperXBound; x++) { + for (int z = zOffset + lowerCorner.getBlockZ(); z <= upperZBound; z++) { + if (growAtSpot(plant, new Location(lowerCorner.getWorld(), x, lowerCorner.getBlockY(), z))) { + continue outer; + } + } + } + // starting line backward + for (int z = zOffset + lowerCorner.getBlockZ() - 1; z >= lowerCorner.getBlockZ(); z--) { + if (growAtSpot(plant, new Location(lowerCorner.getWorld(), lowerCorner.getBlockX() + xOffset, + lowerCorner.getBlockY(), z))) { + continue outer; + } + } + // scan backward + for (int x = xOffset + lowerCorner.getBlockX() - 1; x >= lowerCorner.getBlockX(); x--) { + for (int z = zOffset + lowerCorner.getBlockZ(); z >= lowerCorner.getBlockZ(); z--) { + if (growAtSpot(plant, new Location(lowerCorner.getWorld(), x, lowerCorner.getBlockY(), z))) { + continue outer; + } + } + } + break; // no valid growth spot available, cancel all further growth attempts + } + + return true; + } + + private boolean growAtSpot(Plant source, Location loc) { + Block block = loc.getBlock(); + if (!replaceableBlocks.isEmpty()) { + if (!replaceableBlocks.contains(block.getType())) { + return false; + } + } + if (!validSoil.isEmpty()) { + Block below = block.getRelative(BlockFace.DOWN); + if (!validSoil.contains(below.getType())) { + return false; + } + } + block.setType(material); + // create new plant at this location for further spread + Plant plant = new Plant(block.getLocation(), source.getGrowthConfig()); + RealisticBiomes.getInstance().getPlantManager().putPlant(plant); + RealisticBiomes.getInstance().getPlantLogicManager().updateGrowthTime(plant, block); + return true; + } + + @Override + public boolean deleteOnFullGrowth() { + return false; + } + +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/IArtificialGrower.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/IArtificialGrower.java new file mode 100644 index 000000000..36aaf5b5f --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/IArtificialGrower.java @@ -0,0 +1,77 @@ +package com.untamedears.realisticbiomes.growth; + +import com.untamedears.realisticbiomes.model.Plant; + +/** + * Parent class for any block specific growth logic. Growth of a block is + * subdivided into steps, where the initial state is 0 and the final (fully + * grown) state is a positive integer. Growth happens in increments by a static + * amount in between these numbers. + *

+ * Growth stages may, but must not necessarily map to Ageable BlockStates, how + * exactly stages are interpreted is entirely up to the implementation + */ +public abstract class IArtificialGrower { + + /** + * Grows the given plant to its maximum growth stage possible + * + * @param plant Plant to grow + */ + public void fullyGrow(Plant plant) { + setStage(plant, getMaxStage()); + } + + /** + * @return How many growth stages should be progressed at once + */ + public abstract int getIncrementPerStage(); + + /** + * @return Maximum growth stage achievable + */ + public abstract int getMaxStage(); + + /** + * How far the plant has grown as a fraction from 0 to 1 + * + * @param plant Plant to check growth for + * @return Growth on a scale from 0 to 1 + */ + public double getProgressGrowthStage(Plant plant) { + return (double) getStage(plant) / getMaxStage(); + } + + /** + * Gets the current growth stage of the given plant + * + * @param plant Plant to get growth stage for + * @return Current growth stage of the plant between 0 and maxStage (inclusive). -1 if the plant is completely broken/gone + */ + public abstract int getStage(Plant plant); + + /** + * Sets the growth stage of the given plant to the given number + * + * @param plant Plant to set growth stage for + * @param stage Stage to set to + * @return True if the stage was set successfully. + * Now used only for VerticalGrower, helps to determine if CACTUS grown but was broken by adjacent blocks + */ + public abstract boolean setStage(Plant plant, int stage); + + /** + * @return Should a plant instance be deleted entirely once fully grown + */ + public abstract boolean deleteOnFullGrowth(); + + /** + * Usually we assume plants are permanently broken if a stage update fails and don't update them anymore. Settings this to true will ignore that + * + * @return + */ + public boolean ignoreGrowthFailure() { + return false; + } + +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/KelpGrower.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/KelpGrower.java new file mode 100644 index 000000000..f71074d1a --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/KelpGrower.java @@ -0,0 +1,115 @@ +package com.untamedears.realisticbiomes.growth; + +import com.untamedears.realisticbiomes.model.Plant; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; + +public class KelpGrower extends TipGrower { + + private Material tip = Material.KELP; + private Material stem = Material.KELP_PLANT; + private BlockFace primaryGrowthDirection = BlockFace.UP; + private int maxHeight; + + public KelpGrower(int maxHeight) { + super(Material.KELP, Material.KELP_PLANT, BlockFace.UP, maxHeight); + this.maxHeight = maxHeight; + } + + @Override + public int getIncrementPerStage() { + return 1; + } + + @Override + public int getMaxStage() { + return this.maxHeight - 1; + } + + @Override + public int getStage(Plant plant) { + Block plantBlock = plant.getLocation().getBlock(); + Block endBlock = plantBlock.getRelative(primaryGrowthDirection.getOppositeFace()); + int count = 0; + for (int i = 0; i <= 384; i++) { + endBlock = endBlock.getRelative(getPrimaryGrowthDirection()); + if (endBlock.getType() == getTipMaterial() || endBlock.getType() == getStemMaterial()) { + count++; + continue; + } + break; + } + return count - 1; + } + + @Override + public boolean setStage(Plant plant, int stage) { + int currentStage = getStage(plant); + Block plantBlock = plant.getLocation().getBlock(); + if (stage <= currentStage) { + return false; + } + return !growVertically(plant, getRelativeBlock(plantBlock), stage - currentStage).growthLimited(); + } + + @Override + protected VerticalGrowResult growVertically(Plant plant, Block block, int howMany) { + int counter = 0; + Block onTop = block; + while (counter < getMaxStage() && howMany > 0) { + counter++; + onTop = onTop.getRelative(getPrimaryGrowthDirection()); + Material topMaterial = onTop.getType(); + if (topMaterial == Material.WATER) { + onTop.setType(getTipMaterial(), true); + howMany--; + continue; + } + if (topMaterial == getTipMaterial() || topMaterial == getStemMaterial()) { + // already existing block of the same plant + continue; + } + // neither air, nor the right plant, but something else blocking growth, so we + // stop + break; + } + + onTop = onTop.getType() != getTipMaterial() ? onTop.getRelative(getPrimaryGrowthDirection().getOppositeFace()) : onTop; + + return new VerticalGrowResult(howMany > 0, onTop); + } + + @Override + public boolean deleteOnFullGrowth() { + return super.deleteOnFullGrowth(); + } + + @Override + public Block getRelativeBlock(Block block) { + Block placeholder = block; + for (int i = 0; i < 384; i++) { + Block relative = placeholder.getRelative(getPrimaryGrowthDirection()); + if (relative.getType() != getTipMaterial() || relative.getType() != getStemMaterial()) { + break; + } + placeholder = relative; + } + return placeholder; + } + + @Override + public Material getTipMaterial() { + return Material.KELP; + } + + @Override + public Material getStemMaterial() { + return Material.KELP_PLANT; + } + + @Override + public BlockFace getPrimaryGrowthDirection() { + return BlockFace.UP; + } +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/SchematicGrower.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/SchematicGrower.java new file mode 100644 index 000000000..e7d80ed15 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/SchematicGrower.java @@ -0,0 +1,51 @@ +package com.untamedears.realisticbiomes.growth; + +import com.untamedears.realisticbiomes.model.Plant; +import com.untamedears.realisticbiomes.model.RBSchematic; +import org.bukkit.Location; +import org.bukkit.block.Block; + +public class SchematicGrower extends IArtificialGrower { + + private RBSchematic schematic; + private Location offset; + + public SchematicGrower(RBSchematic schematic, Location offSet) { + this.schematic = schematic; + this.offset = offSet; + } + + @Override + public int getIncrementPerStage() { + return 1; + } + + @Override + public int getMaxStage() { + return 1; + } + + @Override + public int getStage(Plant plant) { + Block block = plant.getLocation().getBlock(); + if (block.getType() != plant.getGrowthConfig().getItem().getType()) { + return -1; + } + return 0; + } + + @Override + public boolean setStage(Plant plant, int stage) { + if (stage < 1) { + return true; + } + schematic.spawnAt(plant.getLocation().add(offset)); + return true; + } + + @Override + public boolean deleteOnFullGrowth() { + return true; + } + +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/SeaPickleGrower.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/SeaPickleGrower.java new file mode 100644 index 000000000..46c076a0c --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/SeaPickleGrower.java @@ -0,0 +1,47 @@ +package com.untamedears.realisticbiomes.growth; + +import com.untamedears.realisticbiomes.model.Plant; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.data.type.SeaPickle; + +public class SeaPickleGrower extends IArtificialGrower { + + @Override + public int getIncrementPerStage() { + return 1; + } + + @Override + public int getMaxStage() { + return 3; + } + + @Override + public int getStage(Plant plant) { + Block block = plant.getLocation().getBlock(); + if (block.getType() != Material.SEA_PICKLE) { + return -1; + } + SeaPickle data = (SeaPickle) block.getBlockData(); + return data.getPickles() - 1; + } + + @Override + public boolean setStage(Plant plant, int stage) { + Block block = plant.getLocation().getBlock(); + if (block.getType() != Material.SEA_PICKLE) { + return true; + } + SeaPickle data = (SeaPickle) block.getBlockData(); + data.setPickles(stage + 1); + block.setBlockData(data); + return true; + } + + @Override + public boolean deleteOnFullGrowth() { + return true; + } + +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/StemGrower.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/StemGrower.java new file mode 100644 index 000000000..a1038f3fb --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/StemGrower.java @@ -0,0 +1,41 @@ +package com.untamedears.realisticbiomes.growth; + +import com.google.common.base.Preconditions; +import com.untamedears.realisticbiomes.growthconfig.PlantGrowthConfig; +import com.untamedears.realisticbiomes.model.Plant; +import org.bukkit.Material; + +public class StemGrower extends AgeableGrower { + + private String fruitConfigName; + private PlantGrowthConfig fruitConfig; + + public StemGrower(Material material, String fruitConfig) { + super(material, 7, 1); + Preconditions.checkNotNull(fruitConfig); + this.fruitConfigName = fruitConfig; + } + + public String getFruitConfigName() { + return fruitConfigName; + } + + public void setFruitConfig(PlantGrowthConfig fruitConfig) { + this.fruitConfig = fruitConfig; + } + + public PlantGrowthConfig getFruitConfig() { + return fruitConfig; + } + + @Override + public boolean setStage(Plant plant, int stage) { + super.setStage(plant, stage); + if (getMaxStage() == stage) { + plant.resetCreationTime(); + plant.setGrowthConfig(fruitConfig); + } + return true; + } + +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/TipGrower.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/TipGrower.java new file mode 100644 index 000000000..af44eb12c --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/TipGrower.java @@ -0,0 +1,126 @@ +package com.untamedears.realisticbiomes.growth; + +import com.untamedears.realisticbiomes.model.Plant; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.Directional; + +public class TipGrower extends ColumnPlantGrower { + + private final Material tip; + private final Material stem; + private final BlockFace primaryGrowthDirection; + private final int maxHeight; + + public TipGrower(Material tip, Material stem, BlockFace primaryGrowthDirection, int maxHeight) { + super(maxHeight, tip, primaryGrowthDirection, false); + this.tip = tip; + this.stem = stem; + this.primaryGrowthDirection = primaryGrowthDirection; + this.maxHeight = maxHeight; + } + + @Override + public int getIncrementPerStage() { + return 1; + } + + @Override + public int getMaxStage() { + return this.maxHeight - 1; + } + + @Override + public int getStage(Plant plant) { + Block plantBlock = plant.getLocation().getBlock(); + Block endBlock = plantBlock.getRelative(primaryGrowthDirection.getOppositeFace()); + int count = 0; + for (int i = 0; i <= 384; i++) { + endBlock = endBlock.getRelative(getPrimaryGrowthDirection()); + if (endBlock.getType() == getTipMaterial() || endBlock.getType() == getStemMaterial()) { + count++; + continue; + } + break; + } + int stage = count - 1; + return Math.min(stage, getMaxStage()); + } + + @Override + public boolean setStage(Plant plant, int stage) { + int currentStage = getStage(plant); + Block plantBlock = plant.getLocation().getBlock(); + if (stage <= currentStage) { + return false; + } + return !growVertically(plant, getRelativeBlock(plantBlock), stage - currentStage).growthLimited(); + } + + @Override + protected VerticalGrowResult growVertically(Plant plant, Block block, int howMany) { + int counter = 0; + Block onTop = block; + BlockFace direction = null; + if (block.getBlockData() instanceof Directional dir) { + direction = dir.getFacing(); + } + while (counter < getMaxStage() && howMany > 0) { + counter++; + onTop = onTop.getRelative(getPrimaryGrowthDirection()); + Material topMaterial = onTop.getType(); + if (topMaterial.isAir()) { + onTop.setType(tip, true); + if (direction != null) { + Directional blockData = ((Directional) onTop.getBlockData()); + blockData.setFacing(direction); + onTop.setBlockData(blockData); + } + howMany--; + continue; + } + if (topMaterial == getTipMaterial() || topMaterial == getStemMaterial()) { + // already existing block of the same plant + continue; + } + // neither air, nor the right plant, but something else blocking growth, so we + // stop + break; + } + + onTop = onTop.getType() != getTipMaterial() ? onTop.getRelative(getPrimaryGrowthDirection().getOppositeFace()) : onTop; + + return new VerticalGrowResult(howMany > 0, onTop); + } + + @Override + public boolean deleteOnFullGrowth() { + return false; + } + + //Gets the bottom block of the plant in which we store the plant object + public Block getRelativeBlock(Block block) { + Block placeholder = block; + for (int i = 0; i < 384; i++) { + Block relative = placeholder.getRelative(getPrimaryGrowthDirection()); + if (relative.getType() != getTipMaterial() || relative.getType() != getStemMaterial()) { + break; + } + placeholder = relative; + } + return placeholder; + } + + public Material getTipMaterial() { + return this.tip; + } + + public Material getStemMaterial() { + return this.stem; + } + + public BlockFace getPrimaryGrowthDirection() { + return this.primaryGrowthDirection; + } +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/TreeGrower.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/TreeGrower.java new file mode 100644 index 000000000..b62efe67d --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/TreeGrower.java @@ -0,0 +1,207 @@ +package com.untamedears.realisticbiomes.growth; + +import com.untamedears.realisticbiomes.PlantManager; +import com.untamedears.realisticbiomes.RealisticBiomes; +import com.untamedears.realisticbiomes.breaker.TreeDelegate; +import com.untamedears.realisticbiomes.model.Plant; +import org.bukkit.Material; +import org.bukkit.TreeType; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Sapling; +import java.util.Random; + +public class TreeGrower extends AgeableGrower { + + private static boolean adjacentSaplingCheck(Material mat, Block northwest) { + for (Block block : new Block[]{northwest, northwest.getRelative(1, 0, 0), northwest.getRelative(0, 0, 1), + northwest.getRelative(1, 0, 1)}) { + if (block == null) { + return false; + } + if (block.getType() != mat) { + return false; + } + } + return true; + } + + private static boolean canBeBig(Material mat) { + switch (mat) { + case DARK_OAK_SAPLING: + case JUNGLE_SAPLING: + case SPRUCE_SAPLING: + case PALE_OAK_SAPLING: + return true; + default: + return false; + } + } + + /** + * Checks whether the block is part of a valid 2x2 grid + * + * @param block Block to check for + * @param mat Sapling material + * @return True if the block is part of a 2x2 sapling grid and could grow large, + * false otherwise + */ + private static boolean canGrowBig(Block block, Material mat) { + return adjacentSaplingCheck(mat, block.getRelative(-1, 0, -1)) + || adjacentSaplingCheck(mat, block.getRelative(0, 0, -1)) + || adjacentSaplingCheck(mat, block.getRelative(-1, 0, 0)) || adjacentSaplingCheck(mat, block); + } + + /** + * Checks whether the block is part of a 2x2 grid and returns the north west block + * + * @param block to check for + * @param mat Sapling material + * @return North west block; null if the block is not part of a 2x2 sapling grid + */ + private static Block findNWSapling(Block block, Material mat) { + Block northwest = null; + for (Block nwCandidate : new Block[]{block, block.getRelative(1, 0, 1), block.getRelative(0, 0, 1), + block.getRelative(1, 0, 0)}) { + if (adjacentSaplingCheck(mat, nwCandidate)) { + northwest = nwCandidate; + break; + } + } + if (northwest == null) { + return null; + } + return northwest; + } + + private static void removeSapling(Block block) { + PlantManager manager = RealisticBiomes.getInstance().getPlantManager(); + Plant plant = manager.getPlant(block); + if (plant == null) { + return; + } + manager.deletePlant(plant); + block.setType(Material.AIR); + } + + /** + * Remove a 2x2 saplings grid if the block is part of one + * + * @param block to check for + * @param mat Sapling material + */ + private static Block clearBigTreeSaplings(Block block, Material mat) { + Block northwest = null; + Block northeast, southwest, southeast; + northwest = findNWSapling(block, mat); + if (northwest == null) { + return null; + } + + northeast = northwest.getRelative(BlockFace.EAST); + southwest = northwest.getRelative(BlockFace.SOUTH); + southeast = northeast.getRelative(BlockFace.SOUTH); + + removeSapling(northwest); + removeSapling(northeast); + removeSapling(southeast); + removeSapling(southwest); + return northwest; + } + + private static TreeType remapSaplingToTree(Material mat, boolean big) { + switch (mat) { + case OAK_SAPLING: + return TreeType.TREE; + case BIRCH_SAPLING: + return TreeType.BIRCH; + case ACACIA_SAPLING: + return TreeType.ACACIA; + case FLOWERING_AZALEA: + return TreeType.AZALEA; + case CHERRY_SAPLING: + return TreeType.CHERRY; + case MANGROVE_PROPAGULE: + return big ? TreeType.TALL_MANGROVE : TreeType.MANGROVE; + case DARK_OAK_SAPLING: + return big ? TreeType.DARK_OAK : null; + case PALE_OAK_SAPLING: + return big ? TreeType.PALE_OAK : null; + case JUNGLE_SAPLING: + return big ? TreeType.JUNGLE : TreeType.SMALL_JUNGLE; + case SPRUCE_SAPLING: + return big ? TreeType.MEGA_REDWOOD : TreeType.REDWOOD; + case CHORUS_FLOWER: + return TreeType.CHORUS_PLANT; + case RED_MUSHROOM: + return TreeType.RED_MUSHROOM; + case BROWN_MUSHROOM: + return TreeType.BROWN_MUSHROOM; + default: + return null; + } + } + + + public TreeGrower(Material saplingType) { + super(saplingType, 1, 1); + } + + @Override + public int getStage(Plant plant) { + Block block = plant.getLocation().getBlock(); + if (block.getType() != this.material) { + return -1; + } + return 0; + } + + @Override + public boolean setStage(Plant plant, int stage) { + if (stage < 1) { + return true; + } + Block block = plant.getLocation().getBlock(); + // Re-Read the block data to make sure it is up to date + if (!(block.getBlockData() instanceof Sapling) && block.getType() != Material.RED_MUSHROOM && block.getType() != Material.BROWN_MUSHROOM) { + return true; + } + Material mat = block.getType(); + boolean canBeBig = canBeBig(mat); + if (canBeBig) { + canBeBig = canGrowBig(block, mat); + } + TreeType type = remapSaplingToTree(mat, canBeBig); + if (type == null) { + return true; + } + Block northwest = null; + if (canBeBig) { + northwest = clearBigTreeSaplings(block, mat); + } else { + block.setType(Material.AIR); + } + if (!block.getLocation().getWorld().generateTree(block.getLocation(), new Random(), type, new TreeDelegate())) { + //failed, so restore sapling + if (canBeBig) { + Block northeast = northwest.getRelative(BlockFace.EAST); + Block southwest = northwest.getRelative(BlockFace.SOUTH); + Block southeast = northeast.getRelative(BlockFace.SOUTH); + + northwest.setType(mat); + northeast.setType(mat); + southwest.setType(mat); + southeast.setType(mat); + } else { + block.setType(mat); + } + } + return true; + } + + @Override + public boolean deleteOnFullGrowth() { + return true; + } + +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/VerticalGrower.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/VerticalGrower.java new file mode 100644 index 000000000..aff8fd56b --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growth/VerticalGrower.java @@ -0,0 +1,157 @@ +package com.untamedears.realisticbiomes.growth; + +import com.untamedears.realisticbiomes.model.Plant; +import com.untamedears.realisticbiomes.utils.RBUtils; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.entity.Item; +import org.bukkit.inventory.ItemStack; +import vg.civcraft.mc.civmodcore.inventory.items.MaterialUtils; +import vg.civcraft.mc.civmodcore.world.WorldUtils; + +public class VerticalGrower extends IArtificialGrower { + + public record VerticalGrowResult(boolean growthLimited, Block top) { + + } + + public static Block getRelativeBlock(Block block, BlockFace face) { + Material mat = block.getType(); + Block bottomBlock = block; + // not actually using this variable, but just having it here as a fail safe + for (int i = 0; i < 384; i++) { + Block below = bottomBlock.getRelative(face); + if (below.getType() != mat && below.getType() != RBUtils.getTipMaterial(mat) && below.getType() != RBUtils.getStemMaterial(mat)) { + break; + } + bottomBlock = below; + } + return bottomBlock; + } + + private int maxHeight; + private Material material; + private boolean instaBreakTouching; + private BlockFace primaryGrowthDirection; + + public VerticalGrower(int maxHeight, Material material, BlockFace primaryGrowthDirection, boolean instaBreakTouching) { + this.maxHeight = maxHeight; + this.material = material; + this.instaBreakTouching = instaBreakTouching; + this.primaryGrowthDirection = primaryGrowthDirection; + } + + public Material getMaterial() { + return material; + } + + @Override + public int getIncrementPerStage() { + return 1; + } + + public BlockFace getPrimaryGrowthDirection() { + return primaryGrowthDirection; + } + + public boolean isInstaBreakTouching() { + return instaBreakTouching; + } + + @Override + public int getMaxStage() { + return maxHeight - 1; + } + + @Override + public int getStage(Plant plant) { + Block block = plant.getLocation().getBlock(); + if (material != block.getType()) { + return -1; + } + Block bottom = getRelativeBlock(block, primaryGrowthDirection.getOppositeFace()); + if (!bottom.getLocation().equals(block.getLocation())) { + return -1; + } + int stage = getActualHeight(block) - 1; + return Math.min(stage, getMaxStage()); + } + + protected int getActualHeight(Block block) { + Block bottom = getRelativeBlock(block, BlockFace.DOWN); + Block top = getRelativeBlock(block, BlockFace.UP); + + return top.getY() - bottom.getY() + 1; + } + + /** + * Handles the growth of a column plant ( i.e sugarcane, cactus ) + * + * @param block Block of the corresponding plant + * @param howMany How tall should the growth be + * @return highest plant block + */ + protected VerticalGrowResult growVertically(Plant plant, Block block, int howMany) { + if (material != null && block.getType() != material) { + block.setType(material); + } + + int counter = 1; + Block onTop = block; + while (counter < maxHeight && howMany > 0) { + counter++; + onTop = onTop.getRelative(primaryGrowthDirection); + Material topMaterial = onTop.getType(); + if (topMaterial == Material.AIR) { + if (instaBreakTouching) { + for (BlockFace face : WorldUtils.PLANAR_SIDES) { + Block side = onTop.getRelative(face); + if (!MaterialUtils.isAir(side.getType())) { + ItemStack toDrop = plant.getGrowthConfig().getItem().clone(); + toDrop.setAmount(howMany); + Location loc = block.getLocation(); + loc.add(0.5, 0.5, 0.5); + Item item = block.getWorld().dropItemNaturally(loc, toDrop); + item.setVelocity(item.getVelocity().multiply(1.2)); + plant.resetCreationTime(); + onTop = onTop.getRelative(primaryGrowthDirection.getOppositeFace()); + + return new VerticalGrowResult(false, onTop); + } + } + } + onTop.setType(material, true); + howMany--; + continue; + } + if (topMaterial == block.getType()) { + // already existing block of the same plant + continue; + } + // neither air, nor the right plant, but something else blocking growth, so we + // stop + break; + } + + onTop = onTop.getType() != material ? onTop.getRelative(primaryGrowthDirection.getOppositeFace()) : onTop; + + return new VerticalGrowResult(howMany > 0, onTop); + } + + @Override + public boolean setStage(Plant plant, int stage) { + int currentStage = getStage(plant); + if (stage <= currentStage) { + return false; + } + Block block = plant.getLocation().getBlock(); + return !growVertically(plant, block, stage - currentStage).growthLimited; + } + + @Override + public boolean deleteOnFullGrowth() { + return false; + } +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growthconfig/AbstractGrowthConfig.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growthconfig/AbstractGrowthConfig.java new file mode 100644 index 000000000..e71478c46 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growthconfig/AbstractGrowthConfig.java @@ -0,0 +1,17 @@ +package com.untamedears.realisticbiomes.growthconfig; + +public abstract class AbstractGrowthConfig { + + protected final String name; + + public AbstractGrowthConfig(String name) { + this.name = name; + } + + /** + * @return Identifiying unique name of this config + */ + public String getName() { + return name; + } +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growthconfig/PlantGrowthConfig.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growthconfig/PlantGrowthConfig.java new file mode 100644 index 000000000..45671f5fa --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/growthconfig/PlantGrowthConfig.java @@ -0,0 +1,479 @@ +package com.untamedears.realisticbiomes.growthconfig; + +import com.untamedears.realisticbiomes.FarmBeaconManager; +import com.untamedears.realisticbiomes.RealisticBiomes; +import com.untamedears.realisticbiomes.growth.IArtificialGrower; +import com.untamedears.realisticbiomes.growth.VerticalGrower; +import com.untamedears.realisticbiomes.model.Plant; +import com.untamedears.realisticbiomes.noise.BiomeConfiguration; +import com.untamedears.realisticbiomes.noise.Climate; +import com.untamedears.realisticbiomes.utils.RBUtils; +import java.math.RoundingMode; +import java.text.DecimalFormat; +import java.util.List; +import java.util.Map; +import java.util.concurrent.TimeUnit; +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.BlockData; +import org.bukkit.block.data.Waterlogged; +import org.bukkit.inventory.ItemStack; +import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; +import vg.civcraft.mc.civmodcore.utilities.TextUtil; +import vg.civcraft.mc.civmodcore.world.WorldUtils; + +public class PlantGrowthConfig extends AbstractGrowthConfig { + + private record SetStageResult(int currentStage, int intendedStage, long creationTime, Long nextUpdateTime) { + + } + + private static final SetStageResult NO_NEXT_UPDATE = new SetStageResult(0, 0, 0, Long.MAX_VALUE); + + private static final byte MAX_LIGHT = 15; + private static final long INFINITE_TIME = TimeUnit.DAYS.toMillis(365L * 1000L); + private static final DecimalFormat decimalFormat = new DecimalFormat("0.00"); + + private ItemStack item; + private short id; + + private List applicableVanillaPlants; + + private Map greenHouseRates; + + private int maximumSoilLayers; + private double maximumSoilBonus; + private Map soilBoniPerLevel; + + private boolean allowBoneMeal; + private boolean needsLight; + + private final Climate climate; + private final long growthTime; + private final BiomeConfiguration biomeConfiguration; + private BreakerConfig breaker; + + private IArtificialGrower grower; + private boolean canBePlantedDirectly; + private boolean needsToBeWaterlogged; + + private final FarmBeaconManager farmBeaconManager; + + public PlantGrowthConfig(String name, short id, ItemStack item, Map greenHouseRates, + Map soilBoniPerLevel, int maximumSoilLayers, double maximumSoilBonus, + boolean allowBoneMeal, Climate climate, long growthTime, BiomeConfiguration biomeConfiguration, BreakerConfig breaker, boolean needsLight, IArtificialGrower grower, + List applicableVanillaPlants, boolean canBePlantedDirectly, boolean needsToBeWaterlogged, FarmBeaconManager farmBeaconManager) { + super(name); + this.id = id; + this.item = item; + this.greenHouseRates = greenHouseRates; + this.soilBoniPerLevel = soilBoniPerLevel; + this.maximumSoilLayers = maximumSoilLayers; + this.maximumSoilBonus = maximumSoilBonus; + this.allowBoneMeal = allowBoneMeal; + this.climate = climate; + this.growthTime = growthTime; + this.biomeConfiguration = biomeConfiguration; + this.breaker = breaker; + this.grower = grower; + this.needsLight = needsLight; + this.canBePlantedDirectly = canBePlantedDirectly; + this.applicableVanillaPlants = applicableVanillaPlants; + this.needsToBeWaterlogged = needsToBeWaterlogged; + this.farmBeaconManager = farmBeaconManager; + } + + /** + * Gets an information string to show to as growth information at a specific + * block + * + * @param b Block to get growth information for + * @return Info string ready for output to a player + */ + public String getInfoString(Block b) { + double soilMultiplier = 1.0 + getSoilBonus(b); + double lightMultiplier = getLightMultiplier(b); + double beaconMultiplier = getBeaconMultiplier(b); + StringBuilder sb = new StringBuilder(); + sb.append(ChatColor.GOLD); + sb.append(ItemUtils.getItemName(item)); + + long time = getPersistentGrowthTime(b); + if (time == -1) { + sb.append(" does not grow here"); + return sb.toString(); + } else { + sb.append(" will grow here within " + TextUtil.formatDuration(time, TimeUnit.MILLISECONDS)); + } + + if (this.breaker != null) { + int maxYield = this.breaker.maxYield(); + double yield = biomeConfiguration.getYield(b, climate, this.breaker.type(), maxYield); + DecimalFormat format = new DecimalFormat("#.##"); + format.setRoundingMode(RoundingMode.DOWN); + sb.append(", yield: ").append(format.format(yield * maxYield)).append("x"); + } + + if (soilMultiplier != 1.0) { + sb.append("\n" + ChatColor.AQUA + "Soil multiplier: " + soilMultiplier); + } + if (lightMultiplier != 1.0) { + sb.append("\n" + ChatColor.GOLD + "Light multiplier: " + lightMultiplier); + } + if (beaconMultiplier != 1.0) { + sb.append("\n" + ChatColor.LIGHT_PURPLE + "Farm beacon nearby"); + } + return sb.toString(); + } + + public short getID() { + return id; + } + + public List getApplicableVanillaPlants() { + return applicableVanillaPlants; + } + + /** + * Multiplier to apply to the plants growth based on surrounding light + * conditions + * + * @param block Block to check light conditions for + * @return Multplier to apply to growth rate + */ + private double getLightMultiplier(Block block) { + if (!needsLight) { + return 1.0; + } + byte naturalLight = block.getLightFromSky(); + if (naturalLight == MAX_LIGHT) { + return 1.0; + } + double greenHouseRate = 0.0; + if (block.getLightFromBlocks() >= 12) { + for (BlockFace face : WorldUtils.ALL_SIDES) { + Block adjacent = block.getRelative(face); + Double multiplier = greenHouseRates.get(adjacent.getType()); + if (multiplier != null) { + greenHouseRate = Math.max(greenHouseRate, multiplier); + } + } + } + return Math.max(greenHouseRate, 0); + } + + // affects growth time + private double getBeaconMultiplier(Block block) { + return this.farmBeaconManager.isNearBeacon(block.getLocation()) ? 2.0 : 1.0; + } + + /** + * @return Item/Plant for which this config applies + */ + public ItemStack getItem() { + return item; + } + + public Map getGreenHouseRates() { + return greenHouseRates; + } + + public int getMaximumSoilLayers() { + return maximumSoilLayers; + } + + public double getMaximumSoilBonus() { + return maximumSoilBonus; + } + + public boolean needsToBeWaterLogged() { + return needsToBeWaterlogged; + } + + public Map getSoilBoniPerLevel() { + return soilBoniPerLevel; + } + + public boolean getNeedsLight() { + return needsLight; + } + + public boolean getAllowBoneMeal() { + return allowBoneMeal; + } + + public IArtificialGrower getGrower() { + return grower; + } + + public BreakerConfig getBreaker() { + return breaker; + } + + /** + * @return Whether a plant of this config can be created by placing its matching item down. Will be false for melons or pumpkins for example + */ + public boolean canBePlantedDirectly() { + return canBePlantedDirectly; + } + + /** + * Looks at all surrounding factors to calculate how long a plant would take to + * grow at the given block with persistent growth + * + * @param block Block to check growth condition for + * @return Total milli seconds needed to fully grow a plant + * @see PlantGrowthConfig#getPersistentGrowthTime(Block, boolean) + */ + public long getPersistentGrowthTime(Block block) { + return getPersistentGrowthTime(block, false); + } + + /** + * Looks at all surrounding factors to calculate how long a plant would take to + * grow at the given block with persistent growth + * + * @param block Block to check growth condition for + * @param ignoreLight Whether to ignore light, if true will assume there is full light + * @return Total milli seconds needed to fully grow a plant + */ + public long getPersistentGrowthTime(Block block, boolean ignoreLight) { + double baseTime = this.growthTime / (1.0 + getSoilBonus(block)); + if (!ignoreLight) { + double lightMultiplier = getLightMultiplier(block); + if (lightMultiplier == 0.0) { + baseTime = INFINITE_TIME; + } else { + baseTime /= lightMultiplier; + } + } + baseTime *= getBeaconMultiplier(block); + return (long) baseTime; + } + + public long getGrowthTime() { + return growthTime; + } + + /** + * Gets an info string regarding the growth progress of a single plant + * + * @param block Block at which the plant is + * @param plant Plant growing there, may be null for non-persistent growth + * @return Info string describing the plants growth progress + */ + public String getPlantInfoString(Block block, Plant plant) { + StringBuilder sb = new StringBuilder(); + sb.append(ChatColor.GOLD); + sb.append(this.name); + if (plant == null) { + // non-persistent growth + double progress = grower.getProgressGrowthStage(new Plant(block.getLocation(), this)); + sb.append(" is "); + sb.append(decimalFormat.format(progress * 100)); + sb.append(" % grown"); + } else { + if (isFullyGrown(plant)) { + sb.append(" is fully grown "); + return sb.toString(); + } + appendPlantProgress(block, plant, sb); + } + return sb.toString(); + } + + private void appendPlantProgress(Block block, Plant plant, StringBuilder sb) { + long totalTime = getPersistentGrowthTime(block); + long passedTime = System.currentTimeMillis() - plant.getCreationTime(); + long timeRemaining = Math.max(0, totalTime - passedTime); + + if (timeRemaining >= INFINITE_TIME || totalTime == -1) { + sb.append(" will never grow here"); + return; + } + + if (plant.getNextUpdate() == Long.MAX_VALUE) { + sb.append(" does not grow"); + return; + } + + sb.append(" will grow to full size "); + if (timeRemaining <= 0) { + sb.append("now"); + } else { + sb.append("in "); + sb.append(TextUtil.formatDuration(timeRemaining, TimeUnit.MILLISECONDS)); + } + } + + /** + * Calculates the soil bonus multiplier for the given plant at the given + * location. A soil bonus multiplier of 0.0 means no bonus and a growth rate of + * 1.0 for the plant, a soil bonus of 1.0 means a 2.0 multiplier for the plant + * etc. + * + * @param block Block where the plant is + * @return Soil bonus applied for the location + */ + private double getSoilBonus(Block block) { + Block soilBlock = block.getRelative(0, RBUtils.getVerticalSoilOffset(block.getType()), 0); + double totalRate = 0.0; + for (int i = 0; i < maximumSoilLayers; i++) { + Double blockRate = soilBoniPerLevel.get(soilBlock.getType()); + if (blockRate == null) { + break; + } + totalRate += blockRate; + soilBlock = soilBlock.getRelative(BlockFace.DOWN); + } + if (needsToBeWaterlogged) { + boolean hasWater = false; + if (block.getType() == Material.WATER) { + hasWater = true; + } else { + BlockData data = block.getBlockData(); + if (data instanceof Waterlogged) { + hasWater = ((Waterlogged) data).isWaterlogged(); + } + } + if (!hasWater) { + return 0.0; + } + } + return Math.min(totalRate, maximumSoilBonus); + } + + public boolean isBonemealAllowed() { + return allowBoneMeal; + } + + /** + * Checks whether the given plant is fully grown + * + * @param plant the plant + * @return True if the plant has reached its maximum growth stage, false + * otherwise + */ + public boolean isFullyGrown(Plant plant) { + return grower.getMaxStage() == grower.getStage(plant); + } + + public long updatePlant(Plant plant) { + Block block = plant.getLocation().getBlock(); + return updatePlant(plant, block); + } + + /** + * Updates the world state of the plant to match its intended state based on its + * creation time and calculates the next time stamp at which the plant should be + * updated + * + * @param plant Plant to update + * @param block Block the plant is at + * @return UNIX time stamp at which the plant needs to be updated next if it is + * still growing or Long.MAX_VALUE if it will never grow or if it is already + * fully grown + */ + public long updatePlant(Plant plant, Block block) { + if (plant.getGrowthConfig() == null) { + plant.setGrowthConfig(this); + } + if (plant.getGrowthConfig() != this) { + throw new IllegalStateException("Can not grow plant with different growth config, at " + plant.getLocation() + + " with " + plant.getGrowthConfig().getName() + ", but this is " + getName()); + } + long totalTime = getPersistentGrowthTime(block); + if (totalTime == -1) { + return Long.MAX_VALUE; + } + long creationTime = plant.getCreationTime(); + long now = System.currentTimeMillis(); + long timeElapsed = now - creationTime; + double progress = (double) timeElapsed / (double) totalTime; + + SetStageResult setStageResult = setStage(plant, block, totalTime, creationTime, progress); + if (setStageResult.nextUpdateTime != null) { + return setStageResult.nextUpdateTime; + } + + int currentStage = setStageResult.currentStage; + int intendedStage = setStageResult.intendedStage; + creationTime = setStageResult.creationTime; + + if (plant.getGrowthConfig() != this) { + //happens for example when a stem fully grows + return plant.getGrowthConfig().updatePlant(plant, block); + } + + if (currentStage == grower.getMaxStage()) { + if (grower.deleteOnFullGrowth()) { + plant.getOwningCache().remove(plant); + } + return Long.MAX_VALUE; + } + double incPerStage = grower.getIncrementPerStage(); + double nextProgressStage = (intendedStage + incPerStage) / grower.getMaxStage(); + nextProgressStage = Math.min(nextProgressStage, 1.0); + long timeFromCreationTillNextStage = (long) (totalTime * nextProgressStage); + return creationTime + timeFromCreationTillNextStage; + } + + private SetStageResult setStage(Plant plant, Block block, long totalTime, long creationTime, double progress) { + int currentStage = grower.getStage(plant); + if (currentStage < 0) { + plant.getOwningCache().remove(plant); + return NO_NEXT_UPDATE; + } + + int intendedStage = Math.min((int) (grower.getMaxStage() * progress), grower.getMaxStage()); + if (intendedStage == currentStage) { + return new SetStageResult(currentStage, intendedStage, creationTime, null); + } + + boolean stageSet; + try { + stageSet = grower.setStage(plant, intendedStage); + } catch (IllegalArgumentException e) { + RealisticBiomes.getInstance().getLogger().warning("Failed to update stage for " + block.toString()); + //delete + plant.getOwningCache().remove(plant); + return NO_NEXT_UPDATE; + } + + currentStage = grower.getStage(plant); + if (intendedStage == currentStage) { + return new SetStageResult(currentStage, intendedStage, creationTime, null); + } + + if (stageSet + && grower instanceof VerticalGrower verticalGrower + && verticalGrower.isInstaBreakTouching()) { + creationTime = System.currentTimeMillis() - totalTime * currentStage / grower.getMaxStage(); + plant.setCreationTime(creationTime); + return new SetStageResult(currentStage, currentStage, creationTime, null); + } + + if (!grower.ignoreGrowthFailure()) { + //setting the state failed due to some external condition, we assume this wont change any time soon + return NO_NEXT_UPDATE; + } + + if (creationTime != plant.getCreationTime() && plant.getGrowthConfig() != this) { + long nextUpdateTime = updatePlant(plant, block); + return new SetStageResult(0, 0, 0, nextUpdateTime); + } + + return new SetStageResult(currentStage, intendedStage, creationTime, null); + } + + public Climate getClimate() { + return this.climate; + } + + public String toString() { + return getName(); + } + +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/listener/BonemealListener.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/listener/BonemealListener.java new file mode 100644 index 000000000..46c0e62d7 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/listener/BonemealListener.java @@ -0,0 +1,48 @@ +package com.untamedears.realisticbiomes.listener; + +import java.util.Collection; +import java.util.EnumSet; +import java.util.Set; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.data.type.Dispenser; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.block.Action; +import org.bukkit.event.block.BlockDispenseEvent; +import org.bukkit.event.player.PlayerInteractEvent; + +public class BonemealListener implements Listener { + + private Set preventedMaterials; + + public BonemealListener(Collection preventedMaterials) { + this.preventedMaterials = EnumSet.copyOf(preventedMaterials); + } + + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) + public void onInteract(PlayerInteractEvent event) { + if (event.getAction() != Action.RIGHT_CLICK_BLOCK || event.getClickedBlock() == null) { + return; + } + if (event.getItem() == null || event.getItem().getType() != Material.BONE_MEAL) { + return; + } + if (preventedMaterials.contains(event.getClickedBlock().getType())) { + event.setCancelled(true); + } + } + + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) + public void onDispenser(BlockDispenseEvent event) { + if (event.getItem() == null || event.getItem().getType() != Material.BONE_MEAL) { + return; + } + Dispenser dispenser = (Dispenser) event.getBlock().getBlockData(); + Block dispensedInto = event.getBlock().getRelative(dispenser.getFacing()); + if (preventedMaterials.contains(dispensedInto.getType())) { + event.setCancelled(true); + } + } +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/listener/MobListener.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/listener/MobListener.java new file mode 100644 index 000000000..77e3b0448 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/listener/MobListener.java @@ -0,0 +1,48 @@ +package com.untamedears.realisticbiomes.listener; + +import java.util.ArrayList; +import java.util.List; +import org.bukkit.Material; +import org.bukkit.entity.EntityType; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityChangeBlockEvent; +import org.bukkit.event.entity.EntityPickupItemEvent; + +public class MobListener implements Listener { + + private final static List crops = new ArrayList<>(); + + public MobListener() { + crops.add(Material.POTATOES); + crops.add(Material.BEETROOTS); + crops.add(Material.CARROTS); + crops.add(Material.WHEAT); + crops.add(Material.SWEET_BERRIES); + crops.add(Material.SWEET_BERRY_BUSH); + } + + @EventHandler + public void onEntityChangeBlock(EntityChangeBlockEvent e) { + if (e.getEntityType() == EntityType.VILLAGER) { + if (crops.contains(e.getBlock().getType()) || crops.contains(e.getTo())) { + e.setCancelled(true); + } + } + if (e.getEntityType() == EntityType.FOX) { + if (crops.contains(e.getBlock().getType()) || crops.contains(e.getTo())) { + e.setCancelled(true); + } + } + } + + @EventHandler + public void onEntityPickupItem(EntityPickupItemEvent e) { + if (e.getEntityType() == EntityType.VILLAGER) { + e.setCancelled(true); + } + if (e.getEntityType() == EntityType.FOX) { + e.setCancelled(true); + } + } +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/listener/PlantListener.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/listener/PlantListener.java new file mode 100644 index 000000000..a5292fef5 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/listener/PlantListener.java @@ -0,0 +1,168 @@ +package com.untamedears.realisticbiomes.listener; + +import com.untamedears.realisticbiomes.PlantLogicManager; +import com.untamedears.realisticbiomes.PlantManager; +import com.untamedears.realisticbiomes.RealisticBiomes; +import com.untamedears.realisticbiomes.growthconfig.PlantGrowthConfig; +import com.untamedears.realisticbiomes.model.Plant; +import com.untamedears.realisticbiomes.model.PlantLoadState; +import com.untamedears.realisticbiomes.utils.RBUtils; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.event.Cancellable; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.event.block.BlockExplodeEvent; +import org.bukkit.event.block.BlockGrowEvent; +import org.bukkit.event.block.BlockPhysicsEvent; +import org.bukkit.event.block.BlockPistonExtendEvent; +import org.bukkit.event.block.BlockPistonRetractEvent; +import org.bukkit.event.block.BlockPlaceEvent; +import org.bukkit.event.block.BlockSpreadEvent; +import org.bukkit.event.entity.EntityExplodeEvent; +import org.bukkit.event.world.StructureGrowEvent; + +public class PlantListener implements Listener { + + private final RealisticBiomes plugin; + private PlantManager plantManager; + private PlantLogicManager plantLogicManager; + + public PlantListener(RealisticBiomes plugin, PlantManager plantManager, PlantLogicManager plantLogicManager) { + this.plugin = plugin; + this.plantManager = plantManager; + this.plantLogicManager = plantLogicManager; + } + + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + public void on(BlockPistonExtendEvent event) { + for (Block block : event.getBlocks()) { + plugin.getPlantLogicManager().handleBlockDestruction(block); + } + } + + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + public void on(BlockPistonRetractEvent event) { + plugin.getPlantLogicManager().handleBlockDestruction(event.getBlock()); + } + + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + public void onBlockBreak(BlockBreakEvent event) { + plugin.getPlantLogicManager().handleBlockDestruction(event.getBlock()); + } + + @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) + public void onExplosion(EntityExplodeEvent event) { + for (Block block : event.blockList()) { + plugin.getPlantLogicManager().handleBlockDestruction(block); + } + } + + @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) + public void onExplosion(BlockExplodeEvent event) { + for (Block block : event.blockList()) { + plugin.getPlantLogicManager().handleBlockDestruction(block); + } + } + + @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) + public void onBlockGrow(BlockGrowEvent event) { + handleGrowEvent(event, event.getBlock(), event.getNewState().getType()); + } + + private void handleGrowEvent(Cancellable event, Block sourceBlock, Material material) { + PlantLoadState state = plantManager.getPlantIfLoaded(RBUtils.getRealPlantBlock(sourceBlock)); + if (!state.isLoaded) { + // RB cannot handle it now and therefore waiting for the next tick + // but for now cancel it to prevent vanilla mechanics + event.setCancelled(true); + + return; + } + + Plant plant = state.plant; + + PlantGrowthConfig growthConfig; + if (plant == null) { + growthConfig = plugin.getGrowthConfigManager().getGrowthConfigFallback(material); + if (growthConfig == null) { + // vanilla + return; + } + if (RBUtils.isFruit(material)) { + event.setCancelled(true); + return; + } + event.setCancelled(true); + sourceBlock = plantLogicManager.remapColumnBlock(sourceBlock, growthConfig, material); + plant = plantManager.getPlant(sourceBlock); + if (plant == null) { + // a plant should be here, but isn't + plant = new Plant(sourceBlock.getLocation(), growthConfig); + plantManager.putPlant(plant); + } + } else { + growthConfig = plant.getGrowthConfig(); + if (growthConfig == null) { + growthConfig = plugin.getGrowthConfigManager().getGrowthConfigFallback(material); + } + if (growthConfig == null) { + plantManager.deletePlant(plant); + return; + } else { + plant.setGrowthConfig(growthConfig); + } + } + plantLogicManager.updateGrowthTime(plant, sourceBlock); + event.setCancelled(true); + } + + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + public void onBlockPlace(BlockPlaceEvent event) { + plugin.getPlantLogicManager().handlePlantCreation(event.getBlock(), event.getItemInHand()); + } + + @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) + public void onStructureGrow(StructureGrowEvent event) { + // disable bonemeal + if (event.isFromBonemeal()) { + if (plugin.getConfigManager().getBonemealPreventedBlocks().contains( + event.getLocation().getBlock().getType())) { + event.setCancelled(true); + } + } + // handle trees etc. + Block block = event.getLocation().getBlock(); + handleGrowEvent(event, block, block.getType()); + } + + /* + * If Bamboo and Kelp stop answering to these events, this spigot bug might have + * been solved and should contain more info on how to update accordingly: + * https://hub.spigotmc.org/jira/browse/SPIGOT-5312 + */ + @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) + public void onBlockSpread(BlockSpreadEvent event) { + handleGrowEvent(event, event.getSource(), event.getNewState().getType()); + } + + @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) + public void cactusBreak(BlockPhysicsEvent event) { + // - sourceBlock is affecting the other block + // If it is AIR then this means that the CACTUS block was replaced by AIR + // - changedType is the block the was affected + // Must be CACTUS since we handling here CACTUS break event + // Growth time should be recalculated if the CACTUS was broken + + if (event.getChangedType() != Material.CACTUS + || event.getSourceBlock().getType() != Material.AIR + || event.getSourceBlock().getY() <= event.getBlock().getLocation().getY() + ) { + return; + } + + plugin.getPlantLogicManager().handleCactusPhysics(event.getBlock()); + } +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/listener/PlayerListener.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/listener/PlayerListener.java new file mode 100644 index 000000000..8faaf42bc --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/listener/PlayerListener.java @@ -0,0 +1,156 @@ +package com.untamedears.realisticbiomes.listener; + +import com.untamedears.realisticbiomes.GrowthConfigManager; +import com.untamedears.realisticbiomes.PlantManager; +import com.untamedears.realisticbiomes.RealisticBiomes; +import com.untamedears.realisticbiomes.growthconfig.PlantGrowthConfig; +import com.untamedears.realisticbiomes.model.Plant; +import com.untamedears.realisticbiomes.utils.InfoStick; +import com.untamedears.realisticbiomes.utils.RBUtils; +import java.text.DecimalFormat; +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.entity.Item; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.block.Action; +import org.bukkit.event.player.PlayerFishEvent; +import org.bukkit.event.player.PlayerHarvestBlockEvent; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.inventory.ItemStack; + +public class PlayerListener implements Listener { + + private record InteractPlant(Plant plant, PlantGrowthConfig config) { + + } + + private GrowthConfigManager growthConfigs; + private PlantManager plantManager; + private DecimalFormat decimalFormat = new DecimalFormat("0.####"); + + public PlayerListener(GrowthConfigManager growthConfigs, PlantManager plantManager) { + this.growthConfigs = growthConfigs; + this.plantManager = plantManager; + } + + // show plant progress when right clicking it with stick + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + public void onPlayerInteractCrop(PlayerInteractEvent event) { + if (event.getAction() != Action.RIGHT_CLICK_BLOCK + || event.getItem() == null + || event.getItem().getType() != InfoStick.INFO_STICK_TYPE) { + return; + } + + Block block = RBUtils.getRealPlantBlock(event.getClickedBlock()); + if (RBUtils.isFruit(block.getType())) { + return; + } + + InteractPlant interactPlant = event.getPlayer().isSneaking() && event.getPlayer().hasPermission("rb.op") + ? getInteractPlant(block) + : getInteractPlantAndUpdate(block); + + if (interactPlant == null) { + return; + } + + event.getPlayer().sendMessage(interactPlant.config.getPlantInfoString(block, interactPlant.plant)); + if (event.getPlayer().hasPermission("rb.op")) { + event.getPlayer().sendMessage(interactPlant.plant.toString()); + } + } + + private InteractPlant getInteractPlant(Block block) { + Plant plant = plantManager.getPlant(block); + return plant != null && plant.getGrowthConfig() != null + ? new InteractPlant(plant, plant.getGrowthConfig()) + : null; + } + + private InteractPlant getInteractPlantAndUpdate(Block block) { + Plant plant = plantManager.getPlant(block); + if (plant == null) { + PlantGrowthConfig growthConfig = growthConfigs.getGrowthConfigFallback(block.getType()); + if (growthConfig == null + || RBUtils.isFruit(block.getType())) { + return null; + } + // a plant should be here, but isn't + plant = new Plant(block.getLocation(), growthConfig); + plantManager.putPlant(plant); + } + PlantGrowthConfig plantConfig = plant.getGrowthConfig(); + if (plantConfig == null) { + plantConfig = growthConfigs.getPlantGrowthConfigFallback(plant); + if (plantConfig == null) { + return null; + } + plant.setGrowthConfig(plantConfig); + } + + RealisticBiomes.getInstance().getPlantLogicManager().updateGrowthTime(plant, block); + + return new InteractPlant(plant, plantConfig); + } + + // show growth rates when hitting floor with crop + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + public void onPlayerInteractEvent(PlayerInteractEvent event) { + if (event.getAction() != Action.LEFT_CLICK_BLOCK) { + return; + } + if (event.getItem() == null) { + return; + } + ItemStack item = event.getItem(); + PlantGrowthConfig plantConfig = growthConfigs.getGrowthConfigByItem(item); + if (plantConfig == null) { + return; + } + event.getPlayer() + .sendMessage(plantConfig.getInfoString(event.getClickedBlock().getRelative(event.getBlockFace()))); + } + + @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) + public void onPlayerHarvest(PlayerHarvestBlockEvent event) { + if (event.getHarvestedBlock().getType() != Material.SWEET_BERRY_BUSH) { + return; + } + Block block = event.getHarvestedBlock(); + Plant plant = RealisticBiomes.getInstance().getPlantManager().getPlant(block); + if (plant == null) { + return; + } + PlantGrowthConfig config = plant.getGrowthConfig(); + if (config == null) { + return; + } + config.getGrower().setStage(plant, 0); + + plant.setCreationTime(System.currentTimeMillis()); + Bukkit.getScheduler().runTask(RealisticBiomes.getInstance(), () -> { + RealisticBiomes.getInstance().getPlantLogicManager().updateGrowthTime(plant, block); + }); + } + + @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) + public void onFish(PlayerFishEvent event) { + //disable prot 4 fishing + if (event.getCaught() == null) { + return; + } + if (event.getCaught() instanceof Item item) { + Material mat = item.getItemStack().getType(); + if (mat == Material.BOW || + mat == Material.ENCHANTED_BOOK || + mat == Material.FISHING_ROD) { + + event.setCancelled(true); + } + } + } +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/Plant.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/Plant.java new file mode 100644 index 000000000..71679970e --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/Plant.java @@ -0,0 +1,113 @@ +package com.untamedears.realisticbiomes.model; + +import com.untamedears.realisticbiomes.RealisticBiomes; +import com.untamedears.realisticbiomes.growthconfig.PlantGrowthConfig; +import org.bukkit.Location; +import org.bukkit.block.Block; +import vg.civcraft.mc.civmodcore.utilities.BukkitComparators; +import vg.civcraft.mc.civmodcore.utilities.progress.ProgressTrackable; +import vg.civcraft.mc.civmodcore.world.locations.chunkmeta.CacheState; +import vg.civcraft.mc.civmodcore.world.locations.chunkmeta.block.table.TableBasedDataObject; + +import java.util.Date; + +public class Plant extends TableBasedDataObject implements ProgressTrackable { + + private long creationTime; + private long nextUpdate; + private PlantGrowthConfig growthConfig; + + public Plant(Location location, PlantGrowthConfig plantType) { + this(System.currentTimeMillis(), location, true, plantType); + } + + public Plant(long creationTime, Location location, boolean isNew, PlantGrowthConfig growthConfig) { + super(location, isNew); + this.creationTime = creationTime; + this.growthConfig = growthConfig; + } + + public PlantGrowthConfig getGrowthConfig() { + return growthConfig; + } + + public void setGrowthConfig(PlantGrowthConfig growthConfig) { + if (growthConfig != this.growthConfig) { + this.growthConfig = growthConfig; + setDirty(); + } + } + + @Override + public int compareTo(ProgressTrackable o) { + return BukkitComparators.getLocation().compare(getLocation(), ((Plant) o).getLocation()); + } + + /** + * @return Creation time as unix time stamp + */ + public long getCreationTime() { + return creationTime; + } + + @Override + public long getNextUpdate() { + return nextUpdate; + } + + public void resetCreationTime() { + setCreationTime(System.currentTimeMillis()); + } + + public void setCreationTime(long creationTime) { + this.creationTime = creationTime; + setDirty(); + } + + /** + * Use this method to set the next update, not setNextUpdate() + * + * @param time + */ + public void setNextGrowthTime(long time) { + ((RBChunkCache) getOwningCache()).updateGrowthTime(this, time); + } + + /** + * Internal method, don't use this + */ + @Override + public void updateInternalProgressTime(long update) { + this.nextUpdate = update; + } + + @Override + public void updateState() { + if (getCacheState() == CacheState.DELETED) { + nextUpdate = Long.MAX_VALUE; + return; + } + if (growthConfig != null) { + nextUpdate = growthConfig.updatePlant(this); + } else { + Block block = location.getBlock(); + PlantGrowthConfig newConfig = RealisticBiomes.getInstance().getGrowthConfigManager() + .getGrowthConfigFallback(block.getType()); + if (newConfig != null) { + setGrowthConfig(newConfig); + nextUpdate = newConfig.updatePlant(this); + } else { + nextUpdate = Long.MAX_VALUE; + } + } + } + + public String toString() { + return String.format("Created: %s, Loc: %s, Next update in: %s, config: %s", + new Date(creationTime), + "[" + getLocation().getBlockX() + " " + getLocation().getBlockY() + " " + getLocation().getBlockZ() + "]", + nextUpdate != Long.MAX_VALUE ? (nextUpdate - System.currentTimeMillis()) + " ms" : "Never", + growthConfig + ); + } +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/PlantLoadState.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/PlantLoadState.java new file mode 100644 index 000000000..fb0e555af --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/PlantLoadState.java @@ -0,0 +1,12 @@ +package com.untamedears.realisticbiomes.model; + +public class PlantLoadState { + + public final Plant plant; + public final boolean isLoaded; + + public PlantLoadState(Plant plant, boolean isLoaded) { + this.plant = plant; + this.isLoaded = isLoaded; + } +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/RBChunkCache.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/RBChunkCache.java new file mode 100644 index 000000000..456ad3dc0 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/RBChunkCache.java @@ -0,0 +1,88 @@ +package com.untamedears.realisticbiomes.model; + +import com.untamedears.realisticbiomes.RealisticBiomes; +import org.bukkit.Bukkit; +import vg.civcraft.mc.civmodcore.utilities.progress.ProgressTrackable; +import vg.civcraft.mc.civmodcore.utilities.progress.ProgressTracker; +import vg.civcraft.mc.civmodcore.world.WorldUtils; +import vg.civcraft.mc.civmodcore.world.locations.chunkmeta.block.table.TableBasedBlockChunkMeta; +import vg.civcraft.mc.civmodcore.world.locations.chunkmeta.block.table.TableBasedDataObject; +import vg.civcraft.mc.civmodcore.world.locations.chunkmeta.block.table.TableStorageEngine; + +public class RBChunkCache extends TableBasedBlockChunkMeta implements ProgressTrackable { + + private ProgressTracker tracker; + private long nextUpdate; + + public RBChunkCache(boolean isNew, TableStorageEngine storage) { + super(isNew, storage); + tracker = new ProgressTracker<>(); + this.nextUpdate = Long.MAX_VALUE; + } + + @Override + public int compareTo(ProgressTrackable o) { + return getChunkCoord().compareTo(((RBChunkCache) o).getChunkCoord()); + } + + @Override + public long getNextUpdate() { + return nextUpdate; + } + + @Override + protected Plant remove(int x, int y, int z) { + Plant data = (Plant) super.remove(x, y, z); + tracker.removeItem(data); + return data; + } + + @Override + public void remove(TableBasedDataObject blockData) { + super.remove(blockData); + tracker.removeItem((Plant) blockData); + } + + /** + * Updates the growth time for the given plant in the scheduled tracking + * + * @param plant Plant to update time for + * @param time Time when the plant should next be updated + */ + public void updateGrowthTime(Plant plant, long time) { + if (time < nextUpdate) { + RealisticBiomes.getInstance().getPlantProgressManager().updateTime(this, time); + } + tracker.updateItem(plant, time); + } + + @Override + public void updateInternalProgressTime(long update) { + this.nextUpdate = update; + } + + @Override + public void updateState() { + if (!WorldUtils.isChunkLoaded(getWorld(), chunkCoord.getX(), chunkCoord.getZ())) { + this.nextUpdate = Long.MAX_VALUE; + return; + } + this.nextUpdate = tracker.processItems(); + } + + @Override + public void handleChunkCacheReuse() { + // update all plants in the chunk and reinsert them into the growth updating + // cache + Bukkit.getScheduler().runTask(RealisticBiomes.getInstance(), () -> iterateAll(p -> RealisticBiomes.getInstance() + .getPlantLogicManager().updateGrowthTime((Plant) p, p.getLocation().getBlock()))); + } + + @Override + public void handleChunkUnload() { + Bukkit.getScheduler().runTask(RealisticBiomes.getInstance(), () -> { + RealisticBiomes.getInstance().getPlantProgressManager().removeChunk(this); + updateInternalProgressTime(Long.MAX_VALUE); + }); + } +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/RBDAO.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/RBDAO.java new file mode 100644 index 000000000..ac9981613 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/RBDAO.java @@ -0,0 +1,308 @@ +package com.untamedears.realisticbiomes.model; + +import com.untamedears.realisticbiomes.GrowthConfigManager; +import com.untamedears.realisticbiomes.PlantLogicManager; +import com.untamedears.realisticbiomes.RealisticBiomes; +import com.untamedears.realisticbiomes.growthconfig.PlantGrowthConfig; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Timestamp; +import java.sql.Types; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.function.Consumer; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.World; +import vg.civcraft.mc.civmodcore.dao.ManagedDatasource; +import vg.civcraft.mc.civmodcore.world.locations.chunkmeta.CacheState; +import vg.civcraft.mc.civmodcore.world.locations.chunkmeta.XZWCoord; +import vg.civcraft.mc.civmodcore.world.locations.chunkmeta.block.BlockBasedChunkMeta; +import vg.civcraft.mc.civmodcore.world.locations.chunkmeta.block.table.TableBasedBlockChunkMeta; +import vg.civcraft.mc.civmodcore.world.locations.chunkmeta.block.table.TableBasedDataObject; +import vg.civcraft.mc.civmodcore.world.locations.chunkmeta.block.table.TableStorageEngine; + +public class RBDAO extends TableStorageEngine { + + private boolean batchMode; + private List> batches; + + public RBDAO(Logger logger, ManagedDatasource db) { + super(logger, db); + this.batchMode = false; + } + + public void setBatchMode(boolean batch) { + this.batchMode = batch; + batches = new ArrayList<>(); + for (int i = 0; i < 3; i++) { + batches.add(new ArrayList<>()); + } + } + + public void cleanupBatches() { + long currentTime = System.currentTimeMillis(); + try (Connection conn = db.getConnection(); + PreparedStatement deletePlant = conn.prepareStatement( + "delete from rb_plants where chunk_x = ? and chunk_z = ? and world_id = ? and " + + "x_offset = ? and y = ? and z_offset = ?;");) { + conn.setAutoCommit(false); + for (PlantTuple tuple : batches.get(2)) { + setDeleteDataStatement(deletePlant, tuple.plant, tuple.coord); + deletePlant.addBatch(); + } + logger.info("Batch 2: " + (System.currentTimeMillis() - currentTime) + " ms"); + logger.info("Batch 2 Size: " + batches.get(2).size()); + batches.get(2).clear(); + deletePlant.executeBatch(); + conn.setAutoCommit(true); + logger.info("Batch 2 Finish: " + (System.currentTimeMillis() - currentTime) + " ms"); + } catch (SQLException e) { + logger.log(Level.SEVERE, "Failed to delete plant from db: ", e); + } + try (Connection conn = db.getConnection(); + PreparedStatement insertPlant = conn.prepareStatement( + "insert ignore into rb_plants (chunk_x, chunk_z, world_id, x_offset, y, z_offset, creation_time, type) " + + "values(?,?,?, ?,?,?, ?,?);");) { + conn.setAutoCommit(false); + for (PlantTuple tuple : batches.get(0)) { + setInsertDataStatement(insertPlant, tuple.plant, tuple.coord); + insertPlant.addBatch(); + } + logger.info("Batch 0: " + (System.currentTimeMillis() - currentTime) + " ms"); + logger.info("Batch 0 Size: " + batches.get(0).size()); + batches.get(0).clear(); + insertPlant.executeBatch(); + conn.setAutoCommit(true); + logger.info("Batch 0 Finish: " + (System.currentTimeMillis() - currentTime) + " ms"); + } catch (SQLException e) { + logger.log(Level.SEVERE, "Failed to insert plant into db: ", e); + } + try (Connection conn = db.getConnection(); + PreparedStatement updatePlant = conn.prepareStatement("update rb_plants set creation_time = ?, type = ? where " + + "chunk_x = ? and chunk_z = ? and world_id = ? and x_offset = ? and y = ? and z_offset = ?;");) { + conn.setAutoCommit(false); + for (PlantTuple tuple : batches.get(1)) { + setUpdateDataStatement(updatePlant, tuple.plant, tuple.coord); + updatePlant.addBatch(); + } + logger.info("Batch 1: " + (System.currentTimeMillis() - currentTime) + " ms"); + logger.info("Batch 1 Size: " + batches.get(1).size()); + batches.get(1).clear(); + updatePlant.executeBatch(); + conn.setAutoCommit(true); + logger.info("Batch 1 Finish: " + (System.currentTimeMillis() - currentTime) + " ms"); + } catch (SQLException e) { + logger.log(Level.SEVERE, "Failed to update plant in db: ", e); + } + } + + @Override + public void delete(Plant data, XZWCoord coord) { + if (batchMode) { + batches.get(2).add(new PlantTuple(data, coord)); + return; + } + try (Connection conn = db.getConnection(); + PreparedStatement deletePlant = conn.prepareStatement( + "delete from rb_plants where chunk_x = ? and chunk_z = ? and world_id = ? and " + + "x_offset = ? and y = ? and z_offset = ?;");) { + setDeleteDataStatement(deletePlant, data, coord); + deletePlant.execute(); + } catch (SQLException e) { + logger.log(Level.SEVERE, "Failed to delete plant from db: ", e); + } + } + + private static void setDeleteDataStatement(PreparedStatement deletePlant, Plant data, XZWCoord coord) throws SQLException { + deletePlant.setInt(1, coord.getX()); + deletePlant.setInt(2, coord.getZ()); + deletePlant.setShort(3, coord.getWorldID()); + deletePlant.setByte(4, (byte) BlockBasedChunkMeta.modulo(data.getLocation().getBlockX())); + deletePlant.setShort(5, (short) data.getLocation().getBlockY()); + deletePlant.setByte(6, (byte) BlockBasedChunkMeta.modulo(data.getLocation().getBlockZ())); + } + + @Override + public void fill(TableBasedBlockChunkMeta chunkData, Consumer insertFunction) { + int preMultipliedX = chunkData.getChunkCoord().getX() * 16; + int preMultipliedZ = chunkData.getChunkCoord().getZ() * 16; + List toUpdate = new ArrayList<>(); + PlantLogicManager logicMan = RealisticBiomes.getInstance().getPlantLogicManager(); + GrowthConfigManager growthConfigMan = RealisticBiomes.getInstance().getGrowthConfigManager(); + World world = chunkData.getChunkCoord().getWorld(); + try (Connection insertConn = db.getConnection(); + PreparedStatement selectPlant = insertConn + .prepareStatement("select x_offset, y, z_offset, creation_time, type " + + "from rb_plants where chunk_x = ? and chunk_z = ? and world_id = ?;");) { + selectPlant.setInt(1, chunkData.getChunkCoord().getX()); + selectPlant.setInt(2, chunkData.getChunkCoord().getZ()); + selectPlant.setShort(3, chunkData.getChunkCoord().getWorldID()); + try (ResultSet rs = selectPlant.executeQuery()) { + while (rs.next()) { + int xOffset = rs.getByte(1); + int x = xOffset + preMultipliedX; + int y = rs.getShort(2); + int zOffset = rs.getByte(3); + int z = zOffset + preMultipliedZ; + Location location = new Location(world, x, y, z); + long creationTime = rs.getTimestamp(4).getTime(); + short configId = rs.getShort(5); + PlantGrowthConfig growthConfig = null; + if (configId != 0) { + growthConfig = growthConfigMan.getConfigById(configId); + } + Plant plant = new Plant(creationTime, location, false, growthConfig); + toUpdate.add(plant); + insertFunction.accept(plant); + } + } + } catch (SQLException e) { + logger.log(Level.SEVERE, "Failed to load plant from db: ", e); + } + Bukkit.getScheduler().runTask(RealisticBiomes.getInstance(), () -> { + for (Plant plant : toUpdate) { + if (plant.getCacheState() == CacheState.DELETED) { + continue; + } + logicMan.updateGrowthTime(plant, plant.getLocation().getBlock()); + } + }); + } + + @Override + public void insert(Plant data, XZWCoord coord) { + if (batchMode) { + batches.get(0).add(new PlantTuple(data, coord)); + return; + } + try (Connection conn = db.getConnection(); + PreparedStatement insertPlant = conn.prepareStatement( + "insert into rb_plants (chunk_x, chunk_z, world_id, x_offset, y, z_offset, creation_time, type) " + + "values(?,?,?, ?,?,?, ?,?);");) { + setInsertDataStatement(insertPlant, data, coord); + insertPlant.execute(); + } catch (SQLException e) { + logger.log(Level.SEVERE, "Failed to insert plant into db: ", e); + } + } + + private static void setInsertDataStatement(PreparedStatement insertPlant, Plant data, XZWCoord coord) throws SQLException { + insertPlant.setInt(1, coord.getX()); + insertPlant.setInt(2, coord.getZ()); + insertPlant.setShort(3, coord.getWorldID()); + insertPlant.setByte(4, (byte) BlockBasedChunkMeta.modulo(data.getLocation().getBlockX())); + insertPlant.setShort(5, (short) data.getLocation().getBlockY()); + insertPlant.setByte(6, (byte) BlockBasedChunkMeta.modulo(data.getLocation().getBlockZ())); + insertPlant.setTimestamp(7, new Timestamp(data.getCreationTime())); + if (data.getGrowthConfig() == null) { + insertPlant.setNull(8, Types.SMALLINT); + } else { + insertPlant.setShort(8, data.getGrowthConfig().getID()); + } + } + + @Override + public void registerMigrations() { + db.registerMigration(1, false, + "CREATE TABLE IF NOT EXISTS rb_plant (chunkId bigint(20) DEFAULT NULL, w int(11) DEFAULT NULL," + + "x int(11) DEFAULT NULL, y int(11) DEFAULT NULL, z int(11) DEFAULT NULL, date int(10) unsigned DEFAULT NULL," + + "growth double DEFAULT NULL, fruitGrowth double DEFAULT NULL)", + "CREATE TABLE IF NOT EXISTS rb_chunk (id bigint(20) NOT NULL AUTO_INCREMENT, w int(11) DEFAULT NULL, x int(11) DEFAULT NULL, " + + "z int(11) DEFAULT NULL, PRIMARY KEY (id), KEY chunk_coords_idx (w,x,z))"); + db.registerMigration(2, false, + "create table if not exists rb_plants (chunk_x int not null, chunk_z int not null, world_id smallint unsigned not null, " + + "x_offset tinyint unsigned not null, y tinyint unsigned not null, z_offset tinyint unsigned not null," + + "creation_time timestamp not null default now(), index plantChunkLookUp(chunk_x, chunk_z, world_id)," + + "index plantCoordLookUp (x_offset, y, z_offset, world_id), " + + "constraint plantUniqueLocation unique (chunk_x,chunk_z,x_offset,y,z_offset,world_id));", + "delete from rb_plants", + "insert into rb_plants (chunk_x, chunk_z, world_id, x_offset, y, z_offset, creation_time) " + + "select c.x,c.z,c.w + 1, if(mod(p.x,16)<0,mod(p.x,16)+16,mod(p.x,16)), p.y, " + + "if(mod(p.z,16)<0,mod(p.z,16)+16,mod(p.z,16)),FROM_UNIXTIME(p.date) " + + "from rb_plant p inner join rb_chunk c on p.chunkId=c.id;"); + db.registerMigration(3, false, + "alter table rb_plants add type smallint"); + db.registerMigration(4, false, + "alter table rb_plants modify y tinyint signed not null"); + db.registerMigration(5, false, + "alter table rb_plants modify y smallint not null"); + } + + @Override + public void update(Plant data, XZWCoord coord) { + if (batchMode) { + batches.get(1).add(new PlantTuple(data, coord)); + return; + } + try (Connection conn = db.getConnection(); + PreparedStatement updatePlant = conn.prepareStatement("update rb_plants set creation_time = ?, type = ? where " + + "chunk_x = ? and chunk_z = ? and world_id = ? and x_offset = ? and y = ? and z_offset = ?;");) { + setUpdateDataStatement(updatePlant, data, coord); + updatePlant.execute(); + } catch (SQLException e) { + logger.log(Level.SEVERE, "Failed to update plant in db: ", e); + } + } + + private static void setUpdateDataStatement(PreparedStatement updatePlant, Plant data, XZWCoord coord) throws SQLException { + updatePlant.setTimestamp(1, new Timestamp(data.getCreationTime())); + if (data.getGrowthConfig() == null) { + updatePlant.setNull(2, Types.SMALLINT); + } else { + updatePlant.setShort(2, data.getGrowthConfig().getID()); + } + updatePlant.setInt(3, coord.getX()); + updatePlant.setInt(4, coord.getZ()); + updatePlant.setShort(5, coord.getWorldID()); + updatePlant.setByte(6, (byte) BlockBasedChunkMeta.modulo(data.getLocation().getBlockX())); + updatePlant.setShort(7, (short) data.getLocation().getBlockY()); + updatePlant.setByte(8, (byte) BlockBasedChunkMeta.modulo(data.getLocation().getBlockZ())); + } + + @Override + public TableBasedDataObject getForLocation(int x, int y, int z, short worldID, short pluginID) { + throw new IllegalStateException("Can not load plant when chunk is not loaded"); + } + + @Override + public Collection getAllDataChunks() { + List result = new ArrayList<>(); + try (Connection insertConn = db.getConnection(); + PreparedStatement selectChunks = insertConn.prepareStatement( + "select chunk_x, chunk_z, world_id from rb_plants group by chunk_x, chunk_z, world_id"); + ResultSet rs = selectChunks.executeQuery()) { + while (rs.next()) { + int chunkX = rs.getInt(1); + int chunkZ = rs.getInt(2); + short worldID = rs.getShort(3); + result.add(new XZWCoord(chunkX, chunkZ, worldID)); + } + } catch (SQLException e) { + logger.log(Level.SEVERE, "Failed to select populated chunks from db: ", e); + } + return result; + } + + @Override + public boolean stayLoaded() { + return false; + } + + private class PlantTuple { + + private Plant plant; + private XZWCoord coord; + + PlantTuple(Plant plant, XZWCoord coord) { + this.plant = plant; + this.coord = coord; + } + } + +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/RBSchematic.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/RBSchematic.java new file mode 100644 index 000000000..50957fe6c --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/RBSchematic.java @@ -0,0 +1,57 @@ +package com.untamedears.realisticbiomes.model; + +import com.sk89q.worldedit.bukkit.BukkitAdapter; +import com.sk89q.worldedit.extent.clipboard.Clipboard; +import com.sk89q.worldedit.math.BlockVector3; +import org.bukkit.Location; +import org.bukkit.block.data.BlockData; + +public class RBSchematic { + + private BlockData[][][] blockData; + private int xOffset; + private int zOffset; + private String name; + + public RBSchematic(String name, Clipboard weClipBoard) { + this.blockData = convertWEClipBoard(weClipBoard); + this.name = name; + this.xOffset = blockData.length / 2; + this.zOffset = blockData[0][0].length / 2; + } + + public String getName() { + return name; + } + + public void spawnAt(Location loc) { + int xCap = blockData.length; + int yCap = blockData[0].length; + int zCap = blockData[0][0].length; + int localxOffset = loc.getBlockX() - xOffset; + int localyOffset = loc.getBlockY(); + int localzOffset = loc.getBlockZ() - zOffset; + for (int x = 0; x < xCap; x++) { + for (int y = 0; y < yCap; y++) { + for (int z = 0; z < zCap; z++) { + loc.getWorld().getBlockAt(x + localxOffset, y + localyOffset, z + localzOffset) + .setBlockData(blockData[x][y][z]); + } + } + } + } + + private static BlockData[][][] convertWEClipBoard(Clipboard weClipBoard) { + BlockVector3 size = weClipBoard.getDimensions(); + BlockData[][][] result = new BlockData[size.getX()][size.getY()][size.getZ()]; + for (int x = 0; x < size.getX(); x++) { + for (int y = 0; y < size.getY(); y++) { + for (int z = 0; z < size.getZ(); z++) { + result[x][y][z] = BukkitAdapter.adapt(weClipBoard.getBlock(BlockVector3.at(x, y, z))); + } + } + } + return result; + } + +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/gauss/DeviatingDouble.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/gauss/DeviatingDouble.java new file mode 100644 index 000000000..d05bb7774 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/gauss/DeviatingDouble.java @@ -0,0 +1,40 @@ +package com.untamedears.realisticbiomes.model.gauss; + +import java.util.Random; + +public class DeviatingDouble { + + private static Random rng = new Random(); + + private double lowerCap; + private double upperCap; + private double deviation; + + public DeviatingDouble(double lowerCap, double upperCap, double deviation) { + this.lowerCap = lowerCap; + this.upperCap = upperCap; + this.deviation = deviation; + } + + public double deviate(double baseValue) { + // random value within baseValue - deviation and baseValue + deviation + baseValue += rng.nextDouble() * 2 * deviation; + baseValue -= deviation; + if (upperCap > baseValue) { + return upperCap; + } + if (lowerCap < baseValue) { + return lowerCap; + } + return baseValue; + } + + private int randomRound(double d) { + double floor = Math.floor(d); + double leftOver = d - Math.floor(d); + if (rng.nextDouble() > leftOver) { + return (int) floor; + } + return (int) floor + 1; + } +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/gauss/GaussProperty.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/gauss/GaussProperty.java new file mode 100644 index 000000000..a1cb00667 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/gauss/GaussProperty.java @@ -0,0 +1,48 @@ +package com.untamedears.realisticbiomes.model.gauss; + +import java.util.Random; + +public final class GaussProperty { + + private static Random rng = new Random(); + + private DeviatingDouble valueDeviation; + private double sigma; + private double value; + + private GaussProperty(DeviatingDouble valueDeviation, double sigma, double baseValue) { + this.valueDeviation = valueDeviation; + this.sigma = sigma; + this.value = baseValue; + } + + public static GaussProperty constructProperty(DeviatingDouble valueDeviation, double sigma) { + return new GaussProperty(valueDeviation, sigma, 0); + } + + public GaussProperty getDeviatedCopy() { + return getDeviatedCopy(value); + } + + public GaussProperty getDeviatedCopy(double baseValue) { + return new GaussProperty(valueDeviation, sigma, valueDeviation.deviate(baseValue)); + } + + public double getRandomValue() { + return rng.nextGaussian() * sigma * value + value; + } + + public int getRoundedRandomValue() { + return randomRound(getRandomValue()); + } + + private static int randomRound(double d) { + double floor = Math.floor(d); + double leftOver = d - Math.floor(d); + if (rng.nextDouble() > leftOver) { + return (int) floor; + } + return (int) floor + 1; + } + +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/gauss/GaussTree.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/gauss/GaussTree.java new file mode 100644 index 000000000..c0f9208c5 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/gauss/GaussTree.java @@ -0,0 +1,172 @@ +package com.untamedears.realisticbiomes.model.gauss; + +import com.sk89q.worldedit.bukkit.BukkitAdapter; +import com.sk89q.worldedit.math.Vector2; +import com.sk89q.worldedit.regions.CylinderRegion; +import com.sk89q.worldedit.regions.Region; +import com.untamedears.realisticbiomes.model.ltree.BlockTransformation; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; +import net.minecraft.nbt.CompoundTag; +import org.bukkit.Location; +import org.bukkit.block.Block; +import org.bukkit.inventory.ItemStack; +import org.bukkit.util.Vector; +import vg.civcraft.mc.civmodcore.world.WorldUtils; + +public class GaussTree { + + private GaussProperty preCanopyHeight; + private GaussProperty stemAngleStep; + private double stemAngleCap; + private GaussProperty stemRadius; + private BlockTransformation stemTransform; + private BlockTransformation leafTransform; + + private GaussProperty canopyHeight; + private GaussProperty leafAmount; + private double branchChance; + private GaussProperty branchLength; + private GaussProperty branchLogInterval; + private GaussProperty branchAngle; + + private Random rng; + + public GaussTree(ItemStack sapling) { + + } + + public GaussTree(GaussProperty preCanopyHeight, GaussProperty stemAngleStep, double stemAngleCap, + GaussProperty stemRadius, BlockTransformation stemTransform, GaussProperty canopyHeight, + GaussProperty leafAmount, double branchChance, GaussProperty branchLength, GaussProperty branchLogInterval, + GaussProperty branchAngle, BlockTransformation leafTransform) { + this.preCanopyHeight = preCanopyHeight; + this.stemAngleStep = stemAngleStep; + this.stemAngleCap = stemAngleCap; + this.stemRadius = stemRadius; + this.stemTransform = stemTransform; + this.canopyHeight = canopyHeight; + this.leafAmount = leafAmount; + this.branchChance = branchChance; + this.branchLength = branchLength; + this.branchLogInterval = branchLogInterval; + this.branchAngle = branchAngle; + this.leafTransform = leafTransform; + rng = new Random(); + } + + public void genAt(Location loc) { + loc = new Location(loc.getWorld(), loc.getBlockX() + 0.5, loc.getBlockY() + 0.5, loc.getBlockZ() + 0.5); + loc = genTreeSection(loc, preCanopyHeight, false); + loc = genTreeSection(loc, canopyHeight, true); + } + + private Location genTreeSection(Location startingLocation, GaussProperty sectionHeight, boolean branch) { + int localHeight = sectionHeight.getRoundedRandomValue(); + Vector up = new Vector(0, 1, 0); + Vector direction = up.clone(); + double radius = stemRadius.getRandomValue(); + Location currentLocation = startingLocation.clone(); + for (int i = 0; i < localHeight; i++) { + // first set blocks for the current location + List logs = setNearby(currentLocation, direction, radius, stemTransform); + + if (branch) { + // second generate eventual branches + logs.addAll(generateBranches(currentLocation, branchChance)); + + // third generate foliage around it + for (Block log : logs) { + double localChance = leafAmount.getRandomValue(); + recursiveLeafGeneration(log, localChance); + } + } + + // fourth apply a random directional deviation to the upwards movement + + // calculate length of the direction vector added + double deviation = stemAngleStep.getRandomValue(); + // vector in random x z direction + Vector randomDirection = new Vector(randomNumber(-1, 1), 0, randomNumber(-1, 1)).normalize() + .multiply(deviation); + Vector newDirection = direction.clone().add(randomDirection).normalize(); + double dotProductUp = up.dot(newDirection); + if (dotProductUp > stemAngleCap) { + // stemAngleCap works as lower cap on this dot product, which is the cosine of + // the angle to the y-axis + direction = newDirection; + } + currentLocation.add(direction); + } + return currentLocation; + } + + private Vector getRandomXZVector() { + return new Vector(randomNumber(-1, 1), 0, randomNumber(-1, 1)); + } + + private void recursiveLeafGeneration(Block sourceBlock, double chance) { + if (chance >= 1.0 || Math.random() < chance) { + for (Block innerBlock : WorldUtils.getAllBlockSides(sourceBlock, true)) { + if (leafTransform.applyAt(innerBlock.getLocation())) { + recursiveLeafGeneration(innerBlock, chance - 1); + } + } + } + } + + private List generateBranches(Location sourceLocation, double chance) { + List result = new ArrayList<>(); + while (chance >= 1.0 || rng.nextDouble() <= branchChance) { + generateBranch(sourceLocation, result); + chance--; + if (chance <= 0) { + break; + } + } + return result; + } + + private void generateBranch(Location sourceLocation, List result) { + Vector direction = getRandomXZVector(); + Vector oppositeDirection = direction.multiply(-1); + Vector yModifier = new Vector(0, branchAngle.getRandomValue(), 0); + direction.add(yModifier); + oppositeDirection.add(yModifier); + direction.normalize(); + oppositeDirection.normalize(); + double length = branchLength.getRandomValue(); + double logInterval = branchLogInterval.getRandomValue(); + int blockAmount = (int) (length / logInterval); + Location currentLocation = sourceLocation.clone(); + Location oppositeLocation = sourceLocation.clone(); + Vector perStepOffset = direction.clone().multiply(logInterval); + Vector oppositeStepOffset = oppositeDirection.clone().multiply(logInterval); + for (int i = 0; i < blockAmount; i++) { + currentLocation.add(perStepOffset); + oppositeLocation.add(oppositeStepOffset); + stemTransform.applyAt(currentLocation); + stemTransform.applyAt(oppositeLocation); + result.add(currentLocation.getBlock()); + result.add(oppositeLocation.getBlock()); + } + } + + private List setNearby(Location center, Vector direction, double radius, BlockTransformation transformer) { + List result = new ArrayList<>(); + Region region = new CylinderRegion(BukkitAdapter.adapt(center.getWorld()), BukkitAdapter.asBlockVector(center), + Vector2.at(radius, radius), center.getBlockY(), center.getBlockY()); + region.forEach(b -> { + Block block = BukkitAdapter.adapt(center.getWorld(), b).getBlock(); + transformer.applyAt(block); + result.add(block); + }); + return result; + } + + private double randomNumber(double lowerBound, double upperBound) { + double range = upperBound - lowerBound; + return rng.nextDouble() * range + lowerBound; + } +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/gauss/GaussTreeConfig.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/gauss/GaussTreeConfig.java new file mode 100644 index 000000000..6b2cb4790 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/gauss/GaussTreeConfig.java @@ -0,0 +1,57 @@ +package com.untamedears.realisticbiomes.model.gauss; + +import com.untamedears.realisticbiomes.model.ltree.BlockTransformation; +import org.bukkit.configuration.ConfigurationSection; + +public class GaussTreeConfig { + + private String identifier; + + private GaussProperty preCanopyHeight; + private GaussProperty stemAngleStep; + private double stemAngleCap; + private GaussProperty stemRadius; + private BlockTransformation stemTransform; + private BlockTransformation leafTransform; + + private GaussProperty canopyHeight; + private GaussProperty leafAmount; + private GaussProperty branchChance; + private GaussProperty branchLength; + private GaussProperty branchLogInterval; + private GaussProperty branchAngle; + + public GaussTreeConfig(ConfigurationSection config) { + if (!config.isString("id")) { + throw new IllegalArgumentException("Config did not have an id"); + } + this.identifier = config.getString("id"); + this.preCanopyHeight = parseGaussProperty(config, "stem_height"); + this.stemAngleStep = parseGaussProperty(config, "stem_angle_step"); + this.stemRadius = parseGaussProperty(config, "stem_radius"); + this.canopyHeight = parseGaussProperty(config, "canopy_height"); + this.leafAmount = parseGaussProperty(config, "leaf_amount"); + this.branchLength = parseGaussProperty(config, "branch_length"); + this.branchLogInterval = parseGaussProperty(config, "branch_log_interval"); + this.branchAngle = parseGaussProperty(config, "stem_height"); + this.branchChance = parseGaussProperty(config, "branch_chance"); + } + + private GaussProperty parseGaussProperty(ConfigurationSection config, String key) { + if (!config.isConfigurationSection(key)) { + return GaussProperty.constructProperty(new DeviatingDouble(0.0, 1.0, 0.1), 0.15); + } + config = config.getConfigurationSection(key); + if (!config.isConfigurationSection("deviation")) { + throw new IllegalArgumentException(config.getCurrentPath() + " did not specify deviation"); + } + double lowerCap = config.getDouble("lower_cap", 0); + double upperCap = config.getDouble("upper_cap"); + double deviation = config.getDouble("deviation", 0.1); + DeviatingDouble deviatingDouble = new DeviatingDouble(lowerCap, upperCap, deviation); + double sigma = config.getDouble("sigma", 0.15); + return GaussProperty.constructProperty(deviatingDouble, sigma); + } + + +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/gauss/drop/BlockDrop.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/gauss/drop/BlockDrop.java new file mode 100644 index 000000000..ebd3517b0 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/gauss/drop/BlockDrop.java @@ -0,0 +1,38 @@ +package com.untamedears.realisticbiomes.model.gauss.drop; + +import java.util.Arrays; +import java.util.List; +import org.bukkit.Location; +import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.inventory.ItemStack; +import vg.civcraft.mc.civmodcore.world.locations.chunkmeta.block.auto.YamlDataObject; + +public class BlockDrop extends YamlDataObject { + + private List drops; + + public BlockDrop(Location location, boolean isNew, ItemStack drop) { + this(location, isNew, Arrays.asList(drop)); + } + + public BlockDrop(Location location, boolean isNew, List drops) { + super(location, isNew); + this.drops = drops; + } + + public List getDrops() { + return drops; + } + + @Override + protected void concreteSerialize(YamlConfiguration config) { + config.set("drops", drops); + } + + public static BlockDrop deserialize(Location location, YamlConfiguration config) { + @SuppressWarnings("unchecked") + List drops = (List) config.getList("drops"); + return new BlockDrop(location, false, drops); + } + +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/ltree/BlockTransformation.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/ltree/BlockTransformation.java new file mode 100644 index 000000000..599d84f6a --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/ltree/BlockTransformation.java @@ -0,0 +1,51 @@ +package com.untamedears.realisticbiomes.model.ltree; + +import java.util.Map; +import java.util.Map.Entry; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.Tag; +import org.bukkit.block.Block; +import org.bukkit.block.data.type.Leaves; +import vg.civcraft.mc.civmodcore.inventory.items.MaterialUtils; +import vg.civcraft.mc.civmodcore.world.BlockProperties; + +public class BlockTransformation { + + private Material material; + private Map blockData; + + public BlockTransformation(Material material, Map blockData) { + this.material = material; + this.blockData = blockData; + } + + /** + * Applies this transformation at the given location + * + * @param loc Location the current LStep is at + * @return Whether the transformation could be applied + */ + public boolean applyAt(Location loc) { + return applyAt(loc.getBlock()); + } + + public boolean applyAt(Block block) { + if (block.getY() > 255) { + return false; + } + if (!MaterialUtils.isAir(block.getType())) { + return false; + } + block.setType(material); + if (Tag.LEAVES.isTagged(material)) { + Leaves leaves = (Leaves) block.getBlockData(); + leaves.setPersistent(true); + } + for (Entry data : blockData.entrySet()) { + BlockProperties.setBlockProperty(block, data.getKey(), data.getValue()); + } + return true; + } + +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/ltree/LStep.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/ltree/LStep.java new file mode 100644 index 000000000..710f0f6df --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/ltree/LStep.java @@ -0,0 +1,42 @@ +package com.untamedears.realisticbiomes.model.ltree; + +import java.util.List; +import org.bukkit.Location; +import org.bukkit.util.Vector; + +public class LStep { + + private LStepConfig config; + private Location location; + private Vector direction; + private int depth; + + public LStep(LStepConfig config, Location location, Vector direction, int depth) { + this.location = location; + this.config = config; + this.direction = direction; + this.depth = depth; + + } + + public List apply() { + return config.progress(this); + } + + public Vector getDirection() { + return direction; + } + + public Location getLocation() { + return location; + } + + public LStepConfig getConfig() { + return config; + } + + public int getDepth() { + return depth; + } + +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/ltree/LStepConfig.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/ltree/LStepConfig.java new file mode 100644 index 000000000..e2bce3b82 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/ltree/LStepConfig.java @@ -0,0 +1,146 @@ +package com.untamedears.realisticbiomes.model.ltree; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import org.bukkit.Location; +import org.bukkit.util.Vector; + +public class LStepConfig { + + private List results; + private double directionWeight; + private List transformations; + private boolean normalizeBeforeDirectionTransformation; + private boolean transformInWorldCoordinates; + private double chanceSum; + private String id; + + public LStepConfig(String id, double directionWeight, List transformations, + boolean normalizeBeforeDirectionTransformation, boolean transformInWorldCoordinates) { + this.directionWeight = directionWeight; + this.transformations = transformations; + this.normalizeBeforeDirectionTransformation = normalizeBeforeDirectionTransformation; + this.transformInWorldCoordinates = transformInWorldCoordinates; + this.results = new ArrayList<>(); + this.chanceSum = 0; + this.id = id; + } + + public String getID() { + return id; + } + + public void addNextStep(List step, double chance, List directions) { + this.results.add(new LStepConfigChance(step, chance, directions)); + chanceSum += chance; + } + + public LStep toStep(Location loc, Vector direction, int depth) { + return new LStep(this, loc, direction, depth); + } + + public Vector getNewDirection(Vector oldDirection, Vector newDirection) { + System.out.println("New before: " + newDirection); + System.out.println("Old: " + oldDirection); + if (!transformInWorldCoordinates) { + newDirection = getInRelativeCoordinateSystem(oldDirection, newDirection); + } + System.out.println("New after: " + newDirection); + return oldDirection.clone().multiply(1 - directionWeight).add(newDirection.clone().multiply(directionWeight)); + } + + /** + * Transform the toTransform vector into one relative to an ongoing directional + * movement targetDirection. This is done by assuming that targetDirection is + * the up vector of the target coordinate system, the normal of 0,1,0 and + * targetDirection is the x component and z is the cross product of the x + * component and targetDirection. If the target direction is already the up + * vector, the vector toTransform is left untouched as in this case our target + * coordinate system is the world coordinate system + * + * @param targetDirection Direction based on which the target coordinate system + * is defined + * @param toTransform Relative direction to transform + * @return Transformed vector in target coordinate system + */ + private Vector getInRelativeCoordinateSystem(Vector targetDirection, Vector toTransform) { + if (Math.abs(targetDirection.getX()) < 1E-10 && Math.abs(targetDirection.getZ()) < 1E-10) { + // standard up vector, meaning our default world coordinate system + return toTransform; + } + // at this point we know the targetDirection vector is not the up vector, so the + // cross product will give us a valid normal on the plane defined by + // targetDirection and the up vector in world coordinates + Vector xComponent = new Vector(0, 1, 0).crossProduct(targetDirection); + Vector zComponent = xComponent.getCrossProduct(targetDirection); + System.out.println("x: " + xComponent); + System.out.println("z: " + zComponent); + return dirtyMatrixMultiplication(xComponent, targetDirection, zComponent, toTransform); + } + + private static Vector dirtyMatrixMultiplication(Vector matrixComp1, Vector matrixComp2, Vector matrixComp3, Vector vector) { + double firstComp = matrixComp1.getX() * vector.getX() + matrixComp2.getX() * vector.getY() + matrixComp3.getX() * vector.getZ(); + double secondComp = matrixComp1.getY() * vector.getX() + matrixComp2.getY() * vector.getY() + matrixComp3.getY() * vector.getZ(); + double thirdComp = matrixComp1.getZ() * vector.getX() + matrixComp2.getZ() * vector.getY() + matrixComp3.getZ() * vector.getZ(); + return new Vector(firstComp, secondComp, thirdComp); + } + + public List progress(LStep step) { + Location currentLocation = step.getLocation(); + Vector normalizedDirection = step.getDirection().clone().normalize(); + for (BlockTransformation transform : transformations) { + transform.applyAt(currentLocation); + } + if (results.isEmpty()) { + return Collections.emptyList(); + } + List nextSteps = null; + List nextStepDirection = null; + if (results.size() == 1) { + nextSteps = results.get(0).step; + nextStepDirection = results.get(0).directions; + } else { + double random = Math.random() * chanceSum; + for (LStepConfigChance chance : results) { + random -= chance.chance; + if (random <= 0) { + nextSteps = chance.step; + nextStepDirection = chance.directions; + break; + } + } + } + List result = new ArrayList<>(); + Vector oldDirection = step.getDirection(); + if (normalizeBeforeDirectionTransformation) { + oldDirection = normalizedDirection; + } + for (int i = 0; i < nextSteps.size(); i++) { + LStepConfig subStep = nextSteps.get(i); + Vector subDirection = nextStepDirection.get(i); + Vector localDirection = subStep.getNewDirection(oldDirection, subDirection); + Location updatedLocation = step.getLocation().clone().add(localDirection); + result.add(subStep.toStep(updatedLocation, localDirection, step.getDepth() + 1)); + } + return result; + } + + public LStepConfig clone() { + return new LStepConfig(id, directionWeight, transformations, normalizeBeforeDirectionTransformation, transformInWorldCoordinates); + } + + private static final class LStepConfigChance { + + private final double chance; + private final List step; + private final List directions; + + public LStepConfigChance(List step, double chance, List directions) { + this.step = step; + this.chance = chance; + this.directions = directions; + } + } + +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/ltree/LTree.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/ltree/LTree.java new file mode 100644 index 000000000..66d7f5ef2 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/ltree/LTree.java @@ -0,0 +1,66 @@ +package com.untamedears.realisticbiomes.model.ltree; + +import java.util.Deque; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.function.Function; +import java.util.stream.Collectors; +import org.bukkit.Location; +import org.bukkit.util.Vector; + +public class LTree { + + private LStepConfig startSymbol; + private Vector intialVector; + private String name; + private int DEPTH_CAP = 100; + + public LTree(String name, String startingSymbol, Vector initialVector, Map> spreadRules, + Function configGenerator) { + this.intialVector = initialVector; + this.name = name; + Map configMap = new HashMap<>(); + configMap.put(startingSymbol, configGenerator.apply(startingSymbol)); + for (List ruleList : spreadRules.values()) { + for (SpreadRule rule : ruleList) { + for (String key : rule.getResultSteps()) { + configMap.put(key, configGenerator.apply(key)); + } + } + } + this.startSymbol = configMap.get(startingSymbol); + if (this.startSymbol == null) { + throw new IllegalArgumentException("Starting symbol can not be null"); + } + for (Entry> entry : spreadRules.entrySet()) { + LStepConfig currentStep = configMap.get(entry.getKey()); + for (SpreadRule rule : entry.getValue()) { + List followupSteps = rule.getResultSteps().stream().map(configMap::get).collect(Collectors.toList()); + currentStep.addNextStep(followupSteps, rule.getChance(), rule.getDirections()); + } + } + } + + public String getName() { + return name; + } + + public void genAt(Location loc) { + LStep startingStep = new LStep(startSymbol, loc, intialVector, 0); + Deque todo = new LinkedList<>(); + todo.add(startingStep); + while (!todo.isEmpty()) { + LStep item = todo.poll(); + System.out.println("Processing " + item.getConfig().getID()); + for (LStep next : item.apply()) { + if (next.getDepth() <= DEPTH_CAP) { + todo.push(next); + } + } + } + } + +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/ltree/SpreadRule.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/ltree/SpreadRule.java new file mode 100644 index 000000000..e66ab5a95 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/model/ltree/SpreadRule.java @@ -0,0 +1,30 @@ +package com.untamedears.realisticbiomes.model.ltree; + +import java.util.List; +import org.bukkit.util.Vector; + +public class SpreadRule { + + private final double chance; + private final List resultSteps; + private final List directions; + + public SpreadRule(double chance, List resultSteps, List directions) { + this.chance = chance; + this.resultSteps = resultSteps; + this.directions = directions; + } + + public double getChance() { + return chance; + } + + public List getDirections() { + return directions; + } + + public List getResultSteps() { + return resultSteps; + } + +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/utils/RBUtils.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/utils/RBUtils.java new file mode 100644 index 000000000..b51d49faa --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/utils/RBUtils.java @@ -0,0 +1,113 @@ +package com.untamedears.realisticbiomes.utils; + +import com.untamedears.realisticbiomes.growth.ColumnPlantGrower; +import org.bukkit.Material; +import org.bukkit.TreeType; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; + +public class RBUtils { + + public static Material getFruit(Material mat) { + switch (mat) { + case MELON_SEEDS: + case MELON_STEM: + return Material.MELON; + case PUMPKIN_SEEDS: + case PUMPKIN_STEM: + return Material.PUMPKIN; + default: + return null; + } + } + + public static Block getRealPlantBlock(Block block) { + if (isColumnPlant(block.getType())) { + return ColumnPlantGrower.getRelativeBlock(block, RBUtils.getGrowthDirection(block.getType()).getOppositeFace()); + } + return block; + } + + public static int getVerticalSoilOffset(Material mat) { + if (mat == Material.COCOA) { + return -1; + } + return -2; + } + + public static boolean isColumnPlant(Material mat) { + return mat == Material.CACTUS || mat == Material.SUGAR_CANE || mat == Material.BAMBOO + || mat == Material.TWISTING_VINES || mat == Material.WEEPING_VINES + || mat == Material.TWISTING_VINES_PLANT || mat == Material.WEEPING_VINES_PLANT + || mat == Material.KELP || mat == Material.KELP_PLANT + || mat == Material.CAVE_VINES || mat == Material.CAVE_VINES_PLANT + || mat == Material.BIG_DRIPLEAF || mat == Material.BIG_DRIPLEAF_STEM; + } + + public static Material getStemMaterial(Material material) { + switch (material) { + case KELP: + return Material.KELP_PLANT; + case TWISTING_VINES: + return Material.TWISTING_VINES_PLANT; + case WEEPING_VINES: + return Material.WEEPING_VINES_PLANT; + case BAMBOO_SAPLING: + return Material.BAMBOO; + case CAVE_VINES: + return Material.CAVE_VINES_PLANT; + case BIG_DRIPLEAF: + return Material.BIG_DRIPLEAF_STEM; + default: + return material; + } + } + + public static Material getTipMaterial(Material material) { + switch (material) { + case KELP_PLANT: + return Material.KELP; + case TWISTING_VINES_PLANT: + return Material.TWISTING_VINES; + case WEEPING_VINES_PLANT: + return Material.WEEPING_VINES; + case CAVE_VINES_PLANT: + return Material.CAVE_VINES; + case BIG_DRIPLEAF_STEM: + return Material.BIG_DRIPLEAF; + default: + return material; + } + } + + public static boolean isFruit(Material mat) { + return mat == Material.PUMPKIN || mat == Material.MELON; + } + + public static BlockFace getGrowthDirection(Material material) { + switch (material) { + case TWISTING_VINES: + case TWISTING_VINES_PLANT: + case KELP: + case KELP_PLANT: + case BAMBOO_SAPLING: + case BAMBOO: + case SUGAR_CANE: + case CACTUS: + case BIG_DRIPLEAF: + case BIG_DRIPLEAF_STEM: + return BlockFace.UP; + case WEEPING_VINES: + case WEEPING_VINES_PLANT: + case CAVE_VINES: + case CAVE_VINES_PLANT: + return BlockFace.DOWN; + default: + return BlockFace.SELF; + } + } + + private RBUtils() { + + } +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/utils/RealisticBiomesGUI.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/utils/RealisticBiomesGUI.java new file mode 100644 index 000000000..2caabe0e5 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/utils/RealisticBiomesGUI.java @@ -0,0 +1,128 @@ +package com.untamedears.realisticbiomes.utils; + +import com.untamedears.realisticbiomes.RealisticBiomes; +import com.untamedears.realisticbiomes.growthconfig.PlantGrowthConfig; +import java.math.RoundingMode; +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.concurrent.TimeUnit; +import org.apache.commons.lang3.StringUtils; +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.block.Biome; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import vg.civcraft.mc.civmodcore.inventory.gui.DecorationStack; +import vg.civcraft.mc.civmodcore.inventory.gui.IClickable; +import vg.civcraft.mc.civmodcore.inventory.gui.components.ComponableInventory; +import vg.civcraft.mc.civmodcore.inventory.gui.components.ContentAligners; +import vg.civcraft.mc.civmodcore.inventory.gui.components.Scrollbar; +import vg.civcraft.mc.civmodcore.inventory.gui.components.SlotPredicates; +import vg.civcraft.mc.civmodcore.inventory.gui.components.StaticDisplaySection; +import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; +import vg.civcraft.mc.civmodcore.utilities.TextUtil; + +public class RealisticBiomesGUI { + + private final Player player; + private ComponableInventory inventory; + private static final DecimalFormat decimalFormat = new DecimalFormat("0.00"); + + public RealisticBiomesGUI(Player player) { + this.player = player; + } + + /** + * Show GUI containing all RB effected crops, sorted by their biome multiplier in current biome. + */ + public void showRBOverview(Biome biome) { + Biome currentBiome; + if (biome == null) { + currentBiome = player.getLocation().getBlock().getBiome(); + } else { + currentBiome = biome; + } + if (inventory == null) { + String biomeText = (currentBiome.toString().toLowerCase()).replace("_", " "); + biomeText = StringUtils.capitalize(biomeText); + biomeText = StringUtils.abbreviate(biomeText, 30); + inventory = new ComponableInventory(ChatColor.DARK_GRAY + biomeText, 6, player); + } else { + inventory.clear(); + } + List clicks = new LinkedList<>(); + List plantConfigs = new ArrayList<>( + RealisticBiomes.getInstance().getConfigManager().getPlantGrowthConfigs()); + plantConfigs.sort(Comparator.comparingDouble(p -> { + if (p.getBreaker() == null) { + return -1; + } else { + int maxYield = p.getBreaker().maxYield(); + return maxYield * RealisticBiomes.getInstance().getConfigManager().getBiomeConfiguration().getYield(player.getLocation().getBlock(), p.getClimate(), p.getBreaker().type(), maxYield); + } + }).reversed().thenComparing(p -> p.getItem().getType())); + for (PlantGrowthConfig plant : plantConfigs) { + Material representation = plant.getItem().getType(); + if (representation == Material.COCOA) { + representation = Material.COCOA_BEANS; + } else if (!representation.isItem()) { + representation = Material.BARRIER; + } + ItemStack is = new ItemStack(representation); + ItemUtils.setDisplayName(is, ChatColor.DARK_GREEN + plant.getName()); + List lore = new ArrayList<>(); + long timeNeeded = plant.getGrowthTime(); + lore.add(ChatColor.DARK_AQUA + "Time: " + + ChatColor.GRAY + TextUtil.formatDuration(timeNeeded, TimeUnit.MILLISECONDS)); + if (plant.getBreaker() != null) { + DecimalFormat format = new DecimalFormat("#.##"); + format.setRoundingMode(RoundingMode.DOWN); + int maxYield = plant.getBreaker().maxYield(); + double yield = RealisticBiomes.getInstance().getConfigManager().getBiomeConfiguration().getYield(player.getLocation().getBlock(), plant.getClimate(), plant.getBreaker().type(), maxYield); + lore.add(ChatColor.DARK_AQUA + "Yield: " + ChatColor.GRAY + format.format(yield * maxYield) + "x"); + } + + is.editMeta(itemMeta -> itemMeta.setEnchantmentGlintOverride(true)); + if (plant.getAllowBoneMeal() || !plant.getNeedsLight() + || !plant.getSoilBoniPerLevel().isEmpty() || plant.getMaximumSoilLayers() != 0 + || plant.getMaximumSoilBonus() != Integer.MAX_VALUE || !plant.getGreenHouseRates().isEmpty()) { + lore.add(ChatColor.DARK_GREEN + "---"); + } + if (plant.getAllowBoneMeal()) { + lore.add(ChatColor.DARK_AQUA + "Allow Bone Meal: " + ChatColor.GRAY + "true"); + } + if (!plant.getNeedsLight()) { + lore.add(ChatColor.DARK_AQUA + "Needs Light: " + ChatColor.GRAY + "false"); + } + for (Map.Entry entry : plant.getSoilBoniPerLevel().entrySet()) { + lore.add(String.format("%sSoil Bonus: %s%s (%.2f)", ChatColor.DARK_AQUA, + ChatColor.GRAY, ItemUtils.getItemName(entry.getKey()), entry.getValue())); + } + if (plant.getMaximumSoilLayers() != 0) { + lore.add(String.format("%sMax Soil Layers: %s%d", ChatColor.DARK_AQUA, + ChatColor.GRAY, plant.getMaximumSoilLayers())); + } + if (plant.getMaximumSoilBonus() < Integer.MAX_VALUE) { + lore.add(String.format("%sMax Soil Bonus: %s%.2f", ChatColor.DARK_AQUA, + ChatColor.GRAY, plant.getMaximumSoilBonus())); + } + for (Map.Entry entry : plant.getGreenHouseRates().entrySet()) { + lore.add(String.format("%sGreen House Rate: %s%s (%.2f)", ChatColor.DARK_AQUA, + ChatColor.GRAY, ItemUtils.getItemName(entry.getKey()), entry.getValue())); + } + ItemUtils.addLore(is, lore); + IClickable click = new DecorationStack(is); + clicks.add(click); + } + Scrollbar middleBar = new Scrollbar( + clicks, 45, 5, ContentAligners.getCenteredInOrder(clicks.size(), 45, 9)); + inventory.addComponent(middleBar, SlotPredicates.rows(5)); + StaticDisplaySection bottomLine = new StaticDisplaySection(9); + inventory.addComponent(bottomLine, SlotPredicates.rows(1)); + inventory.show(); + } +} diff --git a/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/utils/SchematicUtils.java b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/utils/SchematicUtils.java new file mode 100644 index 000000000..76b2c7df3 --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/java/com/untamedears/realisticbiomes/utils/SchematicUtils.java @@ -0,0 +1,51 @@ +package com.untamedears.realisticbiomes.utils; + +import com.sk89q.worldedit.extent.clipboard.Clipboard; +import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormat; +import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormats; +import com.sk89q.worldedit.extent.clipboard.io.ClipboardReader; +import com.untamedears.realisticbiomes.model.RBSchematic; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.logging.Logger; + +public class SchematicUtils { + + public static List loadAll(File folder, Logger logger) { + List result = new ArrayList<>(); + if (!folder.isDirectory()) { + logger.warning("No schematic directory provided"); + return result; + } + for (File subFile : folder.listFiles()) { + if (subFile.isDirectory()) { + result.addAll(loadAll(subFile, logger)); + continue; + } + if (!subFile.getName().endsWith(".schematic")) { + continue; + } + Clipboard board; + try { + board = loadSchematic(subFile); + } catch (IOException e) { + logger.severe("Failed to load schematic " + e.toString()); + continue; + } + String name = subFile.getName().replace(".schematic", ""); + result.add(new RBSchematic(name, board)); + } + return result; + } + + public static Clipboard loadSchematic(File file) throws IOException { + ClipboardFormat format = ClipboardFormats.findByFile(file); + try (ClipboardReader reader = format.getReader(new FileInputStream(file))) { + return reader.read(); + } + } + +} diff --git a/plugins/realisticbiomes2-paper/src/main/resources/config.yml b/plugins/realisticbiomes2-paper/src/main/resources/config.yml new file mode 100644 index 000000000..8ad7a53cc --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/resources/config.yml @@ -0,0 +1,882 @@ +# Set to true if you want tapping a plant with bonemeal to double it. +allow_tallplant_replication: true + +#Enable auto replant? +auto_replant_enabled: true +# true for right click auto replant, false for left click +auto_replant_right_click: true + +no_bonemeal_blocks: + - SEA_PICKLE + - KELP + - TWISTING_VINES + - WEEPING_VINES + - CAVE_VINES + - BAMBOO + - KELP_PLANT + - TWISTING_VINES_PLANT + - WEEPING_VINES_PLANT + - CAVE_VINES_PLANT + - BAMBOO_SAPLING + - SWEET_BERRY_BUSH + - BIG_DRIPLEAF + - BIG_DRIPLEAF_STEM + - RED_MUSHROOM + - BROWN_MUSHROOM + - WHEAT + - CARROTS + - POTATOES + - BEETROOTS + - NETHER_WART + - COCOA + - MELON_STEM + - PUMPKIN_STEM + - CACTUS + - SUGAR_CANE + - OAK_SAPLING + - BIRCH_SAPLING + - SPRUCE_SAPLING + - JUNGLE_SAPLING + - DARK_OAK_SAPLING + - ACACIA_SAPLING + - FLOWERING_AZALEA + + # categories of biomes +biome_aliases: + water: + - DEEP_OCEAN + - OCEAN + - STONE_SHORE + freshwater: + - RIVER + - BEACH + cold_water: + - SNOWY_BEACH + - FROZEN_OCEAN + - FROZEN_RIVER + temperate: + - PLAINS + - SUNFLOWER_PLAINS + - SAVANNA + - SAVANNA_PLATEAU + - SHATTERED_SAVANNA + - SHATTERED_SAVANNA_PLATEAU + foresty: + - BIRCH_FOREST + - BIRCH_FOREST_HILLS + - DARK_FOREST + - DARK_FOREST_HILLS + - FLOWER_FOREST + - FOREST + - TALL_BIRCH_FOREST + - TALL_BIRCH_HILLS + - WOODED_HILLS + cold: + - ICE_SPIKES + - GIANT_SPRUCE_TAIGA + - GIANT_SPRUCE_TAIGA_HILLS + - GIANT_TREE_TAIGA + - GIANT_TREE_TAIGA_HILLS + - TAIGA + - TAIGA_HILLS + - TAIGA_MOUNTAINS + - SNOWY_TUNDRA + - SNOWY_MOUNTAINS + - SNOWY_TAIGA + - SNOWY_TAIGA_HILLS + - SNOWY_TAIGA_MOUNTAINS + cold_forest: + - GIANT_SPRUCE_TAIGA + - GIANT_SPRUCE_TAIGA_HILLS + - GIANT_TREE_TAIGA + - GIANT_TREE_TAIGA_HILLS + - TAIGA + - TAIGA_HILLS + - TAIGA_MOUNTAINS + hot_dry: + - DESERT + - DESERT_HILLS + - DESERT_LAKES + - BADLANDS + - BADLANDS_PLATEAU + - ERODED_BADLANDS + - WOODED_BADLANDS_PLATEAU + hot_rainy: + - JUNGLE + - JUNGLE_EDGE + - JUNGLE_HILLS + - MODIFIED_JUNGLE + - MODIFIED_JUNGLE_EDGE + mountain: + - MOUNTAINS + - MOUNTAIN_EDGE + - GRAVELLY_MOUNTAINS + - MODIFIED_GRAVELLY_MOUNTAINS + - WOODED_MOUNTAINS + mesa: + - BADLANDS + - BADLANDS_PLATEAU + - ERODED_BADLANDS + - WOODED_BADLANDS_PLATEAU + - MODIFIED_BADLANDS_PLATEAU + - MODIFIED_WOODED_BADLANDS_PLATEAU + mushroom: + - MUSHROOM_FIELDS + - MUSHROOM_FIELD_SHORE + swampy: + - SWAMP + - SWAMP_HILLS + nether: + - NETHER_WASTES + - SOUL_SAND_VALLEY + - CRIMSON_FOREST + - WARPED_FOREST + - BASALT_DELTAS + end: + - END_BARRENS + - END_HIGHLANDS + - END_MIDLANDS + - THE_VOID + - THE_END + +temperature: + octaves: 3 + frequency: 0.5 + amplitude: 1 + lacunarity: 2 + persistence: 0.5 + scale: 0.5 + seed: 1 + +humidity: + octaves: 3 + frequency: 1 + amplitude: 1 + lacunarity: 2 + persistence: 0.5 + scale: 0.5 + seed: 2 + +fertility_seed: 3 +fertility_power: 1 + +temperature_measure: CLOCK +humidity_measure: LIGHTNING_ROD +fertility_measure: BRUSH + +yield_power_factor: 3 + +climate: + - biomes: + - temperate + - foresty + temperature: 0.5 + humidity: 0.5 + - biomes: + - hot_dry + - mesa + temperature: 0.75 + humidity: 0.25 + - biomes: + - mountain + - cold + temperature: 0.25 + humidity: 0.25 + +farm_beacon_key: "heliodor:farm_beacon" +farm_beacon_range: 20 +farm_beacon_fertility: 0.05 + +plants: + + # formerly inheriting CROP properties + WHEAT: + persistent_growth_period: 3d + name: Wheat + id: 1 + item: + ==: org.bukkit.inventory.ItemStack + type: WHEAT_SEEDS + v: 1 + grower: + type: ageable + material: WHEAT + max_stage: 7 + increment: 1 + vanilla_materials: + - WHEAT + soil_max_layers: 8 + max_soil_bonus: 2 + ideal_temperature: 0.5 + ideal_humidity: 0.5 + breaker: + type: WHEAT + max_yield: 64 + soil_boni: + CLAY: 0.5 + DIRT: 0.1 + + CARROT: + persistent_growth_period: 3d + name: Carrots + id: 2 + item: + ==: org.bukkit.inventory.ItemStack + type: CARROT + v: 1 + grower: + type: ageable + material: CARROTS + max_stage: 7 + increment: 3 + vanilla_materials: + - CARROTS + soil_max_layers: 4 + soil_boni: + CLAY: 0.5 + ideal_temperature: 0.5 + ideal_humidity: 0.5 + breaker: + type: CARROT + max_yield: 64 + + POTATO: + persistent_growth_period: 3d + name: Potatoes + id: 3 + item: + ==: org.bukkit.inventory.ItemStack + type: POTATO + v: 1 + grower: + type: ageable + material: POTATOES + max_stage: 7 + increment: 3 + vanilla_materials: + - POTATOES + soil_max_layers: 4 + soil_boni: + CLAY: 0.5 + ideal_temperature: 0.5 + ideal_humidity: 0.5 + breaker: + type: POTATO + max_yield: 64 + + BEETROOT: + persistent_growth_period: 3d + name: Beetroots + id: 4 + item: + ==: org.bukkit.inventory.ItemStack + type: BEETROOT_SEEDS + v: 1 + grower: + type: ageable + material: BEETROOTS + max_stage: 3 + increment: 1 + vanilla_materials: + - BEETROOTS + soil_max_layers: 4 + soil_boni: + CLAY: 0.5 + ideal_temperature: 0.5 + ideal_humidity: 0.5 + breaker: + type: BEETROOT + max_yield: 64 + + NETHER_WART: + persistent_growth_period: 16d + name: Nether wart + id: 5 + item: + ==: org.bukkit.inventory.ItemStack + type: NETHER_WART + v: 1 + grower: + type: ageable + material: NETHER_WART + max_stage: 3 + increment: 1 + vanilla_materials: + - NETHER_WART + needs_sun_light: false + soil_max_layers: 4 + soil_boni: + SOUL_SAND: 0.5 + ideal_temperature: 0.5 + ideal_humidity: 0.5 + breaker: + type: NETHER_WART + max_yield: 64 + + COCOA: + persistent_growth_period: 24d + name: Cocoa + id: 6 + item: + ==: org.bukkit.inventory.ItemStack + type: COCOA_BEANS + v: 1 + grower: + type: ageable + material: COCOA + max_stage: 2 + increment: 1 + vanilla_materials: + - COCOA + soil_max_layers: 25 + soil_boni: + VINE: 0.3 + ideal_temperature: 0.5 + ideal_humidity: 0.5 + breaker: + type: COCOA + max_yield: 64 + + MELON: + persistent_growth_period: 0 + name: Melon + id: 7 + item: + ==: org.bukkit.inventory.ItemStack + type: MELON + v: 2584 + can_be_planted: false + soil_max_layers: 4 + soil_boni: + CLAY: 0.5 + ideal_temperature: 0.5 + ideal_humidity: 0.5 + breaker: + type: MELON + max_yield: 64 + grower: + type: fruit + material: MELON + stem_type: MELON_STEM + attached_stem_type: ATTACHED_MELON_STEM + vanilla_materials: + - ATTACHED_MELON_STEM + - MELON_STEM + + MELON_STEM: + persistent_growth_period: 0 + name: Melon stem + id: 8 + item: + ==: org.bukkit.inventory.ItemStack + type: MELON_SEEDS + v: 1 + grower: + type: stem + material: MELON_STEM + fruit_config: Melon + soil_max_layers: 4 + soil_boni: + CLAY: 0.5 + ideal_temperature: 0.5 + ideal_humidity: 0.5 + + PUMPKIN: + persistent_growth_period: 0 + name: Pumpkin + id: 9 + can_be_planted: false + item: + ==: org.bukkit.inventory.ItemStack + type: PUMPKIN + v: 1 + grower: + type: fruit + material: PUMPKIN + stem_type: PUMPKIN_STEM + attached_stem_type: ATTACHED_PUMPKIN_STEM + vanilla_materials: + - ATTACHED_PUMPKIN_STEM + - PUMPKIN_STEM + soil_max_layers: 4 + soil_boni: + CLAY: 0.5 + ideal_temperature: 0.5 + ideal_humidity: 0.5 + max_yield: 64 + + PUMPKIN_STEM: + persistent_growth_period: 0 + name: Pumpkin stem + grower: + type: stem + material: PUMPKIN_STEM + fruit_config: Pumpkin + id: 10 + item: + ==: org.bukkit.inventory.ItemStack + type: PUMPKIN_SEEDS + v: 1 + soil_max_layers: 4 + soil_boni: + CLAY: 0.5 + ideal_temperature: 0.5 + ideal_humidity: 0.5 + + # formerly inheriting Column properties + + CACTUS: + persistent_growth_period: 6h + name: Cactus + grower: + type: column + material: CACTUS + max_height: 3 + insta_break_touching: false + vanilla_materials: + - CACTUS + id: 11 + item: + ==: org.bukkit.inventory.ItemStack + type: CACTUS + v: 1 + ideal_temperature: 0.5 + ideal_humidity: 0.5 + breaker: + type: CACTUS + max_yield: 64 + + SUGAR_CANE: + persistent_growth_period: 6d + name: Sugar cane + id: 12 + grower: + type: column + material: SUGAR_CANE + max_height: 3 + vanilla_materials: + - SUGAR_CANE + item: + ==: org.bukkit.inventory.ItemStack + type: SUGAR_CANE + v: 1 + ideal_temperature: 0.5 + ideal_humidity: 0.5 + breaker: + type: SUGAR_CANE + max_yield: 64 + + # formerly inheriting "basetree" properties + + OAK_SAPLING: + persistent_growth_period: 6d + name: Oak Tree + id: 13 + grower: + type: tree + material: OAK_SAPLING + vanilla_materials: + - OAK_SAPLING + item: + ==: org.bukkit.inventory.ItemStack + type: OAK_SAPLING + v: 1 + ideal_temperature: 0.5 + ideal_humidity: 0.5 + breaker: + type: OAK_LEAVES + max_yield: 64 + + BIRCH_SAPLING: + persistent_growth_period: 6d + name: Birch Tree + id: 14 + grower: + type: tree + material: BIRCH_SAPLING + vanilla_materials: + - BIRCH_SAPLING + item: + ==: org.bukkit.inventory.ItemStack + type: BIRCH_SAPLING + v: 1 + ideal_temperature: 0.5 + ideal_humidity: 0.5 + breaker: + type: BIRCH_LEAVES + max_yield: 64 + + SPRUCE_SAPLING: + persistent_growth_period: 6d + name: Spruce Tree + id: 15 + grower: + type: tree + material: SPRUCE_SAPLING + vanilla_materials: + - SPRUCE_SAPLING + item: + ==: org.bukkit.inventory.ItemStack + type: SPRUCE_SAPLING + v: 1 + ideal_temperature: 0.5 + ideal_humidity: 0.5 + breaker: + type: SPRUCE_LEAVES + max_yield: 64 + + JUNGLE_SAPLING: + persistent_growth_period: 6d + name: Jungle Tree + id: 16 + grower: + type: tree + material: JUNGLE_SAPLING + vanilla_materials: + - JUNGLE_SAPLING + item: + ==: org.bukkit.inventory.ItemStack + type: JUNGLE_SAPLING + v: 1 + ideal_temperature: 0.5 + ideal_humidity: 0.5 + breaker: + type: JUNGLE_LEAVES + max_yield: 128 + + ACACIA_SAPLING: + persistent_growth_period: 6d + name: Acacia Tree + grower: + type: tree + material: ACACIA_SAPLING + vanilla_materials: + - ACACIA_SAPLING + id: 17 + item: + ==: org.bukkit.inventory.ItemStack + type: ACACIA_SAPLING + v: 1 + ideal_temperature: 0.5 + ideal_humidity: 0.5 + breaker: + type: ACACIA_LEAVES + max_yield: 128 + + DARK_OAK_SAPLING: + persistent_growth_period: 6d + name: Dark Oak Tree + grower: + type: tree + material: DARK_OAK_SAPLING + vanilla_materials: + - DARK_OAK_SAPLING + id: 18 + item: + ==: org.bukkit.inventory.ItemStack + type: DARK_OAK_SAPLING + v: 1 + ideal_temperature: 0.5 + ideal_humidity: 0.5 + breaker: + type: DARK_OAK_LEAVES + max_yield: 192 + + PALE_OAK_SAPLING: + persistent_growth_period: 6d + name: Pale Oak Tree + grower: + type: tree + material: PALE_OAK_SAPLING + vanilla_materials: + - PALE_OAK_SAPLING + id: 19 + item: + ==: org.bukkit.inventory.ItemStack + type: PALE_OAK_SAPLING + v: 1 + ideal_temperature: 0.5 + ideal_humidity: 0.5 + breaker: + type: PALE_OAK_LEAVES + max_yield: 64 + + CHERRY_SAPLING: + persistent_growth_period: 0h + name: Cherry Tree + grower: + type: tree + material: CHERRY_SAPLING + vanilla_materials: + - CHERRY_SAPLING + id: 20 + item: + ==: org.bukkit.inventory.ItemStack + type: CHERRY_SAPLING + v: 1 + ideal_temperature: 0.5 + ideal_humidity: 0.5 + breaker: + type: CHERRY_LEAVES + max_yield: 64 + + MANGROVE_PROPAGULE: + persistent_growth_period: 0h + name: Mangrove Tree + grower: + type: tree + material: MANGROVE_PROPAGULE + vanilla_materials: + - MANGROVE_PROPAGULE + id: 21 + item: + ==: org.bukkit.inventory.ItemStack + type: MANGROVE_PROPAGULE + v: 1 + ideal_temperature: 0.5 + ideal_humidity: 0.5 + breaker: + type: MANGROVE_LEAVES + max_yield: 64 + + GLOW_BERRIES: + persistent_growth_period: 6d + name: Glow Berries + grower: + type: tip + material: CAVE_VINES + stem_material: CAVE_VINES_PLANT + growth_direction: DOWN + max_height: 25 + id: 22 + item: + ==: org.bukkit.inventory.ItemStack + type: GLOW_BERRIES + v: 2730 + ideal_temperature: 0.5 + ideal_humidity: 0.5 + breaker: + type: GLOW_BERRIES + max_yield: 64 + + TWISTING_VINES: + persistent_growth_period: 6d + name: Twisting Vines + grower: + type: tip + material: TWISTING_VINES + stem_material: TWISTING_VINES_PLANT + growth_direction: UP + max_height: 25 + id: 23 + item: + ==: org.bukkit.inventory.ItemStack + type: TWISTING_VINES + v: 2730 + ideal_temperature: 0.5 + ideal_humidity: 0.5 + breaker: + type: TWISTING_VINES + max_yield: 64 + + WEEPING_VINES: + persistent_growth_period: 6d + name: Weeping Vines + grower: + type: tip + material: WEEPING_VINES + stem_material: WEEPING_VINES_PLANT + growth_direction: DOWN + max_height: 25 + id: 24 + item: + ==: org.bukkit.inventory.ItemStack + type: WEEPING_VINES + v: 2730 + ideal_temperature: 0.5 + ideal_humidity: 0.5 + breaker: + type: WEEPING_VINES + max_yield: 64 + + KELP: + persistent_growth_period: 6d + name: Kelp + grower: + type: kelp + max_height: 25 + id: 25 + item: + ==: org.bukkit.inventory.ItemStack + type: KELP + v: 2730 + ideal_temperature: 0.5 + ideal_humidity: 0.5 + breaker: + type: KELP + max_yield: 64 + + RED_MUSHROOM: + persistent_growth_period: 12d + name: Red Mushroom + grower: + type: horizontalspread + max_amount: 81 + max_range: 9 + replaceable_blocks: + - AIR + - CAVE_AIR + - VOID_AIR + valid_soil: + - STONE + - MYCELIUM + - PODZOL + id: 26 + item: + ==: org.bukkit.inventory.ItemStack + type: RED_MUSHROOM + v: 2730 + needs_sun_light: false + ideal_temperature: 0.5 + ideal_humidity: 0.5 + breaker: + type: RED_MUSHROOM + max_yield: 64 + + BROWN_MUSHROOM: + persistent_growth_period: 12d + name: Brown Mushroom + grower: + type: horizontalspread + max_amount: 81 + max_range: 9 + replaceable_blocks: + - AIR + - CAVE_AIR + - VOID_AIR + valid_soil: + - STONE + - MYCELIUM + - PODZOL + id: 27 + item: + ==: org.bukkit.inventory.ItemStack + type: BROWN_MUSHROOM + v: 2730 + needs_sun_light: false + ideal_temperature: 0.5 + ideal_humidity: 0.5 + breaker: + type: BROWN_MUSHROOM + max_yield: 64 + + CRIMSON_FUNGUS: + persistent_growth_period: 12d + name: Crimson Fungus + grower: + type: fungus + material: CRIMSON_FUNGUS + vanilla_materials: + - CRIMSON_FUNGUS + id: 28 + item: + ==: org.bukkit.inventory.ItemStack + type: CRIMSON_FUNGUS + v: 2730 + needs_sun_light: false + ideal_temperature: 0.5 + ideal_humidity: 0.5 + breaker: + type: CRIMSON_FUNGUS + max_yield: 64 + + WARPED_FUNGUS: + persistent_growth_period: 12d + name: Warped Fungus + grower: + type: fungus + material: WARPED_FUNGUS + vanilla_materials: + - WARPED_FUNGUS + id: 29 + item: + ==: org.bukkit.inventory.ItemStack + type: WARPED_FUNGUS + v: 2730 + needs_sun_light: false + ideal_temperature: 0.5 + ideal_humidity: 0.5 + breaker: + type: WARPED_FUNGUS + max_yield: 64 + + BAMBOO: + persistent_growth_period: 12d + name: Bamboo + grower: + type: bamboo + max_height: 12 + id: 30 + item: + ==: org.bukkit.inventory.ItemStack + type: BAMBOO + v: 2730 + ideal_temperature: 0.5 + ideal_humidity: 0.5 + breaker: + type: BAMBOO + max_yield: 64 + + SWEET_BERRY: + persistent_growth_period: 12d + name: Sweet Berry + id: 31 + item: + ==: org.bukkit.inventory.ItemStack + type: SWEET_BERRIES + v: 2730 + grower: + type: ageable + material: SWEET_BERRY_BUSH + max_stage: 3 + increment: 1 + vanilla_materials: + - SWEET_BERRIES + ideal_temperature: 0.5 + ideal_humidity: 0.5 + breaker: + type: SWEET_BERRY + max_yield: 64 + + BIG_DRIPLEAF: + persistent_growth_period: 12d + name: Big Dripleaf + grower: + type: tip + material: BIG_DRIPLEAF + stem_material: BIG_DRIPLEAF_STEM + growth_direction: UP + max_height: 25 + id: 32 + item: + ==: org.bukkit.inventory.ItemStack + type: BIG_DRIPLEAF + v: 2730 + ideal_temperature: 0.5 + ideal_humidity: 0.5 + breaker: + type: BIG_DRIPLEAF + max_yield: 64 + +database: + ==: vg.civcraft.mc.civmodcore.dao.DatabaseCredentials + plugin: RealisticBiomes + user: 'root' + password: 'root' + host: 'localhost' + port: 3306 + database: 'database' + poolsize: 5 + connection_timeout: 10000 + idle_timeout: 600000 + max_lifetime: 7200000 diff --git a/plugins/realisticbiomes2-paper/src/main/resources/plugin.yml b/plugins/realisticbiomes2-paper/src/main/resources/plugin.yml new file mode 100644 index 000000000..9fe57a48d --- /dev/null +++ b/plugins/realisticbiomes2-paper/src/main/resources/plugin.yml @@ -0,0 +1,26 @@ +name: RealisticBiomes +main: com.untamedears.realisticbiomes.RealisticBiomes +depend: + - CivModCore +version: ${version} +authors: + - mgrandi + - gispy-king + - jacobcole2000 + - WildWeazel + - ProgrammerDan + - Numrufus + - Erocs + - danquist + - pruby + - Maxopoly + - BlackXnt +api-version: 1.21.3 +description: RealisticBiomes makes farming harder by limiting growth rates of crops and making them only grow well in certain biomes. +permissions: + rb.public: + default: true + rb.op: + default: op + rb.pickBiome: + default: op diff --git a/settings.gradle.kts b/settings.gradle.kts index 1f3fe6a20..096f8e0c2 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -29,6 +29,7 @@ include(":plugins:jukealert-paper") include(":plugins:namelayer-paper") include(":plugins:randomspawn-paper") include(":plugins:realisticbiomes-paper") +include(":plugins:realisticbiomes2-paper") include(":plugins:simpleadminhacks-paper") include(":plugins:factorymod-paper") include(":plugins:finale-paper")