[MECH] Fortification - Redstone defenses and tools [BukkitDev]

Discussion in 'Archived: Plugin Releases' started by Rogueleader89, Aug 6, 2011.

  1. Offline


    Important Note:

    This thread is largely outdated as I restart this plugin and move most of the information on it to a much more nicely formatted wiki. For latest info see the patch notes on the bukkitdev page (though the descriptions below will provide you with the basics of the most commonly used mechanisms).

    Also note that if you want to reach me about this plugin, bukkitdev is a much better place to do so.

    BukkitDev: http://dev.bukkit.org/bukkit-mods/fortification/

    This plugin uses the vault plugin for permissions and economy (without, it defaults to everything usable by everyone, teleblock shields bypassable by ops). Also (optionally) uses the Factions plugin for faction-based filters on some redstone devices or (optionally) towny for the same purpose.

    To steal my old description from the hmod page (with some updates, again, sorry, out of date, working on it):

    This is a redstone focused plugin aimed at leveling the playing field in pvp by providing defenders with the tools necessary to mount a proper defense. This being said, many of the features I am adding can serve non-combat purposes as well.

    What's in this plugin?

    As of v0.7 it adds flame turrets, sensors, trap doors, send signs, teleblock shields, chest shields and various other redstone based devices to minecraft (all of which are listed/explained below).



    Flame Turret

    You can make a flame turret if you have the permission "fortification.turret.flame".
    To do so place a sign on the block type defined in config (netherrack, id 87 by default).
    The first line must read "Flame" (no quotes, not case sensitive)
    second line is "[Turret]" (again not case sensitive and no quotes)

    When the sign is provided with power (via redstone) and the ground on the opposite side of the netherrack is level, fire shall appear up to 5 spaces (or whatever you define in the config under flame-turret-range) out from the netherrack (fire will not pass through solid blocks and can not appear in midair).

    Web Turret

    You can make a web turret if you have the permission "fortification.turret.web". To do so place a sign on the block type defined in the config (default is lightstone). Works just like the flame turret except the first line is "Web" (no quotes, not case sensitive). Unlike flame turrets, web turrets do not fire in a line. They fire a shot centered at the web turret length, 9 web total is placed around this spot. The web vanishes after a set amount of time (default 10 seconds, adjustable in config file).

    Arrow Turret

    You can make an arrow turret if you have the permission "fortification.turret.arrow". To do so place a sign on the block type defined in the config (defaultly this is set to 0, meaning it works with all block types). Works the same as the flame turret and the web turret except that the first line reads "arrow", "default", or is left blank (no quotes, not case sensitive). Arrow turrets fire in a (relatively) straight path from the side of the block opposite that of the arrow turret sign.


    You can make a sensor if you have the fortification.sensor permission.
    To do so place a sign on a block of your choice, with the first line of text being the type of filter you want on the sensor (blank = default), and the second line being "[Sensor]" (without quotes, not case sensitive) and a lever on the opposite end of that block. Now, in the case of the default sensor, when someone passes within 8 (or the length defined in the config file) blocks infront of the sensor it will detect their presence and activate the lever (and thus turn on any redstone near it). Filters can be applied to sensors to change how they detect people.

    Sensor Filters:
    playerdetect - Sensor detects only the two people listed on the 3rd and 4th lines of the sign.
    playerignore - Detects everyone except the two people listed on the 3rd and 4th lines of the sign.
    factiondetect - Detects people in the factions whose faction tags are on lines 3 and 4 of the sign (Requires factions plugin.)
    factionignore - Detects everyone except the people in the factions whose tags are on lines 3 and 4 of the sign (Requires faction plugin.)
    itemdetect - Detects people who are carrying an item with the id specified on line 3 or 4 of the sign.
    itemignore - Triggers if the detected player does not have the item listed on line 3 or line 4.
    weapondetect - Detects people who are carrying weapons (sword or bow).
    weaponignore -Detects people who are not carrying weapons.
    tooldetect - Detects people who are carrying tools (pick, shovel, axe, or shears)
    toolignore - Detects people who are not carrying tools.
    areaAlert - Detects everyone and broadcasts their display name and their location to everyone within a configurable radius around the sensor.
    factionalert - Detects everyone except people within the factions listed on line 3 and 4 and broadcasts the name of the person detected and their location to everyone within the factions listed on the 3rd and 4th lines.

    For a full list of sensor types ingame, type "/sensor". For more info on a specific type, type "/sensor type". (This also works for turrets, but its kind of pointless since there is only one turret type right now).

    Trap Doors

    You can make a trap door if you have the fortification.trapdoor permission.

    To do so place a wall sign with [Trapdoor] on the second line (case insensitive) on a block of the type you would like the trap door to remove(/replace if you have it set to replace blocks in fortification.properties (defaults to false)).
    On the first line put the length you would like the trapdoor to span (must be an integer greater than 0 and less than or equal to the maximum defined in fortification.properties, defaults to 4).
    From here you just have to provide power to the sign, power will remove blocks of the type the sign is on out to the length you set. If you have replace-trapdoor-blocks-on-power-off set to true it will replace all air (id 0) within the set length with the block type the sign is on when the redstone is powered off.

    Send Signs

    placing [Send (direction)], where (direction) = the first letter of a compass direction ([Send N] for instance or [Send U] for up, D for down), will, upon receiving redstone power, send text from one sign to another (one sign in the direction you are sending, one sign in the opposite direction, text that is sent is text which is on the same line that [Send] is on on the send sign, can have [Send] on multiple lines).

    For instance, if you had a setup like the below (will replace with pictures later :p)

    |South Sign 1 | | [Send N] | | North Sign 1|

    and the send sign (middle) recieved power, the sign to the south (South Sign 1) would have its next transmitted to the sign to the north (North Sign 1), so that the north sign would then read "South Sign 1". Options in the properties file include whether or not you can send commands via send signs (looks for [ ], thus compatible with craftbook as well as other commands in fortification, also checks for AllDo: PlayerDo: and ServerDo: signs from signcommands), whether or not the original text is erased, and whether or not sent text can overwrite existing text. Command permission is fortification.sendsign

    Message Signs
    The first line of the sign is the name of the person you want to send a message to. The second line is [Message]. The third and fourth lines are the message you want to send. When redstone power is recieved the message on the third and fourth lines is sent to the person on the first line. Command permission is fortification.msgsign

    You can make a teleblock shield if you have the command permission fortification.shield.teleblock

    As their name suggests, teleblock shields prevent teleportation within a set range around the teleblock shield (configurable in fortification.properties). This prevents both teleporting in and out. It effects everyone except people who have the fortification.ignoreteleblock command permission or are an op. By default, teleblock shields must be built on obsidian.

    You can make a chest shield if you have the command permission fortification.shield.chest

    Chest shields detect chest use within a set radius around them (configurable within the config file, default 5). They are set up much like sensors with a lever on the opposite side of the chest shield sign. There are three varients of chest shields: chest, playerchest, and factionchest. Playerchest shields ignore the people listed on lines 3 & 4 of the shield sign, factionchest ignores people in the factions listed on lines 3 & 4 (requires faction plugin). Note that these do not prevent use of chests, they merely trigger redstone when someone tries to use so that you can set off traps/combine with message signs/whatever.

    Config Options (open)

    sensor-range: range of sensors, width is always 3.
    chest-shield-id: the block id required for a chest shield
    trap-door-range: range of trap doors
    send-sign-search-distance: range of send signs
    send-signs-remove-original-text: whether or not sent text is lost at source
    send-overwrites-existing-text: whether or not sent text overrides existing text
    allow-command-sends: whether or not commands using [] are sent.
    flameturret-block-id: block id of flameturrets (0 = any block allowed)
    chest-shield-range: radius of chest shield detection.
    send-overwrites-commands: whether or not sent text overrides [] commands.
    teleblock-string: message given on teleportation being blocked
    replace-trapdoor-blocks-on-power-off: whether trapdoor signs toggle blocks on/off or just remove them
    teleblock-shield-range: Radius of teleblock effect of teleblock shields
    allowed-trapdoor-blocks: set the block ids usable with trapdoors
    flameturret-range: range of flame turret fire
    teleblock-shield-block-Id: Required block id for teleblocks (0 = any block allowed)
    webturret-block-id: Required block id for web turrets (0 = any block allowed)
    webturret-range: Range at which web turrets fire
    web-dissipation-time: Time in seconds before web from turrets disappears
    arrowturret-block-id: required block id of arrow turrets (0 = any block allowed)
    sensor-broadcast-dist: distance the alert from an areaAlert sensor is broadcasted.
    msg-builder-only: If true, message signs force their creator's name on to the first line and factionalert sensors require that the creator is either a part of or an ally to the factions listed on lines 3 and 4.
    #If you have an economy plugin + Register the configuration options below allow you to set #the cost of individual mechanisms. If you lack either or the cost is set to 0 the mechanism #will be free.
    webturret-cost: 0.0
    flameturret-cost: 0.0
    sensor-cost: 0.0
    chestshield-cost: 0.0
    teleblockshield-cost: 0.0
    sendsign-cost: 0.0
    equalsign-cost: 0.0
    trapdoor-cost: 0.0
    arrowturret-cost: 0.0

    Planned Future Updates (open)

    Prevent a single message sign from spamming a player constantly with text.
    Add command that allows player to mute all messages from message signs.
    Add support for sending messages from message signs to all members of a faction.
    Create new type of send sign that exchanges/flips text between two signs (so s1 becomes s2 and s2 becomes s1)
    Add ability to move strings from one line of a sign to a different line on another sign, for instance "[Send N3] would send the string on the line the send sign is on to line 3 on a sign to the north.
    Add device that can detect the destruction of nearby blocks and activate redstone when they are destroyed.
    Add optional fuel/ammunition costs to turrets
    Add area health regen signs w/filters and ammunition requirement (shield type)
    Add new sensor types (multi-directional, radius detect, more filter options (such as mob filters))
    Advanced sensors that can send name of detected player to another sign or display it for use with send signs.
    Ammunition/item use system for turrets/shields.
    String transmitter/reciever, to send text from sign to sign at a great distance.

    Turret types to add:
    Multi-directional turrets, place block ontop of turret block, fires out in all user chosen directions
    Floor traps - turrets that come up from the floor and fire once when redstone triggered.

    Feel free to drop me a line, I am always open for more suggestions for new features.
    MuttsNuts and olimoli123 like this.
  2. Offline


    A video would be really helpful!
  3. Offline


    Y'know, there's something else i'd also like to see: The ability to set the detection range of sensors individually. :)

    The range for arrow turrets needs to be longer than for flame turrets, for example (without setting the sensor further back/in front). And automating piston doors to open as you approach them is made easier with that too.

    Maybe this can be done by setting the signs to [SENSOR XX], where XX is the range in blocks? That would require no additional lines to be used.
  4. Offline


    Well factions updated and broke factions related sensor filters, so here is a quick update to fix them and the item filters as long as we're at it. The observant among you may notice a new config option to use spout, this presently does nothing, was in the middle of implementing some spout functionality for a 0.9 release when this happened.

    0.8.6 Changelog
    • Fixed ItemDetect/Ignore sensor filter check to allow for only a single item id to be used.
    • Updated to support new build of factions
    Domochevsky I definitely like the idea of being able to set range individually on sensors, I'll see if i can find an easy way to squeeze it in.
    As to the video requests, yes I recently got some video stuff together and will try to get one up soon.
  5. Offline


    Sounds good. :)
    (Oh, but make sure that Spout remains completely optional. It is rather incompatible with a lot of other things. >_> )
  6. Offline


    Can you add support for Towny?
  7. Offline


    Already done a couple months ago.

    Domochevsky yeah spout will be optional, aiming to make alternate methods of crafting mechanisms so they take less space, and maybe move some of the messages out of chat and over to achievement notifications.
  8. Offline


    Hey when i use the sensor for factions to send messages to people in their faction as an alert
    It immediately makes my server restart, can't get the error message, the restart log clogs my console too quickly
    Is that feature broken or something
  9. Offline


    Apologies for the delayed response, midterms here this week.

    In the latest build factionalert sensors are completely disabled to due some issues with recent changes to factions, they should work identically to normal sensors. After a bit of testing on my own server I've confirmed this to be so. So I am not sure what issue they are causing with your server, I can't replicate it. If you could provide more info that would be great (do they crash in all directions they face? are you running the latest version (0.8.6)? And of course if there are any logs that do show it going forward..
  10. Offline

    funky man

    I'm sure your aware of the impending update just wondering if there are plans to update for r5?
  11. Offline


    Yes, there will be an update hopefully around the time its out, sadly busy with rl stuff atm though so if its released in the very near future and breaks something it may take a little while to release a fix, but I'll definitely run through the code and make sure its updated for r5 once I get a bit more free time (probably sometime in this next week).
  12. Offline

    funky man

    Great news thanks, thanks for the confirmation
  13. Offline


    can you update to work with groupmanager plz and thankyou
  14. Offline


    Quick update on bukkitdev with a beta version that should be 1.2 compatible, note though that I have not had time to test it fully.

    Tomorrow I'll be fixing up any errors that pop up in this version, and later this weekend (or next week..) getting the more recent code working properly for a full new version.
  15. Offline

    funky man

    Nice will test it it a little when i get home, at work atm..
  16. Offline


    I tryed this and It wouldn't work It might be because I'm using 1.2.3. Other then that I have no other thing to blame but the plugin its-self! I was just testing this plugin and this plugin only.
  17. Offline


    Hi. This plugin support GroupManager and Bukkit R6, because my Turret don't work =/
    My config.yml is void.

    BTW, good plugin for PVP Server !!!
  18. Offline


    apologies, seems I need to do some more work with the recent 1.2.3 build, some config and other issues, the older versions still work on r4, hopefully I'll get a bit of time over the next week for that...

    Zerkhan If group manager works off of superperms (and really everything at this point should), the plugin should work fine, though I know the recent build has that config issue (and a few 1.2.3 things), seems I missed something when i updated it...
  19. Offline


    I must use Superperms ?
    ( And sorry, I'm French and I don't understand all... )
  20. Offline


    Hi! Any news on update? This is really great plugin!
  21. Offline


    Just finished my finals last night, so expect an update sometime this week.
  22. Offline

    funky man

    awesome news, this plugin is missed on my server
  23. Offline


    any news on this have been begged 100 times to get this plugin on my server. and i want to test it out aswell looks ba for fraction wars
  24. Offline


    Sorry about that, a bit later then I had intended.. but 0.8.7 is up now, just a version update for 1.2.4-r1.0 compatibility and a small change to teleblocks (so that they are toggleable without that silly redstone torch idea from earlier).

    Going to try to push out a larger 0.9 update sometime this weekend as well (figured you might want this update first though :p)
  25. Offline


  26. Offline


    Quick thing, for anyone new to the plugin, the config doesn't seem to be generating properly, this will be fixed in 0.9, but in the meantime here is the current config file: http://dl.dropbox.com/u/17471830/config.yml
  27. Offline


    Showing us the config file isn't going to help, since it will delete all text inside the configuration file.
  28. Offline


    Thats odd... not having that problem on my server.... just that it doesn't generate it the first time.. Well regardless there is clearly a problem, I'll try to get out something in the next day or two to fix it.
  29. Offline


    arrow turrets not working have tired everything changing the id it was 47 changed to 0 and nothen happined not sure what is wrong with it is one of the best plugins i have used it just wants to work when it wants to
  30. Offline


    I am reworking a fair bit of how arrow turrets work in 0.9, they are unfortunately the most buggy turret type right now.

    The most likely cause of your issues is that you have a block ontop of the turret, since the arrows spawn slightly above it, such a block would completely stop the turret from functioning. Outside of that, there isn't a lot more I can suggest without further info. Regardless though I'll be reworking them a lot next patch (which is taking a lot longer than I expected due to a hard drive crash unfortunately..)
  31. Offline


    k ty

Share This Page