Eigene Skripte und Open-Source-Quellcodes für BauKlotzHeim zum Nachlesen und Kopieren.
# ==========================================
# BKH NAVIGATOR - VERSION MIT LANDS
# ==========================================
options:
prefix: &b&lBKH &8| &7
item: &b&lNavigation
# --- Item Vergabe ---
command /getnav []:
permission: admin.navigation
trigger:
set {_p} to player
if arg-1 is set:
set {_p} to arg-1
give 1 of beacon named "{@item}" with lore "&7Rechtsklick zum Oeffnen" to {_p}
send "{@prefix}&aNavigator an %{_p}% gegeben."
# --- Events ---
on right click:
if name of player's held item is "{@item}":
cancel event
openMainGui(player)
on place of beacon:
if name of player's held item is "{@item}":
cancel event
openMainGui(player)
# --- Hauptmenü (Kompass mittig + Abstand) ---
function openMainGui(p: player):
set {_gui} to a new chest inventory with 5 rows named "&8» &b&lBKH &8| &7Hauptmenü"
loop 45 times:
set slot (loop-number - 1) of {_gui} to gray stained glass pane named " "
# Oben
set slot 4 of {_gui} to chest named "&e&lShopfinder"
# Mittlere Reihe (mit Abstand)
set slot 20 of {_gui} to enchanted book named "&5&lSkills"
set slot 22 of {_gui} to compass named "&b&lWelten & Reisen"
set slot 24 of {_gui} to paper named "&d&lLand-Verwaltung"
# Unten
set slot 40 of {_gui} to nether star named "&a&lExtras & Tools"
open {_gui} to {_p}
# --- Untermenü Extras ---
function openExtraGui(p: player):
set {_gui} to a new chest inventory with 3 rows named "&8» &b&lBKH &8| &7Extras"
loop 27 times:
set slot (loop-number - 1) of {_gui} to gray stained glass pane named " "
# Erste Reihe: Tools
set slot 10 of {_gui} to glowstone dust named "&eFullbright"
set slot 11 of {_gui} to feather named "&bFly"
set slot 12 of {_gui} to crafting table named "&7Werkbank"
# Zweite Reihe: Links & Community
set slot 14 of {_gui} to light blue dye named "&bDiscord" with lore "&7Klicke für den Einladungs-Link."
set slot 15 of {_gui} to book named "&eHomepage" with lore "&7Besuche unsere Webseite."
set slot 16 of {_gui} to gold nugget named "&6Voten (Serverlisten)" with lore "&7Unterstütze uns auf Craftlist & Serverlist."
set slot 22 of {_gui} to barrier named "&cZurück zum Hauptmenü"
open {_gui} to {_p}
# --- Untermenü Welten ---
function openWorldGui(p: player):
set {_gui} to a new chest inventory with 3 rows named "&8» &b&lBKH &8| &7Welten"
loop 27 times:
set slot (loop-number - 1) of {_gui} to gray stained glass pane named " "
set slot 10 of {_gui} to nether star named "&e&lLobby"
set slot 12 of {_gui} to oak sapling named "&eFarmwelt"
set slot 14 of {_gui} to grass block named "&aBauwelt"
set slot 16 of {_gui} to gold ingot named "&6&lShop"
set slot 22 of {_gui} to barrier named "&cZurück zum Hauptmenü"
open {_gui} to {_p}
# --- Zentrale Klick-Logik ---
on inventory click:
if name of event-inventory contains "BKH":
cancel event
if event-item is air:
stop
# Hauptmenü
if name of event-inventory contains "Hauptmenü":
if index of event-slot is 4:
make player execute command "/shops"
else if index of event-slot is 20:
make player execute command "/skills"
else if index of event-slot is 22:
openWorldGui(player)
else if index of event-slot is 24:
close player's inventory
make player execute command "/lands"
else if index of event-slot is 40:
openExtraGui(player)
# Klicks in EXTRAS
else if name of event-inventory contains "Extras":
if index of event-slot is 10:
make player execute command "/fullbright"
else if index of event-slot is 11:
make player execute command "/fly"
else if index of event-slot is 12:
make player execute command "/wb"
else if index of event-slot is 14:
send "{@prefix}Discord: &nhttps://discord.gg/r3pZH6dSBV"
close player's inventory
else if index of event-slot is 15:
send "{@prefix}Homepage: &nhttps://bkh.neocities.org"
close player's inventory
else if index of event-slot is 16:
send "{@prefix}Voten auf &6Craftlist&7: &nhttps://craftlist.org/bkh"
send "{@prefix}Voten auf &6Serverlist&7: &nhttps://www.minecraft-serverlist.net/vote/58361"
close player's inventory
else if index of event-slot is 22:
openMainGui(player)
# Klicks in WELTEN
else if name of event-inventory contains "Welten":
if index of event-slot is 10:
make player execute command "/warp lobby"
else if index of event-slot is 12:
make player execute command "/warp farmwelt"
else if index of event-slot is 14:
make player execute command "/warp bauwelt"
else if index of event-slot is 16:
make player execute command "/warp shop"
else if index of event-slot is 22:
openMainGui(player)
# --- MOBILE CRAFTING FÜR BKH ---
command /mobilecrafting:
aliases: /mc, /mcraft
trigger:
# Prüfung: Hat der Spieler den Rang Siedler oder höher?
if player has permission "bkh.mobilecraft":
# Öffnet die virtuelle Werkbank
open crafting table to player
send "&b&lBKH &8» &7Du hast deine &emobile Werkbank &7geöffnet." to player
else:
send "&c&lSTOP &8| &7Dies ist erst ab dem Rang &eSiedler &7verfügbar!" to player
send "&7Schau im &6/rankshop &7vorbei." to player
# --- INTEGRATION IN DEIN CLAIM-SYSTEM ---
# Dieses Event verhindert, dass Mobile-Crafting in fremden Claims
# Probleme macht, da es rein virtuell ist.
on inventory close:
if name of current inventory of player is "Crafting":
# Hier könnte man einen Sound abspielen beim Schließen
play sound "block.chest.close" with volume 0.5 to player
# ==========================================
# Projekt: BauKlotzHeim (BKH)
# Feature: Einmalige Willkommens-Belohnung (Nur Geld)
# ==========================================
options:
betrag: 2000
prefix: &8[&bBauKlotzHeim&8] &r
# Befehl komplett klein schreiben, damit Minecraft die Basis-Registrierung schluckt
command /bauklotzheim:
# Hier fügen wir alle Varianten als Alias hinzu. Dadurch ist die Schreibweise ingame egal!
aliases: /bkh, /BauKlotzHeim, /Bkh
description: Holt deine einmalige Belohnung von {@betrag}€ ab.
trigger:
# Prüfen, ob der Spieler die Belohnung bereits abgeholt hat
if {bkh::belohnung::abgeholt::%uuid of player%} is set:
send "{@prefix}&cDu hast deine einmalige Belohnung bereits abgeholt!" to player
stop
# Geldbetrag auszahlen (Nutzt das EssentialsX / Vault Economy System)
execute console command "eco give %player% {@betrag}"
# Variable auf 'true' setzen (UUID-gesichert gegen Namensänderungen)
set {bkh::belohnung::abgeholt::%uuid of player%} to true
# Bestätigung an den Spieler senden
send "{@prefix}&aVielen Dank, dass du auf &bBauKlotzHeim &agespielt hast!" to player
send "{@prefix}&2Dir wurden &e{@betrag}€ &2erfolgreich gutgeschrieben." to player
# Sound-Effekt für den Spieler
play sound "entity.player.levelup" with volume 0.5 and pitch 1.0 to player
# ==========================================
# KOORDINATEN- & BIOM-SKRIPT (KORRIGIERT)
# ==========================================
# --- WELTEN-CHECK ---
function isFarmWorld(p: player) :: boolean:
set {_w} to world of {_p}
if {_w} is "world" or "world_nether" or "world_the_end" or "Farmwelt":
return true
return false
# --- HUD ANZEIGE ---
every 10 ticks:
loop all players:
if isFarmWorld(loop-player) is true:
set {_x} to floor(x-coordinate of loop-player)
set {_y} to floor(y-coordinate of loop-player)
set {_z} to floor(z-coordinate of loop-player)
set {_biom} to biome at loop-player
send action bar "&fX: %{_x}% Y: %{_y}% Z: %{_z}% &8| &aBiom: &7%{_biom}%" to loop-player
# --- INTERAKTIONS-BEFEHL ---
command /coords:
description: Zeigt klickbare Koordinaten-Optionen
aliases: koordinaten, positionsinfo
trigger:
if isFarmWorld(player) is true:
set {_x} to floor(x-coordinate of player)
set {_y} to floor(y-coordinate of player)
set {_z} to floor(z-coordinate of player)
set {_w} to world of player
send "" to player
send "&8&m &r &6&lStandort-Optionen &8&m " to player
send "&7Welt: &f%{_w}% &8| &7Biom: &f%biome at player%" to player
send "" to player
# Klick-Optionen
send "&b[➜ Im Chat teilen]" to player
send "" to player
send "&e[🏠 Home setzen]" to player
send "" to pla