Skip to content

Memulai

Cara paling gampang buat mikir tentang CampAPI adalah begini: pilih dulu hal yang mau kamu tangani, lalu tempelkan logic kamu di sana.

1) Pilih fitur yang memang kamu butuh

Beberapa pilihan yang paling sering dipakai:

  • BeforeRenderScreenEvent kalau kamu mau menghentikan atau mengganti render layar
  • AfterRenderScreenEvent kalau kamu mau jalanin kode setelah layar selesai digambar
  • OnKeyEvent dan OnTouchEvent kalau kamu mau merespons input pemain
  • GetSplashTextEvent kalau kamu mau ganti splash text saat startup
  • RPMConstructor kalau kamu mau memantau pembuatan resource-pack manager
  • getLibBase() dan getVtableClass() kalau kamu butuh alamat native

2) Simpan listener di dalam scope

ModuleScope bikin listener lebih rapi. Begitu scope selesai, listener di dalamnya ikut dibersihkan otomatis.

cpp
CampAPI::ModuleScope scope;

scope.AddListener<OnKeyEvent>([](OnKeyEvent& event) {
    if (event.isKeyDown && event.keyCode == 66) {
        event.Consume();
    }
});

3) Bikin mod JavaScript

Struktur mod JS biasanya seperti ini:

text
{Akar Folder Data CampAPI}/scripts/ExampleMod/
  manifest.json
  scripts/
    index.js
    utils.js

Contoh manifest.json:

json
{
  "name": "Example Mod",
  "author": "Alvin",
  "version": "1.0.0",
  "namespace": "example",
  "export": true,
  "entry": "index.js"
}

Contoh scripts/index.js:

js
import { getModInfoByName } from 'internal:mod'
import { sigscan } from 'internal:modding'
import { fetch } from 'internal:network'

console.log('Loaded:', getModInfoByName('Example Mod'))

const addr = sigscan('libminecraftpe.so', '48 8B ?? ??')
console.log('Signature result:', addr)

const res = fetch('https://example.com/version.json')
console.log(res.status, res.ok)

4) Import file dari mod export

Kalau mod ditandai "export": true, mod lain bisa import file-nya pakai format @namespace/path.

js
import { helper } from '@example/utils.js'

Cocok buat utility bersama, konstanta, atau bootstrap kecil yang dipakai berulang.

Tips praktis

Mulai dari yang kecil dulu. Mod yang cuma ganti splash text atau merespons satu tombol biasanya jauh lebih gampang dites dibanding mod besar yang semua halnya dicampur jadi satu.