GithubHelp home page GithubHelp logo

volmitsoftware / adapt Goto Github PK

View Code? Open in Web Editor NEW
77.0 77.0 56.0 108.42 MB

Adapt Vanilla Gameplay with better skills and implementations than anywhere else!

Home Page: https://docs.volmit.com/adapt

License: GNU General Public License v3.0

Java 100.00%
bukkit hacktoberfest hacktoberfest-accepted hacktoberfest2022 java minecraft spigot

adapt's People

Contributors

abola2 avatar ards1 avatar armin231 avatar call4han avatar crazydev05 avatar cyberpwnn avatar ezioishere avatar falityz avatar gitlocalize-app[bot] avatar ipecter avatar irowynn avatar john-fries-j avatar k530-hub avatar keltonsantin avatar khoiangel avatar knnide avatar mitommdg avatar mt-gitlocalize avatar musictw avatar nextdoorpsycho avatar nicholasveronico avatar poikcue avatar rafaelflromao avatar sliman4 avatar tanticle avatar thefourcraft avatar thelukeguy avatar vatuu avatar vitya490 avatar xiaozhangup avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

adapt's Issues

Counter Guard

While blocking attacks, the shield can gain stacks which fill up a bar. Let's say that the shield is absorbing the damage and containing it.

While the shield has stacks, if the shield bearer is attacked (melee or ranged) there is a configurable chance that the attacker will take damage and reduce the shield stacks. This can happen whether the shield bearer is blocking or not, as long as they are still holding the shield (changing the shield item will reset stacks, but switching the same shield between main and offhand is okay).
If the shield bearer is attacked while not blocking, the damage bonus caused by the shield stacks will be greater.

Another risk/reward situation because the shield bearer has to choose between continuing to block and cause smaller amount of damage to their attacker, or drop their guard to attack and receive damage, but deal more damage from shield stacks.

Configurables:
Of course, the amount of damage dealt while blocking and not blocking can be configurable.
Also the amount of stacks the shield can hold can be configurable, and based on ability level.
When the player stops blocking, the amount of time it takes for the stacks to gradually reduce.

It should also be configurable if the player blocks for too long and the shield gets full stacks, should they receive a penalty and lose the ability to guard for a certain period of time or until the stacks fall off, or the stacks simply reset?

Likely all of these things can be upgraded with the skill line too.

Important Quality of Life Changes, with explanations of their importance.

I believe that the plugin is really well done, but I feel there are some issues which when put in practice, will prove quite unenjoyable for players.

  1. Back button in GUI
    Currently, clicking escape to go back closes and reopens the GUI briefly, which gets annoying fast. A button, such as a bed or other item which allows players to go back without the GUI quickly opening and closing would be great. My rationale behind this feature, is that once players become familiar with the plugin and skills, they likely will want to learn/unlearn skills quickly, and the delay between going back to each GUI will likely become quite frustrating.

bed1
bed2

  1. Escape key leaves entire GUI immediately
    In conjuction with the first suggestion, making the escape key leave the entire GUI, even when in specific skill trees/abilities would also make use of the plugin more enjoyable. Players with higher ping will find this delay in leaving the GUI even more annoying. This delay may also prove problematic when in scenarios such as factions, where your base is being raided and you quickly need to change skills.
    Players who also become very familiar with the skills/abilities, may also get frustrated when quickly switching/equipping skills, and being unable to leave the GUI immediately.

escapegif2

  1. GUI remains open when learning a skill
    Currently when selecting a skill (as demonstrated in the above gif), the GUI closes and reopens.
    I won't go into detail on why this should be added, as the logic follows what i've already written in suggestion 1 and 2. If the GUI remained open upon selecting skills, I believe that would be a great addition.

  2. Button to unequip/unlearn all skills
    Once players enter the higher levels, keeping track of all the skill trees their power is invested in can get tough. I believe a button in the GUI like a barrier block, which when clicked unlearns all skills at once will greatly help this. Understandably, more abilities will be added in the future, and this will take up a GUI slot, so maybe a command could be used instead (e.g. /respec), or the GUI could be expanded into a double chest?
    Simply put, I believe such a feature is important due to players potentially having multiple "builds". For example, players may choose to learn more hunter abilities/axe abilities when in combat, but prefer architect abilities/excavation abilities in base construction. Having an easy method of unlearning all abilities, instead of requiring players to manually go through and select each skill to unlearn, would be incredibly useful.

barrierblock

5. Hovering mouse over categories, to see how much power that category is using.
This follows the same rationale as suggestion 4, whereby keeping track of all abilities learn't can become difficult and tedious when at higher levels. The image below provides 2 examples of how this could look.
I believe this suggestion will also be very useful for newer players, who still aren't as comfortable with the mechanics of the plugin (such as power, knowledge, etc), making it easier for them to understand whats going on, and learn how power functions.

(EDITED BY NEXTDOOR PSYCHO, ADDED THIS FEATURE)

power

6. A command to open the GUI (/skill or /skills)
Fairly self-explanatory, but this is just a quality of life change I believe will only further the plugin. I think the bookshelf idea is super cool, but may prove slightly annoying in practice. Newer players without access to a bookshelf will be unable to easily view their skills, and players on the move or out in the wilderness may also find it annoying to have to place a bookshelf everytime they want to open the GUI. Furthermore, for gamemodes such as factions and survival where you cannot place blocks in certain claimed land, a command to open the GUI would prove very useful.

(EDITED BY NEXTDOOR PSYCHO, ADDED THIS FEATURE)

Apologies for the longer post, I believe this plugin is super awesome and has so much future potential, and all these quality of life changes should only further make that so!

Multiarmor

Exactly as the Titel says. Switching between chestplate and elytra. In Air switch to elytra and on ground to chestplate

Nature's Touch

This skill tree will be similar to MCMMO's "Taming" & "Call of the Wild".

It will give players the ability to spawn a configurable amount of allied (tamed) mobs specified in the config, with support for mob plugins like MythicMobs.

_First, there should be an option in the config for whether the mob abilities will also be applied to mobs that players tame naturally (like wolves, horses, ETC), or if these abilities will ONLY apply to naturally tamed mobs (if we prevent the player from summoning them).
It should also be configurable, if the abilities apply to naturally tamed mobs, if the maximum amount of summoned mobs also applies to the amount of mobs that the player can tame.
(For example if we configure that the player can only spawn 3 wolves, they cannot have more than 3 tamed and summoned wolves).

There should also be an option in the config to outright prevent the player from being able to tame specified types of mobs._

How It Works:

Each configured mob will have its own configurable spawn condition (including no condition at all, meaning the mob would have to be tamed naturally), configurable amount spawned per condition, max amount able to be alive at once (which also limits how many can be tamed).
If a mob is mountable, also configurable if specific Adapt abilities can be used while mounting it (if those abilities are able to be used while mounting).

Each configured mob will have its own level, or skill line. For example, if one of the configured mobs is a Horse. We can configure the max level, stats & abilities at each level.
The abilities will ONLY be available, once allied to the player, for mobs that meet those conditions specified in the config. Let's call them "allied mobs" for the time being, for convenience.

Barn & Horn:

Before we continue, there are two important abilities that need to be discussed first. These abilities may require a "Server:" setting in the config to configure the name of each server that Adapt is installed on, assuming that multiple instances of the plugin will be connected to the same database:

  1. Barn:
    This ability is used via command (a short command). It sets a location for allied mobs to be teleported to when not in use for a specified amount of time. This command can ONLY be set in areas where the player can build. It can also hook into various claim plugins (like Lands, Residence, Faction plugins, ETC). If the player loses permission to build there, the Barn location will be deleted.
    |
    An allied mob can become inactive if the player dies, or is afk, or in a different world, ETC.
    Allied mobs can be manually sent to the Barn location via command (the same command used to send the barn, suffixed with the name of the allied mob, or vise versa).
    (If multiple allied mobs have the same name, the command will be activated for all with the same name)

Barn can be configured to be per server, and per world, but servers and worlds can also be configured to be linked together.
For example, in the config I can set the barn location for "world" to be exclusive, but I can also link it to "world-nether". This means that the barn location for "world" and "world-nether" are the same, and allied mobs will automatically or manually be teleported there.
If a world/server is removed from the list of worlds that the Barn location can be set, ALL barn locations in that world/server will be deleted.
|
It MUST be configurable if allied mobs in unlinked Barn worlds/servers will be counted together towards the total amount of allied mobs that the player is allowed to have.
If not, then when worlds/servers world is linked and the player ends up with more than the max amount of allied mobs, either the allied mobs will be killed at random until the max amount is reached, or simply all of the allied mobs will be killed instantly.

  1. Horn:
    Horn is also used via command, to teleport allied mobs to the player. Pretty much the same rules as Barn otherwise.

Horn & Barn will use the same list of linked worlds and blacklisted worlds for the commands, but Horn will have the configurable option to be used in places where the player cannot build.


Both Horn & Barn can be configured to be completely disabled, or disabled individually.

Anyway, It is also configurable if the allied mob level (skill line) applies for all mobs of each type, or each individual mob.
For example, if the player levels up horse to 50, will ALL horses he claims be level 50, or only that specific one?
If it is configured for allied mob level to be applied individually, when the horse dies, all progress for the mob is lost and the player will start over.

There should be a number of premade stats and abilities for the server owner to choose from, to be applied to allied mobs at the specified level. The full list of these abilities should be on the wiki, and of course, some abilities can only be applied to certain types of mobs. For example, attacking abilities cannot be applied to mobs that don't attack (like horses). All of that info is on the wiki.
Also, all abilities are configurable in the config, whether or not the player is able to disable certain abilities after the allied mob attains those abilities:

Abilities:

Emergency Retreat:
The allied mob has a configured chance to automatically teleport to the Barn location when their health drops to a configured amount.
(Barn world/server rules apply)

Honorable Loyalty:
The allied mob has a configured chance to automatically teleport to the player (Horn) when the player's health drops to a configured amount.
(Horn world/server rules apply)

Steadfast Loyalty:
The allied mob, when in a certain block radius of the player, has a configured chance to swap locations with the player and die in the case that the player receives fatal damage. The player is instead granted the remainder of the allied mob's HP (configured if it is added to the player's HP or as a temporary Absorption effect for a specified amount of time. Cannot grant more than the max amount of HP). And a configurable amount of buffs for the player, lasting a configurable amount of time.

Rage:
The allied mob has a configured chance to activate this ability, hitting the enemy with configured knockback strength, and a configured cooldown.

Wild Slash:
The allied mob has a configured chance to activate this ability, causing damage over time to the player for a configured amount of ticks.


Those are just some examples of abilities. Any amount can be added.

The stats that can be configured should include: health, damage, speed, armor.

Skeletons one shotting

Problem

  1. Install Adapt...
  2. Get shot by a skeleton
  3. Die horribly

There is no error message, and no matter how much armour/enchants you have, it does not help you. I tried with no armour then tried again with full diamond - protection 255 and projectile protection 255

Solution (if any)

No response

Minecraft Version

1.19

Adapt Version

Adapt 1.0.4

Log

https://mclo.gs/WV3GYmB

Party System

An in-depth and customizable Party system would be an excellent addition to Adapt. The possibilities are endless.

Basics:

Each Party needs to have a name. When a player is creating a party they will set a name for it.

The Party GUI will contain information and settings related to the party.
Stuff like party name, when the party was created, current and previous party members & leaders, party level, benefits, ETC.

The party member list in the GUI contains a list of all members using the players' heads. Different things can be done from there like privately messaging a member, promoting them to party leader, kicking them, enabling/disabling friendly fire, ETC.

Essentially, the party GUI is like the lifeblood of the party.

### Details:

The Party system can have its own config file for convenience, with a setting right at the top for enabling and disabling party functionality.

Next, the Party system will have an option for a custom name prefix, which will take the place of the name "Party" in all messages. For example, maybe some server owners want it to be called "Squad", or "Team", ETC.
A custom alias command can be set as well, so instead of doing "/party", we can set the command to be related to the custom name. "/party" will still work even if an alias is set though.

I know you guys said that you don't want Adapt to have a lot of commands. The Party system only needs the "/party" command to open the GUI, and a command for Party chat.

Speaking of Party chat, it should have a good API so that other chat plugins (like Chat Control Red, CMI chat, ETC) can hook into it seamlessly.

We can configure stuff like:

  • The max amount of party members. There is also a permission to let players have more than the maximum. In the case where a party has above maximum members and the party gets a new leader who has lower permission, the most recent or lowest ranked members will be kicked automatically.

  • Whether the party requires currency to be created and/or maintained. I suppose having this feature will depend on how in-depth parties can be.
    In which case, there can be an option to enable a Party Bank, where players can deposit money. We can set how much money is required per member and party level, and how often the payment needs to be made.
    Or instead of money, resources can be required to maintain the party. Or both.

  • Min and max characters for Party name. The option to enable/disable if colors and other formatting can be used in party names.
    Of course, there are also permission nodes to allow certain players to use colors and other formatting in party names, when enabled.

  • If friendly fire is enabled by default, and if players are able to change the default. There can be permission nodes to allow certain players, if they are party leader they are able to change the friendly fire status.

  • It also needs to be configurable if parties are per server, or network wide (if connected to the same database on multiple servers).

Benefits:

Well since there currently isn't much information on Adapt, it's hard to come up with potential benefits for parties. I'll leave most of that to you guys.

Possibly, there can be a Party Map feature.
Inside of the Party GUI there can be an icon which when clicked, opens a map showing the player's current location, and the icon of any party members around.
This feature seems tricky and could possibly lead to bugs and exploits. Also potentially OP. Perhaps the map can be a black image that simply shows icons for the location of party members?

Forge/Fabric support (maybe platform agnostic)

Add support for multiple platforms and therefore getting this plugin to be able to be something great for a wider audience

either through multiple jars or maybe a platform agnostic version

Commands Internal Error

Problem

  1. Install Adapt...
  2. Try any of the commands
  3. "An internal error occurred while attempting to perform this command"
  4. Error in console

Please note that /adapt test and /adapt open gui are unaffected.
Server is running Purpur 1.19.2 #1770

Solution (if any)

No response

Minecraft Version

1.19

Adapt Version

Adapt 1.0.4

Log

https://mclo.gs/PzLI6h4

Latest IssueList

Problem

  • Axe Chop is not working with axe in opposite hand
  • Agility Armor not activating on latest 1.19
  • Command for adapt spits out a null instead of an error
  • Xp was given instead of taken based on an overflow issue
  • Excavation Haste 🧷
  • XP / Knowledge ball was not consumed on use.
  • Veinminer seems Borked
  • EasyEnderchest is breaking the hand interactions with enderpearls
  • Hunter DTI not teleporting

Solution (if any)

Fix it

Minecraft Version

1.19

Adapt Version

LATEST

Log

no

Added Features

These Features are things i want to add at some point to the systems

  • Per World Whitelist / Blacklist
  • Placeholder API
  • Custom Brewing
  • Admin CP Events
  • Add MySql support
  • Boosting xp for a time
  • All of MCMMO's Skills, only the actually good ones, and improve them in every way. [Mining, Woodcutting, Herbalism, Excavation, Fishing, Unarmed]

Dual Wielding

Give bonuses and abilities when players are holding specific combinations of weapons in both hands.

When a player is wielding two of the same weapon, the damage output will be doubled by default (configurable).
If the two weapons are different, the damage can be multiplied by 1.5x by default.

There can be a variety of active and passive abilities that can be configured to different combinations of dual wielding.
For example:
Wielding two swords can have a chance to cause damage over time to the enemy.
Wielding two Axes can have a chance to cause knockback or root the target.
Or unique bonuses like having an Axe in the main hand and a Sword in the offhand will reduce the cooldown timer.

This system can also support skill lines. Perhaps players can unlock different abilities along the skill line and level up the abilities they unlock, but only one ability can be active on a specific skill line.
Of course damage bonuses can also be improved by leveling up.


Dual wielding can have its own config file. Right at the top we set whether the feature is enabled or disabled.
And of course configure everything relating to the feature.

Battering Charge

As the player runs, they can tap the run button again to fill a bar up. They can run into and break through things like fences, doors, ETC. Even knockback mobs and players.
Each thing they charge into will decrease the bar. If they try to run into something or another player who is too strong, without enough points on the bar, they instead get knocked back, damaged, and stunned.
It's kind of a risk/reward sort of thing.

Of course they can only break things in areas where they have permission to build.
Only charge into mobs where they have permission to damage mobs.
Only charge players where PvP is enabled.

There can be an option for us to enable or disable whether the player can also attack with a weapon while charging, or the ability needs to have a certain level, or the player needs to have a certain permission.

Alternative:
Alternatively, Battering Charge can only work when the player is holding a shield or blocking (I don't know if it's possible to let players run normally while blocking).
If they are running while blocking they can't really see where they are going, which helps prevent this ability from being abused or OP.
Perhaps the shield simply should be in the main hand?

[Rift] Category (New and highly experimental)

Rift is a collection of Ender-based Skills, with most of it leaning on the side of tradeoffs, From blindness, levitation, material cost, and consumption of items and health, you are able to do Otherworldly things like recall teleportation, healing, teleportation, and remote inventory access. but everything has a cost...

  • Riftgate : Recall to a point in space with the consumption of a(n) [insert crafted item here]
  • Riftaccess : Bind an [insert crafted item here] to bind to any container at any location anywhere, and be able to access it remotely (chests, hopper, furnace, smeltery... etc...)
  • some kind of blink system
  • Riftblade system (teleport to victim with a sword or enchantment)
  • some kind of doorway system
  • Cursed RiftEye eat from a chest that you bound to passively regen health based on materials consumed
  • Remote Spectation based creating a fake enderman to stalk someone (consume item)

Multiarmor

#38

Switching between the chestplate when on ground to the elytra when in air

Levitation mechanic

If the player is on the ground, then levitation is charged for him. When the levitation is fully charged, the player can press the space bar twice (like double jumps on some servers) to activate the levitation effect. During this effect, the player rises about 5 blocks up and stands there until the levitation is discharged. After that, the player will slowly fall using the slow fall effect. The player can also independently stop levitation by pressing SHIFT during this effect.

Gatherable nodes for resources such as ore, wood, plants to prevent destruction of the RPG world

RPG worlds or MMOs tend to be theme-park worlds and use clunky and unattractive methods to provide materials with the least impact. Instead of having to use resource worlds, regeneration plugins which can trap people underground etc, have gatherable nodes around the map.

Wynncraft does this with a menu when you click on a tree that gives you paper or lumber, I would recommend a similar thing but coupled with the animation of the tool (Wynncraft never updated it in all these years so it's not hard to improve upon)

Giving/receiving mob damage in the nether crashes the server

Problem

  1. Install Adapt...
  2. Go into the nether
  3. Attack/get attacked by a mob
  4. Wait 10-15 seconds
  5. Server crash

Purpur 1.19.2 #1770
I've tried with and without Adapt, it only crashes when Adapt is installed.

I know you guys said to paste a full log, unfortunately the log does not contain the crash. Instead i will be posting the Error from console and the crash report file.

Solution (if any)

No response

Minecraft Version

1.19

Adapt Version

Adapt 1.0.4

Log

Error: https://pastebin.com/aRk9R2km -- Crash Report: https://mclo.gs/q4HVABc

Some bugs and some suggestions for enhancement

Bugs:

  • Herbalist - growth aura (Doesn’t do anything?)
  • Agility - armour up (crashed server, no just doesn’t do anything)
  • Axe - axe chop (just doesn’t work)
  • Excavation - hast excavator (blocks break then re-appear, very laggy, leads to ghost blocks)
  • Nether - Wither skull throw (after 1 throw, no longer works)

Suggested Changes:

  • Button to unequip all skill points (barrier block)
  • Back button in GUI’s (bed top right of GUI’s)
  • Escape leaves the skill menu entirely, instead of re-entering
  • Command to open GUI (/skill and /skills)
  • Hover mouse over each category, to see how much power that category is currently using

Harvest & Replant

Works with left and right click. It should only work with the right click

Hardcore & Reward Mechanics

It's hard to give a good recommendation for this since the available info on Adapt is very limited, but I figure it's best to get this idea in early.

I recommend some kind of Hardcore type mechanic similar to what MCMMO has. For example when enabled, if the player dies they lose a configurable amount of levels.
Except you guys can go one step further, and also add special rewards for when players kill other players (there will need to be restrictions preventing abuse of that).

There are many types of configurable penalties that can be added for when players die.
Losing levels, locking abilities, ETC.

There are also many types of configurable rewards for when players kill other players.
EXP boosts, level tokens (like tokens used to increase levels), ETC.

That type of mechanic will be especially good for survival servers to raise the stakes of dying and the value in PvP.

Hunters regen needs a condition of having hunger

I spawned a zombie and just let me hit it over and over, and after my hunger has depleted, i was still getting regeneration, making me invincible. A condition to need hunger needs to be added.

Dependencies, Requirements, and Restrictions

Configurable Skill dependencies (ie: 2 void perks, and a mining)
You mist have maxed blink, and mining to be able to do .....
You cant have Blink, and wall-walker

  • Dependencies
  • MYSQL / SQL of some kind system
  • Requirements
  • Proper Hotloading (50%)
  • Proper Command System (50%)
  • restructions
  • bonuses

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.