Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Come up with a way to templatize and automatically generate the Jobs config #41

Open
MilesBHuff opened this issue Jan 28, 2020 · 8 comments
Assignees
Labels
feature This is a substantial change to intended behavior. jobs This ticket addresses in-game jobs.

Comments

@MilesBHuff
Copy link
Member

The Jobs config is ridiculously large. We cannot hope to properly manage it as it is. If we could create a template file, then we could create a script that would perfectly generate most of the Jobs config for us.

@MilesBHuff MilesBHuff added the feature This is a substantial change to intended behavior. label Jan 28, 2020
@MilesBHuff MilesBHuff self-assigned this Jan 28, 2020
@MilesBHuff MilesBHuff added the jobs This ticket addresses in-game jobs. label Jun 22, 2020
@MilesBHuff
Copy link
Member Author

We're going to have to do this for 1.16, since we're at the point where we have to manually develop our Jobs settings (since we've diverged so radically from upstream).

@MilesBHuff MilesBHuff changed the title Come up with a way to templatize the Jobs config and automatically generate most of it Come up with a way to templatize automatically generate the Jobs config Jul 20, 2020
@MilesBHuff MilesBHuff changed the title Come up with a way to templatize automatically generate the Jobs config Come up with a way to templatize and automatically generate the Jobs config Aug 17, 2020
@MilesBHuff MilesBHuff pinned this issue Jul 26, 2021
@MilesBHuff
Copy link
Member Author

One way to do this, is to have a file for every release of Minecraft, with just the blocks it added to the game listed. Then, when we update to a new version, all we'll need is a list of the new blocks in a new file. Easy.

@MilesBHuff
Copy link
Member Author

We could have a base value for each block. We could have a modifier for each job, which increases or decreases the base values for that job. We could also have job-specific overrides.

@MilesBHuff
Copy link
Member Author

We can't limit each block to only one job -- Miner gets paid by breaking the same blocks that Builder gets paid for placing, for example.

@MilesBHuff
Copy link
Member Author

Possible syntax:

COOL_BLOCK:
- base_value: 10
- jobs:
  - job_name
    - break
    - place
  - job_name
    - place: 5
  - job_name
    - break

@MilesBHuff
Copy link
Member Author

I can parse the files and store them in an object, and then use that object to generate the configs Jobs expects to have.

@MilesBHuff MilesBHuff added this to the Update to 1.16 milestone Aug 9, 2021
@MilesBHuff
Copy link
Member Author

MilesBHuff commented Jun 11, 2024

We might be able to mostly derive the values for Jobs from those of mcMMO. This should give us coverage for edge-cases, since the mcMMO dev is proactive about catching and correcting those. (The Jobs dev, at least the last time I interacted with him, is actively hostile to patching them.)

It we go this route, most jobs will be combinations of various mcMMO skills. Other jobs, like Crafter, will still have to be custom.

@MilesBHuff
Copy link
Member Author

MilesBHuff commented Jul 10, 2024

Another option could be to make our own jobs plugin. We would have to keep it simple, but there are some significant benefits to be had with this such a thing.

Benefits:

  • We can get rid of Zrips's plugins, which is great because they're bloated, poorly documented, and poorly-supported by the author. It gets us out of being in-bed with someone we don't want to be in-bed with.
  • The jobs can be just simple arrays of mcMMO skills. For example: `['woodcutter', 'excavator'] would be equivalent to the custom "Landscaper" job we have. The "level" you'd have in each job would be an average of its constituent mcMMO skills.
  • Using mcMMO as the base for the jobs means that they will be balanced right off the bat, and updated for free without our further input.
  • We might even be able to hook into whenever mcMMO awards experience, check what skill that experience is going to, and then multiply the experience reward by some amount to yield a currency equivalent that is roughly what Jobs would have given for the same action. This will get us the benefit of any anti-abuse mechanisms built-into mcMMO.
  • We would no longer have two completely separate levelling systems with similar or identical skill names.

Caveats:

  • We will need to make custom mcMMO skills to cover certain jobs, like Crafter and Builder.
  • Once we have added those skills, we will have to migrate the experience values for those jobs from the Jobs database into the mcMMO database.
  • These custom skills will, naturally, require ongoing development.
  • We would have to have a way to interface with and maintain the Jobs exploration database, and we would have to have our own custom explorer job.

Notes:

  • This would eliminate the job limit increases that come with ranking up, unless we also add a way for players to join/leave specific jobs, and use a player's joinedness to determine whether we pay out upon an mcMMO action.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature This is a substantial change to intended behavior. jobs This ticket addresses in-game jobs.
Projects
None yet
Development

No branches or pull requests

1 participant