Git Product home page Git Product logo

animafps / fpsmath Goto Github PK

View Code? Open in Web Editor NEW
4.0 4.0 2.0 142.17 MB

πŸ€– A Discord bot designed to convert video game sensitivities, FOV values, mouse feel across themselves, and preset games. Over 300,000 users.

Home Page: https://fpsmath.xyz

License: GNU Affero General Public License v3.0

TypeScript 98.37% Shell 0.12% Dockerfile 1.50%
bot discord discord-bot gaming gaming-bot hacktoberfest nodejs typescript

fpsmath's Introduction

Hi there πŸ‘‹, I'm Anima..

A passionate 20y/o developer from New Zealand

  • πŸ”­ I’m currently working on teres
  • 🌱 I’m currently learning Rust
  • πŸ“° Blog/Articles: https://anima.nz
  • πŸ“« How to reach me: [email protected]
  • πŸ˜„ Pronouns: he/him
anima's github stats

fpsmath's People

Contributors

allcontributors[bot] avatar animafps avatar deepsource-autofix[bot] avatar dependabot[bot] avatar renovate-bot avatar renovate[bot] avatar semantic-release-bot avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

tominous ailegy

fpsmath's Issues

Documentation to do

  • Rework Site to be more user friendly and less documentation
  • Add more information about how the bot works (maybe formulas/equations)
  • Get/create a better logo
  • FILM notation guide
  • Not supported games guide(how to use games that are not supported / how to get yaw values etc)

FoV coefficient/based yaw value support

Is your feature request related to a problem? Please describe.
For a lot of games, there is a feature where the fov changes the sensitivity as a way to rudimentarily have focal length scaling. example: Paladins and Rust. and there should be a way to convert sensitivity from these games reliably.

Describe the solution you'd like
Implement a way to support the games with it as well as the various different ways the games scale it
should be able to be implemented to the current command set without too much or any breaking changes to the current way to run the commands

Describe alternatives you've considered
Nothing but if it was based on the default there may be issues with non-standard aspect ratios changing the fov and the games that have variable fov values won't be supported still.

[BUG] Battlefield Yaw Calculation

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

Currently, the bf yaw/increment is a static value but upon research and looking at the KovaaKs config JSON it requires a formular

Expected Behavior

(Sens * 0.0034377486) + 0.011459162 instead of 0.6771319397 * Sens

Steps To Reproduce

No response

Anything else?

The solution to this issue could help with #124

[BUG] PUBG Yaw Incorrect

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

Uses the incorrect yaw value for the ingame sensitivity option for pubg rather uses the config file based yaw

Expected Behavior

No response

Steps To Reproduce

No response

Anything else?

No response

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Awaiting Schedule

These updates are awaiting their schedule. Click on a checkbox to get an update now.

  • chore(deps): pin github/codeql-action action to e41f8ba
  • chore(deps): update commitlint monorepo to v17 (major) (@commitlint/cli, @commitlint/config-conventional)
  • chore(deps): update dependency @sentry/node to v7
  • chore(deps): update dependency husky to v8
  • chore(deps): update dependency lint-staged to v13
  • chore(deps): update github/codeql-action action to v2

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

dockerfile
Dockerfile
  • node 16-buster-slim
github-actions
.github/workflows/codeql_analysis.yml
  • actions/checkout v2@ec3a7ce113134d7a93b817d10a8272cb61118579
  • github/codeql-action v1
  • github/codeql-action v1
  • github/codeql-action v1
.github/workflows/continuous_integration.yml
  • actions/checkout v2@ec3a7ce113134d7a93b817d10a8272cb61118579
  • actions/setup-node v2@1f8c6b94b26d0feae1e387ca63ccbdc44d27b561
  • actions/cache v2.1.7@937d24475381cd9c75ae6db12cb4e79714b926ed
  • actions/checkout v2@ec3a7ce113134d7a93b817d10a8272cb61118579
  • actions/setup-node v2@1f8c6b94b26d0feae1e387ca63ccbdc44d27b561
  • actions/cache v2.1.7@937d24475381cd9c75ae6db12cb4e79714b926ed
npm
package.json
  • @discordjs/builders ^0.12.0
  • @discordjs/collection ^0.5.0
  • @influxdata/influxdb-client ^1.22.0
  • @sapphire/decorators ^4.2.1
  • @sapphire/discord.js-utilities ^4.6.1
  • @sapphire/framework next
  • @sapphire/pieces 3.2.0
  • @sapphire/plugin-api ^3.1.4
  • @sapphire/plugin-hmr ^1.1.1
  • @sapphire/plugin-logger ^2.1.3
  • @sapphire/time-utilities ^1.6.0
  • @sapphire/utilities ^3.3.0
  • @sentry/node ^6.17.4
  • discord-api-types ^0.26.1
  • discord.js ^13.6.0
  • dotenv-cra ^3.0.2
  • fov-utilities ^1.1.7
  • tslib ^2.3.1
  • @commitlint/cli ^16.1.0
  • @commitlint/config-conventional ^16.0.0
  • @types/node ^16.11.22
  • @types/ws ^8.2.2
  • @typescript-eslint/eslint-plugin ^5.10.2
  • @typescript-eslint/parser ^5.10.2
  • cz-conventional-changelog 3.3.0
  • eslint ^8.8.0
  • eslint-config-prettier ^8.3.0
  • husky ^7.0.4
  • is-ci ^3.0.1
  • lint-staged ^12.3.3
  • npm-run-all ^4.1.5
  • prettier ^2.5.1
  • pretty-quick ^3.1.3
  • standard-version ^9.3.2
  • typescript ^4.5.5
  • node 16.x
  • yarn 3.1.1
pip_requirements
requirements.txt
  • mkdocs ==1.2.3
  • mkdocs-material ==8.1.10
  • mkdocs-material-extensions ==1.0.3
  • mkdocs-minify-plugin ==0.5.0

  • Check this box to trigger a request for Renovate to run again on this repository

Add more natively supported games

need to add more games to native support which might be easier with the new collection and its system another idea is using KovaaKs and their game settings JSON if we can get access to it as they announced they would be using a JSON fetch system for dynamically updating those values which we could try and piggyback and fetch it at the construction of the collection then a cron task to update it

While finding the information within this project might be more reliable and can have the data how we want it may take some time

Open to suggestions and will put a workflow to get data for games in the contributing.md

Visiomotor

Is your feature request related to a problem? Please describe.
Already we have a function to scale a sensitivity tied to a fov to another fov called focal length scaling but it may be posible to extend this to have universal sensitivity value tied to an fov to maintain mouse feel across games and fovs without confusing conversion and a simple number for all

Describe the solution you'd like
Write some math and a command as well as documentation

Additional context
This might not be useful but something unique that other converters are not doing and allows conversion with less arguments between complete different games and fovs

Clearer user error handling replies

Is your feature request related to a problem? Please describe.
Error handling especially regarding argument errors produces a not too helpful output and often replies from user errors are low in detail and sometimes don't produce a reply

Describe the solution you'd like
Create more custom responses for the various user/argument errors and parse them through the user error listener

Additional context
The user error listener: https://github.com/animafps/fpsmath/blob/main/src/listeners/commands/commandError.ts
Listener class: https://sapphiredev.github.io/framework/classes/Listener.html
and the various argument handlers: https://github.com/animafps/fpsmath/blob/main/src/arguments

Analytics

Is your feature request related to a problem? Please describe.
For sharding and server load management need to monitor bot activities because that information also shows stuff about what commands are being used or issues with others consistently. As well can send data to bot lists easily but thats prob going obsolete soon.

Describe the solution you'd like
Integration into a database and pipeline system on an external system like influxdb for command usage, joining guilds, leaving guilds, maybe guild specific usage, shards, guilds per shard and maybe more

I know skyra has a good integration so could be a start

Website Rework

Is your feature request related to a problem? Please describe.
The current website is built like developer documentation which is terrible for user navigation and engagement as well as further functionality where it shoud be needed for a discord bot

Describe the solution you'd like

  • Move the website to a separate repo which may require a new GitHub org
  • Build a website with jamstack so can ssr and easy host with like gatsby, astro, or svelte kit
  • Within that have two major parts
    • Guides - documents about how to use in regards to inviting, running commands, using custom values( plus finding fov & yaw), film notation
    • Commands - searchable of all public commands with slight interactivity

This will be a big job and prob will require a bit of design work

Implement Testing

Is your feature request related to a problem? Please describe.
A lot of the functions and parsers can be tested to maximize the quality and reliability of each release to make sure all the functions and parts of the bot work as intended

Describe the solution you'd like

  • Setup testing framework(jest[ts-jest])
  • Integrate it into CI(Github actions)
  • ?Coverage tools

Create tests for

  • Argument parsers
  • Array functions and objects
  • ?Commands

Array System Overhaul

Just looking at the code for the array system that holds the data for games for calculations it all gets processed through so many loops and which would make the memory quite high and would become more exponential when I add more natively supported games

IDK what the next move is for it but something to look at

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Error type: Cannot find preset's package (github>whitesource/merge-confidence:beta)

FoV and FoV Convert commands

Is your feature request related to a problem? Please describe.
In previous versions, there was a function to provide conversions from in-game FoV values to horizontal and vertical FoV values and to other in-game FoV values.

But there was a various set of issues which meant that it didn't always work correctly and the code was very confusing and use.

Describe the solution you'd like
Create a new command using the framework that I have already set up in https://github.com/animafps/fpsmath/blob/main/src/commands/Math/fov.ts and https://github.com/animafps/fpsmath/blob/main/src/commands/Math/fovConvert.ts

To reuse a lot of the code between the two functions/commands it may be useful to create a file in the helper's folder with functions that can be used

Describe alternatives you've considered
Implement the old code which is just too confusing and had too many flaws for the fovConvert command but could be implemented in the FoV command but because they are linked and the code was hard to understand it may be better to create the new one first and make sure there is no issues

Additional context
Old Versions: https://github.com/animafps/fpsmath/blob/984d3f3631f163f978d49dcc46401b0a1228e633/src/commands/math/fov.ts https://github.com/animafps/fpsmath/blob/984d3f3631f163f978d49dcc46401b0a1228e633/src/commands/math/fovConvert.ts
FILM Notation: https://www.kovaak.com/film-notation/

This will prob need to be planned a lot around the implementation and the math involved so use this thread and or the dev channel in the support Discord server

The automated release is failing 🚨

🚨 The automated release from the main branch failed. 🚨

I recommend you give this issue a high priority, so other packages depending on you could benefit from your bug fixes and new features.

You can find below the list of errors reported by semantic-release. Each one of them has to be resolved in order to automatically publish your package. I’m sure you can resolve this πŸ’ͺ.

Errors are usually caused by a misconfiguration or an authentication problem. With each error reported below you will find explanation and guidance to help you to resolve it.

Once all the errors are resolved, semantic-release will release your package the next time you push a commit to the main branch. You can also manually restart the failed CI job that runs semantic-release.

If you are not sure how to resolve this, here is some links that can help you:

If those don’t help, or if this issue is reporting something you think isn’t right, you can always ask the humans behind semantic-release.


No npm token specified.

An npm token must be created and set in the NPM_TOKEN environment variable on your CI environment.

Please make sure to create an npm token and to set it in the NPM_TOKEN environment variable on your CI environment. The token must allow to publish to the registry https://registry.npmjs.org/.


Good luck with your project ✨

Your semantic-release bot πŸ“¦πŸš€

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.