OnyCore_Events:
type: world
debug: true
events:
on player joins:
- wait 5t
#- teleport <player> l@lobby
- foreach <player.flag[pliste].as_list> {
- yaml load:/personnages/%value%.yml id:%value%
}
- inject locally OnyCore_PersonnageSelection instantly
on player quits:
- inject locally OnyCore_Deconnexion instantly
on player clicks in inventory:
- if "<c.inventory.notable_name.split[_].get[1]>" == "onycore" {
- determine passively cancelled
- define slot <c.raw_slot>
- inject locally OnyCore_ClickHandler_<c.inventory.notable_name.split[_].get[2]> instantly
} else {
- queue clear
}
- if "<c.slot_type>" == "OUTSIDE" || "<context.item>" == "i@air" {
- queue clear
}
on player closes inventory:
- if '<c.inventory.notable_name.split[_].get[1]||null>' == 'onycore' {
- note remove 'as:<context.inventory.notable_name>'
}
- wait 10t
- if <player.location> == l@menu {
- inject locally OnyCore_PersonnageSelection instantly
}
on player chats:
- if <player.has_flag[create]> {
- define perso <context.message>
- if <server.has_file[/personnages/%perso%.yml].not> {
- inject locally OnyCore_CreationPersonnage instantly
} else {
- narrate "<&4>Ce nom est déjà pris! Veuillez en choisir un autre."
}
} else queue clear
on classe command:
- determine passively fulfilled
- inject locally OnyCore_Deconnexion instantly
- ^teleport <player> l@menu
- foreach <player.flag[pliste].as_list> {
- yaml load:/personnages/%value%.yml id:%value%
}
- inject locally OnyCore_PersonnageSelection instantly
OnyCore_PersonnageSelection:
- define nom <player.name>
- define inv "OnyCore_PersonnageSelection_%nom%"
- note "in@generic[title=<&d>Choisissez votre personnage;size=18]" "as:%inv%"
- define nbrPersos "<player.flag[pliste].as_list.size||0>"
- define classe <proc[pclasse].context[1]>
- choose %nbrPersos%:
- case "0":
- run locally OnyCore_PersonnageCreate instantly
- note remove "as:OnyCore_PersonnageSelection_%nom%"
- case "1":
- inventory add "d:in@%inv%" "o:i@<proc[pitem].context[1]>[display_name=<&a><&l><proc[pname].context[1]>;lore=<&7>%classe% Niv&dot <proc[pniveau].context[1]>;flags=<server.flag[iflags]>]" "slot:4"
- inventory add "d:in@%inv%" "o:i@skull_item[display_name=<&d>Créer un personnage...;flags=<server.flag[iflags]>]" "slot:5"
- inventory add "d:in@%inv%" "o:i@skull_item[display_name=<&d>Créer un personnage...;flags=<server.flag[iflags]>]" "slot:6"
- inventory add "d:in@%inv%" "o:i@anvil[display_name=<&d>Créer un nouveau personnage;lore=<&7>Vous avez 1 personnages sur 3 de créés˙flags=<server.flag[iflags]>]" "slot:17"
- case "2":
- inventory add "d:in@%inv%" "o:i@<proc[pitem].context[1]>[display_name=<&a><&l><proc[pname].context[1]>;lore=<&7><proc[pclasse].context[1]> Niv&dot <proc[pniveau].context[1]>;flags=<server.flag[iflags]>]" "slot:4"
- inventory add "d:in@%inv%" "o:i@<proc[pitem].context[2]>[display_name=<&a><&l><proc[pname].context[2]>;lore=<&7><proc[pclasse].context[2]> Niv&dot <proc[pniveau].context[2]>;flags=<server.flag[iflags]>]" "slot:5"
- inventory add "d:in@%inv%" "o:i@skull_item_item[display_name=<&d>Créer un personnage&dot&dot˙flags=<server.flag[iflags]>]" "slot:6"
- inventory add "d:in@%inv%" "o:i@anvil[display_name=<&d>Créer un nouveau personnage;lore=Vous avez 2 personnages sur 3 de créés.;flags=<server.flag[iflags]>]" "slot:17"
- case "3":
- inventory add "d:in@%inv%" "o:i@<proc[pitem].context[1]>[display_name=<&a><&l><proc[pname].context[1]>;lore=<&7><proc[pclasse].context[1]> Niv&dot <proc[pniveau].context[1]>;flags=<server.flag[iflags]>]" "slot:4"
- inventory add "d:in@%inv%" "o:i@<proc[pitem].context[2]>[display_name=<&a><&l><proc[pname].context[2]>;lore=<&7><proc[pclasse].context[2]> Niv&dot <proc[pniveau].context[2]>;flags=<server.flag[iflags]>]" "slot:5"
- inventory add "d:in@%inv%" "o:i@<proc[pitem].context[3]>[display_name=<&a><&l><proc[pname].context[3]>;lore=<&7><proc[pclasse].context[3]> Niv&dot <proc[pniveau].context[3]>;flags=<server.flag[iflags]>]" "slot:6"
- inventory add "d:in@%inv%" "o:i@anvil[display_name=<&4>Vous avez atteint le nombre de personnages maximal!;lore=<&7>Pour créer un nouveau personnage&nlvous devez d&sqen supprimer un˙flags=<server.flag[iflags]>]" "slot:17"
- if <player.has_permission[builder]||false> {
- inventory add "d:in@%inv%" "o:i@workbench[display_name=<&c>Mode Construction;flags=<server.flag[iflags]>]" "slot:16"
}
- inventory add "d:in@%inv%" "o:i@barrier[display_name=<&c>Supprimer un personnage;flags=<server.flag[iflags]>]" "slot:18"
- inventory open d:in@%inv%
############################
## Création du personnage ##
############################
OnyCore_PersonnageCreate:
- define nom <player.name>
- define inv "OnyCore_PersonnageCreate_%nom%"
- note "in@generic[title=<&d>Créer un personnage;size=9]" "as:%inv%"
- inventory add "d:in@%inv%" "o:i@bow[display_name=<&d>Créer un <&b><&l>Archer;flags=<server.flag[iflags]>]" "slot:4"
- inventory add "d:in@%inv%" "o:i@iron_sword[display_name=<&d>Créer un <&b><&l>Guerrier;flags=<server.flag[iflags]>]" "slot:5"
- inventory add "d:in@%inv%" "o:i@stick[display_name=<&d>Créer un <&b><&l>Mage;flags=<server.flag[iflags]>]" "slot:6"
- if <player.flag[pliste].as_list.size> >= 1 {
- inventory add "d:in@%inv%" "o:i@barrier[display_name=<&c>Annuler;flags=<server.flag[iflags]>]" "slot:9"
}
- inventory open d:in@%inv%
#############################
## Supprimer un personnage ##
#############################
OnyCore_PersonnageSupprimer:
- define jNom <player.name>
- define nbrPersos "<player.flag[pliste].as_list>"
- define inv "OnyCore_PersonnageSupprimer_%jNom%"
- note "in@generic[title=<&d>Supprimer un personnage;size=9]" "as:%inv%"
- foreach %nbrPersos% {
- inventory add "d:in@%inv%" "o:i@<proc[pitem].context[%loop_index%]>[display_name=<&a><&l><proc[pname].context[%loop_index%]>;lore=<&7><proc[pclasse].context[%loop_index%]> Niv&dot <proc[pniveau].context[%loop_index%]>;flags=<server.flag[iflags]>]" "slot:%loop_index%"
}
- inventory add "d:in@%inv%" "o:i@slime_ball[display_name=Annuler;flags=<server.flag[iflags]>]" "slot:9"
- inventory open "d:in@%inv%"
OnyCore_ClickHandler_PersonnageSelection:
- define nom <player.name>
- note remove "as:OnyCore_PersonnageSelection_%nom%"
- define slot <c.raw_slot>
- choose %slot%:
- case "4":
- define slot 1
- inject locally OnyCore_JouerPersonnage instantly
- case "5":
- define slot 2
- inject locally OnyCore_JouerPersonnage instantly
- case "6":
- define slot 3
- inject locally OnyCore_JouerPersonnage instantly
- case "16":
- inject locally OnyCore_JouerBuilder instantly
- case "17":
- inject locally OnyCore_PersonnageCreate instantly
- case "18":
- inject locally OnyCore_PersonnageSupprimer instantly
OnyCore_ClickHandler_PersonnageCreate:
- define nom <player.name>
- define slot <c.raw_slot>
- note remove "as:OnyCore_PersonnageCreate_%nom%"
- choose %slot%:
- case "4":
- flag player create:Archer
- inventory close
- narrate "<&c>Écrivez dans le chat le nom de votre personnage."
- case "5":
- flag player create:Guerrier
- inventory close
- narrate "<&c>Écrivez dans le chat le nom de votre personnage."
- case "6":
- flag player create:Mage
- inventory close
- narrate "<&c>Écrivez dans le chat le nom de votre personnage."
- case "9":
- inject locally OnyCore_PersonnageSelection instantly
OnyCore_ClickHandler_PersonnageSupprimer:
- define nom <player.name>
- define slot <c.raw_slot>
- note remove "as:OnyCore_PersonnageSupprimer_%nom%"
- choose %slot%:
- case "1":
- define slot 1
- inject locally OnyCore_SupprPersonnage instantly
- case "2":
- define slot 2
- inject locally OnyCore_SupprPersonnage instantly
- case "3":
- define slot 3
- inject locally OnyCore_SupprPersonnage instantly
- case "9":
- inject locally OnyCore_PersonnageSelection
OnyCore_ClickHandler_SupprPersonnage:
- define nom <player.name>
- define slot <c.raw_slot>
- note remove "as:OnyCore_SupprPersonnage_%nom%"
- choose %slot%:
- case "4":
- inject locally OnyCore_SupprPersonnage_Oui instantly
- case "5":
- inject locally OnyCore_PersonnageSelection instantly
OnyCore_JouerPersonnage:
- define perso <player.flag[pliste].get[%slot%]>
- define lastPos <yaml[%perso%].read[lastpos]||l@spawn>
- define inv <yaml[%perso%].read[lastinv]>
- define vie <yaml[%perso%].read[vitalité]>
- flag player enjeu:%slot%
- adjust <player> scale_health:true
- health <player> %vie%
- heal <player>
- teleport <player> %lastPos%
- inventory set d:<player> o:%inv%
- inventory close
- narrate "<&a><&l>Bienvenue sur OnyCraft, <player.name>!"
- narrate "<&e><&l>Votre personnage : %perso%"
- narrate "<&c><&l>OnyCraft est présentement en Alpha Dev. Merci de participer à son développement!"
OnyCore_CreationPersonnage:
- define classe <player.flag[create]>
- flag player pliste:->:%perso%
- ^yaml create id:%perso%
- ^yaml id:%perso% set joueur:<player.name>
- ^yaml id:%perso% set uuid:<player.uuid>
- ^yaml id:%perso% set creation:<util.date.time.year>/<util.date.time.month>/<util.date.time.day>|<util.date.time.twentyfour_hour>
- ^yaml id:%perso% set classe:%classe%
- ^yaml id:%perso% set niveau:1
- ^yaml id:%perso% set intelligence:0
- ^yaml id:%perso% set agilité:0
- ^yaml id:%perso% set chance:0
- ^yaml id:%perso% set force:0
- ^yaml id:%perso% set sagesse:0
- ^yaml id:%perso% set vitalité:50
- ^yaml id:%perso% set carac_pts:0
- ^yaml id:%perso% set sort_pts:0
- ^yaml id:%perso% set energie:10
- ^yaml "savefile:/personnages/%perso%.yml" id:%perso%
- flag player create:!
- inject locally OnyCore_NouveauPersonnage instantly
- flag player enjeu:<player.flag[pliste].as_list.size>
OnyCore_Deconnexion:
- if <player.has_flag[builder]||false> {
- ^inventory d:<player> clear
- ^flag player builder:!
- ^adjust <player> "gamemode:adventure"
- ^adjust <player> "location:l@menu"
} else {
- ^define perso <proc[p_name]>
- ^flag player enjeu:!
- ^yaml id:%perso% set lastpos:<player.location>
- ^yaml id:%perso% set lastinv:<player.inventory.list_contents>
- ^inventory d:<player> clear
- ^yaml "savefile:/personnages/%perso%.yml" id:%perso%
- ^yaml unload id:%perso%
- ^adjust <player> "location:l@menu"
}
OnyCore_SupprPersonnage:
- define perso <player.flag[pliste].get[%slot%]>
- define nom <player.name>
- define inv "OnyCore_SupprPersonnage_%nom%"
- flag player suppr:%slot%
- note "in@generic[title=<&d>Confirmation de suppression;size=9]" "as:%inv%"
- define desc "<proc[lineWrap].context[<&4><&l>ATTENTION!<&r> <&c>Toute votre progression sera perdue&dot Vous ne pourrez pas récupérer votre personnage&dot|30].as_list>"
- inventory add "d:in@%inv%" "o:i@slime_ball[display_name=Oui, je veux vraiment supprimer %perso%.;lore=%desc%;flags=<server.flag[iflags]>]" "slot:4"
- inventory add "d:in@%inv%" "o:i@redstone_block[display_name=Non, je ne veux pas supprimer %perso%˙lore=<&d>Retourner au menu précédent˙flags=<server.flag[iflags]>]" "slot:5"
- inventory open d:in@%inv%
OnyCore_SupprPersonnage_Oui:
- define nom <player.name>
- define slot <player.flag[suppr]>
- define perso <player.flag[pliste].get[%slot%]>
- adjust server delete_file:/personnages/%perso%.yml
- flag player pliste:<-:%perso%
- inject locally OnyCore_PersonnageSelection instantly
OnyCore_NouveauPersonnage:
- teleport <player> l@spawn
OnyCore_JouerBuilder:
- teleport <player> l@spawn
- ^inventory close
- ^flag player builder
#- ^flag player spelldisplay_stop
- ^adjust <player> "gamemode:creative"