Skip to content

PanelHelper

Emile NKZ edited this page Apr 10, 2025 · 17 revisions

Déclaration

ModKit.Helper.Panel

Une bonne pratique consiste à déclarer votre panel au sein d'une fonction.
Avec ModKit, vous allez utiliser la méthode ${\color{NavyBlue}\normalsize{\textsf{PanelHelper.Create(string title, UIPanel.PanelType type, Player player, System.Action currentPanel)}}}$ pour déclarer votre panel.

public void WelcomePanel(Player player)
{
    //déclaration du panel
    //Veillez à ce que vos panels aient des titres différents
    //pour que PanelHelper puisse exécuter correctement la fonction Previous
    Panel panel = PanelHelper.Create("Bienvenue", UIPanel.PanelType.Text, player, () => WelcomePanel(player));
}

Corps

Globalement, rien ne change concernant le corp de votre panel hormis l'ajout d'une propriété ${\color{NavyBlue}\normalsize{\textsf{TextLines}}}$.

//utiliser panel.TextLines.Add à chaque fois que vous voulez sauter une ligne.
panel.TextLines.Add(TextFormattingHelper.Bold("Bienvenue sur le serveur !"));
panel.TextLines.Add("Bon jeu à tous.");

Boutons

Divers boutons sont à votre disposition et prêt à l'emploi.

${\color{Goldenrod}\normalsize{\textsf{Fermer}}}$

//Fermer le panel
panel.CloseButton();

${\color{Goldenrod}\normalsize{\textsf{Fermer avec nom custom}}}$

//Fermer le panel
panel.CloseButton("Exemple");

${\color{Goldenrod}\normalsize{\textsf{Précédent}}}$

//revenir au précédent panel
panel.PreviousButton();

//ATTENTION: Si le précédent panel n'est pas issue de votre plugin, veuillez réaliser votre bouton retour de la manière suivante:
panel.AddButton("Retour", ui =>
{
    otherPlugin.PanelFunction(player);
});

//Exemple pour revenir au panel "métier" de AAMenu:
panel.AddButton("Retour", ui =>
{
    AAMenu.AAMenu.menu.BizPanel(player, AAMenu.AAMenu.menu.BizTabLines);
});

${\color{Goldenrod}\normalsize{\textsf{Suivant}}}$

//Passer au panel suivant
panel.NextButton("Suivant", () =>
{
    //votre code perso
    FunctionDuPanelSuivant(player);
});

${\color{Goldenrod}\normalsize{\textsf{Rafraîchir}}}$

//Recharger le panel en cours pour l'utilisateur courant
panel.AddButton("Refresh", ui => {
    panel.Refresh();
});

${\color{Goldenrod}\normalsize{\textsf{Rafraîchir pour tous}}}$

//Recharger le panel en cours pour l'ensemble des utilisateurs actuellement dessus
panel.AddButton("RefreshAll", ui => {
    panel.OnRefreshAll();
});

${\color{Goldenrod}\normalsize{\textsf{Précédent (sous condition)}}}$

//Revenir au panel précédent SI votre code retourne TRUE
//Très utile si vous souhaitez ajouter un élément à une liste par exemple
panel.PreviousButtonWithAction("Ajouter", async () =>
{
    return await MyFunction();
});

${\color{Goldenrod}\normalsize{\textsf{Fermer (sous condition)}}}$

//Ferme le panel courant SI votre code retourne TRUE
panel.CloseButtonWithAction("Ajouter", async () =>
{
    return await MyFunction();
});

${\color{Goldenrod}\normalsize{\textsf{Sélectionner}}}$

panel.SelectTabButton();

${\color{Goldenrod}\normalsize{\textsf{Sélectionner avec nom custom}}}$

panel.SelectTabButton("Exemple");

Affichage

Une fois que votre panel est prêt, il ne vous reste plus qu'à l'afficher à votre joueur;

panel.Display();

Exemple d'un panel

Pour faciliter votre compréhension, voici à quoi pourrait ressembler un panel de A à Z:

public void WelcomePanel(Player player)
{
    //Déclaration
    Panel panel = PanelHelper.Create("Bienvenue", UIPanel.PanelType.Text, player, () => WelcomePanel(player));

    //Corps
    panel.TextLines.Add(TextFormattingHelper.Bold("Bienvenue sur le serveur !"));
    panel.TextLines.Add("Bon jeu.");

    //Boutons
    panel.NextButton("Reglement", () => Rules(player));
    panel.CloseButton();

    //Affichage
    panel.Display();
}

📒 Wiki

🧱 AAMenu

🔗 ORM

⚡️ EventHelper

🚚 JobHelper

🌀 PointHelper

🎭 SkinHelper

📂 PanelHelper

✒️ TextFormattingHelper

💜 DiscordHelper

🌱 NetworkAreaHelper

🧰 CraftHelper

🚕 VehicleHelper

📡 ProximityHelper

⚙️ OverrideHelper

🧾 JsonHelper

📦 Utilitaires

Clone this wiki locally