haxball / haxball-issues

115 stars 43 forks source link

🎉 Haxball Native Headless API (NodeJS) #1413

Open mertushka opened 3 years ago

mertushka commented 3 years ago

Hello! I wanted to introduce you to my powerful Native Haxball Headless API module that I have coded.

Here is the example code of module usage:

const HaxballJS = require("haxball.js");

HaxballJS.then((HBInit) => {
  // All is same as Haxball Headless Host Documentation
  const room = HBInit({
    roomName: "Haxball.JS",
    maxPlayers: 16,
    public: true,
    noPlayer: true,
    token: "TOKEN", // Required
  });

  room.setDefaultStadium("Big");
  room.setScoreLimit(5);
  room.setTimeLimit(0);

  room.onRoomLink = function (link) {
    console.log(link);
  };
});

More info:

NPM https://www.npmjs.com/package/haxball.js

Github https://github.com/mertushka/haxball.js

TweekHaxball commented 2 years ago

is it possible to connect an existing room, i dont wanna open a new room.

mertushka commented 2 years ago

is it possible to connect an existing room, i dont wanna open a new room.

I think i did'nt get what you mean in "connect an existing room" but I am pretty sure you can implement JavaScript to NodeJS, its same Haxball API in NodeJS style. However my native language is Turkish and it seems as your too, you can explain to me "connect an existing room" in better way with Turkish.

TweekHaxball commented 2 years ago

şunu anlatmaya çalışıyordum, burda yaptığım şey

HaxballJS.then((HBInit) => {

});

bu kısma oda açma ile ilgili gerekli kodları yazıyorum ve odayı açıyorum fakat şunu yapmak istiyorum. haxball/headless den açılmış bir odaya bağlanmak istiyorum. mesela oyuncu sayısına eriştim bunu botun durumuna "Odada 'Oyuncusayısı' Oyuncu Oynuyor". şeklinde yazdırdım, her giriş çıkıştada botun durumu sorunsuz güncelleniyor. fakat bunun gibi şeyler var olan bir odadan almak istiyorum.

var room;
var oyuncuSayısı = 0;
HaxballJS.then((HBInit) => {
  // Same as in Haxball Headless Host Documentation
  room = HBInit({
    roomName: "Haxball.JS",
    maxPlayers: 16,
    public: false,
    noPlayer: false,
    token: "", // Required
  });

  room.setDefaultStadium("Big");
  room.setScoreLimit(5);
  room.setTimeLimit(0);

  room.onRoomLink = function (link) {
    console.log(link);
  };
  room.onPlayerJoin = function(player){
    oyuncuSayısı ++;
    console.log(player.auth);
    client.user.setActivity("Odada"+oyuncuSayısı+" Oyuncu",{type: 'Playing'})
  };
  room.onPlayerLeave = function(player){
    oyuncuSayısı = oyuncuSayısı -1;
    client.user.setActivity("Odada"+oyuncuSayısı+" Oyuncu",{type: 'Playing'})
  }

});
client.on('ready', () => {
  client.user.setActivity("Odada"+oyuncuSayısı+" Oyuncu",{type: 'Playing'})
  .catch(console.error);
});
client.on('message', msg => {
  if  (msg.content.toLowerCase() == "!ban"){
    room.kickPlayer(1,"sebep",true);
  }

});

!ban komudu tarzında şeylerde yaptım, ama dediğim gibi isteğim haxball/headless ile açılmış bir odaya bir discord botundan etki edebilmek. umarım anlatabilmişimdir

mertushka commented 2 years ago

Neden tarayıcı üzerinden oda açma gereği duyuyorsun ki?

TweekHaxball commented 2 years ago

odalarımı windows sanal sunucu üzerinden açıyorum, "Uzak Masaüstü Bağlantısı" programıyla bağlanınca zaten yeterince donuyor/kasıyor. bunlarla uğraşmak istemiyorum.ayrıca yanlış hatırlamıyorsam discord bot açmak için belli şeyler yüklemem lazım. sanal sunucuyu aldığım yer tarafından bana sunulan windows sürümlerinin hiçbiri desteklenmiyor bu indirmem gereken şeylerde