Skip to content

Latest commit

 

History

History
67 lines (46 loc) · 4.17 KB

README.md

File metadata and controls

67 lines (46 loc) · 4.17 KB

BattlEye - Golang Package

Go Report Card Codacy Badge Build Status GitHub license GoDoc Join Discord at https://discord.gg/dWZkR6R

The BattlEye package is implementing the BattlEye Protocol for use in other projects.

Status

Version 2

The previous version of this package was refactored with a lot of breaking changes. The reason for this was lack of abstraction which made testing in other projects harder.

As we are using TDD/BDD and strafe towards a high level of coverage and overall code quality, we had to make some changes to this. The most notable one is that we moved all functionality used by clients themselves into the Protocol interface. From there we mostly copied the old implementation and created wrappers where necessary. While we were at it, there were also some improvements to both the api and type safety.

Using the interface allows us to generate mocks from it to enable better testing in other projects without having to mess with real BE packets (see mocks/).

This new version might still be subject to improvements and changes that could break the API (even further). We suggest either pinning the state you need by using dependency management tools, or to use the v1 tag if the new features are not important to you.

TODO's:

  • All tests have just been ported to the new structure which results in some legacy test code no longer up to our standards. This should be addressed in the near future and might also offer a good introduction to the project for newcomers.

Version 1

NOTE: Version 1 is the legacy implementation which works but lacks some abstraction as well as mocks to allow best use in other projects. There is no change in features/functionality when upgrading but the overall api and signature was drastically changed.

The git tag v1 is being seen as feature complete and changes should not occur. If bugs in this implementation are found, please report those using GitHub Issues or by opening a Pull Request. Whilst being feature complete a reasonable request to this might still make it into the code.

The code is covered with tests by 100% and code quality is being ensured by running go test, vet, errcheck, fmt and lint against every commit. Checks are run against Go 1.8.x, 1.9.x and 1.10.x.

Dependencies

All dependencies inside this project are being managed by dep and are checked in. After pulling the repository, it should not be required to do any further preparations aside from make deps to prepare the dev tools (once).

If new dependencies get added while coding, make sure to add them using dep ensure --add "importpath" and to check them into git. We recommend adding your vendor changes in a separate commit to make reviewing your changes easier and faster.

Testing

To run tests you can use:

make test

Contributing

Feedback and contributions are highly welcome. Feel free to file issues, feature or pull requests. If you are interested in using this project now or in a later stage, feel free to get in touch.

We are always looking for active contributors, team members and partner projects sharing our vision. Easiest way of reaching us is via Discord.

See you soon, the PlayNet Team

License

This project's license is located in the LICENSE file.