DefensiveTurrets | Defend Yourself using Turrets! [1.8-1.14] 3.3.1

Mechanic in which users can place and upgrade Turrets to defend themselves against enemies

  1. Ajneb97
    Tested Minecraft Versions:
    • 1.8
    • 1.9
    • 1.10
    • 1.11
    • 1.12
    • 1.13
    • 1.14
    [​IMG]
    [​IMG]
    What can I do with DefensiveTurrets?
    This plugin allows the users of your server to place different kinds of Turrets to maintain their homes/territories secured. Currently there are 3 types of Turrets (Burst, Laser and Siege). These turrets will constantly attack monsters/players/animals and keep them away from your lands.

    You can change a lot of Turret properties like the damage, range, cooldown, speed or sounds. And remember, every Turret can have as many upgrades as you want! (Tutorial of the config below)

    [​IMG]

    [​IMG]
    - 3 Different Turrets (Burst, Laser, Siege)
    - Configurable Turret Properties:

    • Min and Max damage
    • Block ID, name and lore
    • Cooldown
    • Range
    • As many upgrades as you want
    • Sounds
    • Special options
    - Damage and Information Holograms (using HolographicDisplays)
    - Minimum distance between Turrets condition
    - Turret damages Monsters, Players and Animals (configurable in each turret)
    - Per Turret Permission option
    - Factions/SavageFactions/SaberFactions/FactionsUUID/Towny Allies Support
    - Player Allies per Turret
    - Ammunition for Turrets
    - Turret Placement Limit
    - Works in 1.8+
    - Messages.yml file for translation

    [​IMG]

    1) Download DefensiveTurrets and Vault from this link: https://dev.bukkit.org/projects/vault
    If you want holograms to show up, you need HolographicDisplays: https://www.spigotmc.org/resources/holoinfo-holographic-information-1-8-1-13.65689/

    2) Use /dt give <turret> <player> to give players a Turret. You can use the command from the console. Remember to use a valid turret name. (Burst, Laser or Siege)
    3.1) Place the Turret Block on the ground and right click it. An inventory will be opened which is used to check the current turret properties and to upgrade its level (to have better stats)
    3.2) You can open the Turret options menu where you can change some turret properties. Here you can disable targets, like players, monsters or animals. Also, you have a button for enabling or disabling the turret.
    [​IMG]
    3.3) Players can add other players to a whitelist which the turret should not attack. You can remove them when you want in the same inventory.
    3.4) If the ammunition option is enabled in the config, you need to add ammo to your turret in order to start shooting. Remember to disable your turret whenever you want to add ammo.

    [​IMG]

    4) Change the turrets properties as you want in their respective configs (In the turrets folder you can find the turrets files) with the following tutorial:
    Each of the turret files have the same format, but the most important one is the "Turret" section in which you rename the turret, change their sounds and finally, create upgrades for it. As each tower is different, they have different properties.

    For the sound property be careful because sound names are different in each Minecraft version:
    Sounds 1.8: http://docs.codelanx.com/Bukkit/1.8/org/bukkit/Sound.html
    Sounds 1.14: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html

    [​IMG]

    Description: Fast speed turret with no extra abilities.
    #Format: - "Price;min_damage;max_damage;cooldown(in seconds);range(in blocks)"
    upgrades:
    - "0;1-1.5;0.75;10"
    - "800;1.75-2.25;0.5;13"
    - "2500;2.75-4;0.25;16"
    [​IMG]

    Description: Medium speed turret that pushes the enemy on every hit.
    #Format: - "Price;min_damage;max_damage;cooldown(in seconds);range(in blocks);power"
    upgrades:
    - "0;5-7;2;15;0.5"
    - "800;9-13;1.75;17;1"
    - "2500;16-22;1.5;20;1.5"
    [​IMG]

    Description: Slow speed turret that damages multiple enemies on every hit.
    #Format: - "Price;min_damage;max_damage;cooldown(in seconds);range(in blocks);radius"
    upgrades:
    - "0;4-9;3;8;1.5"
    - "800;8-15;2.5;11;2.5"
    - "2500;13-20;2;14;3.5"
    Code (YAML):
    Config:
        enable_turrets_only_when_owner_is_online
    : false
        min_distance_between_turrets
    : 1
        damage_holograms
    : true
        information_holograms
    : true
        new_version_reminder
    : true
        per_turret_permissions
    : false
        factions_ally_compatibility
    : true
        towny_ally_compatibility
    : true
        walls_better_check
    : false
        turrets_require_ammunition
    : true
        ignore_damage_to_invisible_players
    : true
        turrets_global_check_time
    : 5
        turret_limit_permissions
    :
            enabled
    : true
            default_limit
    : 1
        protect_turrets_from_explosions
    : true
        receive_turret_on_destroy
    : true
        blacklisted_worlds
    :
       - minigames
        - lobby
        delete_turret_item
    :
            id
    : "REDSTONE_BLOCK"
            name
    : "&cDestroy Turret"
            lore
    :
           - "&7This action cannot be undone!"
        turret_options_item
    :
            id
    : "CRAFTING_TABLE"
            name
    : "&aTurret Options"
        inventory_back_item
    :
            id
    : "ARROW"
            name
    : "&7Back"
    #If this option is enabled, the turret will be deactivated when the player leaves the server.
    enable_turrets_only_when_owner_is_online: true

    #This number defines the minimum separation in blocks between turrets.

    min_distance_between_turrets: 1

    #These options allows you to enable holograms when turrets hits enemies and when players look at turrets.
    damage_holograms: true
    information_holograms: true

    #If this option is enabled, you have to add the corresponding permission of turrets to players. (defensiveturrets.use.<turret_name>)

    per_turret_permission: true

    #If this option is enabled, you can limit the amount of turret that players can place. (defensiveturrets.limit.X). If a group doesn't have the permission, the default_limit will be used.

    turret_limit_permissions:
    enabled: true
    default_limit: 1

    #If this option is enabled, explosions will not affect turrets. If is set to false, turrets will be destroyed and removed from the config when exploding.

    protect_turrets_from_explosions: true

    #If this option is enabled, faction allies will not be attacked by your turrets.
    factions_ally_compatibility: true

    #If this option is enabled, more blocks will be checked to determine if there are obstacles between an entity and the turret. The performance could decrease a little bit.

    walls_better_check: false

    #If this option is enabled, turrets will need ammo in order to shoot. You can give ammo to players using the command below.

    turrets_require_ammunition: true

    #This option will fix and remove turrets which were destroyed by external sources, like WorldEdit. Here you can set the amount of time (in seconds) of these periodical checks.

    turrets_global_check_time: 5

    #Players will not be able to place Turrets in these worlds.

    blacklisted_worlds:
    - minigames
    - lobby

    #If this option is enabled, players will receive the Turret block when destroying it. Doesn't keep the upgrades.

    receive_turret_on_destroy: true
    Code (Text):
    Messages:
        prefix: "&8[&aDefensive&9Turrets&8]"
        noPermissions: "&cYou don't have permissions to execute that command."
        configReloaded: "&aConfig Reloaded!"
        giveCommandError: "&cYou need to use &7/dt give <turret> <player>"
        playerNotOnline: "&cThat player is not online."
        turretDoesNotExist: "&cThat turret doesn't exists."
        giveCommandSuccessPlayer: "%name% &aadded to your inventory!"
        giveCommandSuccessSender: "&aYou gave %name% &ato &e%player%&a!"
        turretCreated : "&aTurret created!"
        cantDestroyTurret: "&cTo destroy a Turret you need to open its inventory using Right Click."
        turretInventory: "&9Turret Inventory"
        notYourTurret: "&cThis is not your turret!"
        openingTurretInventory: "&aOpening Turret Inventory."
        turretRemoved: "&aTurret removed!"
        turretUpgraded: "&aTurret upgraded to Level: &e%level%&a!"
        noEnoughMoney: "&cYou don't have enough money to upgrade this Turret."
        minDistanceError: "&cThere is another turret nearby!"
        damageHologram: "&c-%damage% &8[&a%player%&8]"
        informationHologram:
        - "&8[&6%turret_name%&8]"
        - "&7Owner: &a%owner%"
        - "&7Level: &a%level%"
        - "&7Damage: &a%min%&8-&a%max%"
        - "%error%"
        informationHologramNoAmmoError: "&cOut of ammo!"
        informationHologramNotEnabledError: "&cTurret disabled!"
        soundError: "&7&l%name% &cis not a valid Sound. Check your config!"
        placeTurretNoPermissions: "&cYou don't have permissions to use that Turret."
        turretOptionAttackMonsters: "&6Attack Monsters"
        turretOptionAttackPlayers: "&6Attack Players"
        turretOptionAttackAnimals: "&6Attack Animals"
        turretOptionEnabled: "&7Status: &aENABLED"
        turretOptionDisabled: "&7Status: &cDISABLED"
        turretDestroyed: "&cYour &a%name% &cin &8[&7%x_coord%,%y_coord%,%z_coord%&8] &cwas destroyed!"
        turretLimitError: "&cYou can't place another turret, your limit is: &7%limit%"
        turretOptionPermissionsError: "&cYou don't have permissions to modify this option."
        turretOptionPlayers: "&6Whitelisted Players"
        turretOptionPlayersList: "&8- &a%name%"
        turretOptionPlayersListNone: "&8None"
        turretOptionPlayersPlayerLore:
        - "&8[&cRight Click to remove player&8]"
        turretOptionPlayersAddPlayer: "&aAdd Player"
        turretOptionPlayerRemoved: "&cPlayer &e%name% &cremoved from your Turret."
        turretOptionPlayersAddPlayerInfo: "&aWrite the name of the player you want to add to your turret:"
        turretOptionAddPlayerNotValid: "&cThat's not a valid player name."
        turretOptionAddPlayerOwnName: "&cIt's not necessary to add you to your own turret."
        turretOptionAddPlayerAlreadyAdded: "&cThat player is already added on this turret."
        turretOptionAddPlayerSuccess: "&aPlayer &e%name% &aadded to your Turret!"
        giveammoCommandError: "&cYou need to use &7/dt giveammo <turret> <player> <amount>"
        giveammoCommandSuccessPlayer: "%name% &aadded to your inventory!"
        giveammoCommandSuccessSender: "&aYou gave %name% &ato &e%player%&a!"
        amountError: "&cYou need to write a valid amount."
        turretOptionAmmunitionStorage: "&6Ammunition Storage"
        turretOptionAmmunitionCurrentAmmo: "&7Current Ammo: &9%ammo%"
        turretOptionAmmunitionError: "&cThat's not the correct ammo for this turret."
        turretEnabled: "&6Turret: &aENABLED"
        turretDisabled: "&6Turret: &cDISABLED"
        turretStatusMessage: "&8[&7Click to change Status&8]"
        turretOptionAmmunitionDisabledError: "&cThe turret must be disabled to add ammo."
    5) If you change something in the config remember to use /dt reload to save the changes. If you see nothing happens, then it's better to stop your server and start it again.
    Currently the plugin has a small API.

    For this to work you need to add my plugin to your plugin external jars dependencies and to set softdepends: DefensiveTurrets on your plugin.yml file

    Code (Java):
    //Event called when player places a Turret Block
    @EventHandler
    public void placeTurret(TurretPlaceEvent event){
       Player player = event.getPlayer();
       String turretName = event.getTurretName();
       Location turretLocation = event.getLocation();
    }
    Code (Java):
    //Event called when a Turret kills an entity
    @EventHandler
    public void turretKill(TurretKillEvent event){
       String owner = event.getOwnerName();
       String turretName = event.getTurretName();
       Entity killedEntity = event.getEntity();
    }
    Chinese by @Neubulae : Click Here
    Portuguese by @ResleyNation : Click Here
    French by @Kittle : Click Here
    Slovak by @Pist0len_SK : Click Here

    [​IMG]
    -/dt give <turret> <player> Gives the chosen turret to the specified player.
    -/dt giveammo <turret> <player> <amount> Gives ammo to the player.
    -/dt reload Reloads the config.
    -/dt help Shows this message.

    [​IMG]
    - defensiveturrets.admin
    - defensiveturrets.admin.open
    (Allows to open other people's turrets)
    - defensiveturrets.use.<turret_name> (If per_turret_permissions is enabled on the config)
    - defensiveturrets.limit.X (If turret_limit_permissions is enabled on the config. For example, groups with the permission defensiveturrets.limit.5 will be able to place a maximum of 5 turrets. If a group doesn't have a limit permission the default limit will be used.)
    - defensiveturrets.options.attackmonsters
    - defensiveturrets.options.attackplayers
    - defensiveturrets.options.attackanimals

    [​IMG]
    [​IMG]
    [​IMG]

    [​IMG]


    Videos:
    English by: @LuxLacis



    Spanish by Me


    Please avoid posting bad ratings before asking. If you have problems or bugs with the plugin contact with me or post on the plugin discussion and I will take a look at it. Enjoy the plugin ;)

Recent Updates

  1. 3.3.1
  2. 3.2.1
  3. 3.1.1

Recent Reviews

  1. DarthGpR
    DarthGpR
    5/5,
    Version: 3.3.1
    Amazing plugin bro!
    Thx you so much! My server is now better wih turrets.
    THIS IS WOW!
    1. Ajneb97
      Author's Response
      Thank you for the review! :)
  2. Sbeo
    Sbeo
    5/5,
    Version: 3.2.1
    Great plugin I love!
    I installed it on my server but unfortunately the turrets do no damage when it attacks the mobs.
    How can I fix this problem?
    1. Ajneb97
      Author's Response
      Do you have any errors on the console? You can answer me in the dicussion of the plugin
  3. Aletf99
    Aletf99
    5/5,
    Version: 3.2.1
    Great, that a excellent plugin, but it would be better if it have an option to craft turrets, because if you want to run an anarchy server whit this the players couldn't use it. (that is, the server should intervene the minimum in the game of the players, without adding things like spawns or stores)
    1. Ajneb97
      Author's Response
      Thanks for the review. For now you can use any crafting plugin to create a turret block.
  4. Pist0len_SK
    Pist0len_SK
    5/5,
    Version: 3.2.1
    Can you create shop? :) /dt shop (buy turrets and ammo.. thanks)
    And this is Slovak translate :) (server IP: mc.hardlife.eu)

    Messages:
    prefix: '&6♜'
    noPermissions: '&cNemáš oprávnenie'
    configReloaded: '&eConfig Reloaded!'
    giveCommandError: '&cPríkaz &7/dt give <turret> <player>'
    playerNotOnline: '&cHráč nie je online'
    turretDoesNotExist: '&cTáto veža neexistuje.'
    giveCommandSuccessPlayer: '%name% veža bola pridaná do tvojho inventáru!'
    giveCommandSuccessSender: '&aYou gave %name% &ato &e%player%&a!'
    turretCreated: '&aTurret created!'
    cantDestroyTurret: '&cAk chceš zničiť vežu klikni pravým tlačítkom.'
    turretInventory: '&9Inventár'
    notYourTurret: '&cToto nie je tvoja veža!'
    openingTurretInventory: '&aOtváram inventár.'
    turretRemoved: '&aVeža bola zmazaná!'
    turretUpgraded: '&aVeža bola vylepšená na level: &e%level%&a!'
    noEnoughMoney: '&cNemáš dostatok peňazí.'
    minDistanceError: '&cNeďaleko je ďalšia veža!'
    damageHologram: '&c-%damage% &8[&a%player%&8]'
    informationHologram:
    - '&8[&6%turret_name%&8]'
    - '&7Owner: &a%owner%'
    - '&7Level: &a%level%'
    - '&7Damage: &a%min%&8-&a%max%'
    - '%error%'
    informationHologramNoAmmoError: '&cZ nábojov!'
    informationHologramNotEnabledError: '&cVeža bola vypnutá!'
    soundError: '&7&l%name% &cis not a valid Sound. Check your config!'
    placeTurretNoPermissions: '&cNa túto vežu nemáš permisie.'
    turretOptionAttackMonsters: '&6Útok na príšery'
    turretOptionAttackPlayers: '&6Útok na hráčov'
    turretOptionAttackAnimals: '&6Útok na zvieratá'
    turretOptionEnabled: '&7Status: &aPOVOLENÉ'
    turretOptionDisabled: '&7Status: &cZAKÁZANÉ'
    turretDestroyed: '&cTvoja veža &a%name% &8[&7%x_coord%,%y_coord%,%z_coord%&8] &cbola zničená!'
    turretLimitError: '&cNemôžeš položiť ďalšiu vežu! Tvoj limit je: &7%limit%'
    turretOptionPermissionsError: '&cNemáš permisie.'
    turretOptionPlayers: '&6Zoznam povolených hráčov'
    turretOptionPlayersList: '&8- &a%name%'
    turretOptionPlayersListNone: '&8None'
    turretOptionPlayersPlayerLore:
    - '&8[&cKliknutím odstrániš hráča&8]'
    turretOptionPlayersAddPlayer: '&aPridať hráča'
    turretOptionPlayerRemoved: '&cHráč &e%name% &cbol odstránený zo zoznamu.'
    turretOptionPlayersAddPlayerInfo: '&aNapíš meno hráča, ktorého chceš pridať:'
    turretOptionAddPlayerNotValid: '&cTento hráč ešte u nás nehral..'
    turretOptionAddPlayerOwnName: '&cDo svojej veže sa nemusíš pridávať. Neublíži ti'
    turretOptionAddPlayerAlreadyAdded: '&cHráč bol pridaný.'
    turretOptionAddPlayerSuccess: '&aHráč &e%name% &abol pridaný, veža mu neublíži!'
    giveammoCommandError: '&cYou need to use &7/dt giveammo <turret> <player> <amount>'
    giveammoCommandSuccessPlayer: '%name% &aboli pridané do inventáru!'
    giveammoCommandSuccessSender: '&aYou gave %name% &ato &e%player%&a!'
    amountError: '&cYou need to write a valid amount.'
    turretOptionAmmunitionStorage: '&6Skladovanie munície'
    turretOptionAmmunitionCurrentAmmo: '&7Aktuálne munície: &9%ammo%'
    turretOptionAmmunitionError: '&cTento náboj do tejto veže nepasuje.'
    turretEnabled: '&6Veža: &aPOVOLENÁ'
    turretDisabled: '&6Veža: &cZAKÁZANÁ'
    turretStatusMessage: '&8[&7Klikni pr ezmenu&8]'
    turretOptionAmmunitionDisabledError: '&cAk chceš pridať náboje, vežu musíš vypnúť!'
    placeTurretWorldError: '&cYou can''t place a turret in this world.'
    1. Ajneb97
      Author's Response
      Thank you for the review and translation! I would recommend you to use another plugin like ChestCommands or AnimatedMenu to sell the DefensiveTurrets commands to players
  5. -BeefSoup-
    -BeefSoup-
    5/5,
    Version: 3.2.1
    Outstanding plugin! I would really like to see a cost option through maybe with diamonds for my vanilla server or with vault economy for some of the other people that use the plugin.

    Maybe if you want to go above any beyond another suggestion is maybe to link the plugin with citizens somehow and make a NPC called the arm's dealer and he deals turrets and other future features you add to the plugin.
    1. Ajneb97
      Author's Response
      Thanks for the review. For those specific features (like paying upgrades using diamond) I will develop a little bit more the API of the plugin.
  6. Kazimirz
    Kazimirz
    5/5,
    Version: 3.2.1
    Very nice plugin. Light weight and complex. Easy permissions and commands. Me and mine players enjoyed it.
    1. Ajneb97
      Author's Response
      Thank you for the review!
  7. JorgeMCS16
    JorgeMCS16
    5/5,
    Version: 3.0.1
    A very complete plugin, which really fulfills its function. The interface is very intuitive, very customizable without becoming tedious in its configuration. It could perfectly be a premium plugin, but I appreciate it not. Good job buddy!
    1. Ajneb97
      Author's Response
      Thank you for the review! :)
  8. Alxasi029plX
    Alxasi029plX
    5/5,
    Version: 3.0.1
    Me sorprende lo rapido que actualizas los plugins comparado a otros desarrolladores. En cuanto a la actualización, me gustaron ambas funciones.
    1. Ajneb97
      Author's Response
      Gracias por la review! :)
  9. Alxasi029plX
    Alxasi029plX
    5/5,
    Version: 2.3.2
    La verdad, excelente plugin y mejor aún que es gratiuito.
    Un detalle, estaria muy bien que se pudiera dañar de algun modo a las torretas o que hubiese forma de destruirlas siendo el enemigo. por ejemplo que la torreta tenga salud y esta disminuya cuando le atacas con espadas, etc.
    1. Ajneb97
      Author's Response
      Si ya me han recomendado lo mismo, pero no es nada facil jejej, tendre que encontrar una manera de hacerlo. Gracias por la review!
  10. vokz
    vokz
    5/5,
    Version: 2.3.2
    Great plugin! We are waiting for new features!
    Add HP for the turrets and the ability to attack it would be ideal.
    Thanks in advance!