@smalie/haxball-local
v1.0.1
Published
A custom fork of haxball.js with local file reading support
Maintainers
Readme
🔖 Table Of Contents
- 🤔 How To Use
- 🚀 Technologies
- 🌱 Minimal Requirements
- 🎊 Features
- 💡 How To Contribute
- 🤗 Contributors
- 👤 Author
- 🔏 License
💻 Installing
npm install haxball.jsModule Usage Example
const HaxballJS = require('haxball.js');
HaxballJS().then((HBInit) => {
// Same as in Haxball Headless Host Documentation
const room = HBInit({
roomName: 'Haxball.JS',
maxPlayers: 16,
public: true,
noPlayer: true,
token: 'YOUR_TOKEN_HERE', // Required
});
room.setDefaultStadium('Big');
room.setScoreLimit(5);
room.setTimeLimit(0);
room.onRoomLink = function (link) {
console.log(link);
};
});(Optional) Custom WebRTC Library
Haxball.JS uses node-datachannel as the default WebRTC library. However, you can use a custom WebRTC implementation by specifying it in the HaxballJS promise using the webrtc option.
Example:
const HaxballJS = require('haxball.js');
const WebRTC = require('webrtc');
HaxballJS({ webrtc: WebRTC }).then((HBInit) => {...});(Optional) Proxy
Haxball has a limit of 2 rooms per IP. Therefore, you can use proxy with adding proxy: "http://<YOUR_PROXY_IP>" in your RoomConfig.
Example:
HBInit({
...
proxy: "http://1.1.1.1:80",
});💻 TypeScript
TypeScript Example
import HaxballJS from 'haxball.js';
HaxballJS().then((HBInit) => {...});💻 (Optional, Highly Experimental!) Bun
It's highly experimental and risky to use it in a production environment, but haxball.js is compatible with Bun.JS.
bun install haxball.js
bun pm trust node-datachannel
bun index.ts- node-datachannel - WebRTC implementation for Node.JS
- ws - Websocket Connection
- json5 - JSON Helper Module
- @peculiar/webcrypto - WebCrypto implementation for Node.JS
- pako - ZLIB port for NodeJS
- xhr2 - W3C XMLHttpRequest implementation for Node.JS
- https-proxy-agent - Websocket Proxy Support
- @types/haxball-headless-browser - Type definitions
- NPM
- NodeJS Version >=18
- [x] Promise based
- [x] Synchronous
- [x] Performant
- [x] Strongly Typed
- Make a fork of this repository
- Clone to you machine and entry on respective paste
- Create a branch with your resource:
git checkout -b my-feature - Commit your changes:
git commit -m 'feat: My new feature' - Push your branch:
git push origin my-feature - A green button will appear at the beginning of this repository
- Click to open and fill in the pull request information
Copyright © 2023 mertushka & basro
This project is licensed by MIT License.
