0.2.18 • Published 3 months ago

gnode-api v0.2.18

Weekly downloads
-
License
ISC
Repository
github
Last release
3 months ago

G-Node

Node.js G-Earth extension API Requires Node.js V15.0.0+ Docs: https://wiredspast.github.io/G-Node/modules.html

How to install

Using npm:

$ npm install gnode-api

Using yarn:

$ yarn add gnode-api

How to run selfmade extension

$ node [filename] -p [port]

Example

$ node extension.js -p 9092

Example

import { Extension, HPacket, HDirection } from 'gnode-api';

// Use package.json as extensionInfo or create an object including 'name', 'description', 'version' and 'author'
import { readFile } from 'fs/promises';
const extensionInfo = JSON.parse(
    await readFile(
        new URL('./package.json', import.meta.url)
    )
);

// Create new extension with extensionInfo
let ext = new Extension(extensionInfo);

// Start connection to G-Earth
ext.run();

Listeners

Do on connection to G-Earth

ext.on('init', () => {
  console.log("Connected to G-Earth");
});

Do on connection to hotel

ext.on('start', () => {
  console.log("Connected to G-Earth");
});

Do on connection to hotel and get client info

ext.on('connect', (host, connectionPort, hotelVersion, clientIdentifier, clientType) => {
  // do something with client info
});

Do on connection to hotel ended

ext.on('end', () => {
  console.log("Connection to G-Earth ended");
});

Do on click on button in G-Earth Extensions tab

ext.on('click', () => {
  console.log("G-Earth button clicked");
});

Packet intercepting

Intercept all packets in one direction

ext.interceptAll(HDirection.TOCLIENT, hMessage => {
  let hPacket = hMessage.getPacket();
  ...
});

ext.interceptAll(HDirection.TOSERVER, hMessage => {
  let hPacket = hMessage.getPacket();
  ...
});

Intercept all packets with a certain header id in one direction

ext.interceptByHeaderId(HDirection.TOCLIENT, 969, hMessage => {
  let hPacket = hMessage.getPacket();
  ...
});

ext.interceptByHeaderId(HDirection.TOSERVER, 2443, hMessage => {
  let hPacket = hMessage.getPacket();
  ...
});

Intercept all packets by name or hash in one direction

ext.interceptByNameOrHash(HDirection.TOCLIENT, 'Ping', hMessage => {
  let hPacket = hMessage.getPacket();
  ...
});

ext.interceptByNameOrHash(HDirection.TOSERVER, 'Pong', hMessage => {
  let hPacket = hMessage.getPacket();
  ...
});

Reading a packet

Reading a var by var

let hPacket = hMessage.getPacket(); // Example: {in:Chat}{i:1}{s:"Hello"}{i:0}{i:1}{i:0}{i:0}
let userIndex = hPacket.readInteger();
let message = hPacket.readString();
hPacket.readInteger();
let bubble = hPacket.readInteger();

Reading a structure into an array

let hPacket = hMessage.getPacket(); // Example: {in:Chat}{i:1}{s:"Hello"}{i:0}{i:1}{i:0}{i:0}
let vars = hPacket.read('iSiiii');
let userIndex = vars[0];
let message = vars[1];
let bubble = vars[3];

Creating a packet

Creating packet from identifier (name or hash) and direction

let hPacket = new HPacket('Chat', HDirection.TOCLIENT); // Example: {in:Chat}
hPacket.appendInt(1);       // {in:Chat}{i:1}
hPacket.appendString('Hello');  // {in:Chat}{i:1}{s:"Hello"}
hPacket.appendInt(0);       // {in:Chat}{i:1}{s:"Hello"}{i:0}
hPacket.appendInt(1);       // {in:Chat}{i:1}{s:"Hello"}{i:0}{i:1}
hPacket.appendInt0);       // {in:Chat}{i:1}{s:"Hello"}{i:0}{i:1}{i:0}
hPacket.appendInt(0);       // {in:Chat}{i:1}{s:"Hello"}{i:0}{i:1}{i:0}{i:0}

Creating packet from header Id

let hPacket = new HPacket(1918) // Example: {l}{h:1918}
    .appendInt(1)       // {l}{h:1918}{i:1}
    .appendString('Hello')  // {l}{h:1918}{i:1}{s:"Hello"}
    .appendInt(0)       // {l}{h:1918}{i:1}{s:"Hello"}{i:0}
    .appendInt(1)       // {l}{h:1918}{i:1}{s:"Hello"}{i:0}{i:1}
    .appendInt(0)       // {l}{h:1918}{i:1}{s:"Hello"}{i:0}{i:1}{i:0}
    .appendInt(0);      // {l}{h:1918}{i:1}{s:"Hello"}{i:0}{i:1}{i:0}{i:0}

Creating packet from packet expression

let hPacket = new HPacket('{in:Chat}{i:1}{s:"Hello"}{i:0}{i:1}{i:0}{i:0}');

OR

let hPacket = new HPacket('{l}{h:1918}{i:1}{s:"Hello"}{i:0}{i:1}{i:0}{i:0}');

Sending a packet

Send packet to client

ext.sendToClient(hPacket);

Send packet to server

ext.sendToServer(hPacket);

More

For more examples and/or help read the wiki

0.2.18

3 months ago

0.2.17

3 months ago

0.2.16

4 months ago

0.2.15

1 year ago

0.2.14

1 year ago

0.2.13

1 year ago

0.2.12

2 years ago

0.2.11

2 years ago

0.2.10

2 years ago

0.2.7

2 years ago

0.2.6

2 years ago

0.2.9

2 years ago

0.2.8

2 years ago

0.2.3

2 years ago

0.2.2

2 years ago

0.2.5

2 years ago

0.2.4

2 years ago

0.2.1

2 years ago

0.1.2

2 years ago

0.2.0

2 years ago

0.1.1

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.5

2 years ago

0.1.0

3 years ago

0.0.1-beta.24

3 years ago

0.0.1-beta.23

3 years ago

0.0.1-beta.22

3 years ago

0.0.1-beta.21

3 years ago

0.0.1-beta.9

3 years ago

0.0.1-beta.10

3 years ago

0.0.1-beta.20

3 years ago

0.0.1-beta.12

3 years ago

0.0.1-beta.11

3 years ago

0.0.1-beta.18

3 years ago

0.0.1-beta.17

3 years ago

0.0.1-beta.19

3 years ago

0.0.1-beta.14

3 years ago

0.0.1-beta.13

3 years ago

0.0.1-beta.16

3 years ago

0.0.1-beta.15

3 years ago

0.0.1-beta.7

3 years ago

0.0.1-beta.6

3 years ago

0.0.1-beta.8

3 years ago

0.0.1-beta.5

3 years ago

0.0.1-beta.4

3 years ago

0.0.1-beta.3

3 years ago

0.0.1-beta.2

3 years ago

0.0.1-beta.1

3 years ago

0.0.1-beta.0

3 years ago