@infernus/cef
v0.1.0
Published
A wrapper of the popular samp-cef plugin for samp-node.
Downloads
28
Readme
@infernus/cef
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();
});