@infernus/cef
TypeScript icon, indicating that this package has built-in type declarations

0.1.0 • Public • Published

@infernus/cef

npm npm npm bundle size

A wrapper of the popular samp-cef plugin for samp-node.

You must use an existing polyfill or compile the corresponding GameMode based on it before you can use it.

Getting started

pnpm add @infernus/core @infernus/cef

Example

Please refer to the documentation of the samp-cef plugin.

#include <open.mp>
#include <samp-node>

#include <streamer>
#include <cef>

#include <polyfill/i18n>
#include <polyfill/cef>

forward OnLogin(player_id, const password[]);
public OnLogin(player_id, const password[]) {
  // transfer to our samp.on
  return SAMPNode_CallEvent("OnPlayerCefLogin", player_id, password)
}
import { defineEvent } from "@infernus/core";
import { Cef, CefEvent } from "@infernus/cef";

CefEvent.onInitialize(({ player, success, next }) => {
  if (!player) return next();

  if (success) {
    new Cef({
      player,
      browserId: 1,
      url: "http://your-hosting.com",
      hidden: false,
      focused: false,
    });
  } else {
    player.sendClientMessage(
      -1,
      "Ahh to bad you cannot see our new cool interface ...",
    );
  }

  return next();
});

CefEvent.onBrowserCreated(({ cef, statusCode }) => {
  if (cef.browserId === 1) {
    if (statusCode !== 200) {
      // fallback to dialogs ...
      return;
    }
    Cef.subscribe("loginpage:login", "OnLogin");
  }
});

const [onPlayerCefLogin] = defineEvent({
  name: "OnPlayerCefLogin",
  identifier: "is",
  beforeEach(playerId: number, password: string) {
    return { playerId, password };
  },
});

onPlayerCefLogin(({ playerId, password, next }) => {
  // get a user password and compare it with a passed string
  const success = comparePlayerPassword(playerId, password);
  if (success) {
    // send a response status to the player
    // Cef.emitEvent(playerId, "someevent", 0, 25.51, "hellow!");
    // you no longer need CEFINT, CEFFLOAT, CEFSTR !!!
    Cef.emitEvent(playerId, "loginpage:response", 1);
    // your code when user is logged in
    OnSuccessLogin(playerId);
  }
  return next();
});

Readme

Keywords

Package Sidebar

Install

npm i @infernus/cef

Weekly Downloads

2

Version

0.1.0

License

MIT

Unpacked Size

14 kB

Total Files

6

Last publish

Collaborators

  • dockfries