diff --git a/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/common-configs/custom-enchantments-config.yaml b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/common-configs/custom-enchantments-config.yaml new file mode 100644 index 000000000..0f6968c80 --- /dev/null +++ b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/common-configs/custom-enchantments-config.yaml @@ -0,0 +1,1046 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: custom-enchantments-config +data: + custom-enchantments-config.yml: | + Global: + CreateExplosions: true + Updates: + ShowPercentageOnUpdate: true + CheckOnStartup: true + CheckDelay: 300 + Logging: + Enabled: false + MinimumMsForLog: 1000 + LogEvents: true + LogItems: true + LogEnchantments: true + Runecrafting: + Enabled: true + Disenchanting: true + CanStackEnchantments: true + TransformationEffect: true + Books: + Name: '&d&kedk&5 Magic Book &d&kedk' + Enchantments: + CEnchantmentColor: DARK_RED;ITALIC + CEnchantmentTable: false + CEnchantingProbability: 10 + GlowEnchantmentID: 100 + MaximumCustomEnchantments: 1000 + UseCustomEnchantmentProbability: false + RequirePermissions: false + RepeatPotionEffects: true + RepeatDelay: 1000 + Enchantments: + Gooey: + Enabled: 'true' + DisplayName: Gooey + EnchantmentProbability: '5' + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + HeightMultiplier: '3' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Smelting: + Enabled: 'false' + DisplayName: Smelting + EnchantmentProbability: '50' + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + RunecraftingCost: + - 0LVL&0$ + Gears: + Enabled: 'false' + DisplayName: Gears + EnchantmentProbability: '4' + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + SpeedBoost: '1' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Bombardment: + Enabled: 'false' + DisplayName: Bombardment + EnchantmentProbability: '10' + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + BaseTNTAmount: '3' + Volume: '1' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Shielded: + Enabled: 'true' + DisplayName: Shielded + EnchantmentProbability: '4' + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + BaseStrength: '1' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + StrengthPerLevel: 2 + Cooldown: 30 + Poison: + Enabled: 'true' + DisplayName: Poison + EnchantmentProbability: '5' + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + Duration: '60' + Strength: '1' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Ice Aspect: + Enabled: 'false' + DisplayName: Ice Aspect + EnchantmentProbability: '5' + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + SlowStrength: '5' + SlowDuration: '40' + ChanceFreeze: '60' + SpecialFreeze: 'true' + SpecialFreezeDuration: '60' + ChanceSpecialFreeze: '10' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Thunderingblow: + Enabled: 'true' + DisplayName: Thunderingblow + EnchantmentProbability: '5' + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + LightningChance: '20' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Deathbringer: + Enabled: 'false' + DisplayName: Deathbringer + EnchantmentProbability: '5' + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + TrueDamagePerHit: '2' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Obsidian Shield: + Enabled: 'true' + DisplayName: Obsidian Shield + EnchantmentProbability: '4' + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Explosive: + Enabled: 'false' + DisplayName: Explosive + EnchantmentProbability: '50' + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + Radius: '3' + LargerRadius: 'true' + DropItems: 'true' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Firework: + Enabled: 'false' + DisplayName: Firework + EnchantmentProbability: '20' + EnchantmentMaxLevel: '5' + OccurrenceChance: '10' + Cost: '0' + FireworkAmount: '1' + Delay: '2' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Frozen: + Enabled: 'false' + DisplayName: Frozen + EnchantmentProbability: '4' + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + Duration: '60' + Strength: '1' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Crippling Strike: + Enabled: 'false' + DisplayName: Crippling Strike + EnchantmentProbability: '5' + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + Duration: '100' + Strength: '1' + Autorepair: + Enabled: 'false' + DisplayName: Autorepair + EnchantmentProbability: '5' + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + HealAmount: '1' + HealFully: 'false' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Molten: + Enabled: 'false' + DisplayName: Molten + EnchantmentProbability: '4' + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + Duration: '20' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Shockwave: + Enabled: 'true' + DisplayName: Shockwave + EnchantmentProbability: '5' + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + Cooldown: '200' + ForbiddenMaterials: BEDROCK, WATER, STATIONARY_WATER, LAVA, STATIONARY_LAVA, CACTUS, + CAKE_BLOCK, CROPS, TORCH, ENDER_PORTAL, PISTON_MOVING_PIECE, MELON_STEM, NETHER_WARTS, + MOB_SPAWNER, CHEST, SIGN, WALL_SIGN, SIGN_POST, ITEM_FRAME + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Blind: + Enabled: 'false' + DisplayName: Blind + EnchantmentProbability: '5' + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + Duration: '100' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Deep Wounds: + Enabled: 'false' + DisplayName: Deep Wounds + EnchantmentProbability: '5' + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + Duration: '20' + BleedChance: '20' + Enlighted: + Enabled: 'false' + DisplayName: Enlighted + EnchantmentProbability: '4' + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + Duration: '60' + Strength: '1' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Poisoned: + Enabled: 'false' + DisplayName: Poisoned + EnchantmentProbability: '4' + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + Duration: '20' + Strength: '1' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Lightning: + Enabled: 'true' + DisplayName: Lightning + EnchantmentProbability: '10' + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + LightningChance: '75' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Lifesteal: + Enabled: 'true' + DisplayName: Lifesteal + EnchantmentProbability: '5' + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + Heal: '2' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Springs: + Enabled: 'true' + DisplayName: Springs + EnchantmentProbability: '4' + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + Strength: '4' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Stomp: + Enabled: 'false' + DisplayName: Stomp + EnchantmentProbability: '4' + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + DamageReductionFraction: '4' + DamageApplicationFraction: '2' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Hardened: + Enabled: 'false' + DisplayName: Hardened + EnchantmentProbability: '4' + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + Duration: '60' + Strength: '1' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Implants: + Enabled: 'true' + DisplayName: Implants + EnchantmentProbability: '4' + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + FoodBurstDelay: '20' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Glowing: + Enabled: 'true' + DisplayName: Glowing + EnchantmentProbability: '4' + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + RunecraftingCost: + - 0LVL&0$ + Vampire: + Enabled: 'true' + DisplayName: Vampire + EnchantmentProbability: '5' + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + DamageHealFraction: '2' + Cooldown: '100' + RunecraftingCost: + - 0LVL&0$ + Block: + Enabled: 'false' + DisplayName: Block + EnchantmentProbability: '5' + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + Strength: '1' + Cooldown: '600' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Energizing: + Enabled: 'false' + DisplayName: Energizing + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + Strength: '1' + Duration: '20' + EnchantmentProbability: '25.0' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Self Destruct: + Enabled: 'false' + DisplayName: Self Destruct + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + ExplosionDelay: '40' + EnchantmentProbability: '9.090909090909092' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Volley: + Enabled: 'true' + DisplayName: Volley + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + EnchantmentProbability: '7.142857142857143' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Revulsion: + Enabled: 'false' + DisplayName: Revulsion + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + Duration: '20' + EnchantmentProbability: '9.090909090909092' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Shuffle: + Enabled: 'true' + DisplayName: Shuffle + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + EnchantmentProbability: '7.142857142857143' + RunecraftingCost: + - 0LVL&0$ + Molotov: + Enabled: 'false' + DisplayName: Molotov + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + EnchantmentProbability: '7.142857142857143' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Healing: + Enabled: 'true' + DisplayName: Healing + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + EnchantmentProbability: '7.142857142857143' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Deepwounds: + Enabled: 'false' + DisplayName: Deepwounds + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + Duration: '20' + BleedChance: '20' + EnchantmentProbability: '5.882352941176471' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Aerial: + Enabled: 'false' + DisplayName: Aerial + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + DamageIncreasePercentagePerLevel: '10' + EnchantmentProbability: '5.882352941176471' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Cursed: + Enabled: 'false' + DisplayName: Cursed + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + Duration: '60' + Strength: '1' + EnchantmentProbability: '9.090909090909092' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Endershift: + Enabled: 'false' + DisplayName: Endershift + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + Duration: '200' + Strength: '5' + HpToTrigger: '4' + Cooldown: '6000' + EnchantmentProbability: '9.090909090909092' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Paralyze: + Enabled: 'true' + DisplayName: Paralyze + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + Duration: '60' + Strength: '5' + Cooldown: '200' + EnchantmentProbability: '7.142857142857143' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Wither: + Enabled: 'true' + DisplayName: Wither + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + Duration: '60' + Strength: '1' + EnchantmentProbability: '5.882352941176471' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Cripple: + Enabled: 'false' + DisplayName: Cripple + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + Duration: '100' + Strength: '1' + EnchantmentProbability: '5.882352941176471' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Charge: + Enabled: 'false' + DisplayName: Charge + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + DamageIncreasePercentagePerLevel: '10' + EnchantmentProbability: '5.882352941176471' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Headless: + Enabled: 'false' + DisplayName: Headless + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + EnchantmentProbability: '5.882352941176471' + RunecraftingCost: + - 0LVL&0$ + Bounty Hunter: + Enabled: 'false' + DisplayName: Bounty Hunter + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + MaximumBounty: '8' + Cooldown: '600' + ChanceEmerald: '2.5' + ChanceDiamond: '5' + ChanceGold: '15' + ChanceIron: '27.5' + EnchantmentProbability: '7.142857142857143' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Quickening: + Enabled: 'false' + DisplayName: Quickening + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + Strength: '3' + Duration: '40' + EnchantmentProbability: '25.0' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Piercing: + Enabled: 'true' + DisplayName: Piercing + EnchantmentMaxLevel: '5' + OccurrenceChance: '100' + Cost: '0' + EnchantmentProbability: '7.142857142857143' + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + Cloaking: + Enabled: true + DisplayName: Cloaking + EnchantmentMaxLevel: 5 + OccurrenceChance: 100 + Cost: + - 0.0 + - 0.0 + - 0.0 + - 0.0 + - 0.0 + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + DurationPerLevel: 60 + Cooldown: 200 + EnchantmentProbability: 7.142857142857143 + Blaze: + Enabled: false + DisplayName: Blaze + OccurrenceChance: 100 + Cost: + - 0.0 + RunecraftingCost: + - 0LVL&0$ + EnchantmentProbability: 6.666666666666667 + Disarming: + Enabled: false + DisplayName: Disarming + EnchantmentMaxLevel: 5 + OccurrenceChance: 100 + Cost: + - 0.0 + - 0.0 + - 0.0 + - 0.0 + - 0.0 + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + EnchantmentProbability: 5.555555555555555 + Drunk: + Enabled: false + DisplayName: Drunk + EnchantmentMaxLevel: 5 + OccurrenceChance: 100 + Cost: + - 0.0 + - 0.0 + - 0.0 + - 0.0 + - 0.0 + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + DurationPerLevel: 60 + BaseStrength: 1 + EnchantmentProbability: 7.142857142857143 + Berserker: + Enabled: false + DisplayName: Berserker + EnchantmentMaxLevel: 5 + OccurrenceChance: 100 + Cost: + - 0.0 + - 0.0 + - 0.0 + - 0.0 + - 0.0 + RunecraftingCost: + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + - 0LVL&0$ + DurationPerLevel: 200 + BaseStrength: 5 + HpToTrigger: 4 + Cooldown: 6000 + EnchantmentProbability: 7.142857142857143 + Items: + Pyroaxe: + Enabled: 'false' + DisplayName: Pyroaxe + Color: DARK_RED + Description: Are your enemies burning?;Do you want to make their situation worse?;Then + this is just perfect for you! + Cooldown: '0' + Cost: '0' + DamageMultiplier: '2' + Livefire Boots: + Enabled: 'false' + DisplayName: Livefire Boots + Color: DARK_RED + Description: Leave a burning trail...;Because it's fun! + Cooldown: '0' + Cost: '0' + FlameDuration: '200' + FireResistanceLevel: '5' + Minigun: + Enabled: 'true' + DisplayName: Minigun + Color: AQUA + Description: ?発打てる弓 + Cooldown: '0' + Cost: '20' + ArrowCountPerVolley: '20' + ShotsPerSecond: '20' + Rocket Boots: + Enabled: 'false' + DisplayName: Rocket Boots + Color: AQUA + Description: 'Up we go!; ;WARNING: May cause dismemberment,; death; and + explosions' + Cooldown: '0' + Cost: '0' + Bandage: + Enabled: 'false' + DisplayName: Bandage + Color: GREEN + Description: It has little hearts on it,;so you know it's good + Cooldown: '1000' + Cost: '0' + TotalHealAmount: '10' + TotalHealTime: '200' + StopAtFullHealth: 'true' + Poison Ivy: + Enabled: 'false' + DisplayName: Poison Ivy + Color: DARK_GREEN + Description: If you're too cheap to afford ladders,;just take this, it'll work + just fine! + Cooldown: '0' + Cost: '0' + PoisonDuration: '100' + PoisonLevel: '2' + Necromancer's Staff of Destruction: + Enabled: 'false' + DisplayName: Necromancer's Staff of Destruction + Color: AQUA + Description: Wreak chaos everywhere,;Because why not? + Cooldown: '0' + Cost: '0' + Fuel: '377' + WitherCost: '10' + WitherCooldown: '100' + FireballCost: '35' + FireballCooldown: '60' + LightningCost: '20' + LightningCooldown: '240' + Landmine: + Enabled: 'false' + DisplayName: Landmine + Color: GRAY + Description: Just don't trigger it yourself, please. + Cooldown: '0' + Cost: '0' + ExplosionStrength: '5' + Flamethrower: + Enabled: 'false' + DisplayName: Flamethrower + Color: DARK_RED + Description: Burn, baby, burn! + Cooldown: '0' + Cost: '0' + IsReloadable: 'true' + BurnDuration: '100' + FireBlocksPerBurst: '10' + Hermes Boots: + Enabled: 'false' + DisplayName: Hermes Boots + Color: GOLD + Description: These boots are made for walkin' + Cooldown: '100' + Cost: '0' + SpeedLevel: '5' + Bear Trap: + Enabled: 'false' + DisplayName: Bear Trap + Color: GRAY + Description: Just hope that it does not contain bears... + Cooldown: '0' + Cost: '0' + BleedDuration: '100' + SlowLevel: '2' + SlowDuration: '100' + WeaknessLevel: '4' + WeaknessDuration: '100' + Beastmaster's Bow: + Enabled: 'false' + DisplayName: Beastmaster's Bow + Color: AQUA + Description: Tame the wilderness;and turn nature against your foes! + Cooldown: '0' + Cost: '0' + MaximumMobs: '5' + MobAppearanceChance: '90' + DamageMultiplication: '5' + Healing Shovel: + Enabled: 'false' + DisplayName: Healing Shovel + Color: GREEN + Description: Smacking other people in the face;has never been healthier! + Cooldown: '600' + Cost: '0' + Heal: '4' + Piranha Trap: + Enabled: 'false' + DisplayName: Piranha Trap + Color: GRAY + Description: Who came up with this? + Cooldown: '0' + Cost: '0' + BleedDuration: '120' + FishAmount: '20' + FishDuration: '200' + Deathscythe: + Enabled: 'false' + DisplayName: Deathscythe + Color: DARK_GRAY + Description: An ancient evil lies within... + Cooldown: '400' + Cost: '0' + Range: '10' + MaximumHookTime: '240' + Firework-Battery: + Enabled: 'false' + DisplayName: Firework-Battery + Color: DARK_RED + Description: Make the sky shine bright with colors! + Cooldown: '0' + Cost: '0' + Assassin's Blade: + Enabled: 'false' + DisplayName: Assassin's Blade + Color: AQUA + Description: Sneak up on your enemies and hit them hard!; ;(High chance of failure + against Hacked Clients) + Cooldown: '200' + Cost: '0' + InvisibilityDuration: '400' + AmbushDmgMultiplier: '2' + WeaknessLevel: '4' + WeaknessLength: '100' + Prickly Block: + Enabled: 'false' + DisplayName: Prickly Block + Color: LIGHT_PURPLE + Description: Just build a labyrinth out of these,;people will love you for it! + Cooldown: '0' + Cost: '0' + Damage: '3' + NauseaLevel: '2' + NauseaDuration: '200' + Potion Launcher: + Enabled: 'false' + DisplayName: Potion Launcher + Color: DARK_GRAY + Description: 'Instructions: Put potion into the righthand slot; of + the potion launcher,; aim and fire!; ;Manufactured by §kTaiterio' + Cooldown: '20' + Cost: '0' + ProjectileSpeedMultiplier: '4' + Druid Boots: + Enabled: 'false' + DisplayName: Druid Boots + Color: DARK_GREEN + Description: Let the nature rejuvenate you! + Cooldown: '0' + Cost: '0' + SpeedDuration: '100' + SpeedLevel: '5' + RegenerationDuration: '100' + RegenerationLevel: '5' + Firecracker: + Enabled: 'false' + DisplayName: Firecracker + Color: DARK_RED + Description: Makes every situation a good situation! + Cooldown: '0' + Cost: '0' + Thor's Axe: + Enabled: 'false' + DisplayName: Thor's Axe + Color: GOLD + Description: 'Smite your enemies down with mighty thunder!;Note: Batteries not + included.' + Cooldown: '0' + Cost: '0' + FireDuration: '200' + Medikit: + Enabled: 'false' + DisplayName: Medikit + Color: GREEN + Description: Treats most of your ailments,;it even has a box of juice! + Cooldown: '2000' + Cost: '0' + HealAmount: '10' + Hookshot Bow: + Enabled: 'false' + DisplayName: Hookshot Bow + Color: AQUA + Description: Everyone is just one hook away + Cooldown: '0' + Cost: '0' + Powergloves: + Enabled: 'false' + DisplayName: Powergloves + Color: AQUA + Description: Throw all your problems away! + Cooldown: '500' + Cost: '0' + ThrowSpeedMultiplier: '60' + ThrowDelayAfterGrab: '20' + MaxGrabtime: '10' diff --git a/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/common-configs/dynmap-config.yaml b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/common-configs/dynmap-config.yaml new file mode 100644 index 000000000..8cc8f7143 --- /dev/null +++ b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/common-configs/dynmap-config.yaml @@ -0,0 +1,581 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: common-dynmap-config +data: + # yaml ではなく txt + dynmap-configuration.txt: | + # All paths in this configuration file are relative to Dynmap's data-folder: minecraft_server/plugins/dynmap/ + + # All map templates are defined in the templates directory + # To use the HDMap very-low-res (2 ppb) map templates as world defaults, set value to vlowres + # The definitions of these templates are in normal-vlowres.txt, nether-vlowres.txt, and the_end-vlowres.txt + # To use the HDMap low-res (4 ppb) map templates as world defaults, set value to lowres + # The definitions of these templates are in normal-lowres.txt, nether-lowres.txt, and the_end-lowres.txt + # To use the HDMap hi-res (16 ppb) map templates (these can take a VERY long time for initial fullrender), set value to hires + # The definitions of these templates are in normal-hires.txt, nether-hires.txt, and the_end-hires.txt + # To use the HDMap low-res (4 ppb) map templates, with support for boosting resolution selectively to hi-res (16 ppb), set value to low_boost_hi + # The definitions of these templates are in normal-low_boost_hi.txt, nether-low_boost_hi.txt, and the_end-low_boost_hi.txt + # To use the HDMap hi-res (16 ppb) map templates, with support for boosting resolution selectively to vhi-res (32 ppb), set value to hi_boost_vhi + # The definitions of these templates are in normal-hi_boost_vhi.txt, nether-hi_boost_vhi.txt, and the_end-hi_boost_vhi.txt + # To use the HDMap hi-res (16 ppb) map templates, with support for boosting resolution selectively to xhi-res (64 ppb), set value to hi_boost_xhi + # The definitions of these templates are in normal-hi_boost_xhi.txt, nether-hi_boost_xhi.txt, and the_end-hi_boost_xhi.txt + deftemplatesuffix: vlowres + + # Set default tile scale (0 = 128px x 128x, 1 = 256px x 256px, 2 = 512px x 512px, 3 = 1024px x 1024px, 4 = 2048px x 2048px) - 0 is default + # Note: changing this value will result in all maps that use the default value being required to be fully rendered + #defaulttilescale: 0 + + # Map storage scheme: only uncomment one 'type' value + # filetree: classic and default scheme: tree of files, with all map data under the directory indicated by 'tilespath' setting + # sqlite: single SQLite database file (this can get VERY BIG), located at 'dbfile' setting (default is file dynmap.db in data directory) + # mysql: MySQL database, at hostname:port in database, accessed via userid with password + # mariadb: MariaDB database, at hostname:port in database, accessed via userid with password + # postgres: PostgreSQL database, at hostname:port in database, accessed via userid with password + storage: + # Filetree storage (standard tree of image files for maps) + type: filetree + # SQLite db for map storage (uses dbfile as storage location) + #type: sqlite + #dbfile: dynmap.db + # MySQL DB for map storage (at 'hostname':'port' with flags "flags" in database 'database' using user 'userid' password 'password' and table prefix 'prefix') + #type: mysql + #hostname: localhost + #port: 3306 + #database: dynmap + #userid: dynmap + #password: dynmap + #prefix: "" + #flags: "?allowReconnect=true&autoReconnect=true" + # + # AWS S3 backet web site + #type: aws_s3 + #bucketname: "dynmap-bucket-name" + #region: us-east-1 + #aws_access_key_id: "" + #aws_secret_access_key: "" + #override_endpoint: "" + + components: + - class: org.dynmap.ClientConfigurationComponent + + # Remember to change the following class to org.dynmap.JsonFileClientUpdateComponent when using an external web server. + #- class: org.dynmap.InternalClientUpdateComponent + # sendhealth: false + # sendposition: true + # allowwebchat: false + # webchat-interval: 5 + # hidewebchatip: false + # trustclientname: false + # includehiddenplayers: false + # # (optional) if true, color codes in player display names are used + # use-name-colors: false + # # (optional) if true, player login IDs will be used for web chat when their IPs match + # use-player-login-ip: true + # # (optional) if use-player-login-ip is true, setting this to true will cause chat messages not matching a known player IP to be ignored + # require-player-login-ip: false + # # (optional) block player login IDs that are banned from chatting + # block-banned-player-chat: true + # # Require login for web-to-server chat (requires login-enabled: true) + # webchat-requires-login: true + # # If set to true, users must have dynmap.webchat permission in order to chat + # webchat-permissions: false + # # Limit length of single chat messages + # chatlengthlimit: 256 + ## # Optional - make players hidden when they are inside/underground/in shadows (#=light level: 0=full shadow,15=sky) + ## hideifshadow: 4 + ## # Optional - make player hidden when they are under cover (#=sky light level,0=underground,15=open to sky) + ## hideifundercover: 14 + ## # (Optional) if true, players that are crouching/sneaking will be hidden + # hideifsneaking: false + # # optional, if true, players that are in spectator mode will be hidden + # hideifspectator: false + # # If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self) + # protected-player-info: false + # # If true, hide players with invisibility potion effects active + # hide-if-invisiblity-potion: true + # # If true, player names are not shown on map, chat, list + # hidenames: false + - class: org.dynmap.JsonFileClientUpdateComponent + writeinterval: 1 + sendhealth: true + sendposition: true + allowwebchat: false + webchat-interval: 5 + hidewebchatip: false + includehiddenplayers: false + use-name-colors: false + use-player-login-ip: false + require-player-login-ip: false + block-banned-player-chat: true + hideifshadow: -1 + hideifundercover: -1 + hideifsneaking: false + # Require login for web-to-server chat (requires login-enabled: true) + webchat-requires-login: false + # If set to true, users must have dynmap.webchat permission in order to chat + webchat-permissions: false + # Limit length of single chat messages + chatlengthlimit: 256 + hide-if-invisiblity-potion: true + hidenames: false + + - class: org.dynmap.SimpleWebChatComponent + allowchat: true + # If true, web UI users can supply name for chat using 'playername' URL parameter. 'trustclientname' must also be set true. + allowurlname: false + + # Note: this component is needed for the dmarker commands, and for the Marker API to be available to other plugins + - class: org.dynmap.MarkersComponent + type: markers + showlabel: false + enablesigns: false + # Default marker set for sign markers + default-sign-set: markers + # (optional) add spawn point markers to standard marker layer + showspawn: true + spawnicon: world + spawnlabel: "Spawn" + # (optional) layer for showing offline player's positions (for 'maxofflinetime' minutes after logoff) + showofflineplayers: false + offlinelabel: "Offline" + offlineicon: offlineuser + offlinehidebydefault: true + offlineminzoom: 0 + maxofflinetime: 30 + # (optional) layer for showing player's spawn beds + showspawnbeds: false + spawnbedlabel: "Spawn Beds" + spawnbedicon: bed + spawnbedhidebydefault: true + spawnbedminzoom: 0 + spawnbedformat: "%name%'s bed" + spawnbedremoveonplayerleave: true + # (optional) show world border (vanilla 1.8+) + showworldborder: true + worldborderlabel: "Border" + + - class: org.dynmap.ClientComponent + type: chat + allowurlname: false + - class: org.dynmap.ClientComponent + type: chatballoon + focuschatballoons: false + - class: org.dynmap.ClientComponent + type: chatbox + showplayerfaces: true + messagettl: 5 + # Optional: set number of lines in scrollable message history: if set, messagettl is not used to age out messages + scrollback: 100 + # Optiona; set maximum number of lines visible for chatbox + visiblelines: 10 + # Optional: send push button + sendbutton: false + - class: org.dynmap.ClientComponent + type: playermarkers + showplayerfaces: true + showplayerhealth: false + # If true, show player body too (only valid if showplayerfaces=true) + showplayerbody: false + # Option to make player faces small - don't use with showplayerhealth or largeplayerfaces + smallplayerfaces: false + # Option to make player faces larger - don't use with showplayerhealth or smallplayerfaces + largeplayerfaces: false + # Optional - make player faces layer hidden by default + hidebydefault: false + # Optional - ordering priority in layer menu (low goes before high - default is 0) + layerprio: 0 + # Optional - label for player marker layer (default is 'Players') + label: "Players" + + #- class: org.dynmap.ClientComponent + # type: digitalclock + - class: org.dynmap.ClientComponent + type: link + + - class: org.dynmap.ClientComponent + type: timeofdayclock + showdigitalclock: false + showweather: false + # Mouse pointer world coordinate display + - class: org.dynmap.ClientComponent + type: coord + label: "Location" + hidey: false + show-mcr: false + show-chunk: false + + # Note: more than one logo component can be defined + - class: org.dynmap.ClientComponent + type: logo + text: "seichi.network gigantic" + logourl: "images/logo.png" + linkurl: "https://seichi.network/gigantic" + # Valid positions: top-left, top-right, bottom-left, bottom-right + position: bottom-right + + # 放置切断有効化 + - class: org.dynmap.ClientComponent + type: inactive + timeout: 10800 # in seconds (1800 seconds = 30 minutes) + redirecturl: inactive.html + #showmessage: 'You were inactive for too long.' + + #- class: org.dynmap.TestComponent + # stuff: "This is some configuration-value" + + # Treat hiddenplayers.txt as a whitelist for players to be shown on the map? (Default false) + display-whitelist: false + + # How often a tile gets rendered (in seconds). + renderinterval: 1 + + # How many tiles on update queue before accelerate render interval + renderacceleratethreshold: 60 + + # How often to render tiles when backlog is above renderacceleratethreshold + renderaccelerateinterval: 0.2 + + # How many update tiles to work on at once (if not defined, default is 1/2 the number of cores) + tiles-rendered-at-once: 2 + + # If true, use normal priority threads for rendering (versus low priority) - this can keep rendering + # from starving on busy Windows boxes (Linux JVMs pretty much ignore thread priority), but may result + # in more competition for CPU resources with other processes + usenormalthreadpriority: true + + # Save and restore pending tile renders - prevents their loss on server shutdown or /reload + saverestorepending: true + + # Save period for pending jobs (in seconds): periodic saving for crash recovery of jobs + save-pending-period: 900 + + # Zoom-out tile update period - how often to scan for and process tile updates into zoom-out tiles (in seconds) + zoomoutperiod: 30 + + # Control whether zoom out tiles are validated on startup (can be needed if zoomout processing is interrupted, but can be expensive on large maps) + initial-zoomout-validate: true + + # Default delay on processing of updated tiles, in seconds. This can reduce potentially expensive re-rendering + # of frequently updated tiles (such as due to machines, pistons, quarries or other automation). Values can + # also be set on individual worlds and individual maps. + tileupdatedelay: 60 + + # Tile hashing is used to minimize tile file updates when no changes have occurred - set to false to disable + enabletilehash: true + + # Optional - hide ores: render as normal stone (so that they aren't revealed by maps) + #hideores: true + + # Optional - enabled BetterGrass style rendering of grass and snow block sides + #better-grass: true + + # Optional - enable smooth lighting by default on all maps supporting it (can be set per map as lighting option) + smooth-lighting: true + + # Optional - use world provider lighting table (good for custom worlds with custom lighting curves, like nether) + # false=classic Dynmap lighting curve + use-brightness-table: true + + # Optional - render specific block names using the textures and models of another block name: can be used to hide/disguise specific + # blocks (e.g. make ores look like stone, hide chests) or to provide simple support for rendering unsupported custom blocks + block-alias: + # "minecraft:quartz_ore": "stone" + # "diamond_ore": "coal_ore" + + # Default image format for HDMaps (png, jpg, jpg-q75, jpg-q80, jpg-q85, jpg-q90, jpg-q95, jpg-q100, webp, webp-q75, webp-q80, webp-q85, webp-q90, webp-q95, webp-q100, webp-l), + # Note: any webp format requires the presence of the 'webp command line tools' (cwebp, dwebp) (https://developers.google.com/speed/webp/download) + # + # Has no effect on maps with explicit format settings + image-format: png + + # If cwebp or dwebp are not on the PATH, use these settings to provide their full path. Do not use these settings if the tools are on the PATH + # For Windows, include .exe + # + #cwebpPath: /usr/bin/cwebp + #dwebpPath: /usr/bin/dwebp + + # use-generated-textures: if true, use generated textures (same as client); false is static water/lava textures + # correct-water-lighting: if true, use corrected water lighting (same as client); false is legacy water (darker) + # transparent-leaves: if true, leaves are transparent (lighting-wise): false is needed for some Spout versions that break lighting on leaf blocks + use-generated-textures: true + correct-water-lighting: true + transparent-leaves: true + + # ctm-support: if true, Connected Texture Mod (CTM) in texture packs is enabled (default) + ctm-support: true + # custom-colors-support: if true, Custom Colors in texture packs is enabled (default) + custom-colors-support: true + + # Control loading of player faces (if set to false, skins are never fetched) + #fetchskins: false + + # Control updating of player faces, once loaded (if faces are being managed by other apps or manually) + refreshskins: true + + # Customize URL used for fetching player skins (%player% is macro for name, %uuid% for UUID) + # skin-url: "http://skins.minecraft.net/MinecraftSkins/%player%.png" + + # Enable skins via SkinsRestorer plugin instead of internal legacy implementation (disabled by default) + #skinsrestorer-integration: true + + render-triggers: + #- playermove + #- playerjoin + - blockplaced + - blockbreak + - leavesdecay + - blockburn + - chunkgenerated + - blockformed + - blockfaded + - blockspread + - pistonmoved + - explosion + #- blockfromto + #- blockphysics + - structuregrow + - blockgrow + #- blockredstone + + # Title for the web page - if not specified, defaults to the server's name (unless it is the default of 'Unknown Server') + webpage-title: "${CFG_DYNMAP_SERVER_NAME}サーバマップ - ギガンティック☆整地鯖" + + # The path where the tile-files are placed. + tilespath: web/tiles + + # The path where the web-files are located. + webpath: web + + # If set to false, disable extraction of webpath content (good if using custom web UI or 3rd party web UI) + # Note: web interface is unsupported in this configuration - you're on your own + update-webpath-files: false + + # The path were the /dynmapexp command exports OBJ ZIP files + exportpath: export + + # The path where files can be imported for /dmarker commands + importpath: import + + # The network-interface the webserver will bind to (0.0.0.0 for all interfaces, 127.0.0.1 for only local access). + # If not set, uses same setting as server in server.properties (or 0.0.0.0 if not specified) + #webserver-bindaddress: 0.0.0.0 + + # The TCP-port the webserver will listen on. + webserver-port: 80 + + # Maximum concurrent session on internal web server - limits resources used in Bukkit server + max-sessions: 256 + + # Disables Webserver portion of Dynmap (Advanced users only) + disable-webserver: true + + # Enable/disable having the web server allow symbolic links (true=compatible with existing code, false=more secure (default)) + allow-symlinks: true + + # Enable login support + login-enabled: false + # Require login to access website (requires login-enabled: true) + login-required: false + + # Period between tile renders for fullrender, in seconds (non-zero to pace fullrenders, lessen CPU load) + timesliceinterval: 0.0 + + # Maximum chunk loads per server tick (1/20th of a second) - reducing this below 90 will impact render performance, but also will reduce server thread load + maxchunkspertick: 200 + + # Progress report interval for fullrender/radiusrender, in tiles. Must be 100 or greater + progressloginterval: 100 + + # Parallel fullrender: if defined, number of concurrent threads used for fullrender or radiusrender + # Note: setting this will result in much more intensive CPU use, some additional memory use. Caution should be used when + # setting this to equal or exceed the number of physical cores on the system. + #parallelrendercnt: 4 + + # Interval the browser should poll for updates. + updaterate: 2000 + + # If nonzero, server will pause fullrender/radiusrender processing when 'fullrenderplayerlimit' or more users are logged in + fullrenderplayerlimit: 0 + # If nonzero, server will pause update render processing when 'updateplayerlimit' or more users are logged in + updateplayerlimit: 0 + # Target limit on server thread use - msec per tick + per-tick-time-limit: 50 + # If TPS of server is below this setting, update renders processing is paused + update-min-tps: 18.0 + # If TPS of server is below this setting, full/radius renders processing is paused + fullrender-min-tps: 18.0 + # If TPS of server is below this setting, zoom out processing is paused + zoomout-min-tps: 18.0 + + showplayerfacesinmenu: true + + # Control whether players that are hidden or not on current map are grayed out (true=yes) + grayplayerswhenhidden: true + + # Use player permissions to order player list: first to last, players are ordered by first permission listed that they have + # That is, anyone with first listed permission goes before anyone with second, etc, with users with none of the nodes going last + player-sort-permission-nodes: + - bukkit.command.op + + # Set sidebaropened: 'true' to pin menu sidebar opened permanently, 'pinned' to default the sidebar to pinned, but allow it to unpin + #sidebaropened: true + + # Customized HTTP response headers - add 'id: value' pairs to all HTTP response headers (internal web server only) + #http-response-headers: + # Access-Control-Allow-Origin: "my-domain.com" + # X-Custom-Header-Of-Mine: "MyHeaderValue" + + # Trusted proxies for web server - which proxy addresses are trusted to supply valid X-Forwarded-For fields + # This now supports both IP address, and subnet ranges (e.g. 192.168.1.0/24 or 202.24.0.0/14 ) + trusted-proxies: + - "127.0.0.1" + - "0:0:0:0:0:0:0:1" + + # Join/quit message format for web chat: set to "" to disable notice on web UI + joinmessage: "%playername% joined" + quitmessage: "%playername% quit" + + spammessage: "You may only chat once every %interval% seconds." + # format for messages from web: %playername% substitutes sender ID (typically IP), %message% includes text + webmsgformat: "&color;2[Dynmap] %playername%: &color;f%message%" + + # Control whether layer control is presented on the UI (default is true) + showlayercontrol: true + + # Enable checking for banned IPs via banned-ips.txt (internal web server only) + check-banned-ips: true + + # Default selection when map page is loaded + defaultzoom: 2 + defaultworld: world_2 + defaultmap: flat + # (optional) Zoom level and map to switch to when following a player, if possible + #followzoom: 3 + #followmap: surface + + # If true, make persistent record of IP addresses used by player logins, to support web IP to player matching + persist-ids-by-ip: true + + # If true, map text to cyrillic + cyrillic-support: false + + # If true, coordinates will be rounded + round-coordinates: true + + # Messages to customize + msg: + maptypes: "Map Types" + players: "Players" + chatrequireslogin: "Chat Requires Login" + chatnotallowed: "You are not permitted to send chat messages" + hiddennamejoin: "Player joined" + hiddennamequit: "Player quit" + + # URL for client configuration (only need to be tailored for proxies or other non-standard configurations) + url: + # configuration URL + #configuration: "up/configuration" + # update URL + #update: "up/world/{world}/{timestamp}" + # sendmessage URL + #sendmessage: "up/sendmessage" + # login URL + #login: "up/login" + # register URL + #register: "up/register" + # tiles base URL + #tiles: "tiles/" + # markers base URL + #markers: "tiles/" + + # Customization commands - allows scripts to be run before/after certain events + custom-commands: + image-updates: + # Command run just before any image file is written or updated: run with single parameter with fully qualified file name + preupdatecommand: "" + # Command run just after any image file is written or updated: run with single parameter with fully qualified file name + postupdatecommand: "" + + # Snapshot cache size, in chunks + snapshotcachesize: 500 + # Snapshot cache uses soft references (true), else weak references (false) + soft-ref-cache: true + + # Player enter/exit title messages for map markers + # + # Processing period - how often to check player positions vs markers - default is 1000ms (1 second) + #enterexitperiod: 1000 + # Title message fade in time, in ticks (0.05 second intervals) - default is 10 (1/2 second) + #titleFadeIn: 10 + # Title message stay time, in ticks (0.05 second intervals) - default is 70 (3.5 seconds) + #titleStay: 70 + # Title message fade out time, in ticks (0.05 seocnd intervals) - default is 20 (1 second) + #titleFadeOut: 20 + # Enter/exit messages use on screen titles (true - default), if false chat messages are sent instead + #enterexitUseTitle: true + # Set true if new enter messages should supercede pending exit messages (vs being queued in order), default false + #enterReplacesExits: true + + # Published public URL for Dynmap server (allows users to use 'dynmap url' command to get public URL usable to access server + # If not set, 'dynmap url' will not return anything. URL should be fully qualified (e.g. https://mc.westeroscraft.com/) + #publicURL: http://my.greatserver.com/dynmap + + # Send this message if the player does not have permission to use the command + noPermissionMsg: "You don't have permission to use this command!" + + # Set to true to enable verbose startup messages - can help with debugging map configuration problems + # Set to false for a much quieter startup log + verbose: false + + # Enables debugging. + #debuggers: + # - class: org.dynmap.debug.LogDebugger + # Debug: dump blocks missing render data + dump-missing-blocks: false + + # Have dynmap migrate old chunks to the new format for the current MC version (specifically, for migrating pre-1.13 chunks to 1.13 or 1.14). This is needed + # in order to render chunks on an upgraded server (due to various bugs/limitations in CB/spigot 1.13+). This setting is NOT suggested to be enabled full time, + # but only long enough to do a fullrender of a migrated world - it should be turned back off once worlds are migrated). It is EXPERIMENTAL, so be sure to backup + # your worlds before running with this setting enabled (set to true) + # + #migrate-chunks: true + + # Log4J defense: string substituted for attempts to use macros in web chat + hackAttemptBlurb: "(IaM5uchA1337Haxr-Ban Me!)" + + dynmap-WorldGuard-config.yml: | + update: + # Seconds between checks for Residence updates + period: 120 # default: 300 + layer: + name: WorldGuard保護範囲表示 + # Make mobs layer hidden by default + hidebydefault: false + # ordering priority in layer menu (low goes before high - default is 0) + layerprio: 0 + # (optional) set minimum zoom level before layer is visible (0 = defalt, always visible) + minzoom: 0 + use3dregions: false + infowindow:
%regionname%
(%parent%) - %priority%

Owners(保護オーナー)
%playerowners%
%groupowners%

Members(保護メンバー)
%playermembers%
%groupmembers%

Flags(フラグ設定一覧)
%flags%
+ regionstyle: + strokeColor: '#FF0000' + strokeOpacity: 0.5 # default: 0.8 + strokeWeight: 3 + fillColor: '#FF0000' + fillOpacity: 0.3 # default: 0.35 + unownedStrokeColor: '#00FF00' + visibleregions: [] + hiddenregions: [] + custstyle: + customregion1: + strokeColor: '#00FF00' + ownerstyle: + kingoftheworld: + strokecolor: '#C0C0C0' + maxdepth: 16 + updates-per-tick: 20 diff --git a/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/common-configs/kustomization.yaml b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/common-configs/kustomization.yaml index 5918e06b8..7e2ea9c27 100644 --- a/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/common-configs/kustomization.yaml +++ b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/common-configs/kustomization.yaml @@ -3,6 +3,11 @@ kind: Kustomization namespace: seichi-minecraft resources: + - "./custom-enchantments-config.yaml" + - "./dynmap-config.yaml" - "./jmx-exporter-config.yaml" + - "./luckperms-permission-configs.yaml" - "./mcserver-configs.yaml" - "./plugin-configs.yaml" + - "./seichiassist-config.yaml" + - "./worldguard-config.yaml" diff --git a/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/common-configs/luckperms-permission-configs.yaml b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/common-configs/luckperms-permission-configs.yaml new file mode 100644 index 000000000..e8595d7ee --- /dev/null +++ b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/common-configs/luckperms-permission-configs.yaml @@ -0,0 +1,413 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: common-luckperms-permission-configs +data: + #region groups + # NOTE: ファイルとして Pod 内に配置する場合は `yaml-storage/groups/グループ名.yml`というパスになる。 + group-default.yml: | + name: default + permissions: + - bukkit.command.*: + value: false + - minecraft.command.*: + value: false + - minecraft.command.help: + value: false + - minecraft.command.list + - minecraft.command.me: + value: false + - clicktpa.tpa + - clicktpa.tpacancel + - clicktpa.tpaccept + - clicktpa.tpadeny + - clicktpa.tpahere + - clicktpa.tptoggle + - discordsrv.link + - discordsrv.linked + - discordsrv.unlink + - dynmap.hide.self: + value: false + - dynmap.show.self + - elevator.down + - elevator.up + - elytra.auto + - elytra.const-flight + - elytra.runup + - elytra.shift-activation + - elytra.speedup + - fastcraft.command.craft + - fastcraft.command.craft.fastcraft + - fastcraft.command.toggle + - fastcraft.use + - joinleave.silentleave + - litebans.notify.broadcast: + value: false + - luckperms: + value: false + - luckperms.*: + value: false + - lunachat.message + - lunachat.reply + - multiverse.help: + value: false + - multiverse.core.list.who + - multiverse.core.spawn.self + - multiverse.portal.access.* + - multiverse.access.* + - multiverse.access.work: + value: false + # TODO: デバッグサーバには各ワールドへのポータルがないので暫定措置 + - multiverse.teleport.* + - seichiassist.ec + - seichiassist.ef + - seichiassist.fd + - seichiassist.fly + - seichiassist.hat + - seichiassist.home + - seichiassist.sethome + - seichiassist.map + - seichiassist.shareinv + - seichiassist.mebius + - seichiassist.minestack + - seichiassist.stick + - seichiassist.stickmenu + - seichiassist.x-transfer + - shopchest.buy: + value: true + context: + world: world_towny + - shopchest.create: + value: true + context: + world: world_towny + - shopchest.sell: + value: true + context: + world: world_towny + - shopkeeper.player: + value: false + - shopkeeper.hire: + value: false + - shopkeeper.sign: + value: false + - shopkeeper.hanging-sign: + value: false + - shopkeeper.entity.*: + value: false + - towny.command.plot.set.shop + - tradesystem.trade.initiate + - tradesystem.trade + - wesv.toggle + - wesv.use + - worldedit.selection.contract + - worldedit.selection.expand + - worldedit.selection.pos + - worldedit.analysis.sel + - worldedit.wand + - worldguard.region.claim: + value: false + context: + world: world_tt + - worldguard.region.claim: + value: false + context: + world: world_the_end_tt + - worldguard.region.claim: + value: false + context: + world: world_the_end + - worldguard.region.claim: + value: false + context: + world: world_sw_the_end + - worldguard.region.claim: + value: false + context: + world: world_sw_nether + - worldguard.region.claim: + value: false + context: + world: world_sw_3 + - worldguard.region.claim: + value: false + context: + world: world_sw + - worldguard.region.claim: + value: false + context: + world: world_nether_tt + - worldguard.region.flag.flags.deny-spawn.*: + value: true + context: + world: world_the_end + - worldguard.region.flag.flags.enderpearl.*: + value: true + context: + world: world_the_end + - worldguard.region.flag.flags.mob-damage.*: + value: true + context: + world: world_the_end + - worldguard.region.flag.flags.mob-spawning.*: + value: true + context: + world: world_the_end + - worldguard.region.flag.flags.fire-spread.*: + value: true + context: + world: world_sw_4 + - worldguard.region.flag.flags.fire-spread.*: + value: true + context: + world: world_sw_2 + - worldguard.region.flag.flags.deny-spawn.*: + value: true + context: + world: world_nether + - worldguard.region.flag.flags.enderpearl.*: + value: true + context: + world: world_nether + - worldguard.region.flag.flags.mob-damage.*: + value: true + context: + world: world_nether + - worldguard.region.flag.flags.mob-spawning.*: + value: true + context: + world: world_nether + - worldguard.region.flag.flags.enderpearl.*: + value: true + context: + world: world_2 + - worldguard.region.flag.flags.deny-spawn.*: + value: true + context: + world: world + - worldguard.region.flag.flags.enderpearl.*: + value: true + context: + world: world + - worldguard.region.flag.flags.mob-damage.*: + value: true + context: + world: world + - worldguard.region.flag.flags.mob-spawning.*: + value: true + context: + world: world + - worldguard.region.flag.flags.farewell.* + - worldguard.region.flag.flags.grass-grouth.* + - worldguard.region.flag.flags.greeting.* + - worldguard.region.flag.flags.ice-melt.* + - worldguard.region.flag.flags.mushroom-grouth.* + - worldguard.region.flag.flags.mycelium-spread.* + - worldguard.region.flag.flags.pvp.* + - worldguard.region.flag.flags.ride.* + - worldguard.region.flag.flags.sleep.* + - worldguard.region.flag.flags.snow-melt.* + - worldguard.region.flag.flags.soil-dry.* + - worldguard.region.flag.flags.teleport.* + - worldguard.region.flag.flags.time-lock.* + - worldguard.region.flag.flags.use.* + - worldguard.region.flag.flags.vine-grouth.* + - worldguard.region.flag.flags.weather-lock.* + - worldguard.region.flag.flags.chest-access.allow: + value: false + - worldguard.region.flag.flags.chest-access.deny + - worldguard.region.flag.flags.chest-access.none + - worldguard.region.flag.regions.own.* + - worldguard.region.remove.own.* + - worldguard.region.removeowner.own.*: + value: true + context: + world: world_dot + - worldguard.region.addmember.own.* + - worldguard.region.removemember.own.* + - worldguard.region.removemember.*: + value: true + context: + world: world_dot + - worldguard.region.select.own.* + - worldguard.region.info.* + - worldguard.region.list.* + - worldguard.region.teleport.* + - worldguard.region.claim + - worldguard.region.remove.own.* + - worldguard.region.list.own + - worldguard.region.info.* + - worldguard.region.select.own.* + - worldguard.region.list + - worldguard.region.wand + meta: + - default: + value: 'true' + group-observer.yml: | + name: observer + permissions: + - observerutils.obs + - seichiassist.lastquit + - weight.1 + parents: + - default + meta: + - default: + value: 'false' + group-observerplus.yml: | + name: observerplus + permissions: + - dynmap.hide.self + - spectatortheater.end + - spectatortheater.list + - spectatortheater.start + - worldguard.region.addmember.*: + value: true + context: + world: world_tt + - worldguard.region.removemember.*: + value: true + context: + world: world_tt + - worldguard.region.addmember.*: + value: true + context: + world: world_the_end_tt + - worldguard.region.removemember.*: + value: true + context: + world: world_the_end_tt + - worldguard.region.addmember.*: + value: true + context: + world: world_nether_tt + - worldguard.region.removemember.*: + value: true + context: + world: world_nether_tt + - worldguard.region.addmember.*: + value: true + context: + world: world + - worldguard.region.removemember.*: + value: true + context: + world: world + - weight.2 + parents: + - observer + meta: + - default: + value: 'false' + group-admin.yml: | + name: admin + permissions: + # TODO: ホワイトリスト方式にする(ワイルドカードで権限を与えない) + # NOTE: クォーテーションで囲まないと読み込んでくれない + - '*' + - minecraft.command.deop: + value: false + - minecraft.command.op: + value: false + - luckperms.* + - luckperms + - mv.bypass.gamemode.* + - seichiassist.present.* + - worldguard.region.bypass.*: + value: false + - weight.10 + meta: + - default: + value: 'false' + group-worldguardbypass.yml: | + name: worldguard-bypass + permissions: + - worldguard.region.bypass.* + - weight.11 + meta: + - default: + value: 'false' + #endregion + #region users + # NOTE: ファイルとして Pod 内に配置する場合は `yaml-storage/users/UUID.yml`というパスになる。(UUID はハイフン付き) + user-shirotubu.yml: | + uuid: 0a25e0f2-b952-4fe4-9843-3c5608aa2f0c + name: shirotubu + primary-group: user + parents: + - admin + user-lucky3028.yml: | + uuid: 0ea34656-b1c7-45c0-8b89-1ec55a70fe17 + name: lucky3028 + primary-group: worldguard-bypass + parents: + - admin + - worldguard-bypass + user-tyanimo.yml: | + uuid: 4becf8bc-9a46-4f8b-b6e6-9193cf53b46f + name: tyanimo + primary-group: admin + parents: + - admin + user-ploptaw.yml: | + uuid: 788bf7d5-f61a-4090-aec7-2e3a281eaf49 + name: ploptaw + primary-group: admin + permissions: + - group.worldguard-bypass: + value: false + parents: + - admin + user-taaa150.yml: | + uuid: 9599901c-fa82-4943-b748-b46e183c53f4 + name: taaa150 + primary-group: admin + parents: + - admin + user-igarasi_k.yml: | + uuid: b59f5861-f3f1-447f-945f-a40412ef7340 + name: igarasi_k + primary-group: admin + parents: + - admin + - worldguard-bypass + user-unchama.yml: | + uuid: b66cc3f6-a045-42ad-b4b8-320f20caf140 + name: unchama + primary-group: admin + parents: + - admin + user-_megatron_.yml: | + uuid: b7c16b91-57ca-4bbb-95f7-9e9144474799 + name: _megatron_ + primary-group: admin + parents: + - admin + user-m1sk9.yml: | + uuid: bb991c6b-aafb-405c-b2af-57cd5828962d + name: m1sk9 + primary-group: worldguard-bypass + parents: + - admin + - worldguard-bypass + user-specialboywaka.yml: | + uuid: d22fe904-d76a-4ec7-a0a8-48f0146d8549 + name: specialboywaka + primary-group: worldguard-bypass + parents: + - admin + - worldguard-bypass + user-rito_5289.yml: | + uuid: e1ee55bb-c993-4896-88e9-9893a11df27a + name: rito_5289 + primary-group: default + parents: + - admin + user-b_makkuro.yml: | + uuid: e9c3ac5f-7c6a-45f6-a251-4c24a4a3beea + name: b_makkuro + primary-group: worldguard-bypass + parents: + - admin + - worldguard-bypass + #endregion diff --git a/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/common-configs/mcserver-configs.yaml b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/common-configs/mcserver-configs.yaml index 61563cbc6..4829dd775 100644 --- a/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/common-configs/mcserver-configs.yaml +++ b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/common-configs/mcserver-configs.yaml @@ -19,7 +19,7 @@ data: settings: - allow-end: true + allow-end: false warn-on-overload: true permissions-file: permissions.yml update-folder: update @@ -402,7 +402,7 @@ data: gamemode=survival enable-query=false generator-settings= - level-name=world + level-name=world_2 motd=A Minecraft Server query.port=25565 pvp=false @@ -421,7 +421,7 @@ data: max-build-height=256 server-ip= resource-pack-prompt= - allow-nether=true + allow-nether=false server-port=25565 enable-rcon=false sync-chunk-writes=true @@ -447,7 +447,7 @@ data: text-filtering-config= spawn-monsters=true enforce-whitelist=false - spawn-protection=16 + spawn-protection=0 resource-pack-sha1= max-world-size=29999984 @@ -526,7 +526,7 @@ data: thunder-chance: 100000 end-portal-sound-radius: 0 verbose: true - hopper-amount: 1 + hopper-amount: 8 dragon-death-sound-radius: 0 seed-village: 10387312 seed-desert: 14357617 @@ -606,8 +606,8 @@ data: misc: 32 other: 64 ticks-per: - hopper-transfer: 8 - hopper-check: 1 + hopper-transfer: 64 + hopper-check: 20 hunger: jump-walk-exhaustion: 0.05 jump-sprint-exhaustion: 0.2 @@ -623,3 +623,24 @@ data: min: 45.0 players: disable-saving: false + + commands.yml: | + # This is the commands configuration file for Bukkit. + # For documentation on how to make use of this file, check out the Bukkit Wiki at + # http://wiki.bukkit.org/Commands.yml + # + # If you need help on this file, feel free to join us on irc or leave a message + # on the forums asking for advice. + # + # IRC: #spigot @ irc.spi.gt + # (If this means nothing to you, just go to http://www.spigotmc.org/pages/irc/ ) + # Forums: http://www.spigotmc.org/ + # Bug tracker: http://www.spigotmc.org/go/bugs + + command-block-overrides: [] + unrestricted-advancements: false + aliases: + icanhasbukkit: + - version $1- + spawn: + - originspawn diff --git a/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/common-configs/plugin-configs.yaml b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/common-configs/plugin-configs.yaml index 74df8e34c..ed95b0def 100644 --- a/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/common-configs/plugin-configs.yaml +++ b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/common-configs/plugin-configs.yaml @@ -746,125 +746,606 @@ data: MorningGlorySeeds-config.yml: | webhook: "${CFG_MORNING_GLORY_SEEDS_WEBHOOK_URL}" + Elytra-config.yml: | + # Auto-glide + # If this feature is enabled player will not require + # to press "space" to start gliding. + # + auto-glide: + enable: false # Enable auto-glide feature, default: true + auto-equip: false # Enable auto-equip feature (If a player has an elytra in his inventory, it is auto-equipped when auto-glide engages) + required-air-under-player: 3 # Amount of empty block under player feet required to start gliding + + # Constant flight + # Determines minimum glding speed, allows to flight constantly + # Most CPU Intensive (0.03% of server tick per active gliding player) + constant-flight: + enable: false # Enable constant flight feature + velocity: 1.1 # Minimum velocity + + # Speed boost by pressing shift-key + shift-speed-up: + enable: true # Enable shift speed-up feature + max-activation-speed: 1.2 # player's speed must be lower to activate + velocity-multiplier: 1.5 # Velocity multiplier + cooldown: + enable: true # Enable cooldown + time: 1s # Cooldown delay + + # Speed-up during flying + # Look up while flying and your speed will be incresed + speed-up: + enable: true # Enable speed-up feature + cooldown: + enable: false # Set true to enable cooldown + time: 3s # Cooldown delay + activation: # Speed-up activation conditions + angle-min: 30 # Minimum angle required for activation, default: 50 + angle-max: 90 # Maximum angle required for activation, default: 80 + speed-min: 0.5 # Minimum speed required for activation + speed-max: 1.5 # Maximum speed required for activation + multiplier: 1.3 # Velocity multiplier + + # Run-up + # Allows to start flying just after sprinting with weared Elytra + # Second Most CPU Intensive (0.03% of server tick per active sprinting player) + run-up: + enable: true # Enable run-up + activation: + angle-min: 10 # Minimum angle required for activation, default: 30 + angle-max: 70 # Maximum angle required for activation + boost: 1.5 # Fly-up velocity + cooldown: + enable: true # Enable cooldown + time: 1s # Cooldown delay + + # G-Force effect + # Additional effect (debuff) occured when speed-up performed + g-force: + damage-elytra: 0 # Break elytra, default: 10 + damage-player: 0.0 # Deal damage to player, default: 2.0 + + # Particles effects + particles: + enable: true # Enable particles + type: SPELL_WITCH # Particle name, all possible effects listed here: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Particle.html + radius: 0.3 # Particles parameters + amount: 15 # Amount of particles + extra-param: 0.0 # Extra param (some effects need it) + play-repeat: 3 # Repeat effect playing + + # Sound effects + sound: + enable: true # Enable sound effect + activation: + type: ENTITY_BAT_TAKEOFF # Sound effect type. You can choose another: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Sound.html + pitch: 0.8 # Sound pitch + volume: 0.5 # Sound volume + play-repeat: 3 # Repeat sounds + play-delay-ticks: 3 # Delay between repeats + cooldown-fail: # Cooldown fail sound effect + type: UI_BUTTON_CLICK # Sount effect type + pitch: 0.8 # Sound pitch + volume: 0.5 # Sound volume + + EatEgg-config.yml: | + enabled-worlds: + - world_2 + - world_SW + - world_SW_2 + - world_SW_the_end + - world_SW_nether + + ClickTpa-config.yml: | + # Config for ClickTpa + # Version v1.7.3 + # Author: jklmao + + # # # # # # # # # # # # # # # # # # # # # # # # # + # # + # ClickTpa Config # + # # + # # # # # # # # # # # # # # # # # # # # # # # # # + + # Be aware of all warnings! # + + # # # # # # # # # # # # # # # # # # # # # # # # # + # # + # Place Holders # + # # + # # # # # # # # # # # # # # # # # # # # # # # # # + + # Use '%player%' for the player who sent the request. + # Use '%accept%' for the 'Click-to-accept' message. + # Use '%deny%' for the 'Click-to-deny' message. + # Use '%target%' for the player who they wanted to teleport to, and for the 'Player-sent-request' message. + # Example: /tpa , where is '%target%'. + + Player-only-command: '&cOnly players can use this command!' + + Insufficient-permission: '&cこのコマンドを実行する権限がありません! (&cYou do not have sufficient permission!)' + + Player-deny-tpa-message: '&cテレポート申請を拒否されました。 (&cTeleportation request has been denied.)' + + Target-deny-tpa-message: '&cテレポート申請は拒否されました。 (&cTeleportation request has been denied.)' + + Target-teleportion-canceled: '&cテレポート申請をキャンセルしました。 (&cTeleportation canceled...)' + + Player-got-accepted-tpa: '&bテレポート申請が許可されました。 (&bTeleportation request has been accepted.)' + + Countdown-until-tpa: '&e3秒後にテレポートします... (&eTeleporting in 3 seconds...)' + + Player-no-pendingtpa-message: '&cテレポート申請は受け取っていません。 (&cYou do not have a pending request!)' + + Target-accepted-tpa-request: '&eテレポート申請を許可しました。 (&eRequest for teleportation is accepted.)' + + No-player-found: '&cそのプレイヤーは存在しません。 (&cThis player does not exist!)' + + Target-is-offline: '&cそのプレイヤーは現在オフラインです。 (&cThat player is currently offline.)' + + Player-teleporting-self: '&c自分自身にはテレポートできません! (&cYou can not teleport yourself!)' + + Player-already-requested: '&cすでにテレポート申請済みです。 (&cYou already requested, please wait..)' + + Player-teleportation-request-expire: '&cテレポート申請が時間切れになりました。 (&cTeleportation request has expired.)' + + Target-teleportation-request-expire: '&cテレポート申請が時間切れになりました。 (&cTeleportation request has expired.)' + + Player-currently-teleporting: '&bテレポート中... (&bTeleporting...)' + + Target-currently-teleporting: '&bテレポート中... (&bTeleporting...)' + + Player-TpToggle-Off: '&eテレポート申請を受け付けるようにしました。 (&eTeleportation canceller is now &6OFF)' + + Player-TpToggle-On: '&eテレポート申請を受け付けないようにしました。 (&eTeleportation canceller is now&6ON)' + + Target-Is-TpToggled: '&6%target% &eはテレポート申請を受け付けていません。 &6%target% &ehas teleportation off' + + Player-Is-TpToggled: '&cテレポート申請を受け付けない設定になっています。 (&cYou are tptoggled!)' + + Tpacancel-message: '&6テレポート申請がキャンセルされました。 (&6Tpa request has been canceled.)' + + # TPA request expires in seconds + Request-expire-time: 120 + + + # Seconds until tpa + # Please use whole numbers + + Seconds-until-tpa: 3 + + # Becareful in this part! + # This is when a player uses not enough args + # For example, when a player does '/tpa', it will say 'Usage: /tpa ' + # So please fit the correct command under the correct message! + # P.S '/tpohere' is also '/s' (essentials-type command). + + Tpa-usage: '&cUse: /tpa ' + + Tpahere-usage: '&cUse: /tpahere ' + + Tpaccept-usage: '&cUse: /tpaccept ' + + Tpdeny-usage: '&cUse: /tpadeny ' + + Tpo-usage: '&cUse: /tpo ' + + Tpohere-usage: '&cUse: /tpohere or /s ' + + + # # # # # # # # # # # # # # # # # # # # # # # # # + # # + # Please Read! # + # # + # # # # # # # # # # # # # # # # # # # # # # # # # + + # This section is when a player gets a tpa request + # Since the code used is broken into many parts, there will be many messages. + # Whatever you do to the "Click-to-x" messages, will be the same in the 'Tpa-message' + # Be careful! + + + # Lets you choose if you want players to be able + # to move before being teleported + Allow-player-to-move: false + + Player-moved-before-tp: '&6%player%が動いたため、テレポートがキャンセルされました。' + + Player-sent-request: '&eプレイヤー&6%target%&eにtpaリクエストを送信しました。' + + Tpa-message: + - '' + - '&6%player% &eさんがあなたのところにテレポート申請しました。' + - '&e%accept% &eをクリックで許可、または、 &e %deny% &eをクリックで拒否します。' + - '&e何もしない場合、120秒後に自動でキャンセルされます。' + - '' + + Tpahere-message: + - '' + - '&6%player% &eさんがあなたを相手の地点にテレポート申請しています。' + - '&e%accept% &eをクリックで許可、または、 &e %deny% &eをクリックで拒否します。' + - '&e何もしない場合、120秒後に自動でキャンセルされます。' + - '' + + + # This will center the accept/deny messages + Center-accept-deny-msg: true + + Click-to-accept: '&a&l&n[許可]&r' + Click-to-deny: '&c&l&n[拒否]&r' + + Hover-message-on-accept: '&aクリックで許可' + Hover-message-on-deny: '&cクリックで拒否' + + # + # On-Screen Messages + # Pops up in the middle of the player's screen + # + + Send-on-screen-message: true + + # When a player accepts a tp + On-screen-teleporting: + - '&6テレポート中...' + - '&e動かないでください!' + + # When a player has successfully tp'd + On-screen-teleported: '&aテレポートしました!' + + # If a player moves while they are being tp'd + On-screen-canceled-tp: '&cテレポートをキャンセルしました!' + + #~~~~~~~~~~~~~~~~~~# + # More Coming Soon!# + #~~~~~~~~~~~~~~~~~~# + + WorldGuard-config.yml: | + # + # WorldGuard's main configuration file + # + # This is the global configuration file. Anything placed into here will + # be applied to all worlds. However, each world has its own configuration + # file to allow you to replace most settings in here for that world only. + # + # About editing this file: + # - DO NOT USE TABS. You MUST use spaces or Bukkit will complain. If + # you use an editor like Notepad++ (recommended for Windows users), you + # must configure it to "replace tabs with spaces." In Notepad++, this can + # be changed in Settings > Preferences > Language Menu. + # - Don't get rid of the indents. They are indented so some entries are + # in categories (like "enforce-single-session" is in the "protection" + # category. + # - If you want to check the format of this file before putting it + # into WorldGuard, paste it into http://yaml-online-parser.appspot.com/ + # and see if it gives "ERROR:". + # - Lines starting with # are comments and so they are ignored. + # + + regions: + uuid-migration: + perform-on-next-start: false + keep-names-that-lack-uuids: true + use-creature-spawn-event: true + disable-bypass-by-default: false + announce-bypass-status: false + use-paper-entity-origin: false + enable: true + invincibility-removes-mobs: false + cancel-chat-without-recipients: true + nether-portal-protection: true + fake-player-build-override: true + explosion-flags-block-entity-damage: true + high-frequency-flags: false + protect-against-liquid-flow: true + wand: minecraft:leather + max-claim-volume: 67108864 + claim-only-inside-existing-regions: false + set-parent-on-claim: '' + location-flags-only-inside-regions: false + max-region-count-per-player: + default: 10 + # 2023-03-18 SeichiAssist-ExternalLib#128 + # observer: 10 + auto-invincible: false + auto-invincible-group: false + auto-no-drowning-group: false + use-player-move-event: true + use-player-teleports: true + use-particle-effects: true + disable-permission-cache: false + security: + deop-everyone-on-join: false + block-in-game-op-command: false + host-keys-allow-forge-clients: false + host-keys: {} + summary-on-start: true + op-permissions: false + build-permission-nodes: + enable: false + deny-message: '&eSorry, but you are not permitted to do that here.' + event-handling: + block-entity-spawns-with-untraceable-cause: false + interaction-whitelist: [] + emit-block-use-at-feet: [] + ignore-hopper-item-move-events: false + break-hoppers-on-denied-move: true + protection: + item-durability: true + remove-infinite-stacks: false + disable-xp-orb-drops: false + use-max-priority-association: false + gameplay: + block-potions: [INVISIBILITY] + block-potions-overly-reliably: false + disable-conduit-effects: false + default: + pumpkin-scuba: false + disable-health-regain: false + physics: + no-physics-gravel: false + no-physics-sand: false + vine-like-rope-ladders: false + allow-portal-anywhere: false + disable-water-damage-blocks: [] + ignition: + block-tnt: false + block-tnt-block-damage: true + block-lighter: false + fire: + disable-lava-fire-spread: true + disable-all-fire-spread: true + disable-fire-spread-blocks: [] + lava-spread-blocks: [] + mobs: + block-creeper-explosions: false + block-creeper-block-damage: true + block-wither-explosions: false + block-wither-block-damage: true + block-wither-skull-explosions: false + block-wither-skull-block-damage: true + block-enderdragon-block-damage: true + block-enderdragon-portal-creation: false + block-fireball-explosions: false + block-fireball-block-damage: true + anti-wolf-dumbness: false + allow-tamed-spawns: true + disable-enderman-griefing: true + disable-snowman-trails: false + block-painting-destroy: true + block-item-frame-destroy: true + block-armor-stand-destroy: false + block-plugin-spawning: true + block-above-ground-slimes: false + block-other-explosions: true + block-zombie-door-destruction: false + block-vehicle-entry: false + block-creature-spawn: [] + player-damage: + disable-fall-damage: false + disable-lava-damage: false + disable-fire-damage: false + disable-lightning-damage: false + disable-drowning-damage: false + disable-suffocation-damage: false + disable-contact-damage: false + teleport-on-suffocation: false + disable-void-damage: false + teleport-on-void-falling: false + reset-fall-on-void-teleport: false + disable-explosion-damage: false + disable-mob-damage: false + disable-death-messages: false + crops: + disable-creature-trampling: false + disable-player-trampling: false + turtle-egg: + disable-creature-trampling: false + disable-player-trampling: false + weather: + prevent-lightning-strike-blocks: [] + disable-lightning-strike-fire: false + disable-thunderstorm: false + disable-weather: false + disable-pig-zombification: false + disable-villager-witchification: false + disable-powered-creepers: false + always-raining: false + always-thundering: false + dynamics: + disable-mushroom-spread: false + disable-ice-melting: false + disable-snow-melting: false + disable-snow-formation: false + disable-ice-formation: false + disable-leaf-decay: false + disable-grass-growth: false + disable-mycelium-spread: false + disable-vine-growth: false + disable-rock-growth: false + disable-crop-growth: false + disable-soil-dehydration: false + disable-coral-block-fade: false + snow-fall-blocks: [] + blacklist: + use-as-whitelist: false + logging: + console: + enable: true + database: + enable: false + dsn: jdbc:mysql://localhost:3306/minecraft + user: root + pass: '' + table: blacklist_events + file: + enable: false + path: worldguard/logs/%Y-%m-%d.log + open-files: 10 + custom-metrics-charts: true + extra-timings: + session-handlers: true + + ByeByeWither-config.yml: | + wither: + is-enabled: true + ignored-worlds: [] + ender-dragon: + is-enabled: true + ignored-worlds: [] + + PrometheusExporter-config.yml: | + host: 0.0.0.0 + port: 9225 + enable_metrics: + entities_total: true + villagers_total: true + loaded_chunks_total: true + jvm_memory: true + players_online_total: true + players_total: true + tps: true + world_size: true + jvm_threads: true + jvm_gc: true + tick_duration_median: true + tick_duration_average: true + tick_duration_min: false + tick_duration_max: true + player_online: false + player_statistic: false + + RandomTeleport-config.yml: | + Radius: 5000 + RadiusPerWorld: + world_SW: 1500 + world_SW_2: 8000 + world_SW_nether: 1500 + world_SW_the_end: 3000 + EnableWorlds: + - "world_SW" + - "world_SW_2" + - "world_SW_nether" + - "world_SW_the_end" + LunaChat-config.yml: | - # LunaChat v3.0.16 + # LunaChat v3.0.17 # @author ucchy # @license LGPLv3 # @copyright Copyright ucchy 2020 - # -------------------- 全般設定 -------------------- + # -------------------- General settings -------------------- - # 言語設定 + #Language setting lang: ja - # チャンネルチャット機能を利用可能にするかどうか - # Japanize機能のみを利用したい場合は、falseにしてください。 + # Whether to enable channel chat function enableChannelChat: true - # イベント処理の優先度を設定できます。 - # 他のプラグインとの組み合わせでうまく動かないときに使用してください。 - # LOWEST, LOW, NORMAL, HIGH, HIGHEST のどれかを指定できます。 - playerChatEventListenerPriority: 'HIGHEST' + # You can set the priority of event processing. + # Use this when it doesn't work well in combination with other plugins. + # You can specify one of LOWEST, LOW, NORMAL, HIGH, HIGHEST. + # Leave the default HIGH if you're not sure. + playerChatEventListenerPriority: 'HIGH' - # -------------------- チャンネルチャット設定 -------------------- + # -------------------- Channel chat settings -------------------- - # チャンネルチャットに入っていない人の発言を、グローバルとして扱うかどうか + # Whether to treat the remarks of people who are not in channel chat as global noJoinAsGlobal: true - # チャンネルチャットの発言内容を、ログに残すかどうか + # Whether to leave the contents of channel chat remarks in the log loggingChat: true - # チャンネルチャットの発言内容を、サーバーコンソールに表示するかどうか + # Whether to show the contents of channel chat on the server console displayChatOnConsole: true - # グローバルマーカー。 - # これが発言の頭に入っている場合は、一時的にグローバル発言になる。 + # Global marker. + # If this is in the head of a statement, it temporarily becomes a global statement. globalMarker: '!' - # 全てのメンバーが退出したときに、チャンネルを削除するかどうか - zeroMemberRemove: false + # Whether to delete the channel when all members leave, default: false + zeroMemberRemove: true - # ログイン時に、参加中チャンネルを表示するかどうか - showListOnJoin: false + # Whether to show participating channels when logging in, default: false + showListOnJoin: true - # /ch join コマンドで存在しないチャンネルを指定したときに、 - # チャンネルを新規作成して入室するかどうか + # When someone specifies a channel that does not exist with the "/ch join" command, + # whether to create a new channel and enter createChannelOnJoinCommand: false - # 通常のチャットの代わりに、既定として使用するグローバルチャンネル。 - # グローバルチャンネルを作らず通常のチャットを使用する場合は、 - # から文字列 「''」 を指定すること。 + # Global channel to use as default instead of regular chat. + # If you use regular chat without creating a global channel, + # specify the empty string ''. globalChannel: '' - # サーバーに参加したユーザーに必ず参加させるチャンネル。 - # グローバルチャンネルとは別で指定できる。 - # 複数のチャンネルを設定可能。例)forceJoinChannels: ['L', 'M', 'N'] + # A channel(s) that users who join the server must join. + # Can be specified separately from the global channel. + # Multiple channels can be set. Example) forceJoinChannels: ['L','M','N'] forceJoinChannels: [] - # formatコマンド実行時に、必ず含まれる必要があるキーワード。 - formatConstraint: ['%username', '%msg'] - - # チャンネルを作成したときに、デフォルトで設定されるフォーマット設定。 - # フォーマット設定には、下記のキーワードが使用できます。 - # %ch : チャンネル名 - # %color : チャンネルカラー - # %displayname : 発言者表示名 - # %player : 発言者ID - # %server : 発言者の接続サーバー名(BungeeCord側に導入したときに有効です。) - # %world : 発言したワールド名 - # %prefix : プレフィックス(Vaultとパーミッション管理プラグインが導入されている場合に置き換えられます) - # %suffix : サフィックス(Vaultとパーミッション管理プラグインが導入されている場合に置き換えられます) - # %date : 日付 - # %time : 時刻 - # %msg : 発言内容(Japanize変換された場合は、Japanize結果を含みます。) + # A keyword that must be included when executing the format command. + formatConstraint: ['%username','%msg'] + + # The format settings that are set by default when you create a channel. + # The following keywords can be used for formatting. + # %ch: Channel name + # %color: Channel color + # %displayname: Speaker display name + # %player: Speaker ID + # %server: Speaker's connection server name (valid when installed on BungeeCord side.) + # %world : World name + # %prefix: prefix (replaced if Vault and Prefix/Suffix plugin are installed) + # %suffix: suffix (replaced if Vault and Prefix/Suffix plugin are installed) + # %date: date + # %time: time + # %msg: Content of statement defaultFormat: '&f[%color%ch&f]%prefix%displayname%suffix&a:&f %msg' - # OPの画面に、全チャンネルの発言内容を表示する設定。 + # Setting to display the content of all channels on the OP screen. opListenAllChannel: false - # チャンネルを新規作成するときに、チャンネル名が満たさなければならない、最低文字列長。 - # 指定されたチャンネル名がこの文字数を下回る場合は、エラーになってチャンネルを作成できません。 + # The minimum string length that the channel name must satisfy when creating a new channel. + # If the specified channel name is less than this number of characters, an error occurs and the channel cannot be created. minChannelNameLength: 4 - # チャンネルを新規作成するときに、チャンネル名が満たさなければならない、最大文字列長。 - # 指定されたチャンネル名がこの文字数を上回る場合は、エラーになってチャンネルを作成できません。 + # Maximum string length that the channel name must satisfy when creating a new channel. + # If the specified channel name exceeds this number of characters, an error occurs and the channel cannot be created. maxChannelNameLength: 20 - # クイックチャンネルチャット機能を有効化するかどうか。 - # クイックチャンネルチャットは、「(チャンネル名 or エイリアス) + (専用の記号) + (発言内容) 」を発言すると使用できます。 - # 例えば、mainチャンネルにエイリアスmを設定しておくと、mainチャンネルを発言先にしなくても、 - # m:こんにちは! - # と発言することで、mainチャンネルに発言を行うことができます。 - enableQuickChannelChat: true + # Whether to enable the quick channel chat feature. + # You can use Quick Channel Chat by saying "(Channel Name or Alias) + (Dedicated Symbol) + (Message)". + # For example, if you set the alias m to the main channel, you do not have to speak to the main channel + # m:Hello! + # You can say to the main channel by saying. + # default: true + enableQuickChannelChat: false - # クイックチャンネルチャット機能に使用する記号。 + # Symbol used for quick channel chat feature. quickChannelChatSeparator: ':' - # -------------------- プライベートメッセージ設定 -------------------- - - # /tell や /msg や /r コマンドでプライベートメッセージを送信するときに、 - # 適用されるフォーマット設定。 - # フォーマット設定には、下記のキーワードが使用できます。 - # %ch : チャンネル名(「%player>%to」と同一です。) - # %displayname : 発言者表示名 - # %player : 発言者ID - # %server : 発言者の接続サーバー名(BungeeCord側に導入したときに有効です。) - # %to : 発言の相手(受信者)のID - # %recieverserver : 受信者の接続サーバー名(BungeeCord側に導入したときに有効です。) - # %world : 発言したワールド名(spigot側に導入したときに有効です。MultiVerseが導入されている場合は、ワールドの表示名を取得して使用します。) - # %prefix : プレフィックス(VaultとPermissionsExが導入されている場合に置き換えられます) - # %suffix : サフィックス(VaultとPermissionsExが導入されている場合に置き換えられます) - # %date : 日付 - # %time : 時刻 - # %msg : 発言内容(Japanize変換された場合は、Japanize結果を含みます。) + # -------------------- Private message settings -------------------- + + # When sending a private message with the # /tell, /msg or /r command, applied formatting. + # The following keywords can be used for formatting. + # %ch: Channel name (same as "%player>%to") + # %displayname: Speaker display name + # %player: Speaker ID + # %server: Speaker's connection server name (valid when installed on BungeeCord side.) + # %to: ID of the person (recipient) who speaks + # %recieverserver: Recipient's connection server name (valid when installed on BungeeCord side) + # %world: Name of the world you said (Valid when it is installed on the spigot side. When MultiVerse is installed, the display name of the world is acquired and used.) + # %prefix: prefix (replaced if Vault and Prefix/Suffix plugin are installed) + # %suffix: suffix (replaced if Vault and Prefix/Suffix plugin are installed) + # %date: date + # %time: time + # %msg: Content of statement (When converted to Japanize, the result of Japanize is included.) defaultFormatForPrivateMessage: '&7[%player -> %to]&f %msg' #defaultFormatForPrivateMessage: '&7[%player@%server > %to@%recieverserver] %msg' - # -------------------- dynmap連携設定 -------------------- + # -------------------- dynmap linkage setting -------------------- # ブロードキャストチャンネルの発言内容を、dynmapに送信するかどうか。 # dynmapがロードされていない場合は、この設定は無視される(false扱い)。 @@ -882,124 +1363,5039 @@ data: dynmapChannel: '' + # -------------------- NG word setting -------------------- - # -------------------- NGワード設定 -------------------- + # NG word setting. You can specify a regular expression. + #The NG word part is masked by the player who speaks the word set here. + ngword: ['ちん(こ|ぽ|ちん)'] - # NGワード設定。正規表現が指定可能です。 - # ここに設定されたワードを発言したプレイヤーは、NGワード部分がマスクされます。 - ngword: - - 'ちん(こ|ぽ|ちん)' - - # NGワード発言時の動作設定。mask、mute、kick、ban の4つのいずれかが設定可能。 - # mask : NGワードをマスクする - # mute : NGワードをマスクしたのち、発言したプレイヤーをチャンネルからMuteする - # kick : NGワードをマスクしたのち、発言したプレイヤーをチャンネルからキックする - # ban : NGワードをマスクしたのち、発言したプレイヤーをチャンネルからBANする - # ※ 通常チャット(非チャンネルチャット)の場合は、 - # kickやbanを設定しても、マスクのみが実行されます。 + # NG Word operation setting when speaking. You can set any of four: mask, mute, kick, ban. + # mask: mask NG words + # mute: Mute the speaking player from the channel after masking the NG word + # kick: After masking the NG word, kick the speaking player from the channel + # ban: After masking the NG word, ban the player who said it from the channel + # For regular chat (non-channel chat), + # Even if you set # kick or ban, only the mask is executed. ngwordAction: mask + # -------------------- Normal chat settings -------------------- - # -------------------- 通常チャット設定 -------------------- - - # 通常チャット(非チャンネルチャット)の装飾を、LunaChatから行うかどうか。 + # Whether to decorate normal chat (non-channel chat) from LunaChat. enableNormalChatMessageFormat: true - # チャット装飾のフォーマット設定。 - # フォーマット設定には、下記のキーワードが使用できます。 - # %displayname : 発言者表示名 - # %player : 発言者ID - # %world : 発言したワールド名(spigot側に導入したときに有効です。MultiVerseが導入されている場合は、ワールドの表示名を取得して使用します。) - # %server : 発言者の接続サーバー名(BungeeCord側に導入したときに有効です。) - # %prefix : プレフィックス(VaultとPrefix/Suffixプラグインが導入されている場合に置き換えられます) - # %suffix : サフィックス(VaultとPrefix/Suffixプラグインが導入されている場合に置き換えられます) - # %date : 日付 - # %time : 時刻 - # %msg : 発言内容(Japanize変換された場合は、Japanize結果を含みます。) + # Chat decoration formatting. + # The following keywords can be used for formatting. + # %displayname: Speaker display name + # %player: Speaker ID + # %world: Name of the world you said (Valid when it is installed on the spigot side. When MultiVerse is installed, the display name of the world is acquired and used.) + # %server: Speaker's connection server name (valid when installed on BungeeCord side.) + # %prefix: prefix (replaced if Vault and Prefix/Suffix plugins are installed) + # %suffix: suffix (replaced if Vault and Prefix/Suffix plugins are installed) + # %date: date + # %time: time + # %msg: Content of statement (When converted to Japanize, the result of Japanize is included.) normalChatMessageFormat: '&f%prefix%displayname%suffix&a:&f %msg' #normalChatMessageFormat: '&f%displayname@%server&a:&f %msg' - # 通常チャット(非チャンネルチャット)で、カラーコード(&aや&bなど)を - # 使用可能にするかどうか。falseに設定すると、カラーコードは変換されません。 - enableNormalChatColorCode: true + # Color code (&a, &b, etc.) in normal chat (non-channel chat) + # Whether to enable. If set to false, color codes will not be converted. + # default: true + enableNormalChatColorCode: false - # 通常チャット(非チャンネルチャット)をクリック可能にするかどうか。 - # クリック可能にすると、プレイヤー名をクリックしてプライベートメッセージを送ることができるようになりますが、 - # 通常チャットをキャンセルしてクリック可能な別のメッセージを流すので、他のチャット関連プラグインとの連携が - # うまくいかなくなる可能性があります。 - # なお、この設定に関係なく、チャンネルチャットは常にクリック可能です。 + # Whether normal chat (non-channel chat) is clickable. + # If it is clickable, you can click the player name to send a private message, + # but plugin will cancel the normal chat and send another clickable message, + # so you may not use other chat related plugins. + # Note that channel chats are always clickable, regardless of this setting. enableNormalChatClickable: false - # 通常チャット(非チャンネルチャット)をコンソールにログ出力するかどうか。 - # 本項目をfalseにしても、コンソールに記録される場合があります。 + # Whether to log normal chat (non-channel chat) to console. + # Even if this item is set to false, it may be recorded in the console. displayNormalChatOnConsole: true - # -------------------- Japanize変換設定 -------------------- + # -------------------- Japanize conversion settings -------------------- - # ローマ字をかな文字や漢字に変換する設定。 - # none/kana/GoogleIME の3つのいずれかが設定可能。 - # none : 変換なし。 - # kana : かな変換のみ。 - # GoogleIME : かな変換したのち、GoogleIMEを使って漢字変換する。 + # Settings for converting Roman characters to Kana or Kanji. + # You can set any one of none/kana/GoogleIME. + # none: No conversion. + # kana: Kana conversion only. + # GoogleIME: After converting kana, convert kanji using GoogleIME. japanizeType: GoogleIME - # かな変換や漢字変換時に、 - # 変換結果を元の発言内容と合わせて1行で表示するか、 - # 変換結果のみを2行目に表示するかを、設定する。 - # 1行表示の例: - # aiueo (あいうえお) - # 2行表示の例: - # aiueo - # [JP] あいうえお + # When converting kana or kanji, + # Display the conversion result in a single line with the original statement content, or + # Set whether to display only the conversion result on the second line. japanizeDisplayLine: 1 - # japanizeDisplayLine が 1 のときの、表示フォーマットを設定する。 - # フォーマット設定には、下記のキーワードが使用できます。 - # %msg : 元の発言内容 - # %japanize : Japanize変換された発言内容 + # Set the display format when japanizeDisplayLine is 1. + # The following keywords can be used for formatting. + # %msg: Original content + # %japanize: Japanize Within the converted statement japanizeLine1Format: '%msg &6(%japanize)' - # japanizeDisplayLine が 2 のときの、2行目の表示フォーマットを設定する。 - # フォーマット設定には、下記のキーワードが使用できます。 - # %msg : 元の発言内容 - # %japanize : Japanize変換された発言内容 + # Sets the display format for the second line when japanizeDisplayLine is 2. + # The following keywords can be used for formatting. + # %msg: Original content + # %japanize: Japanize Converted remark contents japanizeLine2Format: '&6[JP] %japanize' - # 発言に含まれているプレイヤー名を、Japanize変換から除外するかどうかを設定する。 + # Set whether to exclude the player name included in the statement from Japanize conversion. japanizeIgnorePlayerName: true - # ノンジャパナイズマーカー。 - # これが発言の頭に入っている場合は、一時的にJapanize変換を実行しない。 - noneJapanizeMarker: '#' + # Non-Japanese marker. + # If this is at the beginning of your remark, do not temporarily perform Japanize conversion. + noneJapanizeMarker: '$' - # プレイヤーのJapanize変換を、デフォルトでオンにするかオフにするかを設定する。 + # Sets whether player's Japanize conversion on or off by default. japanizePlayerDefault: true - # -------------------- BungeeCord設定 -------------------- + # -------------------- BungeeCord settings -------------------- - # BungeeCord構成のときに、チャットイベントを配下のspigotサーバーに流し、 - # 返送してもらってから処理を行うモードです。 - # 配下のすべてのspigotサーバーにも、LunaChatの導入が必要です。 + # When plugged in BungeeCord, chat events are sent to the spigot server under it, + # It is a mode to process after receiving it back. + # All spigot servers need to have LunaChat installed. bungeePassThroughMode: false - TimeToGo-config.yml: | - mode-triggers: - - game-mode: Spectator - time: '00:00' - - game-mode: Survival - time: '19:30' - days-of-week: - - Saturday - - Sunday - - game-mode: Survival - time: '20:00' - days-of-week: - - Monday - - Tuesday - - Wednesday - - Thursday - - Friday - - game-mode: Spectator - time: '21:00' + + LunaChat-dictionary.yml: | + seichi: 整地 + seiti: 整地 + + antiRedstoneClock.yml: | + #En: Don't touch this value + #Fr: Ne pas modifier cette valeur + version: 0.9 + #En:Enable metrics (true/false) + #Fr: Activer metrics (true/false) + metrics: true + #En:Maximal number of redstone blinks authorized during the "Delay" period (digit > 1) + #Fr:Nombre maximal de clignotement de redstone autorise pendant la periode "Delay" (entier > 1) + MaxPulses: 150 + #En: Time (in seconds) before the reset of the "MaxImpulsion" variable (digit > 1) + #Fr:Temp (en secondes) avant de reset la premiere variable (entier > 1) + Delay: 300 + #En:You need it prevent an admin? (true/false) + #Fr:Faut-il prevenir un admin? (true/false) + NotifyAdmins: true + #En:Is it necessary to drop items (Redstone / repeater) when a loop is destroyed? (true/false) + #Fr:Faut-il dropper les items (Redstone/repeater) quand une boucle est détruite? (true/false) + DropItems: true + + CreateSignWhenClockIsBreak: true + #En:Write the text you want on the sign + #Fr:Ecrire le texte a mettre sur les panneaux + Sign: + Line1: 'RedstoneClocks' + Line2: 'Are' + Line3: '&4prohibited' + Line4: '' + + #En:The list of worlds on which the plugin is disabled separate by "/", put a fake name if none + #Fr: La list des mondes sur lequel le plugin est desactive separe par des "/", mettre un faut non si aucun + IgnoreWorlds: redstoneWorld/survival + + #En:The list of Region on which the plugin is disabled separate by "/", put a fake name if none + #Fr: La list des Regions sur lequel le plugin est desactive separe par des "/", mettre un faut non si aucun + IgnoreRegions: redstone/admins + + #En: Enable or not plotSquaredSupport. (true/false) + #Fr: Active ou pas me support de plotSquared. (true/false) + plotSquaredSupport: false # default: true + worldGuardSupport: true + + #En: Enable or disable clock detection for differents redstone elements. (true/false) + #Fr: Active ou pas la detection de certaines boucles de redstone. (true/false) + checkedClock: + comparator: true + observer: true + piston: false # default: true + redstoneAndRepeater: false # default: true + + AutomaticallyBreakDetectedClock: true + SummonLigthningAtRedstoneLocation: true + + #En: Customize the teleport command (variable : $x, $y, $z, $world, $player) + #Fr: Customise la commande de teleportation (variable : $x, $y, $z, $world, $player) + teleportCMD: 'tp $x $y $z $world' + + #En: Put the plugin in "standby" if the TPS of the server are between min and max TPS value + #Fr: "Désactive" le plugin si les tps du serveurs sont entre les TPS du serveur sont entre la valeur min et max + checkTPS: + minimumTPS: -1 + maximumTPS: -1 + intervalInSecond: 15 + + #En: Disable the check of redstoneclock above an Y value + #Fr: Desactive la vérification des boucles de redstone au dessus d'une valeur Y + disableRedstoneClockCheckAbove: 255 + + Msg: + default: + prefix: '&bAntiRedstoneClock &9&l> &r&b ' + error: '&4AntiRedstoneClock &l> &r&c ' + no_permission: '&4Error &9&l> &r&bYou don''t have permission to do that!' + command_use: '&4AntiRedstoneClock &l> &r&cCommand usage: &6/arc $command' + message: + MsgToAdmin: 'Redstone clock disable in x:$X y:$Y Z:$Z. In the world $World' + unknownCmd: 'Unknown command. Type "/help" for help.' + reloadSuccess: 'Reload Success! Redstone listener and third party plugin are not affected!!!' + newValueInConfig: 'The new value of $setting is $value' + RedStoneClockListHeader: 'RedstoneClockList: $page' + RedStoneClockListFooter: '' + Exception: + duplicate_object: 'This list already contains this redstone' + + AutoMessage-config.yml: | + timer: 300 # default: 10 + Random: false + UseTellRawMessages: false + Messages: + - '&6[Tips]&f岩盤までぶち抜いた後&eY5&fにハーフブロックを敷く文化があるらしい。' + - '&6[Tips]&f&eALL値&fが&c200&fを超える建築やMOB溜め等はご遠慮ください。' + - '&6[Tips]&f看板の文字には&e&系各種カラーコードが使用可能&fです。' + - '&6[Tips]&f&e/mvspawn&fで今いるワールドのスポーン地点に移動します。' + - '&6[Tips]&f保護のフラグ設定は&e自己責任&fです。&c設定ミスに要注意&f!' + - '&6[Tips]&fルール違反を見かけたら&c反応せずに通報&fしましょう。' + - '&6[Tips]&f嫌なチャットは&e/ch hide <プレイヤー名>&fで非表示にしましょう。' + - '&6[Tips]&f個人間チャットは&e/tell&fコマンドをご利用ください。' + - '&6[Tips]&f&elunachat&fによるチャンネルチャット機能が利用可能です。' + - '&6[Tips]&f混雑時は空いてるサーバーに移動しての整地がオススメ。' + - '&6[Tips]&fチャットはサーバーごとに独立しています。' + - '&6[Tips]&f運営チームのなりすましにご注意ください。' + - '&6[Tips]&fゲーム内で運営チームへチャットしても(大体)反応しません。' + - '&6[Tips]&f運営チームへのお問い合わせは&ewebフォーム&fを使ってネ。(運営チーム個人宛の問い合わせはご遠慮ください)→&ehttps://www.seichi.network/access' + - '&6[Tips]&f地形にハマって出られない時は&e/spawn&fを使おう!' + - '&6[Tips]&fログインせずに投票しても特典は配布されます。' + - '&6[Tips]&fロビーサーバーへの移動は&e/hub&fで!' + - '&6[Tips]&f木の棒が無い!そんな時は&e/stick&fでいつでも召喚できます。' + - '&6[Tips]&f自分の家の建築はメインワールドで!' + - '&6[Tips]&fガチャ券と整地量は整地ワールド以外では増えません。' + - '&6[Tips]&f第2整地・第4整地ワールドは保護が必要ですが整地に集中できます。' + - '&6[Tips]&f無意味な保護の乱立は&c削除&処罰対象&fです。' + - '&6[Tips]&f建築物に対して大きすぎる保護は&c縮小&fされることがあります。' + - '&6[Tips]&f建築途中、または未建築の保護は&c削除&fすることがあります。' + - '&6[Tips]&f整地の心得を守って楽しく整地しましょう。' + - '&6[Tips]&f整地の心得①:下から掘らず、上から掘るべし!' + - '&6[Tips]&f整地の心得②:空中にブロックが残らないようにすべし!' + - '&6[Tips]&f整地の心得③:水やマグマは除去すべし!' + - '&6[Tips]&f整地の心得④:掘りぬいた後は綺麗に整えるべし!' + - '&6[Tips]&f&e整地の心得違反者&fは&c処罰&fされます。詳しくはルールをご確認下さい。' + - '&6[Tips]&f公式Discordサーバーで運営のお手伝いを募集しています。' + - '&6[Tips]&f1000ブロック整地するごとにガチャ券がもらえます。' + - '&6[Tips]&f公式サイトではガチャの景品リストを公開しています。' + - '&6[Tips]&f名前の左に表示されるのは&e整地レベルor二つ名&fです。' + - '&6[Tips]&f整地レベル上げ&ガチャ券稼ぎは&e整地ワールド&fで!' + - '&6[Tips]&f毎日夜8時からはドラゲナイタイム!8時地点でログインしたプレイヤーは採掘速度が上昇し、マナ使用率が減少します。' + - '&6[Tips]&fガチャ券は整地だけでなく&e投票&fすることでももらえます。' + - '&6[Tips]&fガチャ券で&e大当り&fを引く確率は&c1%&fです。' + - '&6[Tips]&fガチャ券で&eギガンティック大当り&fを引く確率は&c0.1%&fです。' + - '&6[Tips]&f整地鯖では&c先に保護を掛けないと建築出来ません&f。' + - '&6[Tips]&f木の棒メニューからコマンド不要で簡単に保護をかけられます。' + - '&6[Tips]&fスキルを使って真下に掘る時はShiftを押しっぱにしよう!' + - '&6[Tips]&f木の棒を右or左クリックすると便利なメニューが出現します。' + - '&6[Tips]&fワールド間移動は木の棒メニューからビーコンボタンで!' + - '&6[Tips]&fスキルの選択は木の棒メニューのスキルブックで!' + - '&6[Tips]&fホームポイント機能は木の棒メニューから使おう!' + - '&6[Tips]&f木の棒メニューから4次元ポケットが使えます。' + - '&6[Tips]&fサーバー間のアイテム移動には4次元ポケットを使おう!' + - '&6[Tips]&f整地Lv25以上でどこでもエンダーチェストが使えます。' + - '&6[Tips]&fMineStack機能は整地Lv1から使えます。' + - '&6[Tips]&f掘った土や石が消えた?それはMineStack機能のせいネ' + - '&6[Tips]&f採掘速度上昇効果は木の棒メニューでONOFF出来ます。' + - '&6[Tips]&f公式Discord→&ehttps://redmine.seichi.click/projects/public/wiki/Official_Discord_Documents' + - '&6[Tips]&f&cルールは必ず読みましょう&f→&ehttps://www.seichi.network/rule' + - '&6[Tips]&f&cはじめての方はチャットで質問する前に公式ホームページをチェックしましょう。読んでもわからなかったことをチャットで質問するようにしてください。&f→&ehttps://www.seichi.network/helloworld' + - '&6[Tips]&f疑問点は公式サイトで解決!→&ehttps://www.seichi.network/gigantic' + - '&6[Tips]&f整地鯖で使えるコマンド→&ehttps://cmd.seichi.click/' + - '&6[Tips]&f1日1回投票して特典をゲット!→&ehttps://goo.gl/cu7ziG' + - '&6[Tips]&fお問い合わせ→&ehttps://www.seichi.network/access' + - '&6[Tips]&fサーバーマップ→&ehttps://www.seichi.network/map' + - '&6[Tips]&f整地鯖ランキング(非公式)→&ehttps://seichi.conarin.com/ranking' + - '&6[Tips]&f接続時間はメイン・整地専用・公共施設サーバーにいると増えます。' + - '&6[Tips]&f公共施設サーバーのチュートリアルをプレイすると景品がもらえます。' + - '&6[Tips]&f別のサーバーに移動するには木の棒メニュー右上のネザースターをクリック。' + - '&6[Tips]&fガチャ景品のギフト券は公共施設サーバーで商品と交換できます。' + - '&6[Tips]&f第1整地ワールドは毎週金曜日朝6時にワールドリセットされます。' + - '&6[Tips]&fメインワールドでは頭を1保護につき20個まで設置可能です。' + - '&6[Tips]&f苗木・食料はメインのスポーン付近で配布しています。' + - '&6[Tips]&f整地鯖に来たばかりの人はココをみよう→&ehttps://www.seichi.network/helloworld' + - '&6[Tips]&fメインワールド紹介ページ→&ehttps://www.seichi.network/post/newmain' + - '&6[Tips]&f各整地ワールドではランダムテレポート機能(/rtp)が使えます。土地探しが楽ちん。' + - '&6[Tips]&fブログにはお役立ち情報が載っているよ→&ehttps://www.seichi.network/blog' + - '&6[Tips]&f放置をする場合は自分の家の中や放置部屋(メインワールドスポーン地点より入場)など安全な場所で!' + - '&6[Tips]&f第1整地ワールドでは心得違反による処罰がない代わりに整地量の計算が0.8倍になります。' + - '&6[Tips]&fアクティブスキルをセットしていても、ONになっていないとスキルは発動しません。Shift+右クリックでON・OFFを切り替えられます。' + - '&6[Tips]&fアルカディアサーバーのメインワールドにあるドット絵をドット絵専用ワールドに移管できます。申請はこちら→&ehttps://docs.google.com/forms/d/e/1FAIpQLSdwIkLPJZ_wbgqvyfmQVWaNcDrcZPQkPRADsq8IJRZKjd_Yxg/viewform' + - '&6[Tips]&e/tpa <プレイヤー名>&fで指定のプレイヤーにテレポートリクエストを送信できます。(承認されると相手の位置にテレポートできます。)' + - '&6[Tips]&e/tpahere <プレイヤー名>&fで指定のプレイヤーにテレポートリクエストを送信できます。(承認されると相手が自分の位置にテレポートします。)' + - '&6[Tips]&e/jp &fで日本語チャットのON/OFFを切り替えます。' + - '&6[Tips]&e/fly add <分数>&fで指定の分数だけ飛行時間を追加できます。また、&e/fly endless&fで自分が終了するまで飛行することが出来ます。' + - '&6[Tips]&e/minestack store-all&fでインベントリ内のアイテムをMineStackに格納できます。' + - '&6[Tips]&e/trade <プレイヤー名>&fで指定のプレイヤーと取引を開始できます。(取引中はチャット機能が使えないので交換内容は事前にしておきましょう。)' + - '&6[Tips]&f静かに整地がしたい?そんなときはエデンやヴァルハラをオススメします。' + - '&6[Tips]&fTownyはヴァルハラサーバーで利用できます。' + - '&6[Tips]&f最新情報は公式ホームページまたは公式Discordサーバーで!' + - '&6[Tips]&cご自身のエリアで災害が発生した際は、ゲーム内チャットの災害情報は鵜呑みにせず &l"すぐにゲームを終了"&cしてテレビやラジオなどのメディアで災害情報を入手しましょう。' + TellRawMessages: + - '{"text":"[Get more info on TellRaws here: minecraft.tools/en/tellraw.php ]","color":"dark_purple"}' + - '{"text":"[This is a test message!] ","color":"aqua"}' + - '["",{"text":"Click me to open URL!","color":"red","bold":true,"underlined":false,"clickEvent":{"action":"open_url","value":"https://www.google.com"}}]' + - '{"text":"Hover over me for help text!","color":"yellow","bold":true,"hoverEvent":{"action":"show_text","value":{"text":"","extra":[{"text":"I + am a hint!","color":"yellow","bold":true}]}}}' + - '{"text":"Click me to run help command!","color":"yellow","bold":true,"clickEvent":{"action":"run_command","value":"/help"}}' + + BetterChairs-config.yml: | + # BetterChairs Remastered + # + # Support: https://Sprax.me/Discord + # Updates and Information: + # Statistics: https://bstats.org/plugin/bukkit/BetterChairs%20Remastered/8214 + # Information for developers: https://github.com/SpraxDev/BetterChairs/wiki + + + # You shouldn't make any changes to this + version: 0 + Chairs: + + # Enabling this makes BetterChairs use Arrows instead of ArmorStands. + # ArmorStands are made invisible so the player doesn't see anything of the magic happening when sitting. + # But Spigot can be very unreliable on some versions (e.g. players instantly stopping to sit) + # + # If you are experiencing issues with ArmorStands, enable this option. + SitOnArrows: false + + # Allowed distance a player is allowed to have when trying to sit? (-1 to ignore) + AllowedDistanceToChair: -1 + + # Should a player automatically look forward when starting to sit + AutoRotatePlayer: true + + # Does a player need his hands empty when trying to sit? + NeedEmptyHands: true + + # Does a chair need signs on both sides attached to be detected as an chair + NeedsSignsOnBothSides: false + + # Enable this if you want players to be able to sit on chairs + # while other plugins (like WorldGuard or PlotSquared) are not + # allowing interactions/use with the chair blocks. + IgnoreOtherPluginsPreventingInteract: false + + # This requires players to use /toggleChairs or /BetterChairs toggle + # before they can right-click on chair blocks. + HaveChairsDisabledForPlayerByDefault: false + + # Enable this if you want BetterChairs to remember a player who used /bc after a plugin reload or him rejoining + RememberIfPlayerDisabledChairsAfterRelogin: true + Position: + + # Set to false, if you do not care about a player suffocating while sitting + NeedAirAbove: true + + # Set to false, to force chairs to have a block below them + AllowAirBelow: true + + # Can stairs be chairs? + UseStairs: true + + # Can half slabs be chairs too? + UseSlabs: false + LeavingChair: + + # Should a player be teleported to its original position when leaving a chair + TeleportPlayerToOldLocation: true + + # Should a player keep his head rotation when teleported to its original position + KeepHeadRotation: true + + # This controls whether players can switch seats while already sitting. + # If 'Chairs.LeavingChair.TeleportPlayerToOldLocation' is set, + # the player will be teleported to the *first* location they startet sitting at. + AllowSwitchingSeats: false + Messages: + + # Should the player receive a message when the chair is already occupied + AlreadyOccupied: false + + # Should the player receive a message when a chair is missing signs on both sided + NeedsSignsOnBothSides: false + + # Should the player receive a message when he starts sitting + NowSitting: false + Regeneration: + + # Should player receive regeneration effect when sitting? + Enabled: false + + # Should only players with the permission 'BetterChairs.regeneration' get the effect? + CheckPermission: true + + # What amplifier should be applied? + Amplifier: 1 + Filter: + Worlds: + + # Should we only enable chairs in specific worlds? + Enabled: false + + # Should be the list below be used as blacklist or whitelist? + UseAsBlacklist: false + + # List of all enabled/disabled worlds + Names: + - worldname + - worldname2 + Blocks: + + # Should we only enable specific blocks as chairs? + Enabled: false + + # Setting this to true, won't check if a chair + # is a stair or slab but only look if it is in the list below + # + # This is kinda experimental. + # Enabling overwrites 'UseStairs' and 'UseSlabs' further above + AllowAllTypes: false + + # Should be the list below be used as blacklist or whitelist? + UseAsBlacklist: false + + # List of all enabled/disabled block types + # + # The names from Minecraft do not always work + # Full list: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html + Names: + - blockname + - blockname2 + Updater: + + # Should we check for new versions and report to the console? (Recommended) + CheckForUpdates: true + + # Should be notify admins when they join the server? (Permission: BetterChairs.updater) + NotifyOnJoin: true + + BungeePortals-config.yml: | + # BungeePortals configuration file, visit www.spigotmc.org/resources/bungeeportals.19 for help. + SaveTask: + Enabled: false + Interval: 600 + NoPortalPermissionMessage: '&cYou do not have permission to go to the server {destination}.' + + ClearLag-config.yml: | + #--------------------------------------------------------------------# + # 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 # default: true + enable-api: true + use-internal-tps: false # default: 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' + - 'lagg gc' + + #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: true + disable-natural-entity-spawning: true + halted: + fire: true + fire-burn: true + explosion: true + decay: true + block-fade: true + block-form: true + block-spread: true + block-natural-change: true + + #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: + stone: 240 + grass: 240 + cobblestone: 240 + log: 240 + stone_axe: 240 + stone_pickaxe: 240 + stone_sword: 240 + wooden_axe: 240 + wooden_pickaxe: 240 + wooden_sword: 240 + rotten_flesh: 240 + gravel: 240 + dirt: 240 + leather: 200 + sand: 240 + bone: 240 + beef: 240 + chicken: 160 + rabbit: 240 + salmon: 240 + cactus: 210 + wool: 180 + arrow: 160 + PORKCHOP: 240 + potato: 240 + RED_TULIP: 240 + + #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: false + max-mobs: 6 + check-radius: 15 + + #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: false + check-radius: 8 + max-mobs: 5 + + #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 + interval: 10 + mobtimer: true + itemtimer: true + arrowtimer: true + 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: false + max: 2 + radius: 6 + + #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: false + check-radius: 5 + max-primed: 3 + + #This option reduces fire spread rate + # -- 'time' is in milliseconds + firespread-reducer: + enabled: false + time: 2000 + + #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: true # default: false + limit: 50 # default: 10 + entities: + - Squid liveTime=100 + - Zombie liveTime=100 + - Pig_Zombie liveTime=100 + - Skeleton liveTime=100 + - Spider liveTime=100 + - Cave_Spider liveTime=100 + - Slime liveTime=100 + - Creeper liveTime=100 + - Chicken liveTime=100 + - Pig liveTime=100 + - Sheep liveTime=100 + - Cow liveTime=100 + - Horse liveTime=100 + - GUARDIAN liveTime=100 + - BOAT liveTime=100 + - BLAZE liveTime=100 + # - 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: + - Squid limit:1 + - Zombie limit:2 + - Skeleton limit:2 + - Creeper limit:2 + - Chicken limit:3 + - Pig limit:5 + - Sheep limit:5 + - Cow limit:5 + - Horse limit:3 !hasName + - Villager limit:4 + - Arrow limit:4 inGround + - Rabbit limit:2 + - PufferFish limit:2 + - Silverfish limit:2 + - TROPICAL_FISH limit:2 + - COD limit:2 + - DOLPHIN limit:2 + - Bat limit:1 + - Armorstand limit:10 + passive-cleaner: + passive-cleaning-enabled: false + check-interval: 20 + chunk-batch-size: 100 + + #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: 300 + animals: 300 + + #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: 4 + 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: true + broadcast-message: '&6[ClearLag] &a+RemoveAmount 体の不要なエンティティを消去しました' + broadcast-removal: false # default: true + autoremoval-interval: 600 # default: 460 + world-filter: + # - this_world <-This world will be ignored during removal! + boat: true # default: false + falling-block: true + experience-orb: true + painting: false + projectile: true # default: false + item: false # default: true + itemframe: false + minecart: true # default: false + primed-tnt: true + 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 + warnings: + - 'time:570 msg:&4[ClearLag] &cあと &7+remaining &c秒で不要なエンティティを消去します' + + #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: true + falling-block: true + experience-orb: true + painting: false + projectile: true + item: true + itemframe: false + minecart: true + primed-tnt: true + 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: true + boat: true + falling-block: true + experience-orb: true + painting: false + projectile: true + item: true + itemframe: false + minecart: true + primed-tnt: true + 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 + + CoreProtect-config.yml: | + # CoreProtect Config + + # CoreProtect is donationware. Obtain a donation key from coreprotect.net/donate/ + donation-key: + + # MySQL is optional and not required. + # If you prefer to use MySQL, enable the following and fill out the fields. + use-mysql: true + table-prefix: co_ + mysql-host: mariadb + mysql-port: 3306 + mysql-database: "${CFG_COREPROTECT_MYSQL_DATABASE_NAME}" + mysql-username: root + mysql-password: '' + + # If modified, will automatically attempt to translate languages phrases. + # List of language codes: https://coreprotect.net/languages/ + language: ja # default: en + + # If enabled, CoreProtect will check for updates when your server starts up. + # If an update is available, you'll be notified via your server console. + check-updates: true + + # If enabled, other plugins will be able to utilize the CoreProtect API. + api-enabled: true + + # If enabled, extra data is displayed during rollbacks and restores. + # Can be manually triggered by adding "#verbose" to your rollback command. + verbose: true + + # If no radius is specified in a rollback or restore, this value will be + # used as the radius. Set to "0" to disable automatically adding a radius. + default-radius: 10 + + # The maximum radius that can be used in a command. Set to "0" to disable. + # To run a rollback or restore without a radius, you can use "r:#global". + max-radius: 100 + + # If enabled, items taken from containers (etc) will be included in rollbacks. + rollback-items: true + + # If enabled, entities, such as killed animals, will be included in rollbacks. + rollback-entities: true + + # If enabled, generic data, like zombies burning in daylight, won't be logged. + skip-generic-data: true + + # Logs blocks placed by players. + block-place: true + + # Logs blocks broken by players. + block-break: true + + # Logs blocks that break off of other blocks; for example, a sign or torch + # falling off of a dirt block that a player breaks. This is required for + # beds/doors to properly rollback. + natural-break: true + + # Properly track block movement, such as sand or gravel falling. + block-movement: true + + # Properly track blocks moved by pistons. + pistons: true + + # Logs blocks that burn up in a fire. + block-burn: true + + # Logs when a block naturally ignites, such as from fire spreading. + block-ignite: true + + # Logs explosions, such as TNT and Creepers. + explosions: true + + # Track when an entity changes a block, such as an Enderman destroying blocks. + entity-change: true + + # Logs killed entities, such as killed cows and enderman. + entity-kills: true + + # Logs text on signs. If disabled, signs will be blank when rolled back. + sign-text: true + + # Logs lava and water sources placed/removed by players who are using buckets. + buckets: true + + # Logs natural tree leaf decay. + leaf-decay: true + + # Logs tree growth. Trees are linked to the player who planted the sappling. + tree-growth: true + + # Logs mushroom growth. + mushroom-growth: true + + # Logs natural vine growth. + vine-growth: true + + # Logs the spread of sculk blocks from sculk catalysts. + sculk-spread: true + + # Logs when portals such as Nether portals generate naturally. + portals: true + + # Logs water flow. If water destroys other blocks, such as torches, + # this allows it to be properly rolled back. + water-flow: true + + # Logs lava flow. If lava destroys other blocks, such as torches, + # this allows it to be properly rolled back. + lava-flow: true + + # Allows liquid to be properly tracked and linked to players. + # For example, if a player places water which flows and destroys torches, + # it can all be properly restored by rolling back that single player. + liquid-tracking: true + + # Track item transactions, such as when a player takes items from + # a chest, furnace, or dispenser. + item-transactions: true + + # Logs items dropped by players. + item-drops: true + + # Logs items picked up by players. + item-pickups: true + + # Track all hopper transactions, such as when a hopper removes items from a + # chest, furnace, or dispenser. + hopper-transactions: true + + # Track player interactions, such as when a player opens a door, presses + # a button, or opens a chest. Player interactions can't be rolled back. + player-interactions: true + + # Logs messages that players send in the chat. + player-messages: true + + # Logs all commands used by players. + player-commands: true + + # Logs the logins and logouts of players. + player-sessions: true + + # Logs when a player changes their Minecraft username. + username-changes: true + + # Logs changes made via the plugin "WorldEdit" if it's in use on your server. + worldedit: true + + CustomJoinLeftMessage-config.yml: | + # JOIN-LEAVE V2.4.3 Config || Copyright (C) 2023 IdW0309 + + Join: '&7%player% &7がログインしました' + Leave: '[&c-&r] &6The player &6&l%player% &6has left the server!' + First-Join-Message: false # default: true + First-Join: '[&a+&r] &6The player &6&l%player% &6has joined for the first time!' + Language: EN + CommandPrefix: Join-Leave + Title-Onjoin: false # default: true + Hide-Players-With-Perms: true # default: true + Disable-Join-LeaveMessage: false + Fireworks-onJoin: false # default: true + Sound-onJoin: false # default: true + Use-Essentials: false + + FastAsyncWorldEdit-config.yml: | + # These first 6 aren't configurable + issues: "https://github.com/IntellectualSites/FastAsyncWorldEdit/issues" + wiki: "https://intellectualsites.github.io/fastasyncworldedit-documentation/" + date: "Sat May 04 00:00:00 UTC 2024" + build: "https://ci.athion.net/job/FastAsyncWorldEdit/0" + commit: "https://github.com/IntellectualSites/FastAsyncWorldEdit/commit/fa1ef368" + platform: "Bukkit" + # Set true to enable WorldEdit restrictions per region (e.g. PlotSquared or WorldGuard). + # To be allowed to WorldEdit in a region, users need the appropriate + # fawe. permission. See the Permissions page for supported region plugins. + region-restrictions: true + # FAWE will cancel non admin edits when memory consumption exceeds this % + # - Bypass with `/wea` or `//fast` or `fawe.bypass` + # - Disable with 100 or -1. + max-memory-percent: 95 + + # Enable or disable core components + enabled-components: + commands: true + # Show additional information in console. It helps us at IntellectualSites to find out more about an issue. + # Leave it off if you don't need it, it can spam your console. + debug: false + # Whether or not FAWE should notify you on startup about new versions available. + update-notifications: true + + clipboard: + # Store the clipboard on disk instead of memory + # - Will be slightly slower + # - Uses 2 bytes per block + use-disk: true + # Compress the clipboard to reduce the size: + # - TODO: Buffered random access with compression is not implemented on disk yet + # - 0 = No compression + # - 1 = Fast compression + # - 2-17 = Slower compression + # - levels over 6 require ZSTD 1.4.8+ to be installed to the system + compression-level: 1 + # Number of days to keep history on disk before deleting it + delete-after-days: 1 + # If a player's clipboard should be deleted upon logout, default: false + delete-on-logout: true + # Allows NBT stored in a clipboard to be written to disk + # - Requires clipboard.use-disk to be enabled + save-clipboard-nbt-to-disk: true + # Apply a file lock on the clipboard file (only relevant if clipboad.on-disk is enabled) + # - Prevents other processes using the file whilst in use by FAWE + # - This extends to other servers, useful if you have multiple servers using a unified clipboard folder + # - May run into issues where a file lock is not correctly lifted + lock-clipboard-file: false + + lighting: + # If packet sending should be delayed until relight is finished + delay-packet-sending: true + async: true + # The relighting mode to use: + # - 0 = None (Do no relighting) + # - 1 = Optimal (Relight changed light sources and changed blocks) + # - 2 = All (Slowly relight every blocks) + mode: 1 + # If existing lighting should be removed before relighting, default: true + remove-first: false + + # Generic tick limiter (not necessarily WorldEdit related, but useful to stop abuse) + tick-limiter: + # Enable the limiter + enabled: false + # The interval in ticks + interval: 20 + # Max falling blocks per interval (per chunk) + falling: 64 + # Max physics per interval (excluding redstone) + physics-ms: 10 + # Max item spawns per interval (per chunk) + items: 256 + + # Web/HTTP connection related settings + web: + # The web interface for clipboards + # - All schematics are anonymous and private + # - Downloads can be deleted by the user + # - Supports clipboard uploads, downloads and saves + url: "https://schem.intellectualsites.com/fawe/" + # The maximum amount of time in seconds the plugin can attempt to load images for. + max-image-load-time: 5 + # The maximum size (width x length) an image being loaded can be. + # - 8294400 is 3840x2160 + max-image-size: 8294400 + # Whitelist of hostnames to allow images to be downloaded from + # - Adding '*' to the list will allow any host, but this is NOT adviseable + # - Crash exploits exist with malformed images + # - See: https://medium.com/chargebee-engineering/perils-of-parsing-pixel-flood-attack-on-java-imageio-a97aeb06637d + allowed-image-hosts: + - "i.imgur.com" + + extent: + # Don't bug console when these plugins slow down WorldEdit operations + # - You'll see a message in console or ingame if you need to change this option + allowed-plugins: + - "CoreProtect" + # Should debug messages be sent when third party extents are used? + debug: true + + # Experimental options, use at your own risk + # - UNSAFE = Can cause permanent damage to the server + # - SAFE = Can be buggy but unlikely to cause any damage + experimental: + # [UNSAFE] Directly modify the region files. (OBSOLETE - USE ANVIL COMMANDS) + # - IMPROPER USE CAN CAUSE WORLD CORRUPTION! + anvil-queue-mode: false + # [SAFE] Dynamically increase the number of chunks rendered + # - Requires Paper: ci.destroystokyo.com/job/PaperSpigot/ + # - Set your server view distance to 3 (spigot.yml, server.properties) + # - Based on tps and player movement + # - Note: If entities become hidden, increase the server view distance to 3 + dynamic-chunk-rendering: -1 + # Allows brushes to be persistent (default: true) + persistent-brushes: false + # [SAFE] Keep entities that are positioned in non-air blocks when editing an area (default: true) + # - Might cause client-side FPS lag in some situations + # - Requires fast-placement to be true + keep-entities-in-blocks: false + # [SAFE] Attempt to remove entities from the world if they were not present in the expected chunk (default: true) + # - Sometimes an entity may have moved into a different chunk to that which FAWE expected + # - This option allows FAWE to attempt to remove the entity, even if present in a different chunk + # - If the entity is in an unloaded or partially loaded chunk, this will fail + # - If an entity cannot be removed, it is possible duplicate entities may be created when using undo and/or redo + remove-entity-from-world-on-chunk-fail: true + # Increased debug logging for brush actions and processor setup + other: false + # Allow fluids placed by FAWE to tick (flow). This could cause the big lags. + # This has no effect on existing blocks one way or the other. + # Changes due to fluid flow will not be tracked by history, thus may have unintended consequences + allow-tick-fluids: false + # Sets a maximum limit (in kb) for the size of a player's schematics directory (per-player mode only) + # Set to -1 to disable + per-player-file-size-limit: -1 + # Sets a maximum limit for the amount of schematics in a player's schematics directory (per-player mode only) + # Set to -1 to disable + per-player-file-num-limit: -1 + + # This relates to how FAWE places chunks + queue: + progress: + # Display constant titles about the progress of a user's edit + # - false = disabled + # - title = Display progress titles + # - chat = Display progress in chat + # - Currently not implemented + display: "false" + # How often edit progress is displayed + interval: 1 + # Delay sending progress in milliseconds (so quick edits don't spam) + delay: 5000 + # This should equal the number of processors you have + parallel-threads: 12 + # When doing edits that effect more than this many chunks: + # - FAWE will start placing before all calculations are finished + # - A larger value will use slightly less CPU time + # - A smaller value will reduce memory usage + # - A value too small may break some operations (deform?) + # - Values smaller than the configured parallel-threads are not accepted + # - It is recommended this option be at least 4x greater than parallel-threads + target-size: 64 + # Increase or decrease queue intensity (ms) [-50,50]: + # 0 = balance of performance / stability + # -10 = Allocate 10ms less for chunk placement + # Too high can cause lag spikes (you might be okay with this) + # Too low will result in slow edits + extra-time-ms: -10 + # Loading the right amount of chunks beforehand can speed up operations + # - Low values may result in FAWE waiting on requests to the main thread + # - Higher values use more memory and isn't noticeably faster + # - A good (relatively) safe way to set this is + # - Use 128 x GB of RAM / number of players expected to be using WE at the same time + # - Paper and derivatives only. (requires delay-chunk-unloads-by to be set). + preload-chunk-count: 32 + # If pooling is enabled (reduces GC, higher memory usage) + # - Enable to improve performance at the expense of memory + pool: true + + history: + # Should history be saved on disk: + # - Frees up a lot of memory + # - Persists restarts + # - Unlimited undo + # - Does not affect edit performance if `combine-stages` + use-disk: true + # Use a database to store disk storage summaries: + # - Enables inspection and rollback + # - Does not impact performance + use-database: true + # Record history with dispatching: + # - Much faster as it avoids duplicate block checks + # - Slightly worse compression since dispatch order is different + combine-stages: true + # Do not wait for a chunk's history to save before sending it + # - Undo/redo commands will wait until the history has been written to disk before executing + # - Requires combine-stages = true + send-before-history: true + # Higher compression reduces the size of history at the expense of CPU + # 0 = Uncompressed byte array (fastest) + # 1 = 1 pass fast compressor (default) + # 2 = 2 x fast + # 3 = 3 x fast + # 4 = 1 x medium, 1 x fast + # 5 = 1 x medium, 2 x fast + # 6 = 1 x medium, 3 x fast + # 7 = 1 x high, 1 x medium, 1 x fast + # 8 = 1 x high, 1 x medium, 2 x fast + # 9 = 1 x high, 1 x medium, 3 x fast (best compression) + # NOTE: If using disk, do some compression (3+) as smaller files save faster + # - levels over 6 require ZSTD 1.4.8+ to be installed to the system + compression-level: 3 + # The buffer size for compression: + # - Larger = better ratio but uses more upfront memory + # - Must be in the range [64, 33554432] + buffer-size: 531441 + # Delete history on disk after a number of days + delete-after-days: 7 + # Delete history in memory on logout (does not effect disk) + delete-on-logout: true + # If history should be enabled by default for plugins using WorldEdit: + # - It is faster to have disabled + # - Use of the FAWE API will not be effected + enable-for-console: true + # Should redo information be stored: + # - History is about 20% larger + # - Enables use of /redo + store-redo: true + # Assumes all edits are smaller than 4096x256x4096: + # - Reduces history size by ~10% + small-edits: false + + # Paths for various directories + paths: + # Put any minecraft or mod jars for FAWE to be aware of block textures + textures: "textures" + heightmap: "heightmap" + history: "history" + # Multiple servers can use the same clipboards + # - Use a shared directory or NFS/Samba + clipboard: "clipboard" + # Each player has his or her own sub directory for schematics + per-player-schematics: false + + # Region restriction settings + region-restrictions-options: + # What type of users are allowed to WorldEdit in a region + # - MEMBER = Players added to a region + # - OWNER = Players who own the region + mode: "MEMBER" + # Allow region blacklists. + # - Currently only implemented for WorldGuard + # - see region-restrictions-options.worldguard-region-blacklist + allow-blacklists: false + # List of plugin mask managers that should be exclusive. Exclusive managers are not + # checked for edit restrictions if another manager already allowed an edit, and further + # managers are not checked if an exclusive manager allows an edit. + # - May be useful to add PlotSquared if using both P2 and WorldGuard on a server + # - Some custom-implementations in other plugins may override this setting + exclusive-managers: [] + # - "ExamplePlugin" + # If a worldguard-protected world should be considered as a region blacklist. + # - This will create a blacklist of regions where an edit cannot operate. + # - Useful for a "freebuild" worlds with few protected areas. + # - May cause performance loss with large numbers of protected areas. + # - Requires region-restrictions-options.allow-blacklists be true. + # - Will still search for current allowed regions to limit the edit to. + # - Any blacklist regions are likely to override any internal allowed regions. + worldguard-region-blacklist: false + # Restrict all edits to within the safe chunk limits of +/- 30 million blocks + # - Edits outside this range may induce crashing + # - Forcefully prevents any edit outside this range + restrict-to-safe-range: true + # The "default" limit group affects those without a specific limit permission. + # To grant someone different limits, copy the default limits group + # and give it a different name (e.g. newbie). Then give the user the limit + # permission node with that limit name (e.g. fawe.limit.newbie ) + limits: + default: + # Max actions that can be run concurrently (i.e. commands) + max-actions: 1 + # Max number of block changes (e.g. by `//set stone`). + # default: 50000000 + max-changes: 5000000 + # Max number of blocks checked (e.g. `//count stone` which doesn't change blocks) + # default: 50000000 + max-checks: 5000000 + # Number of times a change can fail (e.g. if the player can't access that region) + # default: 50000000 + max-fails: 5000000 + # Allowed brush iterations (e.g. `//brush smooth`) + max-iterations: 1000 + # Max allowed entities (e.g. cows) + max-entities: 1337 + # Blockstates include Banner, Beacon, BrewingStand, Chest, CommandBlock, + # CreatureSpawner, Dispenser, Dropper, EndGateway, Furnace, Hopper, Jukebox, + # NoteBlock, Sign, Skull, Structure + max-blockstates: 1337 + # Maximum size of the player's history in Megabytes: + # - History on disk or memory will be deleted + max-history-mb: -1 + # Maximum time in milliseconds //calc can execute + max-expression-ms: 50 + # Cinematic block placement: + # - Adds a delay to block placement (nanoseconds/block) + # - Having an artificial delay will use more CPU/Memory + speed-reduction: 0 + # Place chunks instead of individual blocks: + # - Disabling this will negatively impact performance + # - Only disable this for compatibility or cinematic placement + fast-placement: true + # Should WorldEdit use inventory? + # 0 = No inventory usage (creative) + # 1 = Inventory for removing and placing (freebuild) + # 2 = Inventory for placing (survival) + inventory-mode: 0 + # Should large edits require confirmation (>16384 chunks) + confirm-large: true + # If undo and redo commands should be restricted to allowed regions + # - Prevents scenarios where players can delete/reset a region, and then continue to undo/redo on it + restrict-history-to-regions: true + # List of nbt tags to strip from blocks, e.g. Items + strip-nbt: [] + # If the disallowed blocks listed in worldedit-config.yml should be disallowed in all edits, + # not just where blocks patterns are used. + # - Can prevent blocks being pasted from clipboards, etc. + # - If fast-placement is disabled, this may cause edits to be slower. + universal-disallowed-blocks: true + # List of blocks to deny use of. Can be either an entire block type or a block with a specific property value. + # Where block properties are specified, any blockstate with the property will be disallowed (e.g. all directions + # of a waterlogged fence). For blocking/remapping of all occurrences of a property like waterlogged, see + # remap-properties below. + # To generate a blank list, substitute the default content with a set of square brackets [] instead. + # The 'worldedit.anyblock' permission is not considered here. + # Example block property blocking: + # - "minecraft:conduit[waterlogged=true]" + # - "minecraft:piston[extended=false,facing=west]" + # - "minecraft:wheat[age=7]" + disallowed-blocks: [] + # - "minecraft:wheat" + # - "minecraft:fire" + # - "minecraft:redstone_wire" + # List of block properties that should be remapped if used in an edit. Entries should take the form + # "property_name[value1_old:value1_new,value2_old:value2_new]". For example: + # - "waterlogged[true:false]" + # - "age[7:4,6:4,5:4]" + # - "extended[true:false]" + remap-properties: [] + + worldedit-config.yml: | + # + # WorldEdit's Configuration File + # + # About editing this file: + # - DO NOT USE TABS. You MUST use spaces or Bukkit will complain and post + # errors. If you use an editor, like Notepad++ (recommended for Windows + # users), you must configure it to "replace tabs with spaces." + # This can be changed in Settings > Preferences > Language Menu. + # - Don't get rid of indentations. They are indented so some entries that are + # in categories, like "max-blocks-changed", are placed in the "limits" + # category. + # - If you want to check the format of this file before putting it + # into WorldEdit, paste it into https://yaml-online-parser.appspot.com/ + # and see if it gives you "ERROR:". + # - Lines starting with # are comments, so they are ignored. + # - If you want to allow blocks, make sure to change "disallowed-blocks" to [] + # + + limits: + max-blocks-changed: + # Ignored, use FAWE config limits + default: -1 + maximum: -1 + max-polygonal-points: + default: -1 + maximum: 20 + max-radius: -1 + max-super-pickaxe-size: 5 + # default: 100 + max-brush-radius: 5 + butcher-radius: + default: -1 + maximum: -1 + disallowed-blocks: + - "minecraft:oak_sapling" + - "minecraft:birch_sapling" + - "minecraft:spruce_sapling" + - "minecraft:jungle_sapling" + - "minecraft:acacia_sapling" + - "minecraft:bamboo_sapling" + - "minecraft:dark_oak_sapling" + - "minecraft:potted_oak_sapling" + - "minecraft:potted_birch_sapling" + - "minecraft:potted_spruce_sapling" + - "minecraft:potted_jungle_sapling" + - "minecraft:potted_acacia_sapling" + - "minecraft:potted_dark_oak_sapling" + - "minecraft:bedrock" + - "minecraft:gold_ore" + - "minecraft:iron_ore" + - "minecraft:coal_ore" + - "minecraft:copper_ore" + - "minecraft:diamond_ore" + - "minecraft:emerald_ore" + - "minecraft:redstone_ore" + - "minecraft:nether_gold_ore" + - "minecraft:lapis_ore" + - "minecraft:nether_quartz_ore" + - "minecraft:deepslate_coal_ore" + - "minecraft:deepslate_gold_ore" + - "minecraft:deepslate_iron_ore" + - "minecraft:deepslate_copper_ore" + - "minecraft:deepslate_diamond_ore" + - "minecraft:deepslate_emerald_ore" + - "minecraft:deepslate_redstone_ore" + - "minecraft:deepslate_lapis_ore" + - "minecraft:red_bed" + - "minecraft:lime_bed" + - "minecraft:pink_bed" + - "minecraft:gray_bed" + - "minecraft:cyan_bed" + - "minecraft:blue_bed" + - "minecraft:white_bed" + - "minecraft:brown_bed" + - "minecraft:green_bed" + - "minecraft:black_bed" + - "minecraft:orange_bed" + - "minecraft:yellow_bed" + - "minecraft:purple_bed" + - "minecraft:magenta_bed" + - "minecraft:light_blue_bed" + - "minecraft:light_gray_bed" + - "minecraft:powered_rail" + - "minecraft:detector_rail" + - "minecraft:activator_rail" + - "minecraft:piston" + - "minecraft:sticky_piston" + - "minecraft:piston_head" + - "minecraft:dead_bush" + - "minecraft:potted_dead_bush" + - "minecraft:dandelion" + - "minecraft:poppy" + - "minecraft:brown_mushroom" + - "minecraft:red_mushroom" + - "minecraft:tnt" + - "minecraft:torch" + - "minecraft:fire" + - "minecraft:wheat" + - "minecraft:lever" + - "minecraft:redstone_torch" + - "minecraft:redstone_wall_torch" + - "minecraft:oak_button" + - "minecraft:stone_button" + - "minecraft:birch_button" + - "minecraft:spruce_button" + - "minecraft:jungle_button" + - "minecraft:acacia_button" + - "minecraft:dark_oak_button" + - "minecraft:cactus" + - "minecraft:potted_cactus" + - "minecraft:sugar_cane" + + use-inventory: + enable: false + allow-override: true + creative-mode-overrides: false + + logging: + log-commands: false + file: worldedit.log + # The format of custom log message. This is java general format string (java.util.Formatter). Arguments are: + # 1$ : date - a Date object representing event time of the log record. + # 2$ : source - a string representing the caller, if available; otherwise, the logger's name. + # 3$ : logger - the logger's name. + # 4$ : level - the log level. + # 5$ : message - the formatted log message returned from the Formatter.formatMessage(LogRecord) method. It uses java.text formatting and does not use the java.util.Formatter format argument. + # 6$ : thrown - a string representing the throwable associated with the log record and its backtrace beginning with a newline character, if any; otherwise, an empty string. + # For details see: + # https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html + # https://docs.oracle.com/javase/8/docs/api/java/util/logging/SimpleFormatter.html#format-java.util.logging.LogRecord- + format: "[%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS %4$s]: %5$s%6$s%n" + + super-pickaxe: + drop-items: true + many-drop-items: false + + snapshots: + directory: + + navigation-wand: + item: minecraft:compass + max-distance: 100 + + scripting: + timeout: 3000 + dir: craftscripts + + saving: + dir: /worldedit-schematica + + files: + allow-symbolic-links: false + + history: + size: 15 + expiration: 10 + + calculation: + timeout: 100 + + debugging: + trace-unflushed-sessions: false + + wand-item: minecraft:wooden_axe + shell-save-type: + no-double-slash: false + no-op-permissions: false + debug: false + show-help-on-first-use: true + server-side-cui: true + command-block-support: false + + FastCraft-config.yml: | + # https://github.com/BenWoodworth/FastCraft/wiki/Configuration + + disable-recipes: + recipe-ids: [] + recipe-calculations: + max-tick-usage: 0.1 + player-defaults: + enabled: true + layout: + height: 6 + recipes: + row: 0 + column: 0 + width: 7 + height: 6 + buttons: + crafting-grid: + enable: true + item: minecraft:crafting_table + row: 0 + column: 8 + craft-amount: + enable: true + item: minecraft:anvil + row: 1 + column: 8 + refresh: + enable: true + item: minecraft:nether_star + row: 2 + column: 8 + page: + enable: true + item: minecraft:iron_sword + row: 5 + column: 8 + items: + custom-button-example: + enable: false + item: minecraft:stone_button + row: 3 + column: 8 + command: say $player pressed a custom button + background: + enable: false + item: minecraft:light_gray_stained_glass_pane + + LiteBans-config.yml: | + # LiteBans config.yml generated by version 2.15.1 + + # If bungeecord is set to true, banned players will be kicked from BungeeCord itself. + # (Players will not be kicked to the lobby when they are banned.) + # This option has no effect if LiteBans is running directly under BungeeCord or Velocity. + bungeecord: false + + # If enabled, and the server is connected to a remote database (e.g. MySQL), + # LiteBans will synchronize across all servers connected to that database with sync enabled. + sync: true + + # If enabled, broadcasts will be synchronized. + sync_broadcasts: true + + # If enabled, notifications will be synchronized. + sync_notifications: true + + # If enabled, dupeip notifications will be synchronized. + # This will appear multiple times if a player joins multiple servers, so you might want to leave this disabled. + sync_dupeip_notifications: false + + # The server name is an identifier used in cross-server synchronization. + # It represents a single plugin instance (or group of instances) and can be updated at any time. + # If you need per-server bans, you have to change server_name on all instances. + # The "$serverScope" and "$serverOrigin" variables can be used in messages. + # Maximum length is 32 characters. UTF-8 is supported. This is case-sensitive, so it is recommended to only use lowercase characters. + server_name: "${CFG_LITEBANS_SERVER_NAME}" + + # This option decides which server(s) will be affected in commands by default. + default_server_scope: '*' + + sql: + # H2, MySQL, MariaDB, and PostgreSQL are supported database drivers. + driver: MariaDB + + ## MySQL/PostgreSQL settings ## + # If using H2, the database will be stored in the LiteBans plugin folder, + # and most of these settings won't apply. + + # Database server address. + address: mariadb:3306 + + # Database name, username and password. + database: 'litebans' + username: 'root' + password: '' + + # LiteBans utilizes connection pooling for extra performance and reliability. + # min_connections: Minimum amount of pooled connections. + # max_connections: Maximum amount of pooled connections. See: https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing + # keepalive: Interval between connection keepalive attempts. This prevents connection timeout for established connections. + # If connections are being closed due to server-side timeout, a keepalive of 30 seconds is recommended. Disabled by default. + # timeout: Connection timeout. + # idle_timeout: Maximum amount of time a pooled connection can remain idle before it is closed for inactivity. + # max_lifetime: Maximum amount of time an active connection can exist for (while being actively used). + pool: + min_connections: 1 + max_connections: 10 + keepalive: 0 seconds + timeout: 30 seconds + idle_timeout: 1 minute + max_lifetime: 30 minutes + + # Database engine. Only applies to MySQL & MariaDB. + engine: InnoDB + + options: 'useSSL=false&serverTimezone=UTC' + + table_prefix: 'litebans_' + + # Format: :[:URL:version:SHA-256] + # SQLite is only included here for importing purposes, use H2 instead. + drivers: + - version:8 + - 'mysql:com.mysql.cj.jdbc.Driver:https://repo1.maven.org/maven2/mysql/mysql-connector-java/{}/mysql-connector-java-{}.jar:8.0.29:d4e32d2a6026b5acc00300b73a86c28fb92681ae9629b21048ee67014c911db6' + - 'pgsql:org.postgresql.Driver:https://repo1.maven.org/maven2/org/postgresql/postgresql/{}/postgresql-{}.jar:42.4.0:fe25b9c0a2c59458504ec88862853df522ee87f8a02564835d537c29ae4cb125' + - 'mariadb:org.mariadb.jdbc.Driver:https://repo1.maven.org/maven2/org/mariadb/jdbc/mariadb-java-client/{}/mariadb-java-client-{}.jar:3.1.2:aaec1ad348d030a65b25c93c65cdaf472bf8b4b6b314b965e5ba13aec81bc622' + - 'sqlite:org.sqlite.JDBC:https://repo1.maven.org/maven2/org/xerial/sqlite-jdbc/{}/sqlite-jdbc-{}.jar:3.8.11.1:58ab29176a24a85a0c76177561257a986c4865e45730b79882c688846371d341' + - 'h2:org.h2.Driver:https://repo1.maven.org/maven2/com/h2database/h2/{}/h2-{}.jar:1.4.197:37f5216e14af2772930dff9b8734353f0a80e89ba3f33e065441de6537c5e842' + + durations: + ## DURATIONS ## + # The highest limit matched by permissions will be used for duration limits. + # Players with "litebans.group.unlimited" permission will not have any limits applied. + ## COOLDOWNS ## + # The lowest duration matched by permissions will be used for cooldowns. + # Cooldowns apply in two instances: to prevent the same player from being punished twice, and to prevent the same player from punishing others within cooldown. + # Cooldowns can be bypassed with: "litebans.cooldown.bypass", "litebans.cooldown.bypass.ban", "litebans.cooldown.bypass.mute", etc. + # Cooldowns default to 5 seconds if not specified. + # The redo cooldown applies when someone removes their last punishment and creates a new one. + ## OTHER ## + # If a group has "require_template" enabled, any players who belong to that group will be restricted to using templates - they cannot create custom punishments. Unlimited users will not have this restriction. + limits: + moderator: + permission: litebans.group.moderator + tempban: 1 month + tempmute: 1 month + helper: + permission: litebans.group.helper + tempban: 15 days + tempmute: 7 days + other: + permission: none + tempban: 7 days + tempmute: 1 day + cooldown_ban: 20 seconds + cooldown_kick: 20 seconds + cooldown_mute: 20 seconds + cooldown_warn: 20 seconds + cooldown_redo: 1 second + require_template: false + # If true, when a player specifies a duration higher than the configured limit, the duration will be reduced to that limit. + # If false, this will result in an error. + reduce_to_limit: true + + # This cooldown will apply to the server console. + # Unlike player cooldowns, this does not stop the console from punishing multiple players at once, it only protects players from double punishments. + console_cooldown: 1 second + + # This option allows you to have all IP bans (except wildcard IP) convert into normal bans (UUID ban instead of UUID+IP ban) after a certain amount of time has passed. + # For example, if you set this option to 30 days (30d), an IP ban placed on January 1 will be demoted to an account ban on January 31. + # Useful for dynamic IP addresses. + effective_ipban_duration: permanent + + mutes: + enabled: true + # All of these commands can not be used while muted. + command_blacklist: + - /me + - /say + - /tell + - /whisper + - /reply + - /pm + - /message + - /msg + - /emsg + - /epm + - /etell + - /ewhisper + - /w + - /m + - /t + - /r + - /mail send + # If enabled, muted players cannot use blacklisted commands containing ":", for example: "/minecraft:me". + # This does not prevent muted players from using non-blacklisted commands with ":". + prevent_bypass: true + + warnings: + # Warnings will expire after this duration has passed. + # To make warnings permanent, set it to "permanent". + expire_after: 7 days + # Warning actions. + # Format: [+]: + # The threshold is evaluated as the number of active warnings given to the warned player, including the warning which was just applied. + # If '+' is provided after the threshold, the action will execute if the player has that amount of warnings or more. + # If you want a punishment action to inherit the silent status from the warning that caused it, add the flag "-s:$silent" to the action. + # actions: + # - '3:/kick -s:$silent $player Final warning: $reason' + # - '4:/tempban -s:$silent $player 1 day Reached 4 warnings: $list' + actions: [ ] + # If enabled, the console will execute warning actions. + # Otherwise, the player who executes the last warning also executes the warning action. + actions_execute_as_console: false + + # If enabled, all active warnings will be deactivated after a warning action is executed. + delete_warnings_after_action: false + + notify: + # If enabled, players with the permission 'litebans.notify.banned_join' are notified when a banned player tries to join. + banned_player_join: true + # If enabled, players with the permission "litebans.notify.mute" are notified when a muted player tries to chat. + muted_player_chat: true + # If enabled, players are scanned for alt accounts when joining the server. + # After the scan has been performed, at least one condition must apply for notifications to be sent (dupeip_on_banned_account, dupeip_on_muted_account, dupeip_on_join_threshold). + dupeip_on_join: true + # This limits the amount of accounts which can be shown in /dupeip output per IP address. + # Accounts are sorted by last login date, so if the limit is reached, + # the accounts not shown will be the ones which have joined least recently. + dupeip_scan_limit: 20 + # Notify if the player has one or more banned accounts on the same IP. + dupeip_on_banned_account: true + # Same as above, but for muted accounts. + dupeip_on_muted_account: false + # If you set this to a lower value, players with X accounts will send dupeip notifications. + dupeip_on_join_threshold: 9999999 + # If enabled, muted accounts will be detected with /dupeip. + # This is disabled by default since it can increase the database load on larger servers especially if dupeip_on_join is enabled. + dupeip_show_muted_accounts: false + # Log all notifications to the console? + notify_console: true + + exempt: + enable: true + # If enabled, players with lower group weights cannot punish higher groups, and cannot modify or remove punishments made by higher groups using commands like /unban or /unmute. + # This replaces the exempt-bypass system - as a result, `litebans.exempt.bypass` will be ignored when this is enabled. + # The only exception to the above statement is console - since console is not part of a group, exempt bypass permissions are required to unban players banned by console. + # Note that all groups require `litebans.exempt` permission to be considered exempt. + use_group_weights: false + # By default, permission checks are global. You can set them to a specific world here. + permission_world: default + # Permission groups that are exempt from bans, mutes, warnings, and kicks. + exempt_groups: [ ] + # Players who are exempt from bans, mutes, warnings, and kicks. + # Format: [:type] + # Type can be 'ban', 'mute', 'warning', or 'kick'. (All types apply if not specified) + # Example: + # exempt_players: ['Player', 'Player2', 'Player3', 'Player4:mute'] + exempt_players: [ ] + + geoip: + enable: false + # Anyone from these locations will not be able to join. + # A full list of countries that can be blacklisted (fifth column: Country): https://www.geonames.org/countries/ + # Example: + # blacklist: ['Australia', 'Brazil', 'Canada'] + blacklist: [ ] + # Adding countries to the whitelist will activate this feature and block all countries not on the list. + # NOTE: If you are hosting your server on your own machine, you should add "geoip.error" to the whitelist + # in order to allow local addresses (like 127.0.0.1 or 192.168.1.23) to join the server. + # Example: + # whitelist: ['geoip.error', 'Denmark', 'Ecuador', 'Fiji'] + whitelist: [ ] + download: + # https://gitlab.com/ruany/LiteBans/-/wikis/GeoIP + db: https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-Country&license_key=YOUR_LICENSE_KEY&suffix=tar.gz + api: + - https://repo1.maven.org/maven2/com/maxmind/geoip2/geoip2/2.1.0/geoip2-2.1.0.jar:81035e738fc392bcfb00be5d39f50fde56692ba305b21338412da9c0fc98e3fb + - https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.4.3/jackson-annotations-2.4.3.jar:3c680cfafad00cfe1432514f19c5c13fde17913aa2269a9844882404242f6452 + - https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.4.3/jackson-core-2.4.3.jar:2c77b1c9441f257eb9e3dda476758a034a9383ef848f97b9949287a0519923e6 + - https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.4.3/jackson-databind-2.4.3.jar:d7ac4f5ce138ce63478673e64378c2efd27f0294602f0fc69cb867685c723797 + - https://repo1.maven.org/maven2/com/maxmind/db/maxmind-db/1.0.0/maxmind-db-1.0.0.jar:3cd5c1c731d8d9cb561d4e53ad6017862e4917cc08c24f45111061b1c2170b06 + + security: + # If enabled, only the console can see IP addresses in /dupeip output. + # This does not prevent players from using /dupeip. It only prevents them from seeing IP addresses. + dupeip: true + # If enabled, only the console can use /iphistory. + iphistory: true + # If enabled, only the console can use /staffrollback. + staffrollback: true + # If enabled, only the console can use the --modify flag. + modify: false + # If enabled, only the console can use /prunehistory. + prunehistory: false + # If enabled, only the console can use --sender flags. + sender_custom: true + # If enabled, only the console can see IP addresses which have been IP-banned directly. Account names are shown if possible. + ipban: true + # If set to 0, players can perform both regular IP bans and wildcard IP bans if they have the permission to do so. + # If set to 1 or higher, only the console can perform wildcard IP bans. + # If set to 2 or higher, only the console can use /ipban and /ipmute. + ipban_command: 1 + # The obscure seed changes how the "idRandom" variable in messages.yml is generated. Altering this option will invalidate all previously generated random IDs. + # If the seed is revealed, the generated IDs may be predictable to someone who has sufficient knowledge. + # Words and numbers are accepted for the seed value. + obscure_seed: 0 + + # If enabled, punishment broadcasts will be silent by default. + # This can be overridden per-punishment by using the "-p" (public) flag (the opposite of "-s"). + silent: true + + # If enabled, punishments will be IP-based by default. (All bans will be IP bans, all mutes will be IP mutes, etc.) + # The affected commands can then still be executed with the base permissions (e.g. `litebans.ban`). For example, /ban does not require `litebans.ipban`, but executes an IP ban. + punish_ip: false + + # Instead of "CONSOLE", this name will be used to represent the console. + console_sender_name: Console + + # Use display names? + # This means that when moderators and punished players change their name using /nick, + # this name will be used in broadcasts and other messages instead of their regular name. + # The Bungee & Velocity versions of LiteBans cannot detect Spigot-side display names. + use_display_names: false + + # This allows /dupeip and /ipreport to scan every single IP address that a player has ever joined with. (Multiple IP scanning) + # If set to false, only the player's last IP address will be scanned. + # (This option requires `delete_previous_history: false`) + dupeip_scan_all_ips: false + + # If disabled, all previous IP addresses will be recorded, allowing /iphistory to work. + delete_previous_history: true + + # If enabled, LiteBans performs an additional database query on login to provide case-insensitive name bans and mutes. + # This also prevents players from evading bans by switching from offline-mode to online-mode (through FastLogin, for example), or from Geyser to Java Edition in offline-mode. + ban_names: false + + # If enabled, all previous login history will be unbanned when unbanning a player. + # Essentially a "chain unban" - it can resolve multiple IP bans at the same time, and it will be more effective if "delete_previous_history" is disabled. + unban_all_history: false + + # If a kick message contains any of these, it will not be added to the database. + # You can set this list to [''] if you don't want any kicks to be added to the database. + ignored_kick_messages: + - restarting + - afk + + # This option controls how often notifications are sent from a single player. + # When a player tries to join when banned or talk while muted, + # you won't see any more messages from them for a short while. + notification_throttle_ticks: 12000 + + # If enabled, a kick reason must be provided, otherwise players will get an error. + require_kick_reason: false + + # If enabled, a ban or mute reason must be provided, otherwise players will get an error. + # When set to false, "default_ban_reason" and "default_mute_reason" in messages.yml are used as reasons when no reason is provided. + require_ban_mute_reason: false + + # If enabled, an unban or unmute reason must be provided, otherwise players will get an error. + require_unban_unmute_reason: false + + # After configuring import options, run "/litebans import start" to begin the import. + # The import process occurs while the server is running, no downtime is required. + import: + # You can import from: MaxBans, Ultrabans, BanHammer, BanManagerv4, BanManagerv5, BanManagerv7, BungeeAdminTools, AdvancedBan(MySQL only), LibertyBans(MySQL only), LiteBans, Vanilla. + # Vanilla means importing from banned-players.json, which is also used by Essentials. + from: vanilla + + # If enabled, importing will be done from a SQLite database instead of a MySQL database. + # You can ignore this if importing from banned-players.json. + # If importing from LiteBans, H2 will be used instead of SQLite. + sqlite: true + + # SQLite file locations: + # MaxBans: plugins/MaxBans/bans.db + # Ultrabans: plugins/Ultrabans/banlist.db + # BanHammer: plugins/BanHammer/BanHammer.db + sqlite_file: plugins/MaxBans/bans.db + + import_ipbans: true + ## MySQL import settings ## + import_mysql_address: localhost:3306 + import_mysql_database: maxbans + import_mysql_username: '' + import_mysql_password: '' + import_table_prefix: default + + ############################## + ###### Advanced settings ##### + ############################## + + # If enabled, broadcasts and notifications generated by this instance or obtained from other instances will be displayed here. + # If you're getting duplicate broadcasts, disable this on each backend instance. + # Disabling this does not disable synchronization, it only prevents an instance from sending messages locally. + # (On a proxy-side instance, a "local" message will reach players on all servers on the network, not just the origin server) + local_messages: true + + lockdown: + enabled: true + # If enabled, /lockdown will continue after restarts. + persist_enabled: true + + # If enabled, the local system timezone will be used. + # UTC time will be stored in the database, but dates will be formatted using the timezone offset. + use_timezone: true + + # If enabled, LiteBans will use the timezone stored in the database. + use_database_time: false + + # This option allows you to disable recording IP history on specific servers. + # Example: ignored_iphistory_servers: ['Lobby', 'Hub'] + # This is useful when you have a layer of authentication (e.g. AuthMe or 2FA) if unauthenticated players are not allowed to switch to other servers from the lobby server. + # Under Spigot, you can add 'local' or the server_name value to this list to prevent this server from recording IP history. + ignored_iphistory_servers: [ ] + + # Players in this list will not be shown in /dupeip or /alts output. + # Names, UUIDs and IP addresses can be specified. + hidden_dupeip_players: [ ] + + # This option controls the behaviour of the "-N" flag. This flag prevents active bans/mutes from being overridden. + # If enabled, the "-N" flag will only prevent bans from being overridden if the active ban has a lower duration. + override_lower_duration: false + + # Amount of entries to show on /history and /staffhistory by default. + default_history_limit: 10 + + # This is the amount of bans shown on each page for /banlist. + # Note that ban entries can span 2-3 lines. + banlist_bans_per_page: 5 + + # Only show active bans for /banlist? + banlist_show_active_only: false + + # If enabled, players with `litebans.exempt.bypass` permission can punish exempt players. + # Note that all operators will usually have this permission unless negated. + allow_exempt_bypass: false + + # If enabled, online player names will be auto-completed. + # Example: /ban Pl -> /ban Player + # This has absolutely nothing to do with tab-completion. + autocomplete_online_player_names: false + + # If enabled, AuthMe will be detected and IP history will only be added after a player has successfully logged in. + # This option will only work under Spigot, since AuthMe is a Spigot plugin. + support_authme: true + + # If enabled, ProtocolLib will be detected and chat events will be cancelled before they can be processed by any other plugins. + # This can help prevent plugin conflicts which allow muted players to chat. + # This option will only work under Spigot, since ProtocolLib is a Spigot plugin. + use_protocollib: true + + # If enabled, players will be checked for bans after they have joined. (Spigot only) + # This should not be enabled unless you have a conflicting plugin which is un-cancelling login events and allowing banned players to log in. + # Players are checked before login regardless of this option. + check_after_join: false + + # /ipreport will not show accounts that have no other players attached by default. + ipreport_minimum_accounts: 1 + + # For Spigot instances: If enabled, all players joining this instance will not be checked for bans. + disable_login_ban_check: false + # For Bungee/Velocity instances: Any servers listed here will not check for banned players on login. + # Example: disable_login_ban_check_servers: [ 'Hub1', 'Hub2' ] + disable_login_ban_check_servers: [ ] + + # If enabled, LiteBans will notify you when an update is available. + update_check: true + + debug_level: 0 + + LuckPerms-config.yml: | + #################################################################################################### + # +----------------------------------------------------------------------------------------------+ # + # | __ __ ___ __ __ | # + # | | | | / ` |__/ |__) |__ |__) |\/| /__` | # + # | |___ \__/ \__, | \ | |___ | \ | | .__/ | # + # | | # + # | https://luckperms.net | # + # | | # + # | WIKI: https://luckperms.net/wiki | # + # | DISCORD: https://discord.gg/luckperms | # + # | BUG REPORTS: https://github.com/LuckPerms/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: "${CFG_LUCKPERMS_SERVER_NAME}" + + # 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. + # NOTE: 基本はYAMLでIaCとして管理するが、一部適さない設定もあるので、MariaDBに保存するものもある。 + # 詳細は、split-storage の設定項目を参照してください。 + storage-method: yaml + + # 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: mariadb + + # 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 + + # Credentials for the database. + username: root + 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: 2 + + # 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: 2 + + # 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: true + methods: + # These options don't need to be modified if split storage isn't enabled. + user: yaml + group: yaml + track: yaml + # LuckPerms が独自に管理する UUID と MCID の紐づけキャッシュ。特に IaC として管理する必要がないため、DB 管理。 + uuid: mariadb + # LuckPerms の操作ログ。MariaDB に入れておけば、Grafana で検索できるため、DB 管理。 + log: mariadb + + + + + # +----------------------------------------------------------------------------------------------+ # + # | | # + # | 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. + # => nats Uses Nats 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: auto + + # 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 + # Multiple Redis nodes can be specified in the same format as a string list under the name "addresses". + redis: + enabled: false + address: localhost + username: '' + password: '' + + # Settings for Nats. + # Port 4222 is used by default; set address to "host:port" if differs + nats: + 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.wiki/w/Target_selectors + resolve-command-selectors: false + + Multiverse-Core-config.yml: | + # This is the base tag. DON'T TOUCH IT. + multiverse-configuration: + + # This is used for more efficient config parsing. DON'T TOUCH IT. + ==: com.onarandombox.MultiverseCore.MultiverseCoreConfiguration + + # If the value is set to false, Multiverse will NOT enforce + # world access permissions. + # Basically permissions to access all worlds. + enforceaccess: 'false' + + # If this is set to true, we will prefix the chat with + # a colorful world alias if it's present. If not, we simply + # show the world's name in white. If this is false Multiverse + # won't touch your chat + prefixchat: 'true' + + # The format of the chat prefix if true. + prefixchatformat: '[%world%]%chat%' + + # A-sync chat toggle (improves chat performance when on) + useasyncchat: 'true' + + # If this is set to true, Multiverse will enforce access permissions + # for all plugins, not just Multiverse. + teleportintercept: 'true' + + # If true, Multiverse will use the firstspawnworld value as the world new players will join. + # Set to false if you use another spawn plugin. + firstspawnoverride: 'true' + + # If this is set to true, users will be notified of what permission(s) + # they lack to perform an action in Multiverse. If this is false, + # they are denied silently. + displaypermerrors: 'true' + + # If true, MV will attempt to enable Buscript. This may fail on more recent versions of Java. + enablebuscript: 'true' + + # This is our debug flag. Its value can be 0-3. It can be used to determine permission issues and more. + # Otherwise, there's no need to touch this. If not instructed by a wiki page or developer. + # 0 - Off, no debug messages. + # 1 - + # 2 - + # 3 - + globaldebug: '0' + + # If true, the startup console messages will no longer show. + silentstart: 'false' + + # How long to leave in between sending a message to the player. + # In Milliseconds - Default is '5000' which is 5 Seconds. + messagecooldown: '5000' + + # This just signifies the version number so we can see what version of config you have. + # NEVER TOUCH THIS VALUE + version: '2.9' + + # This is the world you want players to spawn in. It does *NOT* + # have to be the world in server.properties! + firstspawnworld: world_2 + + # How fast are people allowed to use /MVTP + # In Milliseconds - Default is '1000' which is 1 Second. + # If you have 'teleportintercept' set to 'true', this will limit + # ANY plugin that uses the onTeleport method. + teleportcooldown: '1000' + + # This config option defines whether or not Multiverse should + # interfere with's Bukkit's default portal search radius. + # Setting it to true 'true' would mean you want to simply let + # Bukkit decides the search radius itself. + defaultportalsearch: 'false' + + # This config option limits the area in which Bukkit will attempt + # to find portals to connect to when using Vanilla style portals. + # This only has an effect on Vanilla portals, including the ones + # offered by Multiverse-NetherPortals. + portalsearchradius: '128' + + # If true, purge with be automatic. + autopurge: 'true' + + # If true, the donation link shown in the console will no longer show on startup. + idonotwanttodonate: 'true' + + Multiverse-Portals-config.yml: | + # This is the item ID of the wand that you'll use for + # portal selections. You can find a list of item IDs + # at the minecraft wiki: + # http://www.minecraftwiki.net/wiki/Item_id + # The default is a Wooden Axe + # IF YOU USE WORLDEDIT (or FAWE), CHANGING THIS WILL HAVE NO EFFECT + # If WorldEdit (or FAWE) is detected, we'll just use their tool. + wand: 271 + + # There are 2 types of portals, Vanilla style and MV style. + # If you don't understand the difference leave this on. If + # you would like to sacrifice MV Style portals for performance + # (only needed on VERY LARGE servers) set this to false. + useonmove: true + + # If you've filled a multiverse portal with the purple goo + # Should it go to the nether if it has no end location? + portalsdefaulttonether: false + + # If set to false, All players can use ALL portals. + # If set to true, normal permissions will be checked + # multiverse.portal.access.PNAME + enforceportalaccess: true + + # How long must players wait (in milliseconds) in + # between portal uses. + portalcooldown: 1000 + + # Allows automatic removal of any portal + # blocks in a portal after "/mvp remove". + clearonremove: false + + # Determines whether vehicles can teleport through portals. + teleportvehicles: true + + # Determines what materials a portal's frame can be made of. If empty, all materials are allowed. + framematerials: [] + + # This just signifies the version number so we can see what version of config you have. + # NEVER TOUCH THIS VALUE + version: 2.7 + + PlugManX-config.yml: | + ### + # A list of plugins that we should ignore when doing enable, disable, restart, load, reload, and unload. + # + # This takes the form of a comma separated list enclosed within the brackets. + ### + ignored-plugins: [PlugMan, PlugManX, ViaVersion, ViaBackwards, ViaRewind, ProtocolSupport, ProtocolLib] + notify-on-broken-command-removal: true + auto-load: + enabled: false + check-every-seconds: 10 + auto-unload: + enabled: false + check-every-seconds: 10 + auto-reload: + enabled: false + check-every-seconds: 10 + # Do not change this value + version: 2 + + ProtocolLib-config.yml: | + global: + # Settings for the automatic version updater + auto updater: + notify: true + download: false + + # Number of seconds to wait until a new update is downloaded + delay: 43200 # 12 hours + + metrics: true + + # Prints certain warnings to players with the protocol.info permission + chat warnings: true + + # Automatically compile structure modifiers + background compiler: true + + # Disable version checking for the given Minecraft version. Backup your world first! + ignore version check: + + # Whether or not to enable the filter command + debug: false + + # Whether or not to print a stack trace for every warning + detailed error: false + + # The engine used by the filter command + script engine: JavaScript + + suppressed reports: + + Shopkeepers-config.yml: | + # *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* + # Shopkeepers Config + # Wiki: https://github.com/Shopkeepers/Shopkeepers-Wiki/wiki/Configuration + # The wiki also explains how item data gets specified inside the config. + # *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* + + # Determines the required config migrations. Do not edit manually! + config-version: 6 + # The initial debugging state of the plugin. + debug: false + # Additional debugging options. + # - 'log-all-events': Logs all events. + # - 'print-listeners': Prints the registered listeners for the first call of + # each event. + # - 'shopkeeper-activation': Enables debugging output related to shopkeeper + # activation. + # - 'regular-tick-activities': Enables debug output for regular shopkeeper + # activities and behaviors that would otherwise cause debug spam when being + # enabled by default. This includes for example the activity of teleporting + # shopkeepers back into place, updating their location when they are mobile + # and moved around, or behaviors such as the playing of sound effects. + # - 'visualize-shopkeeper-ticks': Visualizes the ticking activities of + # shopkeepers in-game. + # - 'commands': Enables additional commands related debugging output. + # - 'owner-name-updates': Logs information when updating stored shop owner + # names. + # - 'item-migrations': Logs whenever a shopkeeper performs item migrations + # (e.g. for trade offers). + # - 'item-conversions': Logs whenever we explicitly convert items to Spigot's + # data format. Note that this does not log when items get implicitly + # converted, which may happen under various circumstances. + # - 'empty-trades': Logs detailed item information for the selected trade and + # the items in the input slots whenever a player clicks an empty trading + # result slot. + # - 'text-components': Logs additional debug output whenever component-based + # text is sent. + debug-options: [] + # Whether to report anonymous usage statistics to https://bStats.org + # All reported information can be found here: + # https://bstats.org/plugin/bukkit/Shopkeepers + enable-metrics: true + + # *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* + # Messages + # *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* + + # Find community translations at https://github.com/Shopkeepers/Language-Files + # Wiki: https://github.com/Shopkeepers/Shopkeepers-Wiki/wiki/Language-Files + language: en-default + + # *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* + # Shopkeeper Data + # *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* + + # The file encoding to use for the save file. If you have issues with the save + # file, such as special characters not being saved correctly, make sure that + # this encoding supports these characters. It is recommended to keep this at + # its default 'UTF-8'. It is not supported to dynamically change this encoding + # after the save file has already been created. + file-encoding: "UTF-8" + # Whether to immediately save all shopkeeper data whenever a shopkeeper is + # edited. If disabled, the shopkeeper data is saved in 5 minute intervals and + # when the plugin is shut down. + # If you have a large server with many players and/or many shopkeepers, it + # might be a good idea to disable this for performance reasons. + save-instantly: true + + # Enables the automatic conversion of items inside the inventories of players + # and shop containers whenever a player opens a shopkeeper UI (e.g. trading, + # editor, hiring, etc.) The items are converted to conform to Spigot's internal + # data format. + # This setting helps with issues related to items that have been created on + # previous Spigot versions or via some Minecraft mechanism (e.g. give command, + # loot tables, etc.) no longer getting accepted when trading with shopkeepers. + # In order for the items to get reliably accepted during trades, their data has + # to match the internal format that Spigot uses when a plugin would create the + # same items via the Spigot API. Spigot occasionally makes changes to this + # internal data format. Any previously created items, or newly created items + # that don't conform to this new format, may cause trading and item stacking + # issues then. + # This setting is intended to help with the portion of the issue affecting + # shopkeeper trades. This setting will not reliably help you prevent item + # stacking related issues! + # Enabling this setting comes with a performance impact! Try to avoid using + # this option and search for alternative solutions instead (e.g. stick to + # Spigot's data format when creating items via Minecraft mechanisms). Try to + # only keep this setting enabled for as long as required (e.g. until you assume + # that most of your players' legacy items got converted by now). + convert-player-items: false + # If 'convert-player-items' is enabled, this setting toggles whether the + # 'convert-player-items-exceptions' setting acts as black- or whitelist. + # If enabled, all items inside the checked inventories will be converted except + # those that match the items specified by 'convert-player-items-exceptions'. + # If disabled, only items that match the items specified by + # 'convert-player-items-exceptions' get converted. + convert-all-player-items: true + # Black- or whitelist of items affected by the 'convert-player-items' setting. + convert-player-items-exceptions: [] + + # *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* + # Plugin Compatibility + # *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* + + # During start-up, the plugin performs some basic checks to verify that certain + # aspects of the server implementation work as expected. For example, one of + # the tested aspects is that the comparison of item stacks works correctly, + # which is quite essential for an item-based trading plugin such as + # Shopkeepers. If any of these tests fail, the plugin disables itself to avoid + # problems that can otherwise arise later. + # However, even if one of this tests fails, the plugin might still be usable to + # some degree. For example, an issue with the item stack comparisons might only + # affect specific kinds of item stacks. + # If you want to take the risk and try running the plugin anyway, even though a + # potential problem has been detected, you can enable this setting. However, do + # not expect any support when you subsequently encounter problems while this + # setting is enabled, or has been enabled in the past. + ignore-failed-server-assumption-tests: false + + # If enabled, Shopkeepers tries to bypass other plugins that deny mob spawning + # (e.g. land protection plugins). + bypass-spawn-blocking: true + # If enabled, Shopkeepers takes into account whether other plugins deny + # interaction with the shopkeepers. + check-shop-interaction-result: false + + # If enabled, players will only be able to place shopkeepers where they have + # permission from WorldGuard to build or where the 'allow-shop' flag is set. + enable-world-guard-restrictions: false + # If enabled (additionally to the enable-world-guard-restrictions setting), + # players will only be able to place shopkeepers in regions where the + # 'allow-shop' flag is set, but nowhere else. However, players will still + # require container access to set up shops. And in case they can't place + # containers in the affected region, shop containers need to be pre-setup by + # someone else and the require-container-recently-placed setting needs to be + # disabled. + require-world-guard-allow-shop-flag: false + # Whether to register the allow-shop flag with WorldGuard (if no other plugin + # has registered it yet). Usually there should be no need to disable this. + # Changing this setting has no effect until the next server restart or full + # server reload! + register-world-guard-allow-shop-flag: true + + # If enabled, players will only be able to place shopkeepers in places that + # have been designated as commercial areas by Towny. + enable-towny-restrictions: false + + # In order to guard against unnoticed changes to a player's currently open + # inventory, the Shopkeepers plugin verifies that the open inventory still + # matches the expected type of inventory before it handles inventory + # interactions. This setting disables this verification. + # It is usually recommended keeping this verification enabled. However, when + # the Shopkeepers plugin is used on certain types of modded servers (such as + # variants of Cauldron and its successors), a known issue is that these types + # of servers sometimes report that the currently open inventory is of a type + # different to what it actually is. The result of this verification is then + # that for example the trading inventory is closed when a player tries to + # trade. + # Even though modded servers are not officially supported and may break the + # plugin in various other unexpected ways, disabling the inventory verification + # via this setting may help resolve this particular known incompatibility. + disable-inventory-verification: false + + # *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* + # Shop Creation and Removal + # *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* + + # The item that is used to create player shops. + # Use the '/shopkeeper give' command to give yourself this item in-game. + shop-creation-item: + type: VILLAGER_SPAWN_EGG + display-name: '{"text":"Shopkeeper","italic":false,"color":"green"}' + + # Whether to add a custom NBT tag to newly created shop creation items, e.g. + # when created via the '/shopkeeper give' command. + # Tag: 'PublicBukkitValues: {"shopkeepers:shop_creation_item": 1b}' + # In combination with 'identify-shop-creation-item-by-tag', this provides + # several benefits, such as being able to change the 'shop-creation-item' in + # the future without breaking any existing shop creation items in the world + # (e.g. in chests, player inventories, trades, third-party plugin data, etc.). + # By default, this and 'identify-shop-creation-item-by-tag' are enabled for new + # configurations, but disabled for backwards compatibility reasons for servers + # that migrated from a config-version of 5 or lower. + add-shop-creation-item-tag: true + # Whether to identify the shop creation item by the custom NBT tag added via + # 'add-shop-creation-item-tag'. + # This is a separate setting in order to help server owners with the migration + # process: Server owners can enable 'add-shop-creation-item-tag' very early to + # already add the tag to all newly created shop creation items, but separately + # enable 'identify-shop-creation-item-by-tag' later, once they expect or + # verified that the old shop creation item is no longer in use. + # Unfortunately, the Shopkeepers plugin provides no built-in solution to + # automatically migrate all occurrences of the old shop creation item in the + # world or plugin data. + identify-shop-creation-item-by-tag: true + + # Whether to prevent normal usage of the shop creation item. Players with the + # bypass permission (usually admins) can bypass this. + prevent-shop-creation-item-regular-usage: true + # By default, the shop type is selected by right-clicking while holding the + # shop creation item in hand, and the shop object type is selected by sneaking + # and right-clicking. If this setting is enabled, these controls are inverted. + invert-shop-type-and-object-type-selection: false + # Whether deleting (or destroying) a player shopkeeper returns (drops) the + # shop creation item. + deleting-player-shop-returns-creation-item: false + + # Whether to allow creating player shops with the /shopkeeper command. + create-player-shop-with-command: false + + # Whether the selected container must have been recently placed by the player + # who is attempting to create the shopkeeper. + require-container-recently-placed: true + # The maximum distance a player shopkeeper can be placed from its backing + # container. This cannot be set to a value greater than 50. + max-container-distance: 15 + # The default maximum number of shops a player can have. Set to -1 to disable + # this limit. + max-shops-per-player: -1 + # A list of permission nodes that can be used to set the maximum number of + # shops a specific player or group of players can have. Use the permission node + # pattern 'shopkeeper.maxshops.' to use this feature. The permission + # node 'shopkeeper.maxshops.unlimited' indicates no limit. These permission + # nodes can only be used to increase the default limit, not decrease it. + max-shops-perm-options: 5,15,25 + + # Whether to protect player shop containers from being accessed or broken. It + # is usually recommended keeping this enabled. + protect-containers: true + # Whether to prevent item movements from and to protected shop containers (via + # hoppers, droppers, etc.). If you disable this, you and your players will have + # to somehow else protect their shop container from unauthorized players who may + # maliciously insert or extract items. This can be rather tricky even for land + # protection plugins, because items can also be extracted via hopper minecarts. + # Your land protection plugin would need to prevent other players from placing + # or pushing those minecarts into a protected region. + # Item movement will always be allowed if the container protection is disabled. + prevent-item-movement: true + # Whether to delete player shopkeepers when their container is broken. + delete-shopkeeper-on-break-container: false + + # If enabled (set to a value greater than 0), Shopkeepers will check for and + # remove the shops of inactive players once every plugin start. This setting + # determines how many days ago a player's last login has to be in order for the + # player to be considered inactive. + player-shopkeeper-inactive-days: 0 + + # *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* + # Shop (Object) Types + # *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* + + # A list of mob types that can be used for shopkeepers. Adding new mob types to + # the defaults here is unsupported, as some mob types might not properly work + # and can cause all kinds of issues. + enabled-living-shops: + - VILLAGER + - ALLAY + - ARMADILLO + - AXOLOTL + - BEE + - BLAZE + - BOGGED + - BREEZE + - CAMEL + - CAT + - CAVE_SPIDER + - CHICKEN + - COD + - COW + - CREEPER + - DOLPHIN + - DONKEY + - DROWNED + - ENDERMAN + - EVOKER + - FOX + - FROG + - GHAST + - GIANT + - GLOW_SQUID + - GOAT + - HOGLIN + - HORSE + - HUSK + - ILLUSIONER + - IRON_GOLEM + - LLAMA + - MAGMA_CUBE + - MOOSHROOM + - MULE + - OCELOT + - PANDA + - PARROT + - PHANTOM + - PIG + - PIGLIN + - PIGLIN_BRUTE + - PILLAGER + - POLAR_BEAR + - PUFFERFISH + - RABBIT + - RAVAGER + - SALMON + - SHEEP + - SHULKER + - SILVERFISH + - SKELETON + - SKELETON_HORSE + - SLIME + - SNIFFER + - SNOW_GOLEM + - SPIDER + - SQUID + - STRAY + - STRIDER + - TADPOLE + - TRADER_LLAMA + - TROPICAL_FISH + - TURTLE + - VEX + - VINDICATOR + - WANDERING_TRADER + - WARDEN + - WITCH + - WITHER_SKELETON + - WOLF + - ZOGLIN + - ZOMBIE + - ZOMBIE_HORSE + - ZOMBIE_VILLAGER + - ZOMBIFIED_PIGLIN + + # Whether shopkeeper mobs shall not be affected by gravity. + disable-gravity: false + # The range in chunks around players in which shopkeeper mobs will be affected + # by gravity. Setting this too high may have a negative impact on performance. + # And setting it below the server's entity tracking range will result in + # players being able to see mobs floating in mid-air until they get close + # enough. A value of 0 will limit the gravity to mobs within chunks that + # contain a player. This has no effect if gravity is disabled. + gravity-chunk-range: 4 + + # The number of Minecraft ticks between behavior updates of shopkeeper mobs. + # This controls the rate at which we update the gravity and AI of shopkeeper + # mobs. Values above 1 indicate a reduced tick rate and result in a less + # smooth, less reactive, and possibly slower behavior in comparison to the + # behavior of mobs in vanilla Minecraft. + # In order to compensate for a reduced tick rate some activities may be scaled + # accordingly. This ensures, for example, that mobs still rotate their head at + # the same speed towards nearby players, or that mobs still fall at the same + # speed when being affected by gravity. + # Consequently, a reduced tick rate is less performance-intensive in total, but + # may on the other hand be slightly more performance-intensive per individual + # behavior update. + # Values above 3 are clearly noticeable and offer little additional benefit. + mob-behavior-tick-period: 3 + + # Whether shulker shopkeepers shall peek when a player is nearby. + shulker-peek-if-player-nearby: true + # A value between 0.0 and 1.0 that defines how much the shulker opens when it + # peeks. + shulker-peek-height: 0.3 + + # Whether mob shopkeepers make sounds. + silence-living-shop-entities: true + + # Whether to show nameplates of mob shopkeepers. + show-nameplates: true + # Whether to always show nameplates. If disabled, nameplates will only be shown + # when looking directly at the shopkeeper. + always-show-nameplates: false + + # Whether to allow the creation of Citizens NPC shopkeepers. Requires the + # plugin Citizens. + enable-citizen-shops: true + # The entity type of newly created Citizens NPC shopkeepers. + default-citizen-npc-type: 'PLAYER' + # Whether to set the Citizens NPC owner of player-owned NPC shopkeepers. If + # disabled, the Shopkeepers plugin will automatically remove the Citizens NPC + # owners of player shopkeepers again. + # By enabling this setting, and configuring the Citizens command permissions + # for your players accordingly, you can allow shop owners to use the commands + # of the Citizens plugin to edit the Citizens NPCs of their NPC shopkeepers. + set-citizen-npc-owner-of-player-shops: false + # Whether to make shopkeeper Citizens NPCs pushable by fluids (true), unpushable by fluids (false), + # or not modify their current behavior ("undefined"). + citizen-npc-fluid-pushable: false + # Whether to cancel interactions with Citizen shopkeeper NPCs. + # The default behavior is to cancel all interactions with shopkeeper shop objects (mobs, signs, + # citizen NPCs, etc.) in order to prevent any usual interaction behaviors to take place (e.g. + # villagers opening their vanilla trading interface instead of the shopkeeper trading interface). + # However, Citizen NPCs can be configured to trigger certain actions when they are interacted with, + # such as executing attached commands. By disabling this setting, the usual NPC actions are still + # triggered in addition to the shopkeeper specific behavior of opening the trading or editor UI. + # However, be aware that this can result in additional unintentional behaviors to be triggered as + # well. For example, when interacting with a villager NPC, by default the Citizens plugin prevents + # the villager's normal trading interface to open, but other vanilla actions such as incrementing + # the player's 'talked-to-villager' statistic may still take place. So if you disable this setting, + # you will have to make sure that the resulting interaction behavior is what you intend it to be. + cancel-citizen-npc-interactions: true + # Whether to immediately save all Citizens NPCs whenever the Shopkeepers plugin + # modifies a Citizens NPC. If disabled, the Citizens plugin handles the saving + # of the Citizens NPCs as usual: They are saved when the Citizens plugin shuts + # down, periodically as configured in the Citizens config, and when manually + # triggered via command by a player. + save-citizen-npcs-instantly: false + # Whether shopkeeper snapshots shall save and restore Citizens NPC data. + # Warning: When you disable this setting, the Shopkeepers plugin automatically + # deletes all NPC data that was previously saved by shopkeeper snapshots. + snapshots-save-citizen-npc-data: true + # Whether to automatically delete all invalid Citizen shopkeepers during plugin + # startup. This includes for example Citizen shopkeepers that are attached to + # the same Citizen NPC as another shopkeeper, or any shopkeepers for which the + # corresponding Citizen NPC is missing (this can for example occur if the NPC + # has been deleted while the Shopkeepers plugin was disabled). + # In previous versions, this has been the default behavior. However, because it + # is risky to automatically delete shopkeepers, especially since the detection + # of invalid shopkeepers can potentially go wrong, this functionality is now + # offered via this setting and disabled by default. In either case, the plugin + # will log warnings whenever it detects invalid Citizen shopkeepers. + # Alternatively, the command '/shopkeepers cleanupCitizenShopkeepers' can also + # be used to manually delete these invalid shopkeepers when they are detected. + delete-invalid-citizen-shopkeepers: false + + # Whether to allow the creation of sign shops. + enable-sign-shops: true + # Whether to allow the creation of sign posts (instead of only wall signs). + enable-sign-post-shops: true + # Whether to allow the creation of hanging sign shops. + enable-hanging-sign-shops: true + + # *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* + # Naming + # *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* + + # A regular expression used to validate shopkeeper names. For detailed + # information on regular expressions the following documentations are helpful: + # * https://docs.oracle.com/javase/9/docs/api/java/util/regex/Pattern.html + # * http://www.regular-expressions.info/tutorial.html + # Here are a few examples: + # * "[A-Za-z0-9 ]{3,25}": The default. Allows the letters A to Z, in both upper + # and lower case, and the digits 0 to 9. The name has to consist of at least 3 + # characters and can be maximal 25 characters long. + # * "[A-Za-z0-9&§# ]{3,25}": Same as the default, but allows using color codes. + # * "[\\p{L}0-9 ]{3,25}": Same as the default, but allows any letters to be + # used, regardless of the language. If you encounter errors when the config is + # loaded, make sure that your config file is encoded as UTF-8. + # * ".*": Matches everything. + # * Adding "(?i)" at the front enables case insensitive matching. + # * "(?=X)": The name has to match "X" (X can be another embedded expression), + # but the name is not consumed and has to also match the following expressions. + # * "(?!.*X).*": The name is not allowed to contain anything that matches "X". + # * "(?i)(?=[a-z0-9 ]{3,25})(?!.*bitch|dick|ass).*": Filters bad words. + name-regex: "[A-Za-z0-9 ]{3,25}" + # Whether player shops get named via item. This will hide the naming option + # from the editor menu. + naming-of-player-shops-via-item: false + # Whether shop owners are allowed to rename their Citizens NPC shopkeepers. By + # default, those shopkeepers will be named after the player who owns the shop. + allow-renaming-of-player-npc-shops: false + + # *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* + # Editor Menu + # *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* + + # Placeholder items to use inside the editors for empty trades, and for empty + # slots of partially set up trades. The display name and lore of these items + # (unless they are set to AIR by default) are specified inside the language + # file. + # In combination with their display name and lore, these items must not match + # any items that players are able to set up trades with. + selling-empty-trade-result-item: GRAY_STAINED_GLASS_PANE + selling-empty-trade-item1: GRAY_STAINED_GLASS_PANE + selling-empty-trade-item2: GRAY_STAINED_GLASS_PANE + selling-empty-item1: BARRIER + selling-empty-item2: BARRIER + + buying-empty-trade-result-item: GRAY_STAINED_GLASS_PANE + buying-empty-trade-item1: GRAY_STAINED_GLASS_PANE + buying-empty-trade-item2: AIR + buying-empty-result-item: BARRIER + buying-empty-item2: AIR + + trading-empty-trade-result-item: GRAY_STAINED_GLASS_PANE + trading-empty-trade-item1: GRAY_STAINED_GLASS_PANE + trading-empty-trade-item2: GRAY_STAINED_GLASS_PANE + trading-empty-result-item: BARRIER + trading-empty-item1: BARRIER + trading-empty-item2: BARRIER + + book-empty-trade-result-item: GRAY_STAINED_GLASS_PANE + book-empty-trade-item1: GRAY_STAINED_GLASS_PANE + book-empty-trade-item2: GRAY_STAINED_GLASS_PANE + book-empty-item1: BARRIER + book-empty-item2: BARRIER + + # The number of pages that can be filled with trades. The maximum is 10. + max-trades-pages: 5 + + # The items used for the buttons and icons in the trades page row. + # The display name and lore of these items get set via the corresponding + # messages and can therefore not be defined here. + previous-page-item: WRITABLE_BOOK + next-page-item: WRITABLE_BOOK + current-page-item: WRITABLE_BOOK + trade-setup-item: PAPER + + # The item that players can rename and then use as a substitute for items they + # don't have yet when they set up their trade offers or mob equipment. + # Set this to AIR to disable the use of placeholder items. + placeholder-item: PAPER + + # The item used for the set-name button, and the naming item (if enabled). + name-item: NAME_TAG + + # Whether to enable the equipment editor for all mobs and all equipment slots. + # By default, the equipment can only be edited for mobs and slots that are known, at least for + # certain items, to visually affect the mob. Enabling this setting can for example be useful for + # testing purposes, e.g. when new mobs are added to the game, or when existing mobs start to support + # additional equipment slots. + # Certain shop objects, such as for example horses (armor) or llamas (carpet), provide dedicated + # editor buttons to edit certain equipment. This setting also enables the equipment editor for these + # mobs and slots. Any non-empty equipment specified via the equipment editor overrides the equipment + # of these dedicated editor buttons. + enable-all-equipment-editor-slots: false + + # Whether to allow shop owners to move their shops. + enable-moving-of-player-shops: true + # The item used for the move button. + move-item: ENDER_PEARL + + # Whether the editor menu of player shops contains an option to open the shop's + # container. + enable-container-option-on-player-shop: true + # The item used for the 'open container' editor button. + container-item: CHEST + + # The item used for the trade notifications editor button in player shops. + trade-notifications-item: BELL + + # The item used for the delete button. + delete-item: BONE + + # *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* + # Non-Shopkeeper Villagers + # *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* + + # Whether to prevent trading with non-shopkeeper villagers. + disable-other-villagers: false + # Whether to block regular non-shopkeeper villagers from spawning. Villagers + # spawned by plugins, spawn eggs, mob spawners or by curing zombie villagers + # are however not affected by this. + block-villager-spawns: false + # Whether to prevent curing of zombie villagers. + disable-zombie-villager-curing: false + # Whether non-shopkeeper villagers can be hired. + hire-other-villagers: false + + # Whether to prevent trading with non-shopkeeper wandering traders. + disable-wandering-traders: false + # Whether to block non-shopkeeper wandering traders and trader llamas from + # spawning. Wandering traders and trader llamas spawned by plugins, spawn eggs + # or mob spawners are however not affected by this. + block-wandering-trader-spawns: false + # Whether non-shopkeeper wandering traders can be hired. + hire-wandering-traders: false + + # Whether regular villagers can be edited by sneaking and right-clicking. + edit-regular-villagers: false + # Whether regular wandering traders can be edited by sneaking and + # right-clicking. + edit-regular-wandering-traders: false + + # *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* + # Hiring + # *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* + + # The item to use for the hire button in player shopkeepers that are for sale, + # and for the hire-cost when hiring non-shopkeeper villagers. + hire-item: EMERALD + # The amount of hire-cost items it costs to hire a non-shopkeeper villager. + hire-other-villagers-costs: 1 + # Whether hiring a player shopkeeper also requires the permission to create + # player shopkeepers of that type. + hire-require-creation-permission: true + + # *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* + # Trading + # *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* + + # Whether to prevent players from trading with their own shopkeepers. Keeping + # this enabled is recommended. + prevent-trading-with-own-shop: true + # With this enabled player shopkeepers don't trade while their owner is online. + # This might be useful for role-playing servers that want to force players to + # trade with each other directly while they are online. + prevent-trading-while-owner-is-online: false + # In some situations, Minecraft allows the trading of items even if they do not + # fully match (e.g. villagers accept items with additional metadata). With this + # setting enabled, the Shopkeepers plugin will always check that the traded + # items fully match before allowing the trade to take place. + use-strict-item-comparison: false + + # Whether to increment Minecraft's talked-to-villager and traded-with-villager + # statistics whenever a player opens the trading menu and trades with a + # shopkeeper. + increment-villager-statistics: false + # Whether to mimic Minecraft's normal villager trading sounds whenever a player + # trades with a villager shopkeeper. This only applies to villager shopkeepers + # and ignores the 'silence-living-shop-entities' setting. + simulate-villager-trading-sounds: true + # Whether to simulate villager ambient sounds for villager shopkeepers. This + # ignores the 'silence-living-shop-entities' setting. + simulate-villager-ambient-sounds: false + # Whether to mimic Minecraft's normal wandering trader trading sounds whenever + # a player trades with a wandering trader shopkeeper. This only applies to + # wandering trader shopkeepers and ignores the 'silence-living-shop-entities' + # setting. + simulate-wandering-trader-trading-sounds: true + # Whether to simulate wandering trader ambient sounds for wandering trader + # shopkeepers. This ignores the 'silence-living-shop-entities' setting. + simulate-wandering-trader-ambient-sounds: false + # Whether to play the simulated trading sounds of villager and wandering trader + # shopkeepers only to the trading player, instead of broadcasting them to all + # nearby players as it is the case in vanilla Minecraft. This does not affect + # the simulated ambient sounds. + simulate-trading-sounds-only-for-the-trading-player: true + + # This sound effect is played to players when they trigger a successful trade. + trade-succeeded-sound: + sound: UI_BUTTON_CLICK + pitch: 2.0 + volume: 0.3 + # This sound effect is played to players when their trade attempt fails for any + # reason. + trade-failed-sound: + sound: BLOCK_BARREL_CLOSE + pitch: 2.0 + volume: 0.5 + + # The percentage of items (0-100) that are removed from the items that shop + # owners receive in trades in their shops. + # Be careful: Depending on the configuration, shop owners may end up not + # receiving any items! + tax-rate: 0 + # Whether to round up instead of down when calculating the tax of a player shop + # transaction. + tax-round-up: false + + # *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* + # Trade Notifications + # *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* + + # Whether to inform players with the required trade notification permission + # ('shopkeeper.trade-notifications.admin' for admin shop trade notifications + # and 'shopkeeper.trade-notifications.player' for player shop trade + # notifications) about trades that take place. If a player would also receive a + # trade notification because trade notifications for shop owners are enabled, + # they will only receive the shop owner specific trade notification. + notify-players-about-trades: false + # This sound effect is played when a player receives a trade notification. Set + # this to an empty String to disable the sound effect. + trade-notification-sound: "" + + # Whether to inform shop owners about trades that take place in their shops. + notify-shop-owners-about-trades: true + # This sound effect is played when a shop owner receives a trade notification. + # Set this to an empty String to disable the sound effect. + shop-owner-trade-notification-sound: + sound: ENTITY_EXPERIENCE_ORB_PICKUP + volume: 0.25 + + # *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* + # Trade Log + # *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* + + # Players can trigger many equal trades in quick succession. For example, when + # players trade by shift clicking the result slot, they can trigger up to 64 + # individual trades at once with a single click. And even when not shift + # clicking, they can quickly trigger a considerable number of trades. + # In order to represent the logged trades more compactly, we merge successive + # trades that happen over a certain period of time if they involve the same + # player, the same shopkeeper, and the same items. This setting specifies the + # maximum duration in ticks during which successive equal trades are merged. + # Setting this to a value of 0 disables the merging of trades. Setting this to + # a value of 1 will only merge trades that are triggered by the same inventory + # action (e.g. by the same shift click). + # It is recommended to not set this value to something longer than a few + # seconds: The longer the chosen duration, the greater the difference between + # the logged timestamps and shopkeeper states may be to the actual timestamps + # and shopkeeper states at which the merged trades took place. + trade-log-merge-duration-ticks: 300 + # The merging of trades is aborted prematurely if the time gap to the previous + # trade is longer than this duration in ticks. This setting can be used in + # combination with a larger value for 'trade-log-merge-duration-ticks' to limit + # the maximum waiting time for a subsequent trade. + # Setting this to a value of 0, or a value greater than or equal to + # 'trade-log-merge-duration-ticks' will cause this setting to have no effect. + # Setting this to something too low for trades to realistically be manually + # triggered (such as only a few ticks) will make the chosen + # 'trade-log-merge-duration-ticks' effectively pointless. For performance + # reasons, the actual duration may dynamically vary by several ticks. + trade-log-next-merge-timeout-ticks: 100 + + # Whether to log all trades to CSV files inside the plugin folder. + log-trades-to-csv: false + + # Whether to also log the metadata of items. This includes, for example, their + # display name, lore, enchantments, etc. This data will be logged in Spigot's + # YAML format. Enabling this setting can, however, noticeably increase the + # storage space requirements. + log-item-metadata: false + + # *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* + # Currencies + # *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* + + # The currency item that is used in player shops. + currency-item: EMERALD + + # A second, higher-value currency item that is used in the second trading slot + # of player shops. Set this to 'AIR' to disable the second currency. + high-currency-item: EMERALD_BLOCK + + # The value of the second currency, based on the first currency. + high-currency-value: 9 + # The second currency will only be used if an item's cost is greater than this + # value. + high-currency-min-cost: 20 + + ShulkerBoxBackPacks-config.yml: | + # ShulkerBox BackPacks for Craftbukkit / Spigot + # Author: Brandon (ThirtyVirus) Calabrese + # + # YouTube: https://www.youtube.com/channel/UC04QdEl71CFDogk8pzY7Geg + # Twitter: https://twitter.com/Thirtyvirus + # SpigotMC: https://www.spigotmc.org/members/thirtyvirus.179587/ + + # Permissions to use the plugin's featues + permission: ShulkerBoxBackPacks.use + nesting-permission: ShulkerBoxBackPacks.nesting + + # Allow nesting of Shulker Boxes + nesting: false + # Maximum depth of shulker box nesting (-1 is infinite) + nesting-depth: -1 + + # Disable plugin functions for renamed Shulker Boxes (for compatability with other plugins) + use-renamed-boxes: true + + # Disable plugin functions for renamed Shulker Boxes with special formatting ONLY (ex. Colors, bold, italics, etc...) + # This option is automatically disabled if the above is false + use-formatted-renamed-boxes: true + + SimpleElevator-config.yml: | + DebugMode: 'false' + Messages: + upMessage: Up + downMessage: Down + Sounds: + upSound: BLOCK_NOTE_BLOCK_HARP + downSound: BLOCK_NOTE_BLOCK_BASS + + tce-events.yml: | + Time1: .01:00:00 + Command1: plugman dump + Time2: .03:59:00 + Command2: say ===============お知らせ================= + Time3: .03:59:01 + Command3: say あと1分で、サーバが再起動します。 + Time4: .03:59:02 + Command4: say 引き続きプレイされるプレイヤーの皆様は + Time5: .03:59:04 + Command5: say ======================================== + Time6: .04:00:00 + Command6: stop + Time7: .03:50:00 + Command7: say ===============お知らせ================= + Time8: .03:50:01 + Command8: say あと10分で、サーバーが再起動します。 + Time9: .03:50:04 + Command9: say ======================================== + Time10: .03:55:00 + Command10: say ===============お知らせ================= + Time11: .03:55:01 + Command11: say あと5分で、サーバーが再起動します。 + Time12: .03:55:04 + Command12: say ======================================== + Time13: .03:57:00 + Command13: say ===============お知らせ================= + Time14: .03:57:01 + Command14: say あと3分で、サーバーが再起動します。 + Time15: .03:57:04 + Command15: say ======================================== + Time16: .03:59:03 + Command16: say 数分~30分後に再接続をお願いいたします。 + + ThisWorld-config.yml: | + Messages: + DontHavePermission: "&cYou don't have permission." + NotAvailable: "&cNot available in this world." + ConfigReloaded: "&aConfig has been reloaded." + Help: + Help: "Show this help." + Show: "Show title of this world." + Reload: "Reload config file." + + # Time to display the title (Unit: seconds) + # Notice: ActionBar has no effect + DefaultTime: + fadein: 0.5 + stay: 3.0 + fadeout: 0.5 + + Worlds: + world_2: + title: "&2メインワールド" + subtitle: "保護の上建築が可能なワールドです" + actionbar: "&c&l土地は保護しないと編集できませんのでご注意ください" + world_SW: + title: "&2第1整地" + subtitle: "自由に整地可能なワールドです" + actionbar: "&c&l上から掘るべし・空中ブロック、水、マグマは除去すべし・毎週自動リセットされます" + world_SW_2: + title: "&2第2整地" + subtitle: "保護の上整地が可能なワールドです" + actionbar: "&c&l上から掘るべし・空中ブロック、水、マグマは除去すべし" + world_SW_3: + title: "&2第3整地" + subtitle: "自由に整地可能なワールドです" + actionbar: "&c&l上から掘るべし・空中ブロック、水、マグマは除去すべし" + world_SW_4: + title: "&2第4整地" + subtitle: "保護の上整地が可能なワールドです" + actionbar: "&c&l上から掘るべし・空中ブロック、水、マグマは除去すべし" + world_SW_nether: + title: "&c整地ネザー" + subtitle: "鬼畜な整地をあなたに。自由に整地が可能" + actionbar: "&c&l上から掘るべし・空中ブロック、水、マグマは除去すべし" + world_SW_the_end: + title: "&8整地エンド" + subtitle: "鬼畜な整地をあなたに。自由に整地が可能" + actionbar: "&c&l上から掘るべし・空中ブロック、水、マグマは除去すべし" + # Syntax ------> + # world_name: + # title: "maintitle message." + # subtitle: "&c&o&l&o&r&c&o&d&e subtitle message.(&&escape is &&)" + # actionbar: "actionbar message" + # # Overrides + # fadein: 0.5 + # stay: 1.75 + # fadeout: 0.5 + # <------ Syntax + # Color code is lowercase. + + TradeSystem-config.yml: | + TradeSystem: + Prefix: '&8[&cTrade&8] &r' + Language: ENG + # Permissions: + # "tradesystem.trade": Can accept/deny/toggle trade requests + # "tradesystem.trade.initiate": Can invite players for trades + # If permissions are disabled, every player is able to accept/deny/toggle/initiate trades + Permissions: false + # Only set this to 'true' if you're using TradeProxy. Otherwise, you'll be vulnerable to dupes caused by custom payload attacks. + TradeProxy: false + + # Both traders have to add an item/money to finish the trade + Trade_Both: true + # The GUI type which will be used to enter the money amount. Available options: SIGN, ANVIL + Input_GUI: ANVIL + Trade_Distance: + enabled: true + distance_in_blocks: 50 + + # This is highly recommended to be enabled. Otherwise, players can easily scam others. Only disable this setting if you know your users. + Revoke_Ready_State_on_Offer_Change: true + + Allowed_GameModes: + - SURVIVAL + Blocked_Worlds: + - ExampleWorld-1 + - ExampleWorld-2 + + Allowed_Regions: + # Valid modes: Blacklist, Whitelist + # Blacklist: All regions are allowed except the ones in the list + # Whitelist: Only the regions in the list are allowed + Mode: Blacklist + Regions: [] + + # Example: (all variables are optional) + # - Material: STONE + # Data: 0 + # DisplayName: 0 + # Lore: "Some text that will be searched in every line." + # CustomModelData: 0 + # Compare: IGNORE_CASE (Default=IGNORE_CASE; STRICT, IGNORE_CASE, CONTAINS, CONTAINS_IGNORE_CASE, REGEX_ANY, REGEX_ALL) + # + # Compare examples + # STRICT: "FOO" = "FOO" + # IGNORE_CASE: "FOO" = "foo" + # CONTAINS: "F" is in "Foo" + # CONTAINS_IGNORE_CASE: "f" is in "Foo" + # REGEX_ANY: "." matches "Foo" + # REGEX_ALL: ".*" matches "Foo" + Blacklist: + - Material: AIR + Compare: IGNORE_CASE + - DisplayName: '&cExample' + Material: AIR + Compare: IGNORE_CASE + - DisplayName: '&cExample, which blocks all items with this strange name!' + Compare: IGNORE_CASE + + Trade_Countdown: + Enabled: true + # in ticks (20 ticks = 1 second) + Interval: 20 + Repetitions: 3 + + # true: After finishing a trade all overflowing items will be dropped, if the inventory is full + # false: Prevent the trade partner to put too many items into the gui. Also prevents a trading player from picking up items. + Trade_Drop_Items: true + + # In seconds (e.g. after <60> seconds the request will be expired) + Trade_Request_Expiration_Time: 60 + + # The report shows what was traded during a trade. + Trade_Finish_Report: + Items: true + # Whether to only display an item's name rather than item type and name + Display_Name_Only: false + Economy: true + + Action_To_Cancel: + Player_get_damaged: true + Action_To_Request: + Shift_Rightclick: true + + Money: + # This pattern will be used to enter money in the trade GUI and to display the current amount. More information about pattern can be found here: https://docs.oracle.com/javase/tutorial/i18n/format/decimalFormat.html + Pattern: '###,###.####' + Grouping_Separator: ',' + Decimal_Separator: . + + Easy_Selection: + Enabled: true + # Do NOT use special symbols (e.g. '$') here. + # Use characters only! + Shortcuts: + - Keys: + - k + Value: 1000 + - Keys: + - m + - mio + Value: 1000000 + + # Warning: The aliases will not be validated. Make sure they are correct. + Commands: + Trade: + - trade + Accept: + - accept + Deny: + - deny + Toggle: + - toggle + + Database: + # Values: SQLite, MySQL + Type: SQLite + MySQL: + Connection_URL: jdbc:mysql://localhost:3306/tradesystem?autoReconnect=true&useSSL=false + User: root + Password: password + + TradeLog: + # The bukkit logger works additionally to the database logging. + Bukkit_logger: false + + # Sound names can be found here: https://github.com/CodingAir/CodingAPI/tree/master/src/main/java/de/codingair/codingapi/server/sounds/Sound.java + Sounds: + Trade_Started: + Name: LEVEL_UP + Volume: 0.6 + Pitch: 1.0 + Trade_Finished: + Name: LEVEL_UP + Volume: 0.6 + Pitch: 1.0 + Trade_Blocked: + Name: NOTE_BASS + Volume: 0.8 + Pitch: 0.6 + Trade_Cancelled: + Name: ITEM_BREAK + Volume: 0.6 + Pitch: 1.0 + Trade_Request: + Name: ORB_PICKUP + Volume: 0.6 + Pitch: 1.0 + Countdown_Tick: + Name: ORB_PICKUP + Volume: 0.6 + Pitch: 1.0 + Countdown_Stop: + Name: ITEM_BREAK + Volume: 0.6 + Pitch: 1.0 + Change_during_Shulker_Peek: + Name: ITEM_BREAK + Volume: 0.6 + Pitch: 1.0 + + TradeSystem-layouts.yml: | + Layouts: + - size: 54 + name: Standard + icons: + 0: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 1: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 2: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 3: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 4: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: GRAY_STAINED_GLASS_PANE + 5: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 6: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 7: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 8: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 9: + icon: TradeSlot + 10: + icon: TradeSlot + 11: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 12: + icon: StatusIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: LIGHT_GRAY_TERRACOTTA + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: RED_TERRACOTTA + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: LIME_TERRACOTTA + 13: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: GRAY_STAINED_GLASS_PANE + 14: + icon: ShowStatusIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: RED_TERRACOTTA + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: LIME_TERRACOTTA + 15: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 16: + icon: TradeSlotOther + 17: + icon: TradeSlotOther + 18: + icon: TradeSlot + 19: + icon: TradeSlot + 20: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 21: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 22: + icon: CancelIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BARRIER + 23: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 24: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 25: + icon: TradeSlotOther + 26: + icon: TradeSlotOther + 27: + icon: TradeSlot + 28: + icon: TradeSlot + 29: + icon: TradeSlot + 30: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 31: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 32: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 33: + icon: TradeSlotOther + 34: + icon: TradeSlotOther + 35: + icon: TradeSlotOther + 36: + icon: TradeSlot + 37: + icon: TradeSlot + 38: + icon: TradeSlot + 39: + icon: TradeSlot + 40: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: GRAY_STAINED_GLASS_PANE + 41: + icon: TradeSlotOther + 42: + icon: TradeSlotOther + 43: + icon: TradeSlotOther + 44: + icon: TradeSlotOther + 45: + icon: TradeSlot + 46: + icon: TradeSlot + 47: + icon: TradeSlot + 48: + icon: TradeSlot + 49: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: GRAY_STAINED_GLASS_PANE + 50: + icon: TradeSlotOther + 51: + icon: TradeSlotOther + 52: + icon: TradeSlotOther + 53: + icon: TradeSlotOther + - size: 54 + name: Standard-Exp + icons: + 0: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 1: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 2: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 3: + icon: ExpLevelIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: GOLD_NUGGET + 4: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: GRAY_STAINED_GLASS_PANE + 5: + icon: ShowExpLevelIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: GOLD_NUGGET + 6: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 7: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 8: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 9: + icon: TradeSlot + 10: + icon: TradeSlot + 11: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 12: + icon: StatusIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: LIGHT_GRAY_TERRACOTTA + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: RED_TERRACOTTA + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: LIME_TERRACOTTA + 13: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: GRAY_STAINED_GLASS_PANE + 14: + icon: ShowStatusIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: RED_TERRACOTTA + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: LIME_TERRACOTTA + 15: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 16: + icon: TradeSlotOther + 17: + icon: TradeSlotOther + 18: + icon: TradeSlot + 19: + icon: TradeSlot + 20: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 21: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 22: + icon: CancelIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BARRIER + 23: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 24: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 25: + icon: TradeSlotOther + 26: + icon: TradeSlotOther + 27: + icon: TradeSlot + 28: + icon: TradeSlot + 29: + icon: TradeSlot + 30: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 31: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 32: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: BLACK_STAINED_GLASS_PANE + 33: + icon: TradeSlotOther + 34: + icon: TradeSlotOther + 35: + icon: TradeSlotOther + 36: + icon: TradeSlot + 37: + icon: TradeSlot + 38: + icon: TradeSlot + 39: + icon: TradeSlot + 40: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: GRAY_STAINED_GLASS_PANE + 41: + icon: TradeSlotOther + 42: + icon: TradeSlotOther + 43: + icon: TradeSlotOther + 44: + icon: TradeSlotOther + 45: + icon: TradeSlot + 46: + icon: TradeSlot + 47: + icon: TradeSlot + 48: + icon: TradeSlot + 49: + icon: DecorationIcon + items: + - ==: org.bukkit.inventory.ItemStack + v: 2975 + type: GRAY_STAINED_GLASS_PANE + 50: + icon: TradeSlotOther + 51: + icon: TradeSlotOther + 52: + icon: TradeSlotOther + 53: + icon: TradeSlotOther + Active: Standard + + Vault-config.yml: | + update-check: true + + WeatherRestrictions-config.yml: | + worlds: + world_2: + CanRain: true + CanIceForm: true + CanIceMelt: true + MaxRainTime: 1200 + MaxSunTime: 21600 + MinimumSunTime: 1200 + MinimumRainTime: 60 + CanSnowForm: true + CanSnowMelt: true + ThunderstormChancePercentage: 20 + SuperchargedThunderChance: 0.0 + SuperchargedExplosionRadius: 3.0 + world_sw: + CanRain: true + CanIceForm: true + CanIceMelt: true + MaxRainTime: 1200 + MaxSunTime: 21600 + MinimumSunTime: 1200 + MinimumRainTime: 60 + CanSnowForm: true + CanSnowMelt: true + ThunderstormChancePercentage: 20 + SuperchargedThunderChance: 0.0 + SuperchargedExplosionRadius: 3.0 + world_sw_2: + CanRain: true + CanIceForm: true + CanIceMelt: true + MaxRainTime: 1200 + MaxSunTime: 21600 + MinimumSunTime: 1200 + MinimumRainTime: 60 + CanSnowForm: true + CanSnowMelt: true + ThunderstormChancePercentage: 20 + SuperchargedThunderChance: 0.0 + SuperchargedExplosionRadius: 3.0 + world_sw_3: + CanRain: true + CanIceForm: true + CanIceMelt: true + MaxRainTime: 1200 + MaxSunTime: 21600 + MinimumSunTime: 1200 + MinimumRainTime: 60 + CanSnowForm: true + CanSnowMelt: true + ThunderstormChancePercentage: 20 + SuperchargedThunderChance: 0.0 + SuperchargedExplosionRadius: 3.0 + world_sw_4: + CanRain: true + CanIceForm: true + CanIceMelt: true + MaxRainTime: 1200 + MaxSunTime: 21600 + MinimumSunTime: 1200 + MinimumRainTime: 60 + CanSnowForm: true + CanSnowMelt: true + ThunderstormChancePercentage: 20 + SuperchargedThunderChance: 0.0 + SuperchargedExplosionRadius: 3.0 + world_sw_nether: + CanRain: true + CanIceForm: true + CanIceMelt: true + MaxRainTime: 1200 + MaxSunTime: 21600 + MinimumSunTime: 1200 + MinimumRainTime: 60 + CanSnowForm: true + CanSnowMelt: true + ThunderstormChancePercentage: 20 + SuperchargedThunderChance: 0.0 + SuperchargedExplosionRadius: 3.0 + world_sw_the_end: + CanRain: true + CanIceForm: true + CanIceMelt: true + MaxRainTime: 1200 + MaxSunTime: 21600 + MinimumSunTime: 1200 + MinimumRainTime: 60 + CanSnowForm: true + CanSnowMelt: true + ThunderstormChancePercentage: 20 + SuperchargedThunderChance: 0.0 + SuperchargedExplosionRadius: 3.0 + world_build: + CanRain: true + CanIceForm: true + CanIceMelt: true + MaxRainTime: 1200 + MaxSunTime: 21600 + MinimumSunTime: 1200 + MinimumRainTime: 60 + CanSnowForm: true + CanSnowMelt: true + ThunderstormChancePercentage: 20 + SuperchargedThunderChance: 0.0 + SuperchargedExplosionRadius: 3.0 + world_dot: + CanRain: true + CanIceForm: true + CanIceMelt: true + MaxRainTime: 1200 + MaxSunTime: 21600 + MinimumSunTime: 1200 + MinimumRainTime: 60 + CanSnowForm: true + CanSnowMelt: true + ThunderstormChancePercentage: 20 + SuperchargedThunderChance: 0.0 + SuperchargedExplosionRadius: 3.0 + world_towny: + CanRain: true + CanIceForm: true + CanIceMelt: true + MaxRainTime: 1200 + MaxSunTime: 21600 + MinimumSunTime: 1200 + MinimumRainTime: 60 + CanSnowForm: true + CanSnowMelt: true + ThunderstormChancePercentage: 20 + SuperchargedThunderChance: 0.0 + SuperchargedExplosionRadius: 3.0 + + + WG-GUI-config.yml: | + Items: + FlagItem: REDSTONE_TORCH + RegionItem: END_CRYSTAL + WorldItem: GRASS_BLOCK + OwnerMemberItem: TOTEM_OF_UNDYING + GUIItem: + Material: CLOCK + Name: '&3&lWG-GUI' + AllowedEditCommands: + - //pos1 + - //pos2 + - /gamemode 1 + - /gamemode 3 + + WorldBorder-config.yml: | + cfg-version: 11 + message: '&cYou have reached the edge of this world.' + round-border: false + debug-mode: false + whoosh-effect: true + portal-redirection: true + knock-back-dist: 3.0 + timer-delay-ticks: 5 + remount-delay-ticks: 0 + dynmap-border-enabled: true + dynmap-border-message: The border of the world. + dynmap-border-hideByDefault: false + dynmap-border-priority: 0 + player-killed-bad-spawn: false + deny-enderpearl: true + fill-autosave-frequency: 30 + bypass-list-uuids: [] + fill-memory-tolerance: 500 + prevent-block-place: false + prevent-mob-spawn: false + worlds: + world_2: + x: 7.49421317241422 + z: -7.510128414824765 + radiusX: 3800 + radiusZ: 3800 + wrapping: false + world_SW: + x: 8.0 + z: 8.0 + radiusX: 1500 + radiusZ: 1500 + wrapping: false + world_SW_2: + x: 9.5 + z: 12.335294553558457 + radiusX: 8050 + radiusZ: 8050 + wrapping: false + world_SW_nether: + x: 8.764702304161391 + z: 6.306504436246215 + radiusX: 3000 + radiusZ: 3000 + wrapping: false + world_SW_the_end: + x: 8.0 + z: 8.0 + radiusX: 3000 + radiusZ: 3000 + wrapping: false + world_SW_3: + x: 0.5105898459039747 + z: 0.17725819666035014 + radiusX: 8000 + radiusZ: 8000 + wrapping: false + world_SW_4: + x: 0.5 + z: 0.5 + radiusX: 8050 + radiusZ: 8050 + wrapping: false + world_build: + x: -1507.5 + z: 1507.5 + radiusX: 7560 + radiusZ: 7560 + wrapping: false + world_dot: + x: 0.0 + z: 0.0 + radiusX: 10000 + radiusZ: 10000 + wrapping: false + world_towny: + x: 8.413702999835161 + z: 6.767552455492664 + radiusX: 10000 + radiusZ: 10000 + wrapping: false + + XConomy-config.yml: | + #Default Online Offline SemiOnline + #Default mode will automatically detect the player's UUID(support GeyserMC) + #Online mode is better for servers that enable online-mode(support Yggdrasil) + #Offline mode does not support ignoring username case + #If you use floodgate(GeyserMC) and the option 'username-prefix' is set to empty, Please use SemiOnline mode + UUID-mode: Default + #In convertion mode, can use command '/xconomy' import data from other plugins based on Vault + #Conflicting data will be skipped, The imported data will be saved in XConomy/importdata/data.yml + #In this mode, XConomy will not start normally + #After the conversion, please check data and turn off this mode + #Sponge version does not have this function + Importdata-mode: false + + + #Settings + Settings: + #Chinese ChineseTW English French Spanish Russian Turkish Japanese German + #Indonesia Portuguese Italian + language: Japanese + #Whether to check for new version + check-update: true + #TOP10 and the Server Total refresh time interval (Seconds) + refresh-time: 300 + #If set to true, XConomy will register the following commands: + # - economy + # - eco + # - ebalancetop + # - ebaltop + # - eeconomy + #Please keep in mind that if Essentials is installed on your server + #XConomy will take over these commands. + eco-command: true + #XConomy will disable the economic function of Essentials. + #Just the economic function. + disable-essentials: true + #Initial balance + initial-bal: 0 + #Tax to be paid for pay command (0.5 means 50%, 1 means 100%) + payment-tax: 0 + #Ranking size (Max value 100) + ranking-size: 10 + #Rows per page of list (Ranking and help menu) + lines-per-page: 5 + #If you need to modify the data in the database directly, it is recommended to enable it + #Asynchronous saving of data is not supported after caching is disabled + #Disabling caching will increase the pressure on the database + disable-cache: false + #Dose save transaction record + #Only MySQL is supported + transaction-record: true + #Record transaction information of pay command while player offline. + #The player will receive tips when they reconnect. + #Transaction-record function must be enabled. + offline-pay-transfer-tips: false + #Ignore the case of player names + username-ignore-case: false + + + #It can solve the problem that some plugins need to create non-player accounts, such as Factions + #========================================================================================== + #Plugins supported by default (no requirement to enable non-player-account) + #Towny + #========================================================================================== + #Non-player account data is not synced with BC + non-player-account: + #Whether to enable non-player accounts. + enable: false + #If the account name contains fields in the whitelist, it will be recognized as non-player accounts. + #Otherwise, it is recognized as a player account + #If the player's name contains fields in the whitelist, it will be denied access to the server. + #This function can reduce the times that reading data from the database. + whitelist: + #Whether to enable whitelist. + enable: false + fields-list: + - tax + - nation- + + + #The display of the currency + Currency: + singular-name: mine + plural-name: mine + #Is the balance an integer + integer-bal: true + #Method for rounding off excess digits in the amount + #0 indicates rounding down, 1 indicates rounding up + rounding-mode: 0 + thousands-separator: ',' + #%format_balance% indicate the balance after the format + display-format: '%balance% %currencyname%' + #Maximum amount (default is maximum) + max-number: '10000000000000000' + format-balance: + 1000: k + 1000000: m + + + #SyncData settings + SyncData: + #Whether to enable data synchronization between multiple servers + enable: false + #BungeeCord Redis + #================================================== BungeeCord Channel ================================================== + #After BungeeCord sync is turned on, the console and other plugins will not be able to modify the balance in the server without player + #Please Set bungeecord to true in the spigot.yml + #================================================== Redis Channel ================================================== + #Require 'slf4j' dependencies + channel-type: BungeeCord + #Server ID, keep the ID and the MySQL settings is the same between the servers requiring synchronization + sign: aa + + + #Thread settings + Thread: + #Set the timeout period for CompletableFuture + #The unit is seconds + future-timeout: 3 + + + #Region-Thread settings(Only effective for Folia server) + Region-Thread: + #When executing synchronized threads, a coordinate will be randomly selected within the specified range below to perform. + world: world + range-x: 1024 + range-y: 1024 + + XConomy-database.yml: | + Settings: + #SQLite MySQL MariaDB + #MariaDB require DatabaseDrivers + storage-type: MySQL + #Use connection pool or not + #Require 'slf4j' dependencies + #At least java version 11 is required + usepool: true + + + #SQLite settings + SQLite: + #Address is the folder path + path: Default + + + #MySQL settings + MySQL: + host: mariadb + port: 3306 + user: root + pass: + database: xconomy + #auto add "_", can use %sign% to indicate Server ID (BungeeCord settings) + table-suffix: '' + property: + usessl: false + encoding: utf8 + timezone: '' + allowPublicKeyRetrieval: false + + + #Connection pool settings + Pool-Settings: + maximum-pool-size: 10 + minimum-idle: 10 + maximum-lifetime: 180000 + idle-timeout: 60000 + + + #Redis settings + Redis: + host: localhost + port: 6379 + db-index: 1 + duration: 1000 + pool-settings: + max-total: 20 + max-idle: 20 + min-idle: 0 + auth: + user: '' + pass: '' + DecentHolograms-config.yml: | + # # # # # # # # # # # # # # # # # + # + # Welcome to DecentHolograms config.yml. + # + # - We recommend you to visit our wiki for + # detailed explanation of all features and + # configuration options as this plugin has + # a ton of them. + # + # - You should also join our discord server for + # more information, support and updates. Our + # discord server is the main way of reporting + # bugs or ideas for possible improvements. + # + # - Web: www.decentholograms.eu + # - Wiki: wiki.decentholograms.eu + # - Discord: discord.decentsoftware.eu + # - GitHub: github.decentsoftware.eu + # + # # # # # # # # # # + + defaults: + # Default line + text: Blank Line + # Default Hologram display range in blocks. + display-range: 48 + # Default Hologram update range in blocks. + update-range: 48 + # Default Hologram update interval in ticks. + update-interval: 20 + # Maximum amount of cached pattern processing results + # Do not change if you do not know what it means + # Increasing this number will result in higher memory usage + # Range: 5 - 10000 + # Default: 500 + lru-cache-size: 500 + # Default heights of different hologram line types. + height: + text: 0.3 + icon: 0.6 + head: 0.75 + smallhead: 0.6 + # Default value of Down Origin + down-origin: false + + # Check for updates on plugin startup? [true/false] + update-checker: true + + # Click cooldown in ticks + click-cooldown: 1 + + # Do we want to replace placeholders inside animation frames? + # + # WARNING! Setting this to true will have a negative impact + # on CPU usage, so if you don't NEED to use placeholders inside + # animation frames, keep this disabled. + allow-placeholders-inside-animations: false + + # If true, the visibility of holograms will be updated when a player gets teleported or respawned. + # + # By default, this is disabled because it causes visual glitches where even if a player gets teleported + # by a fraction of a block, the holograms still disappear and reappear for them. + # + # Some clients (or client versions?) need this though, so if you are experiencing issues with holograms + # not showing up after a player gets teleported or respawned, you can enable this. + update-visibility-on-teleport: false + + # Set this to true if you want holograms to appear at the player's eye level. + # When enabled, holograms will be positioned at the player's eye height when created or moved. + # When disabled, holograms will be positioned at the player's feet height when created or moved (default). + holograms-eye-level-positioning: false + + + + # # # # # # # # # # # # # # # # # + # + # Damage Display + # + # Temporary damage display that shows up on every successful hit + # + # # # # # # # # # # + + damage-display: + # Do you want this feature enabled? [true/false] + enabled: false + # Do you want to display damage for players? [true/false] + players: true + # Do you want to display damage for mobs? [true/false] + mobs: true + # Do you want to display 0 (or less) damage? [true/false] + zero-damage: false + # How long will the hologram stay in ticks + duration: 40 + # Damage placeholder: {damage} + # Animations and Placeholders DO work here + appearance: '&c{damage}' + # Appearance of the damage, if the damage is critical + critical-appearance: '&4&lCrit!&4 {damage}' + # Height offset + height: 0 + + + + # # # # # # # # # # # # # # # # # + # + # Healing Display + # + # Temporary damage display that shows up on every health increase + # + # # # # # # # # # # + + healing-display: + # Do you want this feature enabled? [true/false] + enabled: false + # Do you want to display healing for players? [true/false] + players: true + # Do you want to display healing for mobs? [true/false] + mobs: true + # How long will the hologram stay in ticks + duration: 40 + # Heal placeholder: {heal} + # Animations and Placeholders DO work here + appearance: '&a+ {heal}' + # Height offset + height: 0 + + + # # # # # # # # # # # # # # # # # + # + # Custom text replacements + # + # Replace specific patterns in Holograms with custom replacements, similar to HolographicDisplays + # + # # # # # # # # # # + + custom-replacements: + '[x]': '█' + '[X]': '█' + '[/]': '▌' + '[,]': '░' + '[,,]': '▒' + '[,,,]': '▓' + '[p]': '•' + '[P]': '•' + '[|]': '⎹' + SpectatorTheater-config.yml: | + # スペクテイターモードが有効なワールド + # default: "world_SW", "world_SW_2", "world_SW_2", "world_SW_3", "world_SW_4", "world_SW_nether", "world_SW_the_end", "world_build" + # cf. https://github.com/GiganticMinecraft/SeichiAssist/blob/develop/src/main/scala/com/github/unchama/seichiassist/ManagedWorld.scala + enabled-worlds: + - "world_SW" + - "world_SW_2" + - "world_SW_3" + - "world_SW_4" + - "world_SW_nether" + - "world_SW_the_end" + - "world_build" + + # クールタイム(秒) + # default: 0 + cool-time: 0 + + # 継続時間(秒) + # default: 300 (5*60) + duration-time: 300 + + region-grid-fitter-config.yml: | + default_grid_size: 16 + grid_size: + world: 16 + + StreamClock-config.yml: | + stopped-world: + - "world_SW" + - "world_SW_2" + - "world_SW_3" + - "world_SW_4" + - "world_SW_nether" + - "world_SW_the_end" diff --git a/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/common-configs/seichiassist-config.yaml b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/common-configs/seichiassist-config.yaml new file mode 100644 index 000000000..5136ab43d --- /dev/null +++ b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/common-configs/seichiassist-config.yaml @@ -0,0 +1,162 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: seichiassist-config +data: + config.yml: | + # seichiassist 設定ファイル + # このファイルを削除orリネームしてからサーバを起動するとデフォルトの設定ファイルが再生成されます(エラーが出たときは真っ先に試しましょう) + + # MySQLデータベースへの接続設定 + host: 'mariadb' + port: '3306' + db: 'seichiassist' + id: 'mcserver' + pw: '${CFG_SEICHIASSIST_MYSQL_PASSWORD}' + + # サーバ識別設定 + # 複数サーバ構成にする場合はこの値をサーバごとに変更します + servernum: '${CFG_SEICHIASSIST_SERVERNUM}' + server-id: '${CFG_SEICHIASSIST_SERVERID}' + + # アイテム変換するチャンク座標を検索してprotobufにて吐き出すコマンド + chunk-search-command-base: "chunk-search-rs --protobuf --threads 12" + + # 色々な設定、説明は割愛 + defaultmineamount: '3' + minutespeedamount: '0.01' + onlineplayersamount: '0.5' + dualbreaklevel: '10' + trialbreaklevel: '20' + explosionlevel: '30' + thunderstormlevel: '40' + blizzardlevel: '50' + meteolevel: '60' + gravitylevel: '100' + multipleidblockbreaklevel: '1' + dropexplevel1: '6' + dropexplevel2: '10' + dropexplevel3: '16' + dropexplevel4: '24' + dropexplevel5: '34' + dropexplevel6: '46' + dropexplevel7: '60' + dropexplevel8: '76' + dropexplevel9: '94' + dropexplevel10: '114' + dokodemoenderlevel: '25' + + # 実績名の名称設定 -> Nicknames.scalaを参照すること + + # デバッグモードの設定 + # debugmode: 0=デバッグモードオフ, 1=デバッグモードオン + # 変更値を反映させるにはサーバを再起動するか/reloadしてください + debugmode: '0' + + # ギガンティック→椎名林檎交換レートの設定 + # デフォルト値はギガンティック1個につき椎名林檎4個 + rategigantictoringo: '4' + + # ギガンティック・フィーバーの効果継続時間を指定します。(単位:分) + gigantic_fever_minutes: 120 + + # グリッド式保護メニュー経由で保護が可能なワールド名一覧 + # ここに記載されたワールド名ではworldguard.region.claimパーミッションが無くても + # グリッド式保護メニュー経由で保護が可能になります + GridProtectEnableWorld: + - world_2 + - world_SW_2 + + # グリッドで指定可能な最大ユニット合計数の設定 + # (15ブロック=1ユニット) + ## デフォルト値 + GridLimitDefault: '32' + ## ワールド毎の値(ここにないワールドはDefault値を見る) + GridLimitPerWorld: + world: '16' + world_2: '32' + + #グリッド式保護のテンプレート保存最大数 + GridTemplateKeepAmount: '5' + + ##自動再生成時の設定 + #道のY座標 + road_Y: 70 + #道の長さ(チャンク単位) + road_length: 8 + #道の上の空洞の高さ + space_height: 5 + #道のブロックID + road_blockid: 98 + #道のブロックダメージ値 + road_blockdamage: 0 + #再生成時のワールドサイズ + world_size: 2000 + + #GiganticBerserk + #1分間上限 + GBLimit: 75 + + #各種URL + Url: + official: "https://www.seichi.network/gigantic" + rule: "https://www.seichi.network/rule" + map: "https://www.seichi.network/map" + jms: "https://minecraft.jp/servers/54d3529e4ddda180780041a7" + # アサルト開放やバーサーク完成時にDiscordに通知するWebhookのURL + webhook: + # 全体通知用 + notification: "" + + #Fly時の1分辺りの経験値消費量 + flyexp: '50' + + #直列設置 + blocklineup: + level: '15' + mana_mag: '0.0' + minestack_level: '30' + + #範囲設置スキル + ZoneSetSkill: + level: '15' + minestack: '30' + + #スキルを使って並べた時のブロックカウント倍率 + BlockCountMag: '0.2' + + # MineStackブロック一括クラフト + minestack_BlockCraft: + level1: '25' + level2: '35' + level3: '45' + + #ブロック設置カウントの1分上限 + BuildNum1minLimit: '100' + + # オートセーブの設定 + AutoSave: + Enable: true + + # RedisBungeeが利用しているRedisインスタンスの接続情報 + RedisBungee: + redis-host: seichi-redisbungee-redis-master.seichi-gateway + redis-port: 6379 + # Redisサーバーがパスワードを持っている場合、次の行をアンコメントしてパスワードを入れること。 + # redis-password: "" + + # BungeeCordと協調してデータ保存周りのロックを管理するシステムの設定項目 + BungeeSemaphoreResponder: + # SeichiAssistが保存処理を待つ最大の時間(ミリ秒指定) + # プレーヤーが退出してからこのミリ秒数が経過した場合、 + # 保存処理に失敗したと見なしBungeeCordに失敗シグナルを送信する。 + # + # デフォルトは55秒に設定されている。タイムアウトを無効にする場合負の値を設定すること。 + SaveTimeout: 55000 + Redis: + Host: seichi-bungeesemaphore-redis-master.seichi-gateway + Port: 6379 + # Redisサーバーがパスワードを持っている場合、次の行をアンコメントしてパスワードを入れること。 + # Password: "" + + diff --git a/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/common-configs/worldguard-config.yaml b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/common-configs/worldguard-config.yaml new file mode 100644 index 000000000..4d96e15e9 --- /dev/null +++ b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/common-configs/worldguard-config.yaml @@ -0,0 +1,342 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: common-worldguard-configs +data: + # メイン + main-Blacklist.txt: | + # + # WorldGuard blacklist + # + # The blacklist lets you block actions, blocks, and items from being used. + # You choose a set of "items to affect" and a list of "actions to perform." + # + ############################################################################### + # + # Example to block some ore mining and placement: + # [coalore,goldore,ironore] + # on-break=deny,log,kick + # on-place=deny,tell + # + # Events that you can detect: + # - on-break (when a block of this type is about to be broken) + # - on-destroy-with (the item/block held by the user while destroying) + # - on-place (a block is being placed) + # - on-use (an item like flint and steel or a bucket is being used) + # - on-interact (when a block in used (doors, chests, etc.)) + # - on-drop (an item is being dropped from the player's inventory) + # - on-acquire (an item enters a player's inventory via some method) + # - on-dispense (a dispenser is about to dispense an item) + # + # Actions (for events): + # - deny (deny completely, used blacklist mode) + # - allow (used in whitelist mode) + # - notify (notify admins with the 'worldguard.notify' permission) + # - log (log to console/file/database) + # - tell (tell a player that that's not allowed) + # - kick (kick player) + # - ban (ban player) + # + # Options: + # - ignore-groups (comma-separated list of groups to not affect) + # - ignore-perms (comma-separated list of permissions to not affect - make up + # your very own permissions!) + # - comment (message for yourself that is printed with 'log' and 'notify') + # - message (optional message to show the user instead; %s is the item name) + # + ############################################################################### + # + # For more information, see: + # http://wiki.sk89q.com/wiki/WorldGuard/Blacklist + # + ############################################################################### + # + # Some examples follow. + # REMEMBER: If a line has # in front, it will be ignored. + # + + # Deny lava buckets + #[lavabucket] + #ignore-perms=my.own.madeup.permission + #ignore-groups=admins,mods + #on-use=deny,tell + + # Deny some ore + #[coalore,goldore,ironore] + #ignore-groups=admins,mods + #on-break=notify,deny,log + + # Some funky data value tests + #[wood:0;>=2] + #ignore-groups=admins,mods + #on-break=notify,deny,log + + # 岩盤の設置・破壊無効化 + [bedrock] + ignore-groups=admin + on-place=deny,log,tell + on-break=deny,log,tell + + # コーラスフルーツの使用・インタラクト無効化 + [chorus_fruit] + ignore-groups=admin + on-use=deny,log,tell + on-interact=deny,log,tell + + # オブザーバーの設置無効化 + [observer] + ignore-groups=admin + on-place=deny,log,tell + + # 第1、2整地 + world_SW-Blacklist.txt: | + # + # WorldGuard blacklist + # + # The blacklist lets you block actions, blocks, and items from being used. + # You choose a set of "items to affect" and a list of "actions to perform." + # + ############################################################################### + # + # Example to block some ore mining and placement: + # [coalore,goldore,ironore] + # on-break=deny,log,kick + # on-place=deny,tell + # + # Events that you can detect: + # - on-break (when a block of this type is about to be broken) + # - on-destroy-with (the item/block held by the user while destroying) + # - on-place (a block is being placed) + # - on-use (an item like flint and steel or a bucket is being used) + # - on-interact (when a block in used (doors, chests, etc.)) + # - on-drop (an item is being dropped from the player's inventory) + # - on-acquire (an item enters a player's inventory via some method) + # - on-dispense (a dispenser is about to dispense an item) + # + # Actions (for events): + # - deny (deny completely, used blacklist mode) + # - allow (used in whitelist mode) + # - notify (notify admins with the 'worldguard.notify' permission) + # - log (log to console/file/database) + # - tell (tell a player that that's not allowed) + # - kick (kick player) + # - ban (ban player) + # + # Options: + # - ignore-groups (comma-separated list of groups to not affect) + # - ignore-perms (comma-separated list of permissions to not affect - make up + # your very own permissions!) + # - comment (message for yourself that is printed with 'log' and 'notify') + # - message (optional message to show the user instead; %s is the item name) + # + ############################################################################### + # + # For more information, see: + # http://wiki.sk89q.com/wiki/WorldGuard/Blacklist + # + ############################################################################### + # + # Some examples follow. + # REMEMBER: If a line has # in front, it will be ignored. + # + + # Deny lava buckets + #[lavabucket] + #ignore-perms=my.own.madeup.permission + #ignore-groups=admins,mods + #on-use=deny,tell + + # Deny some ore + #[coalore,goldore,ironore] + #ignore-groups=admins,mods + #on-break=notify,deny,log + + # Some funky data value tests + #[wood:0;>=2] + #ignore-groups=admins,mods + #on-break=notify,deny,log + + # 岩盤の設置・破壊無効化 + [bedrock] + ignore-groups=admin + on-place=deny,log,tell + on-break=deny,log,tell + + # オブザーバーの設置無効化 + [observer] + ignore-groups=admin + on-place=deny,log,tell + + # エンドクリスタルの設置無効化 + [end_crystal] + ignore-groups=admin + on-use=deny,log,tell + + # リスポーンアンカーの設置無効化 + [respawn_anchor] + ignore-groups=admin + on-place=deny,log,tell + + # エンド整地、ネザー整地 + world_SW_the_end-Blacklist.txt: | + # + # WorldGuard blacklist + # + # The blacklist lets you block actions, blocks, and items from being used. + # You choose a set of "items to affect" and a list of "actions to perform." + # + ############################################################################### + # + # Example to block some ore mining and placement: + # [coalore,goldore,ironore] + # on-break=deny,log,kick + # on-place=deny,tell + # + # Events that you can detect: + # - on-break (when a block of this type is about to be broken) + # - on-destroy-with (the item/block held by the user while destroying) + # - on-place (a block is being placed) + # - on-use (an item like flint and steel or a bucket is being used) + # - on-interact (when a block in used (doors, chests, etc.)) + # - on-drop (an item is being dropped from the player's inventory) + # - on-acquire (an item enters a player's inventory via some method) + # - on-dispense (a dispenser is about to dispense an item) + # + # Actions (for events): + # - deny (deny completely, used blacklist mode) + # - allow (used in whitelist mode) + # - notify (notify admins with the 'worldguard.notify' permission) + # - log (log to console/file/database) + # - tell (tell a player that that's not allowed) + # - kick (kick player) + # - ban (ban player) + # + # Options: + # - ignore-groups (comma-separated list of groups to not affect) + # - ignore-perms (comma-separated list of permissions to not affect - make up + # your very own permissions!) + # - comment (message for yourself that is printed with 'log' and 'notify') + # - message (optional message to show the user instead; %s is the item name) + # + ############################################################################### + # + # For more information, see: + # http://wiki.sk89q.com/wiki/WorldGuard/Blacklist + # + ############################################################################### + # + # Some examples follow. + # REMEMBER: If a line has # in front, it will be ignored. + # + + # Deny lava buckets + #[lavabucket] + #ignore-perms=my.own.madeup.permission + #ignore-groups=admins,mods + #on-use=deny,tell + + # Deny some ore + #[coalore,goldore,ironore] + #ignore-groups=admins,mods + #on-break=notify,deny,log + + # Some funky data value tests + #[wood:0;>=2] + #ignore-groups=admins,mods + #on-break=notify,deny,log + + # 岩盤の設置・破壊無効化 + [bedrock] + ignore-groups=admin + on-place=deny,log,tell + on-break=deny,log,tell + + # ベッドの設置無効化 + [white_bed, orange_bed, magenta_bed, light_blue_bed, yellow_bed, lime_bed, pink_bed, gray_bed, light_gray_bed, cyan_bed, purple_bed, blue_bed, brown_bed, green_bed, red_bed, black_bed] + ignore-groups=admin + on-use=deny,log,tell + + # オブザーバーの設置無効化 + [observer] + ignore-groups=admin + on-place=deny,log,tell + + # エンドクリスタルの設置無効化 + [end_crystal] + ignore-groups=admin + on-use=deny,log,tell + + # リスポーンアンカーの設置無効化 + [respawn_anchor] + ignore-groups=admin + on-place=deny,log,tell + + # メイン + main-config.yml: | + # + # WorldGuard's world configuration file + # + # This is a world configuration file. Anything placed into here will only + # affect this world. If you don't put anything in this file, then the + # settings will be inherited from the main configuration file. + # + # If you see {} below, that means that there are NO entries in this file. + # Remove the {} and add your own entries. + # + + regions: + max-region-count-per-player: + default: 5 + observer: 5 + max-claim-volume: 14745600 + # 第1整地 + world_SW-config.yml: | + # + # WorldGuard's world configuration file + # + # This is a world configuration file. Anything placed into here will only + # affect this world. If you don't put anything in this file, then the + # settings will be inherited from the main configuration file. + # + # If you see {} below, that means that there are NO entries in this file. + # Remove the {} and add your own entries. + # + + fire: + disable-lava-fire-spread: false + disable-all-fire-spread: false + # 第2整地 + world_SW_2-config.yml: | + # + # WorldGuard's world configuration file + # + # This is a world configuration file. Anything placed into here will only + # affect this world. If you don't put anything in this file, then the + # settings will be inherited from the main configuration file. + # + # If you see {} below, that means that there are NO entries in this file. + # Remove the {} and add your own entries. + # + + regions: + max-region-count-per-player: + default: 2 + observer: 2 + max-claim-volume: 14803200 + fire: + disable-lava-fire-spread: false + disable-all-fire-spread: false + # エンド整地、ネザー整地 + world_SW_the_end-config.yml: | + # + # WorldGuard's world configuration file + # + # This is a world configuration file. Anything placed into here will only + # affect this world. If you don't put anything in this file, then the + # settings will be inherited from the main configuration file. + # + # If you see {} below, that means that there are NO entries in this file. + # Remove the {} and add your own entries. + # + + {} diff --git a/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/mcserver--s1/argo-workflows-backup.yaml b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/mcserver--s1/argo-workflows-backup.yaml new file mode 100644 index 000000000..d257f8516 --- /dev/null +++ b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/mcserver--s1/argo-workflows-backup.yaml @@ -0,0 +1,229 @@ +apiVersion: argoproj.io/v1alpha1 +kind: CronWorkflow +metadata: + name: backup--mcserver--s1 + namespace: seichi-minecraft +spec: + schedule: "0 4 * * *" + timezone: Asia/Tokyo + concurrencyPolicy: "Forbid" + workflowSpec: + workflowTemplateRef: + name: backup--mcserver--s1 +--- +apiVersion: argoproj.io/v1alpha1 +kind: WorkflowTemplate +metadata: + name: backup--mcserver--s1 + namespace: seichi-minecraft + annotations: + workflows.argoproj.io/description: "mcserver--s1のデータをProxmox Backup Serverにバックアップするワークフロー" +spec: + serviceAccountName: mcserver--s1-workflow-sa + ttlStrategy: + secondsAfterCompletion: 86400 + entrypoint: default + templates: + - name: default + steps: + - - name: generate-timestamp + template: get-timestamp + - - name: patch-statefulset-to-0 + template: patch-statefulset-to-0 + - - name: wait-for-scale-to-0 + template: wait-for-scale-to-0 + - - name: run-backup + template: run-backup + - name: run-mariadb-backup + template: run-mariadb-backup + arguments: + parameters: + - name: timestamp + value: "{{steps.generate-timestamp.outputs.result}}" + - name: wait-complete-mariadb-backup + template: wait-complete-mariadb-backup + arguments: + parameters: + - name: timestamp + value: "{{steps.generate-timestamp.outputs.result}}" + - - name: patch-statefulset-to-1 + template: patch-statefulset-to-1 + - - name: wait-for-scale-to-1 + template: wait-for-scale-to-1 + + - name: get-timestamp + script: + image: alpine + command: [sh] + source: | + echo $(date +%Y%m%d-%H%M%S) + + - name: patch-statefulset-to-0 + script: + image: bitnami/kubectl:1.32.2 + command: ["/bin/sh", "-c"] + source: | + kubectl patch statefulset mcserver--s1 -n seichi-minecraft --type='merge' -p '{"spec": {"replicas": 0}}' + + - name: wait-for-scale-to-0 + script: + image: bitnami/kubectl:1.32.2 + command: ["/bin/sh", "-c"] + source: | + echo "Waiting for statefulset to scale down..." + while true; do + replicas=$(kubectl get statefulset mcserver--s1 -n seichi-minecraft -o jsonpath='{.status.availableReplicas}') + if [ -z "$replicas" ] || [ "$replicas" -eq 0 ]; then + break + fi + echo "Still scaling down..." + sleep 5 + done + echo "Scale-down confirmed!" + + - name: run-backup + script: + image: debian:12 + command: ["/bin/sh", "-c"] + source: | + set -e + + echo "Updating package lists..." + apt update + + echo "Installing packages..." + apt install -y curl + + echo "Adding Proxmox restore Client repository..." + echo "deb http://download.proxmox.com/debian/pbs-client bookworm main" > /etc/apt/sources.list.d/pbs-client.list + curl -fsSL https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -o /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg + + echo "Updating package lists..." + apt update + + echo "Installing proxmox-backup-client version 3.3.2-1..." + apt install -y proxmox-backup-client=3.3.2-1 + + echo "Running backup..." + proxmox-backup-client backup "${BACKUP_NAME}" \ + --repository "${PBS_USER}@${PBS_HOST}:${PBS_DATASTORE}" \ + --backup-id "${BACKUP_ID}" + env: + - name: TZ + value: "Asia/Tokyo" + - name: BACKUP_NAME + value: "data.pxar:/data" + # proxmox-backup-server側でどのサーバのバックアップかを識別するためにサーバごとに異なるbackup-idを指定する + - name: BACKUP_ID + value: "mcserver--s1" + - name: PBS_USER + valueFrom: + secretKeyRef: + name: pbs-credentials + key: user + - name: PBS_HOST + valueFrom: + secretKeyRef: + name: pbs-credentials + key: host + - name: PBS_DATASTORE + valueFrom: + secretKeyRef: + name: pbs-credentials + key: datastore + - name: PBS_PASSWORD + valueFrom: + secretKeyRef: + name: pbs-credentials + key: password + - name: PBS_FINGERPRINT + valueFrom: + secretKeyRef: + name: pbs-credentials + key: fingerprint + volumeMounts: + - name: backup-target-volume + mountPath: /data + # /root/.cache が overlayfs 配下だとスクリプトがこけるので O_TMPFILE フラグ付きの openat(2) が実行可能なファイルシステムをマウントする + # refs: https://gist.github.com/unchama/0922fce3c490e46b6f9e822f4377853e + - name: pbs-tmpfs + mountPath: /root/.cache + + - name: run-mariadb-backup + inputs: + parameters: + - name: timestamp + resource: + action: create + manifest: | + apiVersion: k8s.mariadb.com/v1alpha1 + kind: Backup + metadata: + name: mariadb-backup--{{inputs.parameters.timestamp}} + spec: + mariaDbRef: + name: mariadb + storage: + s3: + bucket: mariadb-backups + prefix: mcserver--s1 + endpoint: seichi-private-plugin-blackhole-minio.minio:9000 + accessKeyIdSecretKeyRef: + name: minio-access-secret + key: MINIO_ACCESS_KEY + secretAccessKeySecretKeyRef: + name: minio-access-secret + key: MINIO_ACCESS_SECRET + + - name: wait-complete-mariadb-backup + inputs: + parameters: + - name: timestamp + activeDeadlineSeconds: 300 # 5分待っても上がってこない場合は諦める + script: + image: bitnami/kubectl:1.32.2 + command: ["/bin/sh", "-c"] + source: | + while true; do + TYPE_FAILED=$(kubectl get backup mariadb-backup--{{inputs.parameters.timestamp}} -n seichi-minecraft -o jsonpath="{.status.conditions[?(@.type=='Failed')].status}") + TYPE_COMPLETE=$(kubectl get backup mariadb-backup--{{inputs.parameters.timestamp}} -n seichi-minecraft -o jsonpath="{.status.conditions[?(@.type=='Complete')].status}") + + if [ "$TYPE_FAILED" = "True" ]; then + echo "mariadb-backup failed!" + exit 1 + fi + + if [ "$TYPE_COMPLETE" = "True" ]; then + echo "mariadb-backup completed successfully!" + exit 0 + fi + + echo "Still waiting for mariadb-backup to complete..." + sleep 5 + done + + - name: patch-statefulset-to-1 + script: + image: bitnami/kubectl:1.32.2 + command: ["/bin/sh", "-c"] + source: | + kubectl patch statefulset mcserver--s1 -n seichi-minecraft --type='merge' -p '{"spec": {"replicas": 1}}' + + - name: wait-for-scale-to-1 + activeDeadlineSeconds: 300 # 5分待っても上がってこない場合は諦める + script: + image: bitnami/kubectl:1.32.2 + command: ["/bin/sh", "-c"] + source: | + echo "Waiting for StatefulSet to scale up..." + while [ "$(kubectl get statefulset mcserver--s1 -n seichi-minecraft -o jsonpath='{.status.availableReplicas}')" != "1" ]; do + echo "Still scaling up..." + sleep 5 + done + echo "Scale-up confirmed!" + volumes: + - name: backup-target-volume + persistentVolumeClaim: + claimName: minecraft-server-data-mcserver--s1-0 + - name: pbs-tmpfs + emptyDir: {} diff --git a/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/mcserver--s1/argo-workflows-restore.yaml b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/mcserver--s1/argo-workflows-restore.yaml new file mode 100644 index 000000000..7c1b111fc --- /dev/null +++ b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/mcserver--s1/argo-workflows-restore.yaml @@ -0,0 +1,234 @@ +apiVersion: argoproj.io/v1alpha1 +kind: WorkflowTemplate +metadata: + name: restore--mcserver--s1 + namespace: seichi-minecraft + annotations: + workflows.argoproj.io/description: "mcserver--s1のデータをProxmox Backup Serverからリストアするワークフロー" + workflows.argoproj.io/parameters: | + RESTORE_TARGET_DATE_PBS: "リストアするPBSバックアップの日付 (例: 2024-02-10T12:00:00Z)" + RESTORE_TARGET_DATE_DB: "リストアするMariaDBバックアップの日付 (例: 2024-02-10T12:00:00Z)" +spec: + serviceAccountName: mcserver--s1-workflow-sa + ttlStrategy: + secondsAfterCompletion: 86400 + entrypoint: default + arguments: + parameters: + - name: RESTORE_TARGET_DATE_PBS + description: "リストアするPBSバックアップの日付 (例: 2024-02-10T12:00:00Z)" + value: "" # 初期値を空にしておく + - name: RESTORE_TARGET_DATE_DB + description: "リストアするMariaDBバックアップの日付 (例: 2024-02-10T12:00:00Z)" + value: "" # 初期値を空にしておく + templates: + - name: default + steps: + - - name: generate-timestamp + template: get-timestamp + - - name: patch-statefulset-to-0 + template: patch-statefulset-to-0 + - - name: wait-for-scale-to-0 + template: wait-for-scale-to-0 + - - name: run-restore + template: run-restore + - name: run-mariadb-restore + template: run-mariadb-restore + arguments: + parameters: + - name: timestamp + value: "{{steps.generate-timestamp.outputs.result}}" + - name: wait-complete-mariadb-restore + template: wait-complete-mariadb-restore + arguments: + parameters: + - name: timestamp + value: "{{steps.generate-timestamp.outputs.result}}" + - - name: patch-statefulset-to-1 + template: patch-statefulset-to-1 + - - name: wait-for-scale-to-1 + template: wait-for-scale-to-1 + + - name: get-timestamp + script: + image: alpine + command: [sh] + source: | + echo $(date +%Y%m%d-%H%M%S) + + - name: patch-statefulset-to-0 + script: + image: bitnami/kubectl:1.32.2 + command: ["/bin/sh", "-c"] + source: | + kubectl patch statefulset mcserver--s1 -n seichi-minecraft --type='merge' -p '{"spec": {"replicas": 0}}' + + - name: wait-for-scale-to-0 + script: + image: bitnami/kubectl:1.32.2 + command: ["/bin/sh", "-c"] + source: | + echo "Waiting for statefulset to scale down..." + while true; do + replicas=$(kubectl get statefulset mcserver--s1 -n seichi-minecraft -o jsonpath='{.status.availableReplicas}') + if [ -z "$replicas" ] || [ "$replicas" -eq 0 ]; then + break + fi + echo "Still scaling down..." + sleep 5 + done + echo "Scale-down confirmed!" + + - name: run-restore + script: + image: debian:12 + command: ["/bin/sh", "-c"] + source: | + set -e + + echo "Updating package lists..." + apt update + + echo "Installing packages..." + apt install -y curl + + echo "Adding Proxmox restore Client repository..." + echo "deb http://download.proxmox.com/debian/pbs-client bookworm main" > /etc/apt/sources.list.d/pbs-client.list + curl -fsSL https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -o /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg + + echo "Updating package lists..." + apt update + + echo "Installing proxmox-backup-client version 3.3.2-1..." + apt install -y proxmox-backup-client=3.3.2-1 + + echo "Deleting RESTORE_TARGET_DIR before restore..." + rm -vrf ${RESTORE_TARGET_DIR}/* + ls -a ${RESTORE_TARGET_DIR}/ | egrep -v '^.$' | egrep -v '^..$' | xargs -I {} rm -vrf ${RESTORE_TARGET_DIR}/{} + + echo "Running restore to RESTORE_TARGET_DIR..." + proxmox-backup-client restore "host/${BACKUP_ID}/{{workflow.parameters.RESTORE_TARGET_DATE_PBS}}" \ + "${RESTORE_ARCHIVE_NAME}" "${RESTORE_TARGET_DIR}" \ + --repository "${PBS_USER}@${PBS_HOST}:${PBS_DATASTORE}" + env: + - name: TZ + value: "Asia/Tokyo" + - name: RESTORE_TARGET_DATE_PBS + value: "{{workflow.parameters.RESTORE_TARGET_DATE_PBS}}" + - name: RESTORE_ARCHIVE_NAME + value: "data.pxar" + - name: RESTORE_TARGET_DIR + value: "/data" + - name: BACKUP_ID + value: "mcserver--s1" + - name: PBS_USER + valueFrom: + secretKeyRef: + name: pbs-credentials + key: user + - name: PBS_HOST + valueFrom: + secretKeyRef: + name: pbs-credentials + key: host + - name: PBS_DATASTORE + valueFrom: + secretKeyRef: + name: pbs-credentials + key: datastore + - name: PBS_PASSWORD + valueFrom: + secretKeyRef: + name: pbs-credentials + key: password + - name: PBS_FINGERPRINT + valueFrom: + secretKeyRef: + name: pbs-credentials + key: fingerprint + volumeMounts: + - name: restore-target-volume + mountPath: /data + # /root/.cache が overlayfs 配下だとスクリプトがこけるので O_TMPFILE フラグ付きの openat(2) が実行可能なファイルシステムをマウントする + # refs: https://gist.github.com/unchama/0922fce3c490e46b6f9e822f4377853e + - name: pbs-tmpfs + mountPath: /root/.cache + + - name: run-mariadb-restore + inputs: + parameters: + - name: timestamp + resource: + action: create + manifest: | + apiVersion: k8s.mariadb.com/v1alpha1 + kind: Restore + metadata: + name: mariadb-restore--{{inputs.parameters.timestamp}} + spec: + mariaDbRef: + name: mariadb + targetRecoveryTime: {{workflow.parameters.RESTORE_TARGET_DATE_DB}} + s3: + bucket: mariadb-backups + prefix: mcserver--s1 + endpoint: seichi-private-plugin-blackhole-minio.minio:9000 + accessKeyIdSecretKeyRef: + name: minio-access-secret + key: MINIO_ACCESS_KEY + secretAccessKeySecretKeyRef: + name: minio-access-secret + key: MINIO_ACCESS_SECRET + + - name: wait-complete-mariadb-restore + inputs: + parameters: + - name: timestamp + activeDeadlineSeconds: 300 # 5分待っても上がってこない場合は諦める + script: + image: bitnami/kubectl:1.32.2 + command: ["/bin/sh", "-c"] + source: | + while true; do + TYPE_FAILED=$(kubectl get restore mariadb-restore--{{inputs.parameters.timestamp}} -n seichi-minecraft -o jsonpath="{.status.conditions[?(@.type=='Failed')].status}") + TYPE_COMPLETE=$(kubectl get restore mariadb-restore--{{inputs.parameters.timestamp}} -n seichi-minecraft -o jsonpath="{.status.conditions[?(@.type=='Complete')].status}") + + if [ "$TYPE_FAILED" = "True" ]; then + echo "mariadb-restore failed!" + exit 1 + fi + + if [ "$TYPE_COMPLETE" = "True" ]; then + echo "mariadb-restore completed successfully!" + exit 0 + fi + + echo "Still waiting for mariadb-restore to complete..." + sleep 5 + done + + - name: patch-statefulset-to-1 + script: + image: bitnami/kubectl:1.32.2 + command: ["/bin/sh", "-c"] + source: | + kubectl patch statefulset mcserver--s1 -n seichi-minecraft --type='merge' -p '{"spec": {"replicas": 1}}' + + - name: wait-for-scale-to-1 + activeDeadlineSeconds: 300 # 5分待っても上がってこない場合は諦める + script: + image: bitnami/kubectl:1.32.2 + command: ["/bin/sh", "-c"] + source: | + echo "Waiting for StatefulSet to scale up..." + while [ "$(kubectl get statefulset mcserver--s1 -n seichi-minecraft -o jsonpath='{.status.availableReplicas}')" != "1" ]; do + echo "Still scaling up..." + sleep 5 + done + echo "Scale-up confirmed!" + volumes: + - name: restore-target-volume + persistentVolumeClaim: + claimName: minecraft-server-data-mcserver--s1-0 + - name: pbs-tmpfs + emptyDir: {} diff --git a/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/mcserver--s1/kustomization.yaml b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/mcserver--s1/kustomization.yaml new file mode 100644 index 000000000..6668ac1ef --- /dev/null +++ b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/mcserver--s1/kustomization.yaml @@ -0,0 +1,13 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: seichi-minecraft + +resources: + - "./argo-workflows-backup.yaml" + - "./argo-workflows-restore.yaml" + - "./service-monitor.yaml" + - "./service.yaml" + - "./stateful-set.yaml" + - "./plugin-config.yaml" + - "./ops-config.yaml" + - "./multiverse-portals-config.yaml" diff --git a/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/mcserver--s1/multiverse-portals-config.yaml b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/mcserver--s1/multiverse-portals-config.yaml new file mode 100644 index 000000000..14559907e --- /dev/null +++ b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/mcserver--s1/multiverse-portals-config.yaml @@ -0,0 +1,51 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: multiverse-portals-config +data: + portals.yml: | + portals: + world->world_SW: + entryfee: + currency: -1 + amount: 0.0 + safeteleport: true + teleportnonplayers: false + handlerscript: '' + owner: Lucky3028 + location: -20.0,64.0,-19.0:-20.0,65.0,-19.0 + world: world + destination: world_SW + world->world_SW_2: + entryfee: + currency: -1 + amount: 0.0 + safeteleport: true + teleportnonplayers: false + handlerscript: '' + owner: Lucky3028 + location: -18.0,64.0,-19.0:-18.0,65.0,-19.0 + world: world + destination: world_SW_2 + world->world_SW_nether: + entryfee: + currency: -1 + amount: 0.0 + safeteleport: true + teleportnonplayers: false + handlerscript: '' + owner: Lucky3028 + location: -12.0,64.0,-19.0:-12.0,65.0,-19.0 + world: world + destination: world_SW_nether + world->world_SW_the_end: + entryfee: + currency: -1 + amount: 0.0 + safeteleport: true + teleportnonplayers: false + handlerscript: '' + owner: Lucky3028 + location: -10.0,64.0,-19.0:-10.0,65.0,-19.0 + world: world + destination: world_SW_the_end diff --git a/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/mcserver--s1/ops-config.yaml b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/mcserver--s1/ops-config.yaml new file mode 100644 index 000000000..862beefb9 --- /dev/null +++ b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/mcserver--s1/ops-config.yaml @@ -0,0 +1,38 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: minecraft-ops-config +data: + ops.json: | + [ + { + "uuid": "0ea34656-b1c7-45c0-8b89-1ec55a70fe17", + "name": "Lucky3028", + "level": 4, + "bypassesPlayerLimit": false + }, + { + "uuid": "0e117246-6d1c-46f1-b4f3-4310b9fbfedb", + "name": "galapon", + "level": 4, + "bypassesPlayerLimit": false + }, + { + "uuid": "89f9b874-8303-4605-b45b-c271ab6d6a89", + "name": "Kory3", + "level": 4, + "bypassesPlayerLimit": false + }, + { + "uuid": "b66cc3f6-a045-42ad-b4b8-320f20caf140", + "name": "unchama", + "level": 4, + "bypassesPlayerLimit": false + }, + { + "uuid": "e1ee55bb-c993-4896-88e9-9893a11df27a", + "name": "rito_5289", + "level": 4, + "bypassesPlayerLimit": false + } + ] diff --git a/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/mcserver--s1/plugin-config.yaml b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/mcserver--s1/plugin-config.yaml new file mode 100644 index 000000000..b97a9ee75 --- /dev/null +++ b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/mcserver--s1/plugin-config.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: originspawn-config +data: + config.yml: | + world-name: world_2 + loc-x: 41 + loc-y: 69 + loc-z: -6 + loc-yaw: 0.0 + loc-pitch: 0.0 + always-force-players-spawn: true diff --git a/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/mcserver--s1/service-monitor.yaml b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/mcserver--s1/service-monitor.yaml new file mode 100644 index 000000000..7f61bfe64 --- /dev/null +++ b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/mcserver--s1/service-monitor.yaml @@ -0,0 +1,17 @@ +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + labels: + app: mcserver + release: prometheus + mcserver: s1 + name: mcserver-metrics--s1 +spec: + endpoints: + - interval: 30s + port: jmx-metrics + selector: + matchLabels: + app: mcserver + role: metrics + mcserver: s1 diff --git a/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/mcserver--s1/service.yaml b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/mcserver--s1/service.yaml new file mode 100644 index 000000000..65a02a090 --- /dev/null +++ b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/mcserver--s1/service.yaml @@ -0,0 +1,25 @@ +apiVersion: v1 +kind: Service +metadata: + name: mcserver--s1 + labels: + app: mcserver + role: metrics + mcserver: s1 +spec: + type: ClusterIP + ports: + - name: minecraft + port: 25565 + protocol: TCP + targetPort: minecraft + - name: jmx-metrics + port: 18321 + protocol: TCP + targetPort: jmx-metrics + - name: mc-metrics + port: 9225 + protocol: TCP + targetPort: mc-metrics + selector: + mcserver: s1 diff --git a/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/mcserver--s1/stateful-set.yaml b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/mcserver--s1/stateful-set.yaml new file mode 100644 index 000000000..2306bd474 --- /dev/null +++ b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/mcserver--s1/stateful-set.yaml @@ -0,0 +1,668 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: mcserver--s1 + namespace: seichi-minecraft + labels: + app: mcserver--s1 +spec: + replicas: 1 + selector: + matchLabels: + app: mcserver--s1 + template: + metadata: + labels: + app: mcserver--s1 + mcserver: s1 + spec: + initContainers: + - name: jmx-exporter-downloader + image: busybox:1.37.0 + env: + - name: JMX_EXPORTER_URL + value: "https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.20.0/jmx_prometheus_javaagent-0.20.0.jar" + volumeMounts: + - name: jmx-exporter-download-volume + mountPath: /root/jmx-exporter-download + command: + - "sh" + - "-c" + - 'wget -O /root/jmx-exporter-download/jmx-exporter-javaagent.jar "${JMX_EXPORTER_URL}"' + - name: mod-downloader + image: ghcr.io/giganticminecraft/mod-downloader:sha-6292501 + env: + - name: MINIO_ENDPOINT + value: seichi-private-plugin-blackhole-minio.minio:9000 + - name: MINIO_ACCESS_KEY + valueFrom: + secretKeyRef: + name: minio-access-secret + key: MINIO_ACCESS_KEY + - name: MINIO_ACCESS_SECRET + valueFrom: + secretKeyRef: + name: minio-access-secret + key: MINIO_ACCESS_SECRET + - name: BUCKET_NAME + value: seichi-plugins + - name: BUCKET_PREFIX_NAME + value: common-plugins + - name: DOWNLOAD_TARGET_DIR_PATH + value: /plugins + volumeMounts: + - name: mod-downloader-volume + mountPath: /plugins + - name: seichiassist-downloader + image: ghcr.io/giganticminecraft/mod-downloader:sha-6292501 + env: + - name: MINIO_ENDPOINT + value: seichi-private-plugin-blackhole-minio.minio:9000 + - name: MINIO_ACCESS_KEY + valueFrom: + secretKeyRef: + name: minio-access-secret + key: MINIO_ACCESS_KEY + - name: MINIO_ACCESS_SECRET + valueFrom: + secretKeyRef: + name: minio-access-secret + key: MINIO_ACCESS_SECRET + - name: BUCKET_NAME + value: seichiassist + - name: BUCKET_PREFIX_NAME + value: master + - name: DOWNLOAD_TARGET_DIR_PATH + value: /plugins + volumeMounts: + - name: mod-downloader-volume + mountPath: /plugins + + containers: + - resources: + requests: + cpu: 6 + memory: 12Gi + limits: + cpu: 8 + memory: 12Gi + env: + - name: MEMORY + value: 10G + - name: TYPE + value: PAPER + - name: VERSION + value: "1.18.2" + - name: EULA + value: "TRUE" + + - name: REMOVE_OLD_MODS + value: "TRUE" + + - name: JVM_OPTS + # SeichiAssistによるワールドマイグレーションをするとメモリリークが発生するため、Papermc公式が推奨しているJVM Optionを追加する + # ref: https://docs.papermc.io/paper/aikars-flags + value: >- + -javaagent:/jmx-exporter/jmx-exporter-javaagent.jar=18321:/jmx-exporter/jmx-exporter-config.yaml + -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 + -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch + -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M + -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 + -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 + -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem + -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs + -Daikars.new.flags=true + + - name: COPY_CONFIG_DEST + # /config をサーバーディレクトリにコピーするようにする + # https://github.com/itzg/docker-minecraft-server/tree/9458005b5bd78b8139e13e66c29a449a12dd6218#optional-plugins-mods-and-config-attach-points + value: /data + + # 設定ファイル内の ${CFG_*} の形をした部分を置き換える + # https://github.com/itzg/docker-minecraft-server/tree/9458005b5bd78b8139e13e66c29a449a12dd6218#replacing-variables-inside-configs + - name: REPLACE_ENV_VARIABLE_PREFIX + value: CFG_ + + - name: CFG_DISCORDSRV_TOKEN + valueFrom: + secretKeyRef: + name: mcserver--common--config-secrets + key: DISCORDSRV_TOKEN + + - name: CFG_DISCORDSRV_GLOBAL_CHANNEL_ID + value: "1054159992447570032" + + - name: CFG_DISCORDSRV_CONSOLE_CHANNEL_ID + value: "1054159676964622426" + + - name: CFG_SEICHIASSIST_MYSQL_PASSWORD + valueFrom: + secretKeyRef: + name: mariadb + key: mcserver-password + + - name: CFG_SEICHIASSIST_SERVERNUM + value: "1" + + - name: CFG_SEICHIASSIST_SERVERID + value: "s1" + + - name: CFG_COREPROTECT_MYSQL_DATABASE_NAME + value: "coreprotect__mc_s1" + + - name: CFG_DYNMAP_SERVER_NAME + value: "アルカディア" + + - name: CFG_LITEBANS_SERVER_NAME + value: "s1" + + - name: CFG_LUCKPERMS_SERVER_NAME + value: "s1" + + - name: RCON_CMDS_STARTUP + value: |- + mv create world_SW NORMAL + mv create world_SW_2 NORMAL + mv create world_SW_nether NETHER + mv create world_SW_the_end END + gamerule keepInventory true + mv gamerule keepInventory true world_SW + mv gamerule keepInventory true world_SW_2 + mv gamerule keepInventory true world_SW_nether + mv gamerule keepInventory true world_SW_the_end + mv gamerule disableRaids true world_2 + mv gamerule disableRaids true world_SW + mv gamerule disableRaids true world_SW_2 + mv gamerule disableRaids true world_SW_nether + mv gamerule disableRaids true world_SW_the_end + mv gamerule doInsomnia false world_2 + mv gamerule doInsomnia false world_SW + mv gamerule doInsomnia false world_SW_2 + mv gamerule doInsomnia false world_SW_nether + mv gamerule doInsomnia false world_SW_the_end + mvm set difficulty peaceful world_2 + rg addmember -w world_2 __global__ b66cc3f6-a045-42ad-b4b8-320f20caf140 + rg flag -w world_2 __global__ build -g members allow + rg addmember -w world_SW_2 __global__ b66cc3f6-a045-42ad-b4b8-320f20caf140 + rg flag -w world_SW_2 __global__ build -g members allow + rg flag -w world_SW_the_end __global__ deny-spawn ENDER_DRAGON + + image: ghcr.io/giganticminecraft/seichi_minecraft_server_base_1_18_2:sha-b6ee419 + name: minecraft + ports: + - containerPort: 25565 + name: minecraft + - containerPort: 18321 + name: jmx-metrics + - containerPort: 9225 + name: mc-metrics + + startupProbe: + tcpSocket: + port: 25565 + # 最大120秒待つ + failureThreshold: 6 + periodSeconds: 20 + + readinessProbe: + exec: + command: + - mc-monitor + - status + - --host + - localhost + - --port + - "25565" + initialDelaySeconds: 30 + periodSeconds: 5 + failureThreshold: 18 + + volumeMounts: + # itzg/minecraft-server は /config に設定ファイルをマウントしておけばコピーをしてくれる。 + # 環境変数の置き換えはPrefix等の設定が必要なので、必要になったら設定するように。 + # https://github.com/itzg/docker-minecraft-server/tree/9458005b5bd78b8139e13e66c29a449a12dd6218#replacing-variables-inside-configs + + # 普通にマウントすると、auto-update (常に最新のvolume内容がコンテナ内から見える) の挙動を + # 提供するために symlink による一時ディレクトリがマウントされることになるが、 + # itzg/minecraft-server が利用するファイル同期の仕組み (itzg/mc-image-helper) は + # symlink を展開してしまうため、設定ファイルのパスが壊れてしまう。 + # + # subPathを利用してマウントすればsymlinkが作られることを回避できるためそのようにしている。 + # 参考: https://stackoverflow.com/a/63114800 + # 参考: https://stackoverflow.com/a/50687707 + + # サーバーの設定ファイル + - name: common-mcserver-configs + mountPath: /config/bukkit.yml + subPath: bukkit.yml + - name: common-mcserver-configs + mountPath: /config/paper.yml + subPath: paper.yml + - name: common-mcserver-configs + mountPath: /config/server.properties + subPath: server.properties + - name: common-mcserver-configs + mountPath: /config/spigot.yml + subPath: spigot.yml + - name: common-mcserver-configs + mountPath: /config/commands.yml + subPath: commands.yml + - name: minecraft-ops-config + mountPath: /config/ops.json + subPath: ops.json + + # DiscordSRV プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/DiscordSRV/config.yml + subPath: DiscordSRV-config.yml + - name: common-mcserver-plugin-configs + mountPath: /plugins/DiscordSRV/messages.yml + subPath: DiscordSRV-messages.yml + + # MorningGlorySeeds プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/MorningGlorySeeds/config.yml + subPath: MorningGlorySeeds-config.yml + + # LunaChat プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/LunaChat/config.yml + subPath: LunaChat-config.yml + - name: common-mcserver-plugin-configs + mountPath: /plugins/LunaChat/dictionary.yml + subPath: LunaChat-dictionary.yml + + # Elytra プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/Elytra/config.yml + subPath: Elytra-config.yml + + # EatEgg プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/EatEgg/config.yml + subPath: EatEgg-config.yml + + # ClickTpa プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/ClickTpa/config.yml + subPath: ClickTpa-config.yml + + # RandomTeleport プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/RandomTeleport/config.yml + subPath: RandomTeleport-config.yml + + # WorldGuard プラグイン周りの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/WorldGuard/config.yml + subPath: WorldGuard-config.yml + - name: common-worldguard-configs + mountPath: /plugins/WorldGuard/worlds/world_2/blacklist.txt + subPath: main-Blacklist.txt + - name: common-worldguard-configs + mountPath: /plugins/WorldGuard/worlds/world_2/config.yml + subPath: main-config.yml + - name: common-worldguard-configs + mountPath: /plugins/WorldGuard/worlds/world_SW/blacklist.txt + subPath: world_SW-Blacklist.txt + - name: common-worldguard-configs + mountPath: /plugins/WorldGuard/worlds/world_SW/config.yml + subPath: world_SW-config.yml + - name: common-worldguard-configs + mountPath: /plugins/WorldGuard/worlds/world_SW_2/blacklist.txt + subPath: world_SW-Blacklist.txt + - name: common-worldguard-configs + mountPath: /plugins/WorldGuard/worlds/world_SW_2/config.yml + subPath: world_SW_2-config.yml + - name: common-worldguard-configs + mountPath: /plugins/WorldGuard/worlds/world_SW_nether/blacklist.txt + subPath: world_SW_the_end-Blacklist.txt + - name: common-worldguard-configs + mountPath: /plugins/WorldGuard/worlds/world_SW_nether/config.yml + subPath: world_SW_the_end-config.yml + - name: common-worldguard-configs + mountPath: /plugins/WorldGuard/worlds/world_SW_the_end/blacklist.txt + subPath: world_SW_the_end-Blacklist.txt + - name: common-worldguard-configs + mountPath: /plugins/WorldGuard/worlds/world_SW_the_end/config.yml + subPath: world_SW_the_end-config.yml + + # ByeByeWither プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/ByeByeWither/config.yml + subPath: ByeByeWither-config.yml + + # PrometheusExporter プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/PrometheusExporter/config.yml + subPath: PrometheusExporter-config.yml + + # antiRedstoneClock プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/antiRedstoneClock/config.yml + subPath: antiRedstoneClock.yml + + # AutoMessage プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/AutoMessage/config.yml + subPath: AutoMessage-config.yml + + # BetterChairs プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/BetterChairs/config.yml + subPath: BetterChairs-config.yml + + # BungeePortals プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/BungeePortals/config.yml + subPath: BungeePortals-config.yml + + # ClearLag プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/ClearLag/config.yml + subPath: ClearLag-config.yml + + # CoreProtect プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/CoreProtect/config.yml + subPath: CoreProtect-config.yml + + # CustomEnchantments プラグインの設定ファイル + - name: custom-enchantments-config + mountPath: /plugins/CustomEnchantments/config.yml + subPath: custom-enchantments-config.yml + + # CustomLJoinLeftMessage プラグインの設定ファイル + - name: common-mcserver-plugin-configs + # フォルダ名は Join-Leave(プラグイン名と一致しない) + mountPath: /plugins/Join-Leave/config.yml + subPath: CustomJoinLeftMessage-config.yml + + # FastAsyncWorldEdit プラグイン周りの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/FastAsyncWorldEdit/config.yml + subPath: FastAsyncWorldEdit-config.yml + - name: common-mcserver-plugin-configs + mountPath: /plugins/FastAsyncWorldEdit/worldedit-config.yml + subPath: worldedit-config.yml + + # FastCraft プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/FastCraft/config.yml + subPath: FastCraft-config.yml + + # LiteBans プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/LiteBans/config.yml + subPath: LiteBans-config.yml + + # LuckPerms プラグイン周りの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/LuckPerms/config.yml + subPath: LuckPerms-config.yml + # groups + - name: common-luckperms-permission-configs + mountPath: /plugins/LuckPerms/yaml-storage/groups/default.yml + subPath: group-default.yml + - name: common-luckperms-permission-configs + mountPath: /plugins/LuckPerms/yaml-storage/groups/observer.yml + subPath: group-observer.yml + - name: common-luckperms-permission-configs + mountPath: /plugins/LuckPerms/yaml-storage/groups/observerplus.yml + subPath: group-observerplus.yml + - name: common-luckperms-permission-configs + mountPath: /plugins/LuckPerms/yaml-storage/groups/admin.yml + subPath: group-admin.yml + - name: common-luckperms-permission-configs + mountPath: /plugins/LuckPerms/yaml-storage/groups/worldguardbypass.yml + subPath: group-worldguardbypass.yml + # users + - name: common-luckperms-permission-configs + mountPath: /plugins/LuckPerms/yaml-storage/users/0a25e0f2-b952-4fe4-9843-3c5608aa2f0c.yml + subPath: user-shirotubu.yml + - name: common-luckperms-permission-configs + mountPath: /plugins/LuckPerms/yaml-storage/users/0ea34656-b1c7-45c0-8b89-1ec55a70fe17.yml + subPath: user-lucky3028.yml + - name: common-luckperms-permission-configs + mountPath: /plugins/LuckPerms/yaml-storage/users/4becf8bc-9a46-4f8b-b6e6-9193cf53b46f.yml + subPath: user-tyanimo.yml + - name: common-luckperms-permission-configs + mountPath: /plugins/LuckPerms/yaml-storage/users/788bf7d5-f61a-4090-aec7-2e3a281eaf49.yml + subPath: user-ploptaw.yml + - name: common-luckperms-permission-configs + mountPath: /plugins/LuckPerms/yaml-storage/users/9599901c-fa82-4943-b748-b46e183c53f4.yml + subPath: user-taaa150.yml + - name: common-luckperms-permission-configs + mountPath: /plugins/LuckPerms/yaml-storage/users/b59f5861-f3f1-447f-945f-a40412ef7340.yml + subPath: user-igarasi_k.yml + - name: common-luckperms-permission-configs + mountPath: /plugins/LuckPerms/yaml-storage/users/b66cc3f6-a045-42ad-b4b8-320f20caf140.yml + subPath: user-unchama.yml + - name: common-luckperms-permission-configs + mountPath: /plugins/LuckPerms/yaml-storage/users/b7c16b91-57ca-4bbb-95f7-9e9144474799.yml + subPath: user-_megatron_.yml + - name: common-luckperms-permission-configs + mountPath: /plugins/LuckPerms/yaml-storage/users/bb991c6b-aafb-405c-b2af-57cd5828962d.yml + subPath: user-m1sk9.yml + - name: common-luckperms-permission-configs + mountPath: /plugins/LuckPerms/yaml-storage/users/d22fe904-d76a-4ec7-a0a8-48f0146d8549.yml + subPath: user-specialboywaka.yml + - name: common-luckperms-permission-configs + mountPath: /plugins/LuckPerms/yaml-storage/users/e1ee55bb-c993-4896-88e9-9893a11df27a.yml + subPath: user-rito_5289.yml + - name: common-luckperms-permission-configs + mountPath: /plugins/LuckPerms/yaml-storage/users/e9c3ac5f-7c6a-45f6-a251-4c24a4a3beea.yml + subPath: user-b_makkuro.yml + + # Multiverse-Core プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/Multiverse-Core/config.yml + subPath: Multiverse-Core-config.yml + + # PlugManX プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/PlugManX/config.yml + subPath: PlugManX-config.yml + + # ProtocolLib プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/ProtocolLib/config.yml + subPath: ProtocolLib-config.yml + + # Shopkeepers プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/Shopkeepers/config.yml + subPath: Shopkeepers-config.yml + + # ShulkerBoxBackPacks プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/ShulkerBoxBackPacks/config.yml + subPath: ShulkerBoxBackPacks-config.yml + + # SimpleElevator プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/SimpleElevator/config.yml + subPath: SimpleElevator-config.yml + + # tce プラグイン周りの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/tce/events.yml + subPath: tce-events.yml + + # ThisWorld プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/ThisWorld/config.yml + subPath: ThisWorld-config.yml + + # TradeSystem プラグインの設定ファイル + # TODO: Add Translation + - name: common-mcserver-plugin-configs + # どうやら "Config.yml" (先頭大文字) で動いているらしい + mountPath: /plugins/TradeSystem/Config.yml + subPath: TradeSystem-config.yml + - name: common-mcserver-plugin-configs + mountPath: /plugins/TradeSystem/Layouts.yml + subPath: TradeSystem-layouts.yml + + # Vault プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/Vault/config.yml + subPath: Vault-config.yml + + # WeatherRestrictions プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/WeatherRestrictions/config.yml + subPath: WeatherRestrictions-config.yml + + # WG-GUI プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/WG-GUI/config.yml + subPath: WG-GUI-config.yml + + # XConomy プラグイン周りの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/XConomy/config.yml + subPath: XConomy-config.yml + - name: common-mcserver-plugin-configs + mountPath: /plugins/XConomy/database.yml + subPath: XConomy-database.yml + + # DecentHolograms プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/DecentHolograms/config.yml + subPath: DecentHolograms-config.yml + + # DynMap プラグインの設定ファイル + # - name: common-dynmap-config + # mountPath: /plugins/dynmap/configuration.txt + # subPath: dynmap-configuration.txt + # - name: dynmap-config--s1 + # mountPath: /plugins/dynmap/worlds.txt + # subPath: worlds.txt + # - name: dynmap-config--s1 + # mountPath: /plugins/Dynmap-Towny/config.yml + # subPath: dynmap-Towny-config.yml + # - name: common-dynmap-config + # mountPath: /plugins/Dynmap-WorldGuard/config.yml + # subPath: dynmap-WorldGuard-config.yml + + # SeichiAssist プラグインの設定ファイル + - name: seichiassist-config + mountPath: /plugins/SeichiAssist/config.yml + subPath: config.yml + + # JMX exporter 周りのファイルが入ったボリューム達のマウント設定 + - name: jmx-exporter-download-volume + mountPath: /jmx-exporter/jmx-exporter-javaagent.jar + subPath: jmx-exporter-javaagent.jar + - name: common-jmx-exporter-config + mountPath: /jmx-exporter/jmx-exporter-config.yaml + subPath: jmx-exporter-config.yaml + + # Multiverse-Portals プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/Multiverse-Portals/config.yml + subPath: Multiverse-Portals-config.yml + - name: multiverse-portals-config + mountPath: /plugins/Multiverse-Portals/portals.yml + subPath: portals.yml + + # SpectatorTheater プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/SpectatorTheater/config.yml + subPath: SpectatorTheater-config.yml + + # region-grid-fitter プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/region-grid-fitter/config.yml + subPath: region-grid-fitter-config.yml + + # StreamClock プラグインの設定ファイル + - name: common-mcserver-plugin-configs + mountPath: /plugins/StreamClock/config.yml + subPath: StreamClock-config.yml + + # OriginSpawn プラグインの設定ファイル + - name: s1-config + mountPath: /plugins/OriginSpawn/config.yml + subPath: OriginSpawn-config.yml + + # AuctionHouse プラグインの設定ファイル + - name: s1-config + mountPath: /plugins/AuctionHouse/config.yml + subPath: AuctionHouse-config.yml + + # BlocksHub プラグインの設定ファイル + - name: s1-config + mountPath: /plugins/BlocksHub/config.yml + subPath: BlocksHub-config.yml + + # ShopChest プラグインの設定ファイル + - name: s1-config + mountPath: /plugins/ShopChest/config.yml + subPath: ShopChest-config.yml + + - name: mod-downloader-volume + mountPath: /plugins + + - name: worldedit-schematica-volume + mountPath: /worldedit-schematica + + volumes: + - name: common-mcserver-configs + configMap: + name: common-mcserver-configs + - name: common-worldguard-configs + configMap: + name: common-worldguard-configs + - name: common-mcserver-plugin-configs + configMap: + name: common-mcserver-plugin-configs + - name: common-luckperms-permission-configs + configMap: + name: common-luckperms-permission-configs + - name: common-dynmap-config + configMap: + name: common-dynmap-config + - name: dynmap-config--s1 + configMap: + name: dynmap-config--s1 + - name: seichiassist-config + configMap: + name: seichiassist-config + - name: minecraft-ops-config + configMap: + name: minecraft-ops-config + - name: multiverse-portals-config + configMap: + name: multiverse-portals-config + - name: custom-enchantments-config + configMap: + name: custom-enchantments-config + - name: s1-config + configMap: + name: s1-config + + # JMX exporterをinitContainerでダウンロードしてMinecraftに受け渡すためのvolume + - name: jmx-exporter-download-volume + emptyDir: {} + - name: common-jmx-exporter-config + configMap: + name: common-jmx-exporter-config + + # mod-downloaderからプラグインをinitContainerでダウンロードしてMinecraftに受け渡すためのvolume + - name: mod-downloader-volume + emptyDir: {} + + # WorldEditがSchematicaを保存・読み取るするためのvolume + - name: worldedit-schematica-volume + emptyDir: {} + volumeClaimTemplates: + - metadata: + name: minecraft-server-data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 50Gi diff --git a/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/mcserver--s1/workflow-sa.yaml b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/mcserver--s1/workflow-sa.yaml new file mode 100644 index 000000000..5cce45e3e --- /dev/null +++ b/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/mcserver--s1/workflow-sa.yaml @@ -0,0 +1,41 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: mcserver--s1-workflow-sa + namespace: seichi-minecraft +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: mcserver--s1-workflow-role + namespace: seichi-minecraft +rules: + - apiGroups: ["apps"] + resources: ["statefulsets"] + verbs: ["get", "patch"] + - apiGroups: [""] + resources: ["pods"] + verbs: ["get"] + - apiGroups: ["argoproj.io"] + resources: ["workflowtaskresults"] + verbs: ["create", "patch"] + - apiGroups: ["k8s.mariadb.com"] + resources: ["backups"] + verbs: ["create", "get", "list", "watch"] + - apiGroups: ["k8s.mariadb.com"] + resources: ["restores"] + verbs: ["create", "get", "list", "watch"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: mcserver--s1-workflow-binding + namespace: seichi-minecraft +subjects: + - kind: ServiceAccount + name: mcserver--s1-workflow-sa + namespace: seichi-minecraft +roleRef: + kind: Role + name: mcserver--s1-workflow-role + apiGroup: rbac.authorization.k8s.io diff --git a/terraform/onp_cluster_minecraft_secrets.tf b/terraform/onp_cluster_minecraft_secrets.tf index f0a499c10..14caae53a 100644 --- a/terraform/onp_cluster_minecraft_secrets.tf +++ b/terraform/onp_cluster_minecraft_secrets.tf @@ -162,10 +162,10 @@ resource "helm_release" "onp_minecraft_debug_minio_secrets" { variable "namespaces-to-deploy-pbs-credentials" { type = list(string) - default = ["seichi-debug-minecraft", "minio"] + default = ["seichi-minecraft", "seichi-debug-minecraft", "minio"] } -resource "kubernetes_secret" "onp_minecraft_debug_pbs_credentials" { +resource "kubernetes_secret" "onp_minecraft_pbs_credentials" { for_each = toset(var.namespaces-to-deploy-pbs-credentials) metadata {