Integrations - Rumsfield/konquest GitHub Wiki

Updated for 1.9.0

Konquest Integrations

The Konquest plugin optionally integrates with other plugins to offer added features.

EssentialsX

EssentialsX provides many useful commands and economy features to the server. Konquest integrates with EssentialsX by controlling where players can set their homes, and where they can teleport using EssentialsX commands. The Konquest core.yml configuration file has the following options:

  • core.integration.essentialsx - When true, players can only set homes inside of friendly town and capital territory of their kingdom, and barbarians can only set homes inside of their own camps.
  • core.integration.essentialsx_options.enable_wild_homes - When true, players can also set homes in the wild.
  • core.integration.essentialsx_options.enable_teleport_protection - When true, players cannot use EssentialsX teleport commands to teleport into or out of enemy territory, as well as no teleporting when combat tagged.
  • core.integration.essentialsx_options.enable_afk_payments - When true, players will receive kingdom payments while AFK, otherwise they will not get payments when AFK.

WorldGuard

WorldGuard allows players to define regions in the game world with different flag settings. Note that WorldGuard also requires WorldEdit as a dependency. Konquest can integrate with WorldGuard (core.integration.worldguard) to provide custom flags that can be set to control how players claim land and travel in WorldGuard regions.

Custom Region Flags

Flag Name Description
konquest-claim Allow or deny any chunk within the region to be claimed as a part of any Konquest territory (towns, capitals, etc).
konquest-unclaim Allow or deny any chunk within the region to be unclaimed from any Konquest territory (towns, capitals, etc).
konquest-travel-enter Allow or deny all players to teleport into the region using Konquest's travel command.
konquest-travel-exit Allow or deny all players to teleport out of the region using Konquest's travel command.
konquest-arena Allow or deny players to PvP with any other player, regardless of kingdom relationship.

QuickShop-Hikari & ChestShop

QuickShop-Hikari and ChestShop are chest shop plugins which allow players to make customs shops to buy/sell their items for favor. Only the shop owner may access the contents of the associated chest. Konquest can integrate with QuickShop-Hikari (core.integration.quickshop) and ChestShop (core.integration.chestshop) to offer the following features:

  • Players may only create shops within friendly town land. Shops cannot be created in The Wild.
  • Players can only trade with shops in their own kingdom's land, or other kingdoms with a diplomatic relationship of Trade or Alliance. Players can also trade with shops within Sanctuary land.
  • Upon town capture, all shops within the town land are removed, leaving behind the chests and items to be taken.

LuckPerms

LuckPerms is a permissions plugin which can assign players a prefix/suffix based on their assigned permission group. Konquest can integrate with LuckPerms (core.integration.luckperms) in order to preserve the formatted prefix/suffix text on player names in the chat feed.

LuckPerms color codes

You can set permission groups in LuckPerms to have their own prefix and suffix. These can include color codes, using standard Minecraft formatting codes or custom hex colors. Just use the & symbol before the color value, or # before the hex code. For example:

  • Set a dark red prefix with standard codes: &4Admin
  • Set a custom hex color, ff00ff: #ff00ffMod

Squaremap, Dynmap & BlueMap

Squaremap, Dynmap and BlueMap are like the Google Earth of Minecraft. It's a plugin that renders the Minecraft world as a map in your web browser. Konquest will automatically draw all territory areas on the maps in a browser, when enabled in the core.yml configuration file.

  • core.integration.map_options.enable_kingdoms - Render kingdom capitals and towns on the web-based map view.
  • core.integration.map_options.enable_camps - Render barbarian camps on the web-based map view.
  • core.integration.map_options.enable_sanctuaries - Render sanctuaries on the web-based map view.
  • core.integration.map_options.enable_ruins - Render ruins on the web-based map view.
  • core.integration.map_options.show_banners - Display banner images from the plugins/Konquest/banners/ folder on territory labels.

Banner Images

You can put custom PNG image files in the plugins/Konquest/banners/ folder and have them displayed on the web map in territory labels (core.integration.map_options.show_banners). The following image file names can be used:

  • default.png - The default image used for all territories, when a specific territory type or kingdom image is missing.
  • camp.png - The banner image used for all barbarian camps.
  • ruin.png - The banner image used for all ruins.
  • sanctuary.png - The banner image used for all sanctuaries.
  • <kingdom name>.png - The banner image used for a specific kingdom with a matching name.

Refer to the banner instructions for more details.

Custom Map Colors

Every town and capital area in a kingdom are displayed on the web map using a default random color. More technically, the color is derived from the letters of the kingdom's name. Players can use commands to override the colors used for kingdoms on the web map. The color can be a named preset (e.g. red, blue, purple, etc.), or it can be a hex value (e.g. #00ffb5).

  • When core.yml option core.kingdoms.web_color_admin_only: true, only players with admin permissions may use the command /k admin kingdom webcolor (name) (color) to change the web map color.
  • When core.yml option core.kingdoms.web_color_admin_only: false, the admin command still works, but now players without admin permissions who are the kingdom master may also use the command /k kingdom webcolor (color) to change the web map color.

To reset the color back to the default name-based color, use "default" instead of a color value: /k kingdom webcolor default.

DiscordSRV

DiscordSRV allows the chat in your Minecraft server to go to your Discord server, and back from your Discord server to the Minecraft chat. Follow the detailed instructions on the DiscordSRV wiki on how to set it up. Konquest will hook into DiscordSRV when the core.yml option core.integration.discordsrv is true.

Features

Konquest can support the following features when DiscordSRV is installed on your server:

  • All chat is sent to DiscordSRV's "global" linked channel.
  • Kingdom chat is sent to linked channels that match the name of the kingdom (case-sensitive).
  • Use Konquest API events with DiscordSRV Alerts for messages when specific actions happen in the game.
  • Send town raid alerts as direct messages (core.integration.discordsrv_options.raid_alert_direct) and as mentions to linked kingdom chat channels (core.integration.discordsrv_options.raid_alert_channel).
  • Automatically manage and assign Discord roles for every kingdom to linked players (core.integration.discordsrv_options.auto_roles).

DiscordSRV Alerts

Here are some example triggers for the DiscordSRV alerts.yml file. These triggers use the Konquest API events.

Alerts:

  # Kingdom create
  - Trigger: KonquestKingdomCreateEvent
    Channel: global
    Embed:
      Color: "#440044"
      Title:
        Text: ':crown: New Kingdom Created'
      Description: '${#event.getPlayer().getBukkitPlayer().getName() + " has created the Kingdom of " + #event.getKingdom().getName()}'
      
      
  # Kingdom disband
  - Trigger: KonquestKingdomDisbandEvent
    Channel: global
    Embed:
      Color: "#440044"
      Title:
        Text: ':skull: Kingdom Disbanded'
      Description: '${"The Kingdom of " + #event.getName() + " has been disbanded."}'
      
  # Kingdom conquer
  - Trigger: KonquestKingdomConquerEvent
    Channel: global
    Embed:
      Color: "#440044"
      Title:
        Text: ':headstone: Kingdom Conquered'
      Description: '${"The Kingdom of " + #event.getName() + " has been conquered by " + #event.getConqueror().getName()}'
      
  # Town settle
  - Trigger: KonquestTownSettleEvent
    Channel: global
    Embed:
      Color: "#440044"
      Title:
        Text: ':cityscape: New Town Settled'
      Description: '${#event.getPlayer().getBukkitPlayer().getName() + " has settled the Town of " + #event.getTown().getName()}'
      
  # Town capture
  - Trigger: KonquestTownCapturePostEvent
    Channel: global
    Embed:
      Color: "#440044"
      Title:
        Text: ':link: Town Captured'
      Description: '${"The Town of " + #event.getTown().getName() + " has been captured by " + #event.getTown().getKingdom().getName()}'
      
  # Ruin capture
  - Trigger: KonquestRuinCapturePostEvent
    Channel: global
    Embed:
      Color: "#440044"
      Title:
        Text: ':bomb: Ruin Captured'
      Description: '${#event.getPlayer().getBukkitPlayer().getName() + " has captured the Ruin " + #event.getRuin().getName()}'

  # Kingdom diplomacy - peace
  - Trigger: KonquestKingdomDiplomacyEvent
    Channel: global
    Conditions:
      - '#event.isPeace() == true'
    Embed:
      Color: "#440044"
      Title:
        Text: ':dove: Kingdoms at Peace'
      Description: '${"The Kingdoms of " + #event.getKingdom().getName() + " and " + #event.getTargetKingdom().getName() + " are now at peace!"}'

  # Kingdom diplomacy - war
  - Trigger: KonquestKingdomDiplomacyEvent
    Channel: global
    Conditions:
      - '#event.isWar() == true'
    Embed:
      Color: "#440044"
      Title:
        Text: ':dagger: Kingdoms at War'
      Description: '${"The Kingdoms of " + #event.getKingdom().getName() + " and " + #event.getTargetKingdom().getName() + " are now at war!"}'

Kingdom Chat

When players change to kingdom chat with the /k chat command, their chat messages are only visible to their fellow kingdom members. When DiscordSRV is installed on your server, kingdom chat messages also get sent to a special linked channel in Discord. Each kingdom's link channel is named after the kingdom. For example, the kingdom called "Rome" sends kingdom chat messages to DiscordSRV on the "Rome" channel.

You must add kingdom chat links in the DiscordSRV config.yml file to map them to the Discord channels you want to use. The link name is case-sensitive, and must match the kingdom name exactly. For example:

# The first part of channel pairs is not the Discord channel name!
# Run "/discord reload" after changing this option to apply
Channels: {"global": "990285913949085706", "Rome": "990286025295294475"}