Allay Ally

Discussion in 'Plugin Requests' started by roracle, Aug 6, 2022.

Thread Status:
Not open for further replies.
  1. Offline

    roracle

    [​IMG]
    Plugin category:
    Fun

    Minecraft version:
    1.19.1

    Suggested name:
    Allay Ally

    Description:
    I'm always coming up with neat ideas, and this one I figured I'd write down. It's not necessary, but I think servers would find this a fun little plugin.

    A player should be able to have an Allay mob that goes with them where they go. The Allay is accessed and put away by typing /aa or /allay or something of the sort. It can move as fast as the player, so it always keeps up. If you die while it's out, it simply gets despawned temporarily, then placed next to you where you respawn.

    It would position itself a block or two behind the player when the player moves, this could be configurable. When the player isn't moving it flys around the player within that 4 block distance so the player can turn towards it and access the features of the Allay.

    There should be a way to make sound effects using the sounds from note blocks, and each sound could be configured or made default. The sounds would trigger when an important thing is found nearby. For example, it could make a certain sound when it detects an Ancient City underneath the ground, or if you're within a certain distance from diamond ore, emerald ore, or ancient debris. Another sound for strongholds, etc. This could have various uses.

    Since it won't be something you have to give an item to, it needs other uses. All of the default behavior should be an option in the config, defaulted to false as much as possible to make this more of a "Navi" like creature for the players. It could have various configurable uses.

    Options: LClick, Shift+LClick, RClick, Shift+RClick can all be bound to different options, including "null" which does nothing.

    Inventory: various sizes, changed in settings.

    Run command: does what it says. Set the click type to do the command you wish to run. This could be paired with CommandPanels or other menu systems for easy, no commands necessary menu access.

    Feed or Heal: A free feed or heal that can be accessed after a configurable cool down period. They are separate options.

    Ideas for commands:
    /aa - summons your Allay. Also /allay or /ally
    /aa dance - makes your Allay dance when standing still
    /aa toggle - toggles shift+f usage so players don't accidentally summon or put away the Allay while working up high.
    /aa reload - reloads the plugin

    Ideas for permissions:
    allayally.use - general usage - default
    allayally.dance - allow dance command - vip
    allayally.admin - allows reloading the plugin - admin

    Code:
    # **********************
    # *** Config Example ***
    # **********************
    
    # If true, this plugin's features are enabled.
    # If false, allays are vanilla only.
    enable-ally: true
    
    # Distance behind player. No more than 4 blocks.
    # Higher numbers are reduced to 4
    distance: 2
    
    # Take out/put away with Shift+F
    shift-f: true
    
    # *****************************
    # **** Sound Configuration ****
    # *****************************
    
    # Disable sounds when entering Ancient City?
    quiet-in-ac: true
    
    # Which sound do you wish to use for Allays?
    # Use a blocktype to determine the audio.
    # Null for normal noteblock sounds.
    block: gold_block
    
    # use a cooldown on sounds so it's not overbearing.
    # In seconds
    cooldown: 60
    
    # Note;Wait =  similar to using repeaters. Wait is 0-3
    sounds:
      a: 16;1,14;0,12;1,19;0
        block:
          within: 4
          - diamond_ore
          - emerald_ore
          - ancient_debris
          message: Something is nearby...
    # Structures only make the sound when within a certain distance from it.
    # For each structure, give a cooldown.
      b: 4;1,2;0,0;1,7;0
        structure:
          ancientcity:
            within: 64
            message: It feels spooky around here...
            cooldown: 28800
          stronghold:
            within: 128
            message: There's a strange presence not far from here...
            cooldown: 28800
    
    # *****************************
    # **** Click Configuration ****
    # *****************************
    
    # All options can have a cooldown.
    
    # left click config
    # feed command example.  cooldown of 6 hours.
    # particles would appear around the player for a short moment.
    # idk the name of particle effects, just put some placeholders in there lol
    lclick:
      command: feed
      cooldown: 21600
      message: Let me fill your stomach...
      particles: food
    
    # shift+left click config
    # heal command example, cooldown of 12 hours.
    slclick:
      command: heal
      cooldown: 43200
      message: Light heal you my buddy!
      particles: sparkles
    
    # right click config
    # example for the allay to have an inventory
    # chest: size (in multiples of 9 only)
    rclick:
      chest: 27
      cooldown: 0
      message: What can I hold for you?
    
    # shift+right click config
    # perhaps you've made a menu for your plugins that
    # the allay ally can present to the player this way.
    srclick:
      type: command
      command: amenu
      cooldown: 0
      message: I'm here to help!
    
    # **************************
    # *** END CONFIG EXAMPLE ***
    # **************************
    
    When I'd like it by:
    Not in a hurry, but imagine how fun this kind of thing could be. It could be a great perk that works within the bounds of the EULA for cosmetic options (so long as players have access to the same stuff through other means, of course).

    I'm completely open to changes that may need to be made due to limitations or features I haven't thought of while conceptualizing this.

    EDITS: Changed a few things settings wise. Figured the entire thing could be command based, and that would be easier
     
    Last edited: Aug 6, 2022
  2. Offline

    Sillydance

    This sounds really cool, I would love to try and make this if you are okay with that. : D
     
  3. Offline

    roracle

    Go for it!

    By the way, if you want to talk and brainstorm this plugin idea, I'm free to do so. I know it helps do the work if the creative juices are flowing.

    For instance, I was sitting here thinking "perhaps the Allay can hold totems of undying for you so they don't need to be in your inventory". Slimefun talismans could do this as well if programmed in.

    Any of the warping that occurs could be set up like I explained in the op how death works. Basically, make sure the Allay sticks with the player no matter what; death, multiverse tp's, regular tp's, spawn, home, whatever. It's their "Navi". ‍♂️

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Aug 7, 2022
Thread Status:
Not open for further replies.

Share This Page