Great work, this looks very promising!
If there are no serious issues with the plugin, the final release could serve as a replacement for the old Lua AP script, so we can eventually get rid of the Lua API ![]()
Posts by red51
A new update is now available, introducing "Points of interest" and many more changes!
Latest hotfix: 0.9 (2025-11-05)
Latest hotfix: 0.9 (2025-11-05)
-
-
Ich habe das mal in ein separates Thema verschoben, da es nicht direkt mit dem letzten Update im Zusammenhang steht

Gibt es ggf. eine Möglichkeit, das Phänomen zu reproduzieren? Werden evtl. irgendwelche API Events oder Funktionen, die im Zusammenhang mit Schildern stehen, verwendet?
-
Indeed... the removal tool (F7) related events will be added with the next update

-
Since this topic has been resurrected, I want to give some updated information about custom sounds (in order to avoid any misunderstandings): custom sounds are now supported by the API, a SoundInformation object can be used to link a sound file. Most common sound formats are supported. The playSound() methods of the player object are used to play custom sounds.
The methods to play a game sound have been renamed to playGameSound()

Here is an overview of all sound names (as of version 0.9.3). However, some of these sounds cannot be played from the API.
Ambience:
beach
desert
dungeons
dungeons_clues
fir
grass
ocean
rain
rain_close
rain_fabric
rain_materials
rain_water
rain_water_2d
snow
snowfall
swamp
thunder
tree_leaf
tree_pine
underground
underwater
water
water_2d
water_lake
water_ocean
water_river
water_stream
waterbirds
wavesPlayer:
player_break_splint_wood
player_breakbones
player_breathing
player_changeclothes
player_death
player_death_lava
player_drink_badwater
player_drink_water
player_drown
player_eat_apple
player_eat_bacon_burned
player_eat_bacon_cooked
player_eat_bacon_raw
player_eat_carrot
player_eat_lettuce
player_eat_meat
player_eat_misc
player_eat_ribs_burned
player_eat_ribs_cooked
player_eat_ribs_raw
player_eat_steak_burned
player_eat_steak_cooked
player_eat_steak_raw
player_eat_tomato
player_eat_watermelon
player_footstep_asphalt
player_footstep_bones
player_footstep_concrete
player_footstep_concrete_stair
player_footstep_crouched
player_footstep_default
player_footstep_dirt
player_footstep_drawbridge
player_footstep_glass
player_footstep_grass
player_footstep_grass_dry
player_footstep_grass_frozen
player_footstep_gravel
player_footstep_ladder_metal
player_footstep_ladder_wood
player_footstep_metal
player_footstep_mud
player_footstep_mud_swamp
player_footstep_rock
player_footstep_sand
player_footstep_sand_wet
player_footstep_snow
player_footstep_snowgrass
player_footstep_sprint
player_footstep_walk
player_footstep_water
player_footstep_wood
player_gasp
player_heartbeat
player_hunger
player_inpain
player_jump
player_land
player_pain_big
player_pain_small
player_swimming
player_thirst
player_tinnitus
player_water_jump
player_water_surfacingAnimals:
bear_attack
bear_death
bear_footstep
bear_hurt
bear_idle
birds_flapping
boar_attack
boar_death
boar_footstep
boar_hurt
boar_idle
camel_death
camel_footstep
camel_footstep_tamed_gallop
camel_footstep_tamed_trot
camel_footstep_tamed_walk
camel_hurt
camel_idle
camel_jump
camel_land
camel_mount
camel_panniers
chicken_attack
chicken_death
chicken_footstep
chicken_hurt
chicken_idle
cow_death
cow_footstep
cow_hurt
cow_idle
deer_death
deer_footstep
deer_hurt
deer_idle
dolphin
donkey_death
donkey_footstep
donkey_footstep_tamed_gallop
donkey_footstep_tamed_trot
donkey_footstep_tamed_walk
donkey_hurt
donkey_idle
donkey_jump
donkey_land
donkey_mount
donkey_panniers
elephant_death
elephant_footstep
elephant_hurt
elephant_idle
fox_death
fox_footstep
fox_hurt
fox_idle
gazelle_death
gazelle_footstep
gazelle_hurt
gazelle_idle
giraffe_death
giraffe_footstep
giraffe_hurt
giraffe_idle
goat_attack
goat_death
goat_footstep
goat_hurt
goat_idle
hippo_death
hippo_footstep
hippo_hurt
hippo_idle
horse_death
horse_footstep
horse_footstep_tamed_gallop
horse_footstep_tamed_trot
horse_footstep_tamed_walk
horse_hurt
horse_idle
horse_jump
horse_land
horse_mount
horse_panniers
horse_saddle
horse_snort
jaguar_attack
jaguar_death
jaguar_footstep
jaguar_hurt
jaguar_idle
lion_attack
lion_death
lion_footstep
lion_hurt
lion_idle
minipig_death
minipig_footstep
minipig_hurt
minipig_idle
moose_attack
moose_death
moose_footstep
moose_hurt
moose_idle
penguin_death
penguin_hurt
penguin_idle
pig_death
pig_footstep
pig_hurt
pig_idle
polarbear_attack
polarbear_death
polarbear_footstep
polarbear_hurt
polarbear_idle
rabbit_death
rabbit_footstep
rabbit_hurt
rabbit_idle
rhino_death
rhino_footstep
rhino_hurt
rhino_idle
sheep_death
sheep_footstep
sheep_hurt
sheep_idle
tiger_attack
tiger_death
tiger_footstep
tiger_hurt
tiger_idle
zebra_death
zebra_footstep
zebra_hurt
zebra_idleCritters:
minispider_attack
minispider_death
minispider_footstep
minispider_hurt
minispider_idle
rat_death
rat_footstep
rat_hurt
rat_idle
snake_attack
snake_death
snake_hurt
snake_idle
spider_attack
spider_death
spider_footstep
spider_hurt
spider_idleHumans:
npc_footstep
npc_idle_female
npc_idle_maleMonster:
witch_laughingPiano:
piano_1
piano_10
piano_11
piano_12
piano_13
piano_14
piano_15
piano_16
piano_17
piano_18
piano_19
piano_2
piano_20
piano_21
piano_22
piano_23
piano_24
piano_25
piano_26
piano_27
piano_28
piano_29
piano_3
piano_30
piano_31
piano_32
piano_33
piano_34
piano_35
piano_36
piano_37
piano_38
piano_39
piano_4
piano_40
piano_41
piano_42
piano_43
piano_44
piano_45
piano_46
piano_47
piano_48
piano_49
piano_5
piano_50
piano_51
piano_52
piano_53
piano_54
piano_55
piano_56
piano_57
piano_58
piano_59
piano_6
piano_60
piano_61
piano_7
piano_8
piano_9BuildingPlacement:
crafting
place_block
place_blueprint
place_board_wood
place_bone
place_bonethrone
place_bonetorch
place_campfire
place_fruit_huge
place_fruit_large
place_fruit_medium
place_fruit_small
place_fruit_tiny
place_glass_huge
place_glass_large
place_glass_medium
place_glass_small
place_glass_tiny
place_image
place_metal_huge
place_metal_large
place_metal_medium
place_metal_small
place_metal_tiny
place_misc_huge
place_misc_large
place_misc_medium
place_misc_small
place_misc_tiny
place_multiple_count
place_multiple_last
place_paper_huge
place_paper_large
place_paper_medium
place_paper_small
place_paper_tiny
place_piano
place_plant_huge
place_plant_large
place_plant_medium
place_plant_small
place_plant_tiny
place_plastic_huge
place_plastic_large
place_plastic_medium
place_plastic_small
place_plastic_tiny
place_porcelain_huge
place_porcelain_large
place_porcelain_medium
place_porcelain_small
place_porcelain_tiny
place_skull
place_stone_huge
place_stone_large
place_stone_medium
place_stone_small
place_stone_tiny
place_tent
place_torch
place_wood_huge
place_wood_large
place_wood_medium
place_wood_small
place_wood_tiny
warning_proximityDestructionGathering:
break_bonethrone
break_bonetorch
break_spiderweb
break_trap_stone
break_trap_stone_trigger
cactus_chop
cactus_fall
chainsaw
chainsaw_falsestart
chainsaw_idle
chainsaw_idle_loop
chainsaw_quickrev
chainsaw_starter
cutting_grass_high
explosion_dynamite
explosive_dynamite_fuse
gut_animal
hit_air
hit_animal
hit_bone
hit_bonethrone
hit_bonetorch
hit_dirt
hit_fabric_loose
hit_fabric_solid
hit_fruit
hit_glass
hit_grass
hit_gravel
hit_hide
hit_metal
hit_metal_flat_large
hit_metal_flat_small
hit_metal_grate
hit_metal_hollow_large
hit_metal_hollow_small
hit_metal_object_large
hit_metal_object_small
hit_metal_rod
hit_metal_solid_large
hit_metal_solid_small
hit_mud
hit_ore_coal
hit_ore_metal
hit_other_player
hit_paper
hit_piano
hit_plant
hit_pumpkin
hit_radiator
hit_sand
hit_skull
hit_spiderweb
hit_stone
hit_tool
hit_water
hit_wood
hit_wood_axe
hit_wood_braided
hit_wood_flat_large
hit_wood_flat_small
hit_wood_hollow_large
hit_wood_hollow_small
hit_wood_object_large
hit_wood_object_small
hit_wood_solid_large
hit_wood_solid_small
hit_wood_tree
item_break_fruit_huge
item_break_fruit_large
item_break_fruit_medium
item_break_fruit_small
item_break_fruit_tiny
item_break_glass_huge
item_break_glass_large
item_break_glass_medium
item_break_glass_small
item_break_glass_tiny
item_break_metal_huge
item_break_metal_large
item_break_metal_medium
item_break_metal_small
item_break_metal_tiny
item_break_misc_huge
item_break_misc_large
item_break_misc_medium
item_break_misc_small
item_break_misc_tiny
item_break_paper_huge
item_break_paper_large
item_break_paper_medium
item_break_paper_small
item_break_paper_tiny
item_break_plant_huge
item_break_plant_large
item_break_plant_medium
item_break_plant_small
item_break_plant_tiny
item_break_plastic_huge
item_break_plastic_large
item_break_plastic_medium
item_break_plastic_small
item_break_plastic_tiny
item_break_porcelain_huge
item_break_porcelain_large
item_break_porcelain_medium
item_break_porcelain_small
item_break_porcelain_tiny
item_break_stone_huge
item_break_stone_large
item_break_stone_medium
item_break_stone_small
item_break_stone_tiny
item_break_wood_huge
item_break_wood_large
item_break_wood_medium
item_break_wood_small
item_break_wood_tiny
item_change
item_collect
jackhammer
jackhammer_loop
jackhammer_materials
jackhammer_switch
object_break_fruit_huge
object_break_fruit_large
object_break_fruit_medium
object_break_fruit_small
object_break_fruit_tiny
object_break_glass_huge
object_break_glass_large
object_break_glass_medium
object_break_glass_small
object_break_glass_tiny
object_break_metal_huge
object_break_metal_large
object_break_metal_medium
object_break_metal_small
object_break_metal_tiny
object_break_misc_huge
object_break_misc_large
object_break_misc_medium
object_break_misc_small
object_break_misc_tiny
object_break_paper_huge
object_break_paper_large
object_break_paper_medium
object_break_paper_small
object_break_paper_tiny
object_break_plant_huge
object_break_plant_large
object_break_plant_medium
object_break_plant_small
object_break_plant_tiny
object_break_plastic_huge
object_break_plastic_large
object_break_plastic_medium
object_break_plastic_small
object_break_plastic_tiny
object_break_porcelain_huge
object_break_porcelain_large
object_break_porcelain_medium
object_break_porcelain_small
object_break_porcelain_tiny
object_break_stone_huge
object_break_stone_large
object_break_stone_medium
object_break_stone_small
object_break_stone_tiny
object_break_wood_huge
object_break_wood_large
object_break_wood_medium
object_break_wood_small
object_break_wood_tiny
pour_water
quarry_dirt
quarry_rock
remove_wood_flat
take_plant
take_water
tree_chop
tree_fall
tree_fall_smallItemsObjects:
axe_toss_grass
axe_toss_stone
bowarrow_place
bowarrow_pull
bowarrow_shoot
bucket_metal
bucket_metal_empty
bucket_metal_fill
bucket_wood
bucket_wood_empty
bucket_wood_fill
campfire_burning
chest_metal_close
chest_metal_open
chest_stone_close
chest_stone_open
chest_wood_close
chest_wood_open
cook_meat
crossbow_pull
crossbow_shoot
detector_beep
door_metal_close
door_metal_massive_close
door_metal_massive_open
door_metal_open
door_metal_sliding_close
door_metal_sliding_open
door_saloon_close
door_saloon_hinge
door_saloon_open
door_saloon_swing
door_wood_modern_close
door_wood_modern_open
door_wood_old_close
door_wood_old_nolock_close
door_wood_old_nolock_open
door_wood_old_open
draw_bow
draw_firearm
draw_sword
drawbridge_close
drawbridge_open
drawbridge_stop
fire
fire_dive
fire_extinguished
fireworks_explosion
fireworks_start
fishing
fishing_reel
fishing_throwline
flaregun_shoot
furnace_burning
furnace_door_close
furnace_door_open
furnace_load_coal
furnace_load_wood
gramophone_change
gramophone_crank
grinder
grinder_crush_stone
ironmaiden_close
ironmaiden_open
item_nvg_off
item_nvg_on
item_switch
k98_load
k98_repeat
k98_shoot
light_electric
light_flare
light_torch
manhole_close
manhole_metal_close
manhole_metal_open
manhole_open
musket_load
musket_pull
musket_shoot
paperpress_down
paperpress_down_rag
paperpress_up
paperpress_up_rag
pickaxe_toss_grass
pickaxe_toss_stone
player_bandage_tear
player_bandage_wrap
scope_open
spiketrap
spinningwheel
tanningrack_putuphide
tent_placed
tent_removed
throw_into_water
throw_water_big_heavy
throw_water_light
throw_water_medium
throw_water_mediumlight
throw_water_small_heavy
throw_water_verylight
toilet_flush
water_splash
watermelon_cut
whoosh_arrow
whoosh_firearmInteractions:
gui_click
gui_journal_changepage
gui_journal_hide
gui_journal_show
gui_map_hide
gui_map_show
message
trade_success -
Theoretisch wäre sowas eigentlich sogar weitestgehend über die API möglich, allerdings müsste sich das Plugin selber um diese Routinen kümmern (also Baum fällen, Aufsammeln und Zusammentragen der Items etc)....
-
Also es ist tatsächlich mehr oder weniger gewollt, dass Kleidungsstücke sowie Equipment Items (Kompass, Uhr etc) nicht direkt in die Quickslots gelegt werden können... ich denke das werden wir aber ändern. Da ich noch nicht abschätzen kann, ob die Änderung ggf. andere Probleme mit sich zieht (bei der Kleidung vmtl. weniger, eher aber bei Equipment Items), kann ich leider noch nicht sagen, ob das bereits im nächsten Update drin sein wird...
PS: Bei Item Attributen unbedingt immer auf "null" prüfen, da nur spezielle Items diese Attribute haben und selbst Items, die welche haben sollten, diese nicht zwangsläufig haben

-
Ich denke das kann nicht schaden, wird im nächsten Update dabei sein

-
Hmm... when was the world created exactly? The "world is too old" message (is this the message you get?) should only show up for worlds which were created in late 2015
Unfortunately there is no workaround for this, since all worlds prior to the biomes update (December 2015) are no longer compatible... this also happens btw if a recent world was loaded with a very old version of the game (< 0.6), basically this breaks the world.However, it's always recommendable to load a world at least every 6 months, otherwise there is a chance that the world conversion goes wrong...

-
Unfortunately MySQL 8 is not yet supported. Probably this will be available after the next update(s)

-
When a timer finishes and executes it action does the program logic continue from the last bracket?
If you pause a timer while the task is still active, the current task will still be completed, but no more tasks will be executed until you restart the timer. E.g. if your task runnable looks like this:
...the output will be:
Even if you kill the timer, the currently active task will still be completed
Or did you mean something else? -
Wird dabei sein
Grundsätzlich wird das Event mit dem nächsten Update nahezu alle Funktionen der "Sign" Klasse abdecken -
There will be a small change in the next update which sets the "info ID" of the npc (see npc.getInfoID()) to the temporary chest ID of the corpse

-
It looks like the collision of the scaffoldings is not generated if there isn't a block, construction element or terrain in the same chunk
This should be fixed with the next update 
-
Hehe, I'm ok, but thanks for caring

But usually we only post previews for bigger updates^^ -
Das ist wahr
Wenn ich mir den dafür verantwortlichen Code angucke sehe ich, dass das vor sehr sehr langer Zeit mal anders war... ich wüsste zu gerne, warum ich das damals geändert habe
Ich werde es fürs nächste Update ändern, wird schon nix schlimmes passieren
-
Ggf. macht es Sinn, das dann serverseitig einstellbar zu machen (über die server.properties, oder ggf. über die Permissiosn). Auf friedlichen Servern bei denen das Zusammenspielen im Vordergrund steht mag es wirklich manchmal vorteilhaft sein, den Namen durch Wände zu sehen, doch wenns um PVP und dergleichen geht ist es tatsächlich eher kontraproduktiv, dass man den Namen überall sehen kann
Vll könnte das im nächsten Update schon reinkommen^^Evtl. könnte auch die Plugin API eine Einstellmöglichkeit dafür erhalten... wobei wenn das über die Permissions gelöst wird, könnte die API auch einfach diesen Permissionwert für jeden Spieler separat einstellen.
-
Wenn die Webseite die Ports als "open" erkennt dann sind sie normalerweise auch tatsächlich offen
Die Einrichtung in der Fritzbox sieht auch gut aus, und mit 1&1 sollte es i.d.R. auch keinerlei Probleme geben (schwieriger ist es eher bei Kabelanbietern, da man dort meist keine richtige IPv4 Adresse mehr bekommt, sondern das über DualStack-Lite gelöst ist, was Portfreigaben generell unmöglich macht - aber das ist ein anderes Thema)^^Läuft der Server denn jetzt aktuell (also zu diesem Zeitpunkt)? Wenn der Server läuft, kannst du denn über deine IP (also die öffentliche IP) verbinden (im Multiplayermenü -> "Zu IP verbinden")?
Evtl. kannst du, wenn der Server läuft, einmal deine IP + :4254 in die Adressleiste deines Browsers eingeben (also zB 79.12.42.13:4254). Erhälst du dann Daten zurück (je nach Browser entweder schön formatierte Daten über den Server [zB Spielerzahl], oder einfach eine Textwand)?Generell musst du aber auch bedenken, dass es in Extremfällen ein paar Minuten dauern kann, bis der Server in der Liste auftaucht.
-
gibt es eine Möglichjeit an diesen wert heran zu kommen, lesen reicht völlig.
Momentan leider noch nicht, aber mit dem nächsten Update wird eine player.getOption(String setting, Callback<String> callback); Funktion hinzukommen
Wie @Miwarre schon vermutete, muss dafür ein Callback verwendet werden, da der Server diese Daten erst vom Client abfragen muss. Eine Abfrage könnte dann zB so aussehen:Nebenbei ist mir aufgefallen das im Fokus von GuiTextField das disableClientsideKeys nicht mehr Funktioniert
Das stimmt, das wird im nächsten Update behoben!

Und ich habe das gefühl unregisterKeys klappt nicht ganz oder ich habe hier (private final int[])useKeys = this.player.getRegisteredKeys(); was Falsch gemacht?
Auch das ist leider richtig... zwar müsste getRegisteredKeys() die korrekten Werte zurückgeben, clientseitig werden die Keys aber nicht richtig aus dem Mapping entfernt... auch das wird im nächsten Update behoben

-
Ich glaube es wäre generell schöner, wenn Spielernamen nicht mehr durch Wände hindurch sichtbar wären... oder sehe ich das falsch?

-
Was würde passieren, wenn ich mit der API 30x Stein entnehmen würde? Nimmt er zuerst den 1. Und den Rest vom 2. Oder nur vom 2.?
Die bisherigen Methoden greifen ja nur auf einen bestimmten Slot zu, d.h. wenn hier der Slot mit den 20 Steinen angegeben ist, würden insgesamt nur diese 20 Steine entfernt werden. Bei der kommenden Methoden hingegen würden aus dem ersten Slot 20 Steine entfernt werden, und aus dem zweiten Slot 10 Steine.
Oder wird bei der TypeID die Variation nicht beachtet?
Sorry für die Unklarheit, natürlich wird die Funktion sowohl TypeID als auch Variation benötigen

Das Item dem Spieler weg zu Nehmen kann ich auch so überbrücken, dass er das Gesuchte Item in der Hand halten muss.
Das ist durchaus sinnvoll und in den meisten Fällen auch vom Spiel so gelöst^^