Minecraft服务器管理之EssentialsX、Residence插件

昨天晚上服务器被陌生玩家入侵了,熊孩子把出生点附近的俩房子都给烧了,然后把箱子洗劫一空。

由于服务器主要是和同学朋友一块玩的,因此没有设置任何权限,为了追求原汁原味的生存也没加任何管理插件,甚至连爆炸保护都没开。

那个入侵者是怎么进来的、到底是谁也无可稽考。之前并没有随随便便在互联网上公布过ip地址,因此推测可能是用脚本随机试ip一个一个试出来的。

因此服务器管理类插件还是很有必要的。

单独开白名单也不够用的,攻击者似乎可以得知白名单上的ID...然后直接顶着白名单ID进来,原版服务端对异地登录一点限制都没有。个人Minecraft服务器被境外黑客/熊孩子攻击的事例分享 - 哔哩哔哩 (bilibili.com)

 

安装的插件都扔到服务器的plugins目录下。

几个常用插件

Vault

这个是作为一个前置,下载地址:Vault | SpigotMC - High Performance Minecraft

EssentialsX

EssentialsX下载地址:EssentialsX | SpigotMC - High Performance Minecraft下载 - EssentialsX

(也可以cd到服务器的plugins目录下

输入 wget https://ci.ender.zone/job/EssentialsX/lastSuccessfulBuild/artifact/jars/EssentialsX-2.21.0-dev+68-993d7ed.jar把EssentialsX下载下来(右键网页上的Download按钮取得下载链接)。)

GroupManager

一个权限组插件,操作简单,适用于所有插件的权限节点的给予和删除。

例如给予所有玩家使用某一指令指令:/mangaddp Default  权限

下载地址:GroupManager - v3.0-SNAPSHOT for Minecraft 1.8 to 1.19+ (pre-release). | SpigotMC - High Performance Minecraft

Residence

领地管理类插件Residence:Residence file downloader (zrips.net),需要前置CMILib:CMILib | SpigotMC - High Performance Minecraft

Authme

登录插件,用户需要设置密码才能注册登录,可以有效防止顶着白名单上的ID进来搞破坏的情况AuthMeReloaded | SpigotMC - High Performance Minecraft

EssentialsX的配置

第一次运行EssentialsX后会在plugins目录下创建一个新目录Essentials

其中打开motd.txt可以修改用户登录时的欢迎文字。

custom_items.yml文件里可以给物品设置别名,例如把cooked_porkchop(熟猪排)设置别名breakfast,把sand(沙子)设置别名snad(应该是为了防止打错)

config.yml里配置插件的基本参数,跟服务器保护有关,比如说可以把protect: prevent:栏里的苦力怕爆炸对建筑、物品的毁坏给关了(设置为true即为阻止破坏)

worth.yml可以配置物品在服务器里的货币价值,或者在服务器里通过/setworth 指令直接修改物品价值。

userdata目录里存放着用户数据,用vim打开其中一个用户的文件,可以设置teleportenabled:false来禁止此玩家传送,还可以查看玩家ip地址等,查看玩家上一次下线时位置等信息。

 

EssentialsX支持经济系统,比如

/eco give playername number可以给予玩家多少多少货币(管理员权限)

/pay玩家向其他玩家支付货币

/sell玩家出售物品

更详细地使用应该要弄那些商店系统了,Residence领地插件购买地皮也需要用到Ess里的货币。

Residence领地插件的配置

config.yml里可以把Language改为Chinese。

  我一般习惯把这两项设置为true,这样圈地时就不需要考虑Y轴了(自动包含领空和地下):

  IgnoreY: false

  NoCostForYBlocks: false(这样圈地的价格就特别便宜了,可以自己调整土地价格,由于我主要是自己人玩服务器用来保护建筑的,所以并没有在意经济系统的平衡)

SelectionToolId为圈地工具,默认圈地工具为WOODEN_HOE即木锄。

  木锄左键选取第一个点,右键选取第二个点。

  输入/res create [新领地的名字]可以创建两点之间的领地。

  输入/res remove可以删除领地

注意:Residence默认的领地最大范围只有16x16,有点太小了,需要在groups.yml这个文件里边修改MaxEastWestMaxNorthSouth参数。

config.yml里的其他配置项<点击展开>
#搬运自https://bbs.gmjaja.com/thread-16-1-2.html
# 这是领地插件主要的配置文件.
Global:
  # 是否启用UUID
  # 如果你不知道是什么,建议你不要进行修改
  UUIDConvertion: true
  # 如果你是盗版服务器,建议设置成true,这有助于解决玩家的UUID问题.
  OfflineMode: false
  # 是否自动检测新版本并提示OP
  versionCheck: true
  # 这里加载语言文字,文件都在Language文件夹中
  # 所有的语言都会来自这些文件. (未完成)
  Language: English
  # 木棍是默认的圈地工具
  # 如果你想看更多物品ID可以进入这个网页: http://www.minecraftwiki.net/wiki/Data_values
  SelectionToolId: 280
  Selection:
    # 如果设置为true,则高度是从基岩到天空(即忽略Y坐标大小)
    IgnoreY: false
    # 如果设置为true,则玩家只需要支付X/Z方块的价钱,无视高度
    # 这会使领地价格降低至256倍多,因此在设置选项时要调整价格
    NoCostForYBlocks: false
  # 这个决定你可以用什么工具查看领地信息,默认是线
  # 简单的拿着这个工具,然后点击领地任意一个地方,它就会显示领地信息
  InfoToolId: 287
  Optimizations:
    # 这个是领地插件默认的世界. 默认的世界是 'World'. 这个选项最好与 essential 的设置相匹配
    DefaultWorld: world
    DisabledWorlds:
      # 禁用插件的世界列表
      List: []
      # 在禁用的世界中,是否禁用世界的监听器
      DisableListeners: true
      # 在禁用的世界中,是否禁用所有的领地指令
      DisableCommands: true
    # 在领地被标识的时间时,显示的间隔延迟
    # 建议设置为 10 秒,这有助于降低系统检测
    ItemPickUpDelay: 10
    AutomaticResidenceCreation:
      # 如果设置为true, 输入/res auto 会检测其他领地是否与新领地的区域冲突,以避免重叠
      # 如果设置为false,性能上会有一些增加,但是会让旧领地与新领地重叠
      CheckCollision: true
    GlobalChat:
      # 禁用或启用领地聊天修改,这包括玩家所在的领地名
      Enabled: false
       # 修改领地聊天格式.  添加聊天格式, 你可以把这些%1添加到聊天格式中,并禁用该选项.
      SelfModify: true
      Format: '&c[&e%1&c]'
    # 如果设置为true, 那么tp到没有tp权限的领地内, 该选项会启用
    # 这个选项可以防止第三方传送插件的传送,比如 ess的/tpa
    BlockAnyTeleportation: true
    # 这里的选项可以用 residence.max.res.[number] 权限覆盖
    # 例如,你给玩家设置最大数量为10,这里就设置为15,如果是30,就设置为35,这仅仅是为了以防万一
    MaxResCount: 30
    # 这里的选项可以用 residence.max.rents.[number] 权限覆盖
    # 例如,你给玩家设置最大数量为10,这里就设置为15,如果是30,就设置为35,这仅仅是为了以防万一
    MaxRentCount: 10
    # 这里的选项可以用 residence.max.subzones.[number] 权限覆盖
    # 例如,你给玩家设置最大数量为10,这里就设置为15,如果是30,就设置为35,这仅仅是为了以防万一
    MaxSubzoneCount: 5
    # 这里的选项可以用 residence.max.subzonedepth.[number] 权限覆盖
    # 例如,你给玩家设置最大数量为10,这里就设置为15,如果是30,就设置为35,这仅仅是为了以防万一
    MaxSubzoneDepthCount: 5
    # 如果设置为true, 其他的pvp插件将不会优先判断
    # Overridepvp 这个Flag 可以无视其他插件的PVP保护
    OverridePvp: false
    KickLocation:
      # 如果设置为true, 那么玩家不会提出指领地外, 而是下面的这个坐标
      Use: false
      World: world
      X: 0.5
      Y: 63.0
      Z: 0.5
      # 头的上下方向: 大于 0 - 向上, 小于 0 - 向下. 范围为 -90 到 90
      Pitch: 0.0
      # 头左右的方向: 从左到右. 范围为 -180 到 180
      Yaw: 0.0
    FlyLandLocation:
      # 当玩家是飞行状态时,领地的fly是flag关闭的,并且没有地方让玩家降落,则会传送到以下的坐标
      World: world
      X: 0.5
      Y: 63.0
      Z: 0.5
      # 头的上下方向: 大于 0 - 向上, 小于 0 - 向下. 范围为 -90 到 90
      Pitch: 0.0
      # 头左右的方向: 从左到右. 范围为 -180 到 180
      Yaw: 0.0
    ShortInfo:
      # 如果设置为true, 当list的flag关闭时,使用指令 /res info 查看领地信息,你只能获得列表中的名字,并且会悬浮在空中
      Use: false
    Vote:
      # 范围可以由玩家投票, 默认情况下是 0 到 10 分钟
      RangeFrom: 0
      RangeTo: 10
      # 如果设置为true, 则玩家可以给喜欢的商店一些小费
      OnlyLike: false
    Intervals:
      # 在flag打开的时候, 生命值/饥饿度 会在几秒内持续增加
      # 设置更大可以优化一下性能
      Heal: 1
      Feed: 5
    # 如果你的领地没有开启 pvp flag,那么包含"thos"效果的药水会失效
    NegativePotionEffects:
    - blindness
    - confusion
    - harm
    - hunger
    - poison
    - slow
    - slow_digging
    - weakness
    - wither
    NegativeLingeringPotions:
    - slowness
    - instant_damage
    - poison
    - slowness
    # 从 wspeed1 到 wspeed2 的速度. 设置范围为 0 到 5 
    WalkSpeed:
      '1': 0.5
      '2': 2.0
  # 间隔时间,以毫秒为单位
  # 减少检查次数会增加服务器的性能
  # 增加这些时间的话,玩家可以在移动受限制的区域移动,然后再被传送出去
  MoveCheckInterval: 500
  Tp:
    # 以秒为单位,用于传送功能
    # 设置为0禁用
    TeleportDelay: 3
    # 当玩家传送到领地内时,会显示一个固定的信息
    TeleportTitleMessage: true
  RandomTeleportation:
    Worlds:
      world_nether:
        Enabled: true
        MaxCoord: 1000
        MinCord: 500
        CenterX: 0
        CenterZ: 0
      world:
        Enabled: true
        MaxCoord: 1000
        MinCord: 500
        CenterX: 0
        CenterZ: 0
      world_the_end:
        Enabled: true
        MaxCoord: 1000
        MinCord: 500
        CenterX: 0
        CenterZ: 0
    # 在使用指令时要等待多长的时间
    Cooldown: 5
    # 会有多少次尝试找到正确的传送位置
    # 尽量保持数字低,因为玩家可以在延迟过后再试一次
    MaxTries: 20
  # 保存领地的时间间隔,以分为单位
  SaveInterval: 10
  # 新的保存机制可以最小化保存文件的速度和时间,并节省加载时间
  # 大的文件会产生一些大的影响
  NewSaveMechanic: false
  Backup:
    AutoCleanUp:
      # 你是否想从备份的文件夹中自动删除备份文件(除非这些备份文件已经非常大了
      Use: false
      Days: 30
    # 你是否想备份文件转成zip文件
    # 这不会对备份文件产生影响
    UseZip: true
    IncludeFiles:
      Worlds: true
      forsale: true
      leases: true
      permlists: true
      rent: true
      flags: true
      groups: true
      config: true
  AutoCleanUp:
    # 玩家在 X 天后没登陆则会自动删除领地
    # 玩家可以用 residence.cleanbypass 权限无视选项
    Use: false
    # 玩家需要多少天没登陆才删除他的领地
    Days: 60
    # 删除的世界
    Worlds:
    - world
  Lwc:
    # 租用/购买领地时是否移除所有LWC的保护
    OnDelete: true
    # 在购买领地时,是否删除已有的LWC保护
    OnBuy: true
    # 在不租用领地时,是否删除已有的LWC保护
    OnUnrent: true
    # 删除保护的物品(这里不支持数字,但是支持名字和NBT
    MaterialList:
    - CHEST
    - TRAPPED_CHEST
    - furnace
    - dispenser
  AntiGreef:
    TNT:
      # 如果设置成true,则超过62格TNT将会无法爆炸
      # 启用它将会允许TNT小游戏带来更多乐趣
      ExplodeBelow: false
      level: 62
    Creeper:
      # 如果设置成true,则超过62格苦力怕将会无法爆炸
      # 启用它将会允许小游戏带来更多乐趣
      ExplodeBelow: false
      level: 62
    Flow:
      # 这是限制水和岩浆流动时高度的设置
      # 这个选项不会限制领地内水和岩浆的高度
      Level: 63
      # 如果设置为true, 则会限制岩浆的高度
      NoLavaFlow: true
      # 如果设置为true, 则会限制水的高度
      NoWaterFlow: true
      Worlds:
      - world
    Place:
      # 这里将会限制水和岩浆开始放置的地方
      # 这个选项不会限制领地内水和岩浆的高度
      Level: 63
      # 如果设置为true, 则会限制岩浆的高度
      NoLavaPlace: true
      # 如果设置为true, 则会限制水的高度
      NoWaterPlace: true
      Worlds:
      - world
    BlockFall:
      # 如果设置为true, falling blocks will be deleted if they will land in different area(不懂qwq
      Use: true
      # Level from witch one to start block block's fall
      # 这个选项不会限制领地内的outside
      Level: 62
      Worlds:
      - world
    ResCleaning:
      # 如果设置为true, 下列的方块会被空气所代替
      # 可以有效的防止玩家在其他人领地附近创建领地放置液体后删除,以此进行领地破坏
      Use: true
      # 限制的高度
      Level: 63
      # 被替换的方块的列表
      # 默认情况下,只有水和岩浆会被替换
      Blocks:
      - 8
      - 9
      - 10
      - 11
      Worlds:
      - world
    Flags:
      # 默认设置为true,这可以让 flags 更改后也进行保护,防止一些特殊的情况
      # 例如,防止其他人进入领地后修改pvp的flag以此进行击杀
      Prevent: true
      list:
      - pvp
  # 如果没有给予其他权限组权限或者不使用权限插件,则将会使用下面的组名
  DefaultGroup: default
  # 启用/禁用租.赁系统
  UseLeaseSystem: false
  # 设置日期格式,如租。赁过期或租。赁的时间
  # 你可以适当的修改, 你可以查看此网站获得更多的时间格式 
  DateFormat: E yyyy.MM.dd 'at' hh:mm:ss a zzz
  # 显示日期的时区,当服务器在不同国家时,将会默认此时区为默认时间
  # 你可以适当的修改, 你可以查看此网站获得更多的时间格式 
  TimeZone: Asia/Shanghai
  # 启用/禁用 删除领地时返还金钱
  ResMoneyBack: false
  # 在多少分钟内, 可以返还租.赁的钱 (需要开启租.赁系统).
  LeaseCheckInterval: 10
  # 如果玩家还持有钱,此将会为玩家自动续费租。赁的领地(如果经济插件被警用,此选项将会什么都做不了)
  LeaseAutoRenew: true
  # 是否启用权限插件
  EnablePermissions: true
  # 如果不使用 Permissions 或 PermissionsBukkit插件, 或旧版的 Permissions ,请设置为true
  LegacyPermissions: false
  # 启用/禁用 经济系统 (支持的插件有:iConomy, MineConomy, Essentials, BOSEconomy, 和 RealEconomy ).
  EnableEconomy: true
  # 如果启用了更多信息,将会在领地出租/出售时提示他人如何租用/购买领地
  ExtraEnterMessage: true
  Sell:
    # 如果设置为true, 这将会允许出售字领地,不建议设置为false
    Subzone: false
  # 启用/禁用出租系统
  EnableRentSystem: false
  Rent:
    # 这可以防止 领地/子领地被删除了还是可以租用
    PreventRemoval: true
    Inform:
      # 通知玩家租用将会过期
      OnEnding: true
      # 何时开启对玩家租用领地过期的提醒
      Before: 1440
      # 玩家在登陆多少秒后提示租用领地即将过期
      Delay: 60
    DefaultValues:
      # 出租领地时的默认选项
      AllowRenewing: true
      StayInMarket: true
      AllowAutoPay: true
      # 如果设置为true, 如果玩家没有启用自动支付,那么这个选项将会帮助他选择
      PlayerAutoPay: true
    Schematics:
      # 实验选项!!! 如果设置为true, 出租的领地会在回收时还原默认的样子
      # 你可以给这权限 residence.backup 或者设置 backup 这个flag可以修改此选项
      RestoreAfterRentEnds: true
      # 如果设置为true, 只有 backup 开启时才会备份
      # 如果设置为false, 每个出租的领地都会备份,到时间结束时就会自动还原
      # 请记住,当它设置为false时,服务器的负担会更大
      SaveOnFlagChange: true
  # 在多少分钟内,出租的领地过期后多少分钟还原(需要开启租.赁系统)
  RentCheckInterval: 10
  # 启用/禁用领地聊天系统
  ResidenceChatEnable: true
  ActionBar:
    # 对于 ActionBar - 1.8 的新特性
    # 如果设置为false,则使用旧的方法传递 进入/离开 领地的信息
    General: true
    ShowOnSelection: true
  TitleBar:
    # 如果设置为true 将会把 进入/离开 领地的信息显示在 正标题/副标题 中
    # 在设置 正标题/副标题时候,可以用 %subtitle% 来写副标题
    EnterLeave: false
  # 领地聊天的颜色
  ResidenceChatColor: DARK_PURPLE
  ResidenceChatPrefixLength: 16
  # 是否要忽略 权限 ,这样只能领地管理员和OP才能更改设置
  AdminOnlyCommands: false
  # 如果设置为true,则开启领地Op (/resadmin)
  AdminOPs: true
  # 如果设置为true,则将领地设置上升至管理员也可操作,不需要/resadmin指令,如果是Op的领地,则其他Op操作需要相应的权限
  AdminFullAccess: false
  # 这是你在使用的多世界插件的名字.
  # 唯一的功能是确保你安装了多世界插件,以便本插件正确加载其他世界的领地.
  MultiWorldPlugin: Multiverse-Core
  # 如果设置为true,则子领地会继承父领地
  ResidenceFlagsInherit: true
  # 如果设置为true,则允许租用领地的人修改flag
  PreventRentModify: true
  # 当子领地所有者与父领地所有者不同时,可以设置为true来防止子领地被删除
  PreventSubZoneRemoval: true
  # 如果设置为false,当领地插件出错的时候还会继续加载插件.
  StopOnSaveFault: true
  ResidenceNameRegex: '[^a-zA-Z0-9\-\_]'
  # 如果设置为true,将会发信息到控制台,信息为租.赁过期检查或续租需要的资金.
  ShowIntervalMessages: false
  # 如果设置为true,插件将会发送一份教程给玩家设置.
  ShowNoobMessage: true
  # 如果设置为true,则会在玩家周围自动创建领地.
  # 如果服务器重启,他还没有领地时,将会自动创建领地
  NewPlayer:
    Use: false
    # 如果设置为true,则免费创建领地
    # 如果设置为false, 则会收钱创建领地 
    Free: true
    # 在两边都选择位置. 并距离为 5, 领地就是 5+5+1 = 11 大小
    Range:
      X: 5
      Y: 5
      Z: 5
  # 实验功能 - 以下是在装有mod的情况下作为 '容器' '使用' 时的物品ID
  CustomContainers: []
  CustomBothClick: []
  CustomRightClick: []
  Visualizer:
    # 有了这个功能,玩家就能在创建领地的时候看见他地方的范围了
    Use: true
    # 粒子显示的范围
    # 不要超过30,因为玩家看得见的区块不能超过16个
    Range: 16
    # 显示粒子的时间 (5000 = 5秒) 以毫秒为单位
    ShowFor: 5000
    # 更新粒子的频率
    updateInterval: 20
    # 粒子的间隔
    RowSpacing: 2
    # 粒子显示时间的间隔
    CollumnSpacing: 2
    # 一个玩家的最大粒子数
    FrameCap: 2000
    # 一个玩家可以显示最大的粒子数
    SidesCap: 2000
    # 粒子效果的名字: explode, largeexplode, hugeexplosion, fireworksSpark, splash, wake, crit, magicCrit
    #  smoke, largesmoke, spell, instantSpell, mobSpell, mobSpellAmbient, witchMagic, dripWater, dripLava, angryVillager, happyVillager, townaura
    #  note, portal, enchantmenttable, flame, lava, footstep, cloud, reddust, snowballpoof, snowshovel, slime, heart, barrier
    #  droplet, take, mobappearance

    # 如果使用 spigot 的服务端,可以用不同的粒子:
    # click2, click1, bow_fire, door_toggle, iron_door_toggle, trapdoor_toggle, iron_trapdoor_toggle, fence_gate_toggle, door_close, iron_door_close, trapdoor_close, iron_trapdoor_close, fence_gate_close, extinguish, record_play, ghast_shriek, ghast_shoot, blaze_shoot, zombie_chew_wooden_door, zombie_chew_iron_door, zombie_destroy_door, smoke, step_sound, potion_break, ender_signal, mobspawner_flames, brewing_stand_brew, chorus_flower_grow, chorus_flower_death, portal_travel, endereye_launch, firework_shoot, villager_plant_grow, dragon_breath, anvil_break, anvil_use, anvil_land, enderdragon_shoot, wither_break_block, wither_shoot, zombie_infect, zombie_converted_villager, bat_takeoff, end_gateway_spawn, enderdragon_growl, fireworks_spark, crit, magic_crit, potion_swirl, potion_swirl_transparent, spell, instant_spell, witch_magic, note, portal, flying_glyph, flame, lava_pop, footstep, splash, particle_smoke, explosion_huge, explosion_large, explosion, void_fog, small_smoke, cloud, coloured_dust, snowball_break, waterdrip, lavadrip, snow_shovel, slime, heart, villager_thundercloud, happy_villager, large_smoke, item_break, tile_break, tile_dust, 
    Selected:
      Frame: happyVillager
      Sides: reddust
    Overlap:
      Frame: FLAME
      Sides: FLAME
  # 当玩家被推出领地时,出现粒子效果
  BounceAnimation: true
  GUI:
    # 是否启用flag的GUI
    Enabled: true
    # 当flag为true时显示的物品
    setTrue:
      Id: 35
      Data: 13
    # 当flag为false时显示的物品
    setFalse:
      Id: 35
      Data: 14
    # 当flag被删除时显示的物品
    setRemove:
      Id: 35
      Data: 8
  # 默认 = false. 启用它, 开启了相应flag的领地将会不定期删除领地内的怪物
  # 这个选项是相当重要的, 只有在需要时才开启
  AutoMobRemoval:
    Use: false
    # 在几秒内检查领地内怪物的数量
    Interval: 3
  EnforceAreaInsideArea: false
  EnableSpout: false
  EnableLeaseMoneyAccount: true
  # 默认设置为true, 将会使用兼容kCouldron端的代码. title信息和可视化工具将会被禁用
  CouldronCompatability: false
DynMap:
  # 启用/禁用 DynMap 的支持
  Use: false
  # 显示或隐藏领地flag
  ShowFlags: true
  # 如果设置为true, 开启的flag将会隐藏,无法被info看见
  HideHidden: true
  Layer:
    # 开启3D显示信息
    3dRegions: true
    # 进入子领地时显示的信息时长
    SubZoneDepth: 2
  Border:
    # 边界的颜色,你可以从这里看见更多颜色 http://www.w3schools.com/colors/colors_picker.asp
    Color: '#FF0000'
    # 透明度. 0.3 表面只有 30% 是可以看见的
    Opacity: 0.3
    # 边框粗细
    Weight: 3
  Fill:
    Opacity: 0.3
    Color: '#FFFF00'
    ForRent: '#33cc33'
    Rented: '#99ff33'
    ForSale: '#0066ff'
  # 只能在列表上显示的领地
  VisibleRegions: []
  # 在列表上隐藏的领地
  HiddenRegions: []

 

posted @ 2024-03-01 12:28  拾一贰叁  阅读(707)  评论(0编辑  收藏  举报