Version de Minecraft : 1.16.4
Version de Skript : 2.5.3
Addons utilisés: skript-gui (v1.2.0), SkQuery(v4.1.4), skript-mirror (v1.0.0)
Type du skript : Je souhaite faire un skript qui me remplace les blocs pris entre deux locations
Description du skript :
Bonjour ou Bonsoir,
J'ai trouvé ce bout de Skript sur internet qui me permet de créer une multitude fonction qui font ce que j'aurais besoin de faire:
import:
com.sk89q.worldedit.regions.CuboidRegion
com.sk89q.worldedit.Vector as WorldEditVector
com.sk89q.worldedit.EditSession
com.boydti.fawe.FaweAPI
com.boydti.fawe.util.EditSessionBuilder
com.sk89q.worldedit.blocks.BaseBlock
com.sk89q.worldedit.patterns.BlockChance
java.util.Arrays
com.sk89q.worldedit.patterns.RandomFillPattern
java.util.stream.Collectors
function getRegion(pos1: location, pos2: location) :: object:
loop 1 and 2:
set {_vec::%loop-value%} to new WorldEditVector((x-coord of {_pos%loop-value%}), (y-coord of {_pos%loop-value%}) and (z-coord of {_pos%loop-value%}))
return new CuboidRegion({_vec::*})
function getBaseBlock(block: itemtype) :: object:
return new BaseBlock({_block}.getRandom().getTypeId() and {_block}.getRandom().getData().getData())
function getBlockChance(block: itemtype, chance: number) :: object:
return new BlockChance(getBaseBlock({_block}) and {_chance})
function getWorld(world: world) :: object:
return FaweAPI.getWorld("%{_world}%")
function getEditSession(world: world) :: object:
return new EditSessionBuilder(getWorld({_world})).fastmode(true).build()
function setBlocks(pos1: location, pos2: location, block: object) :: boolean:
set {_session} to getEditSession(world of {_pos1})
set {_args::*} to getRegion({_pos1}, {_pos2}) and getBaseBlock({_block})
if {_block} is a text:
loop split {_block} at ",":
set {_it::*} to join (split loop-value at "%%") with " " parsed as "%integer% %item%"
if {_it::*} is set:
add getBlockChance({_it::2}, {_it::1}) to {_c::*}
delete {_it::*}
else:
return false
set {_args::*} to getRegion({_pos1}, {_pos2})
add new RandomFillPattern(Arrays.stream([{_c::*}]).collect(Collectors.toList())) to {_args::*}
{_session}.setBlocks({_args::*})
{_session}.flushQueue()
return true
J'ai ajouter à ce code le code suivant:
command /restartmine:
description: Permet de reset les mines si bug
permission: skript.restart.mine
usage: /restartmine
executable by: players
trigger:
set {_loc1} to location at -209, 167, 351 in world "flat_end"
set {_loc2} to location at -224, 152, 336 in world "flat_end"
set {_bool} to setBlocks({_loc1}, {_loc2}, "100%%air")
on Skript start:
execute console command "/restartmine"
Cependant lors de l'exécution de la commande de reload du skript les erreurs suivantes font leur apparition:
D'après ce que je comprends, ma commande est bien crée mais cependant, certaines fonctions ne parviennent pas à se créer.
Merci d'avance de l'aide précieux que vous m'apporterez.
Je vous souhaite une agréable journée/soirée.
Cordialement,
PoLaN