How to comment properly

You need to comment your code. Under any circumstances, not commenting your code will cause more problems.

In this short tutorial, I will show the correct way of commenting code.


Commenting
[[ Show what it means ]]

Generally, lines on the code speak for themselves
example


function aPlusb(a: number, b: number) :: number:
return {_a}+{_b}


you don't need to comment about this since it is generally understandable by everyone

However, you need to code on these types of code
  • code that has complex data structures
  • code that uses compact code expressions
  • code that seems to have unintuitive logic flow
  • and generally, every code that might need some extra explanation

example code that needs comments

function ChatString_CutRight(t: text, l: integer) :: string:
set {_text::*} to ChatString_ColorToBlank({_t}) split at ""
set {_textl} to size of {_text::*}
delete {_text::%{_l}%}
set {_returntext} to ""
set {_pxl} to 0
loop {_text::*}:
set {_nextcharl} to ChatString_ReturnPixelLength(loop-value)
add {_nextcharl} to {_pxl}
if {_pxl} <= {_l}:
set {_returntext} to "%{_returntext}%%loop-value%"
else:
exit loop
set {_returntext} to substring of {_t} from 1 to length of {_returntext}
return {_returntext}


You could try to understand it but it's hard to read. Also, the names are arbitrary.

So, should you comment as much as you can? no
Here is a list of the comments you should not include

# comments that literally explain the code
if {_hang} > 3: # this code will execute if hang is greater than 3
# fix
if {_hang} > 3: # check if player's total hangs are over 3 times => game over


# comments that tell what the type of that line is
trigger: # this is a trigger
# fix
trigger:
# you should not comment on lines that are keywords and widely used.
# commenting "this is a trigger" doesn't help anything


# commenting useless information
message "activated" to player # this code is just to show that the code is properly working therefore if it is not sent, the code has a problem
# fix
message "activated" to player # debug message


# commenting after a long string
set {_base64} to "
TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz
IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg
dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu
dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo
ZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=
" # this is the text base64
#fix
# text base64 of paragraph
set {_base64} to "
TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz
IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg
dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu
dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo
ZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4="


# commenting vague meanings
set {_ytho} to "I--eiHiens" # F/Prt
# fix
set {_ytho} to "I--eiHiens" # format printing


# and lastly,
# excessive comments about your credits
function thisFunc():
# CREDITS: SomeUsername
# DO NOT DISTRIBUTE
# ----------------------------------------
# created by: SomeUsername
# ----------------------------------------
# best code ever

# might add more examples later. last update 2020/2/5



Code from skUnity Discord

command /sharigan [<text>]: # The Command
trigger: #what Triggers it?
if player has permission "sharigan.use": #if player has permission then keep going
if {permsharigan.%player%} is not set: #if the variable it not set, well then
set {permsharigan.%player%} to true #set it
set {oldhelmet::%player%} to helmet of player # Store old helmet
make player execute command "me Activated Sharigan" #just to show that its activated
message " &f&k------ &7&lSharigan Activated 300s! &f&k------" #again to show its activated
execute console command "effect give %player% minecraft:speed 1200 3" #give speed boost (just temp to see it work and it does)
#set item data of player's helmet to "minecraft:diamond_shovel:430" #Set the helmet to our custom model
set helmet of the player to a diamond helmet# test to see if it works
wait 300 seconds #hold your horses
if {permsharigan.%player%} is true: #if its still on then shut if off now
make player execute command "shariganoff" #execute order 66
stop #hammer time
stop #x2
if {permsharigan.%player%} is true: #deactivate
delete {permsharigan.%player%}
execute console command "effect give %player% minecraft:speed 1 4"
message " &f&k------ &7&lSharigan Deactivated &f&k------" #now its off
stop
else: message " &7>> &cYou have not awakened the Sharigan!" #no perms no useage



You can see that the comments do help a bit but it still can be better


command /sharigan [<text>]:
trigger:
if player has permission "sharigan.use":
#if true, activate sharigan
if {permsharigan.%player%} is not set:
# not set => activate
# true => deactivate
set {permsharigan.%player%} to true
set {oldhelmet::%player%} to helmet of player
# Store old helmet

make player execute command "me Activated Sharigan" # debug message

message " &f&k------ &7&lSharigan Activated 300s! &f&k------"

# give speed boost and change player's properties
execute console command "effect give %player% minecraft:speed 1200 3"
set item data of player's helmet to "minecraft:diamond_shovel:430
# helmet custom model

set helmet of the player to a diamond helmet
# debug

wait 300 seconds

if {permsharigan.%player%} is true:
# true => shut if off
make player execute command "shariganoff"
stop
stop
else if {permsharigan.%player%} is true:
# deactivate
delete {permsharigan.%player%}
# change variable to not set state for further activation

execute console command "effect give %player% minecraft:speed 1 4"

message " &f&k------ &7&lSharigan Deactivated &f&k------"
# off msg
stop
else:
message " &7>> &cYou have not awakened the Sharigan!"
#no perm message


Here is an example of a decent commented code

function ChatString_CutRight(t: text, l: integer) :: string:
# this function returns a text that cuts the text to the targeted pixel

# set the array of text
set {_text::*} to ChatString_ColorToBlank({_t}) split at ""
set {_textl} to size of {_text::*}
delete {_text::%{_l}%}

# the final return string
set {_returntext} to ""

# set the total pixel length to 0
set {_pxl} to 0

# loop every character and add it to the pixel count
loop {_text::*}:
set {_nextcharl} to ChatString_ReturnPixelLength(loop-value)

add {_nextcharl} to {_pxl}


if {_pxl} <= {_l}:
# if condition is true; means we can add a new character to the result string
set {_returntext} to "%{_returntext}%%loop-value%"
else:
# if it exceeds exit the loop and process the return text
exit loop

# because the return text has blank characters
set {_returntext} to substring of {_t} from 1 to length of {_returntext}

# return the final text
return {_returntext}





Update log
- 2020/2/5 created page