Support skript-packet 2.0.1

This commit is contained in:
Govindas 2021-12-11 17:20:59 +02:00
parent 765579bbec
commit 17597352b0
1 changed files with 111 additions and 102 deletions

View File

@ -1,102 +1,111 @@
#made by Govindas @ limework.net #made by Govindas @ limework.net
import: import:
net.minecraft.server.v1_16_R3.IScoreboardCriteria$EnumScoreboardHealthDisplay net.minecraft.server.v1_16_R3.IScoreboardCriteria$EnumScoreboardHealthDisplay
net.minecraft.server.v1_16_R3.ScoreboardServer$Action on script load:
on script load: #create scoreboard objective packet
#remove scoreboard objective packet
set {-scoreboard_objective_create_packet} to new play_server_scoreboard_objective packet
set {-scoreboard_objective_remove_packet} to new play_server_scoreboard_objective packet #1.16
set field 3 of {-scoreboard_objective_create_packet} to 0 #0 means create
set field 3 of {-scoreboard_objective_remove_packet} to 1 #1 means remove set field 2 of {-scoreboard_objective_create_packet} to EnumScoreboardHealthDisplay.HEARTS
#1.12
#create scoreboard objective packet #set int field 0 of {-scoreboard_objective_create_packet} to 0 #0 means create
#set {-scoreboard_objective_create_packet}.getHandle().c to EnumScoreboardHealthDisplay.INTEGER
set {-scoreboard_objective_create_packet} to new play_server_scoreboard_objective packet
#update scoreboard objective packet
set field 3 of {-scoreboard_objective_create_packet} to 0 #0 means create
set field 2 of {-scoreboard_objective_create_packet} to EnumScoreboardHealthDisplay.HEARTS set {-scoreboard_objective_update_packet} to new play_server_scoreboard_objective packet
set field 3 of {-scoreboard_objective_update_packet} to 2 #2 means update
#update scoreboard objective packet
#set objective display slot
set {-scoreboard_objective_update_packet} to new play_server_scoreboard_objective packet #2 = below name
set field 3 of {-scoreboard_objective_update_packet} to 2 #2 means update #0 = sidebar
#set objective display slot set {-belowname_display_packet} to new play_server_scoreboard_display_objective packet
#2 = below name set field 0 of {-belowname_display_packet} to 2
#0 = sidebar
effect set below[ ]name [display] of %player/string% for %player% to %number% named %string%:
set {-belowname_display_packet} to new play_server_scoreboard_display_objective packet trigger:
set field 0 of {-belowname_display_packet} to 2 #register scoreboard objective
if {-hpbelowpacket::%expression 2%} is not set:
#set the number displayed set {_packet} to {-scoreboard_objective_create_packet}
set {-scoreboard_score_packet} to new play_server_scoreboard_score packet #random scoreboard name to support bungeecord
effect set below[ ]name of %player/string% for %player% to %number% named %string%:
trigger: set {_uuid} to first 16 characters of random uuid
#register scoreboard objective
if {-hpbelowpacket::%expression 2%} is not set: set field 0 of {_packet} to {_uuid}
set {_packet} to {-scoreboard_objective_create_packet} #1.16
#set field 1 of {_packet} to nms textcomponent from text (expression 4)
#random scoreboard name to support bungeecord set field 1 of {_packet} to expression 4
#1.12
#set string field 1 of {_packet} to expression 4 #text that is displayed below name
set {_uuid} to first 16 characters of random uuid
send packet {_packet} to expression 2
set field 0 of {_packet} to {_uuid} set {-hpbelowpacket::%expression 2%} to expression 4
set field 1 of {_packet} to nms textcomponent from text (expression 4) set {-hpbelowpacketid::%expression 2%} to {_uuid}
send packet {_packet} to expression 2
set {-hpbelowpacket::%expression 2%} to expression 4 #below name display packet, MUST be sent only once
set {_packet} to {-belowname_display_packet}
set {-hpbelowpacketid::%expression 2%} to {_uuid} set field 1 of {_packet} to {-hpbelowpacketid::%expression 2%}
send packet {_packet} to expression 2
#below name display packet, MUST be sent only once #update the name if objective already present
set {_packet} to {-belowname_display_packet}
set field 1 of {_packet} to {-hpbelowpacketid::%expression 2%} else if {-hpbelowpacket::%expression 2%} is not expression 4:
send packet {_packet} to expression 2
set {_packet} to new play_server_scoreboard_objective packet
#update the name if objective already present set field 3 of {_packet} to 2
set field 0 of {_packet} to {-hpbelowpacketid::%expression 2%}
else if {-hpbelowpacket::%expression 2%} is not expression 4: set field 2 of {_packet} to EnumScoreboardHealthDisplay.HEARTS
#1.16
set {_packet} to {-scoreboard_objective_update_packet} #set field 1 of {_packet} to nms textcomponent from text (expression 4)
set field 0 of {_packet} to {-hpbelowpacketid::%expression 2%} set field 1 of {_packet} to expression 4
#1.16 #1.12
set field 1 of {_packet} to nms textcomponent from text (expression 4) #set string field 1 of {_packet} to expression 4 #new text displayed below name
send packet {_packet} to expression 2 send packet {_packet} to expression 2
set {-hpbelowpacket::%expression 2%} to expression 4 set {-hpbelowpacket::%expression 2%} to expression 4
#set the number displayed #set the number displayed
set {_packet} to {-scoreboard_score_packet} set {_packet} to new play_server_scoreboard_score packet
set field 2 of {_packet} to expression 3 #number set field 2 of {_packet} to expression 3 #number
set field 0 of {_packet} to "%expression 1%" #player name set field 0 of {_packet} to "%expression 1%" #player name
set field 1 of {_packet} to {-hpbelowpacketid::%expression 2%} set field 1 of {_packet} to {-hpbelowpacketid::%expression 2%}
send packet {_packet} to expression 2 set field 3 of {_packet} to "CHANGE"
#TODO FIX THIS KICKING PLAYERS
effect (remove|reset|delete|clear) below[ ]name (for|of) %player%: send packet {_packet} to expression 2
trigger:
#removed this condition... as it was sometimes preventing legitimate reset, maybe sometimes it just needs to do it twice?) effect (wipe|remove|reset|delete|clear) below[ ]name [display] (for|of) %player%:
#{-hpbelowpacketid::%expression 1%} is set: trigger:
#needed to re-create the display, to reset it easier #removed this condition... as it was sometimes preventing legitimate reset, maybe sometimes it just needs to do it twice?)
#somehow without re-setting it before removing, it bugs out and doesn't let to remove it anymore without relog sometimes #{-hpbelowpacketid::%expression 1%} is set:
set {_id} to "%{-hpbelowpacketid::%expression 1%}%" #needed to re-create the display, to reset it easier
wait 2 ticks #somehow without re-setting it before removing, it bugs out and doesn't let to remove it anymore without relog sometimes
{_id} is "%{-hpbelowpacketid::%expression 1%}%" set {_id} to "%{-hpbelowpacketid::%expression 1%}%"
set belowname of expression 1 for expression 1 to 0 named "reset" wait 2 ticks
set {_packet} to {-scoreboard_objective_remove_packet} {_id} is "%{-hpbelowpacketid::%expression 1%}%"
set field 0 of {_packet} to {-hpbelowpacketid::%expression 1%} set {_packet} to new play_server_scoreboard_objective packet
send packet {_packet} to expression 1 set field 3 of {_packet} to 1 #1 means remove
#set field 2 of {_packet} to EnumScoreboardHealthDisplay.HEARTS
delete {-hpbelowpacketid::%expression 1%} and {-hpbelowpacket::%expression 1%} set field 0 of {_packet} to {-hpbelowpacketid::%expression 1%}
#TODO FIX THIS KICKING PLAYERS
on quit: send packet {_packet} to expression 1
remove belowname for player
on player world change: delete {-hpbelowpacketid::%expression 1%} and {-hpbelowpacket::%expression 1%}
{-hpbelowpacketid::%player%} is set: #on packet event play_server_scoreboard_objective:
remove belowname for player # player is "Govindas"
# send "play_server_scoreboard_objective" to ops
# loop integers from 0 to 5:
# field loop-number of event-packet is set
# send "field %loop-number%: %field loop-number of event-packet%" to ops
on quit:
remove belowname for player
on player world change:
{-hpbelowpacketid::%player%} is set:
remove belowname for player