Jump to content

Staff Utilities - Status!


BanditEagle

Recommended Posts

I have made a new skript which I call "Staff Status".

The skript includes features such as:
- Reloading skript broadcast
- Join/leave for new joins, members, donators, and staff
- Staff chat
- Fake join and leave broadcasts for staff
- Hide join/leave broadcasts for staff [if true, you will automatically be vanished on join, if you have Essentials]
- Allowing setting specific broadcasts to false (including reloading skript, staff join/leave, donator join/leave, member join/leave, and first join)
 
I hope I did a good job and I hope you guys will like it!
 
Let me know if there are any bugs you find, or any features I should add!

If I have helped you out in your post or you liked what I posted, please upvote and react to my post! It helps me a lot!

Some Minehut Links:

Server Rules • Staff Applications • News & Updates • Reports • Appeals


Minehut: VIP (07/04/2021 --> Current)
Elestra/Versa Realms: Manager (12/04/2021 --> Current)

If you have any questions contact me!
My Discord: BanditEagle#2481
My Spigot Profile: https://www.spigotmc.org/members/banditeagle.935281/
My IGN: BanditEagle

Link to comment
Share on other sites

Update: The new link to the skript is here:

https://www.spigotmc.org/resources/staff-utilities.91861/

If you guys have any suggestions for me to add, or any bugs or optimization, etc, let me know!

I think I will be releasing a slightly optmizied version of it later today. Keep an eye out for it!

If I have helped you out in your post or you liked what I posted, please upvote and react to my post! It helps me a lot!

Some Minehut Links:

Server Rules • Staff Applications • News & Updates • Reports • Appeals


Minehut: VIP (07/04/2021 --> Current)
Elestra/Versa Realms: Manager (12/04/2021 --> Current)

If you have any questions contact me!
My Discord: BanditEagle#2481
My Spigot Profile: https://www.spigotmc.org/members/banditeagle.935281/
My IGN: BanditEagle

Link to comment
Share on other sites

Nice skript but I found some things you could change/improve

 

if {firstJoin::%uuid of player%} is true:
    stop
 else:

Why not just use like if {var} is not true or if it is false. Then There would be no need for an else.

 

else:
      {@memberstatus} is true
      set {_msg} to "&7[&2Join&7] &a%player% &2has joined the server!"
      BroadcastAll({_msg})
      stop

Another thing is that you put stop at the end of a lot of things where they are not needed. Its already the end of that part of the skript so the stop isn't needed. You do similar stuff in a lot of other places too. 

 

loop all players:
      send "%{_msg}%" to loop-player

If you just wanted to send it to all players, wouldn't just send " " to all players work. 

 

function StaffChat(msg: text):
  loop all players:
    send "&7[&2Staff Chat&7] &f%uncolored loop-player's displayname% &2| &f%{_msg}%" to loop-player where [input has permission "staff.chat"]

Why are you looping all players if you are using a filter? It should be send " " to players where [input has permission " "].

 

Discord - tarna256

In-game name - _Tarna_

Website - https://tarna.dev
Paste Site: https://paste.tarna.dev

---------------------------------------------------------

[VIP] - 7/27/2020

Community Support - 7/8/20 | 11/3/20

Helper  - 11/3/20 - 2/21/21

Moderator - 2/21/21 - 5/17/21

❤️ - 5/17/21 - now

Moderator - 12/20/22 - now

---------------------------------------------------------

image.png.70849a9b84e0347ce107b8e3eaee312c.pngimage.png.2111009afbd8bef10966ba9ede35a199.png

Link to comment
Share on other sites

Thank you @Tarnerd for the comments! It's helped a lot.

10 minutes ago, Tarnerd said:

Why not just use like if {var} is not true or if it is false. Then There would be no need for an else.

for this one, I'm going to keep it as is, but im going to do this:

on join:
  if {firstJoin::%uuid of player%} is true:
    delete {firstJoin::%uuid of player%}

  else:

This way, it will be a temporary variable and there will be less variables saved overall. However, with the rest of the stuff, I will definitely be implementing those! Thanks for the help!

If you have any suggestions on what I could add, please let me know!

If I have helped you out in your post or you liked what I posted, please upvote and react to my post! It helps me a lot!

Some Minehut Links:

Server Rules • Staff Applications • News & Updates • Reports • Appeals


Minehut: VIP (07/04/2021 --> Current)
Elestra/Versa Realms: Manager (12/04/2021 --> Current)

If you have any questions contact me!
My Discord: BanditEagle#2481
My Spigot Profile: https://www.spigotmc.org/members/banditeagle.935281/
My IGN: BanditEagle

Link to comment
Share on other sites

21 minutes ago, BanditEagle said:

Thank you @Tarnerd for the comments! It's helped a lot.

for this one, I'm going to keep it as is, but im going to do this:


on join:
  if {firstJoin::%uuid of player%} is true:
    delete {firstJoin::%uuid of player%}

  else:

This way, it will be a temporary variable and there will be less variables saved overall. However, with the rest of the stuff, I will definitely be implementing those! Thanks for the help!

If you have any suggestions on what I could add, please let me know!

Also just realized, you don't really need a variable to see if a player has joined before. Skript has a condition where you can do if player has played before. But if you wanted to give a way to easily reset that, then you could just keep that. Using if player has played before checks if the user has a playerdata file. 

Discord - tarna256

In-game name - _Tarna_

Website - https://tarna.dev
Paste Site: https://paste.tarna.dev

---------------------------------------------------------

[VIP] - 7/27/2020

Community Support - 7/8/20 | 11/3/20

Helper  - 11/3/20 - 2/21/21

Moderator - 2/21/21 - 5/17/21

❤️ - 5/17/21 - now

Moderator - 12/20/22 - now

---------------------------------------------------------

image.png.70849a9b84e0347ce107b8e3eaee312c.pngimage.png.2111009afbd8bef10966ba9ede35a199.png

Link to comment
Share on other sites

Interesting. So something like this?

#SECTION: BROADCAST IF NEW PLAYER
on first join:
  {@firstjoinstatus} is true
  BroadcastAll("&7[&aNew Join&7] &a%player% &2has joined the server!")

#SECTION: CHECKING PLAYER'S STATUS AND BROADCASTING FOR JOINS
on join:
  if player has played before:
    stop

@Tarnerd

If I have helped you out in your post or you liked what I posted, please upvote and react to my post! It helps me a lot!

Some Minehut Links:

Server Rules • Staff Applications • News & Updates • Reports • Appeals


Minehut: VIP (07/04/2021 --> Current)
Elestra/Versa Realms: Manager (12/04/2021 --> Current)

If you have any questions contact me!
My Discord: BanditEagle#2481
My Spigot Profile: https://www.spigotmc.org/members/banditeagle.935281/
My IGN: BanditEagle

Link to comment
Share on other sites

14 minutes ago, BanditEagle said:

Interesting. So something like this?


#SECTION: BROADCAST IF NEW PLAYER
on first join:
  {@firstjoinstatus} is true
  BroadcastAll("&7[&aNew Join&7] &a%player% &2has joined the server!")

#SECTION: CHECKING PLAYER'S STATUS AND BROADCASTING FOR JOINS
on join:
  if player has played before:
    stop

@Tarnerd

No just use a join even. no need for first join

on join:
	if player has played before:
		# stuff that happens if the player has joined before
	else:
		# this is first join stuff

You actually may need to use on connect instead of on join. Since on connect triggers before the player fully joins the server and on join triggers after the player is on the server. 

Discord - tarna256

In-game name - _Tarna_

Website - https://tarna.dev
Paste Site: https://paste.tarna.dev

---------------------------------------------------------

[VIP] - 7/27/2020

Community Support - 7/8/20 | 11/3/20

Helper  - 11/3/20 - 2/21/21

Moderator - 2/21/21 - 5/17/21

❤️ - 5/17/21 - now

Moderator - 12/20/22 - now

---------------------------------------------------------

image.png.70849a9b84e0347ce107b8e3eaee312c.pngimage.png.2111009afbd8bef10966ba9ede35a199.png

Link to comment
Share on other sites

UPDATED TO V1.1:

In this version, I made some optimization fixes, and I also realized that there was an issue with the staff chat, and quickly fixed that. Also, I made a trello for the ideas I have of adding to the skript, and it just makes it easier to keep track of everything! Here is the trello:

https://trello.com/b/vrAmgg8q/updating-the-skript

Here is the new link to the updated version of the skript. Hope you guys like it! (Remember, if you notice any issues with it, any optimizations I can do, or any ideas for me to add, please let me know! It helps me a ton!)

https://www.spigotmc.org/resources/staff-utilities.91861/updates

If I have helped you out in your post or you liked what I posted, please upvote and react to my post! It helps me a lot!

Some Minehut Links:

Server Rules • Staff Applications • News & Updates • Reports • Appeals


Minehut: VIP (07/04/2021 --> Current)
Elestra/Versa Realms: Manager (12/04/2021 --> Current)

If you have any questions contact me!
My Discord: BanditEagle#2481
My Spigot Profile: https://www.spigotmc.org/members/banditeagle.935281/
My IGN: BanditEagle

Link to comment
Share on other sites

what is trello

 

like.gif.653e1b24da93a6ca10eaf5b04e7f0242.gif

Likes are appreciated ❤️

 

Username: SuperOrca

Discord: Link to Profile

Rank: [VIP]

Joined Minehut: August 10, 2017

Joined Forums: June 10, 2019

 

Experienced in Python, Java (mainly spigot), Javascript (node.js, basics of react.js), and Web Development. DM on discord me if you want a custom discord bot for your server (i'm bored).

Link to comment
Share on other sites

4 minutes ago, SuperOrca said:

what is trello

Think of it as a whiteboard which you update to keep track of what you have done and what you plan on doing. Now put that in a website. That is basically what Trello is. If you click on the link, you should see what I mean.

If I have helped you out in your post or you liked what I posted, please upvote and react to my post! It helps me a lot!

Some Minehut Links:

Server Rules • Staff Applications • News & Updates • Reports • Appeals


Minehut: VIP (07/04/2021 --> Current)
Elestra/Versa Realms: Manager (12/04/2021 --> Current)

If you have any questions contact me!
My Discord: BanditEagle#2481
My Spigot Profile: https://www.spigotmc.org/members/banditeagle.935281/
My IGN: BanditEagle

Link to comment
Share on other sites

37 minutes ago, BanditEagle said:

UPDATED TO V1.1:

In this version, I made some optimization fixes, and I also realized that there was an issue with the staff chat, and quickly fixed that. Also, I made a trello for the ideas I have of adding to the skript, and it just makes it easier to keep track of everything! Here is the trello:

https://trello.com/b/vrAmgg8q/updating-the-skript

Here is the new link to the updated version of the skript. Hope you guys like it! (Remember, if you notice any issues with it, any optimizations I can do, or any ideas for me to add, please let me know! It helps me a ton!)

https://www.spigotmc.org/resources/staff-utilities.91861/updates

Maybe make this into a github repo so that we can suggest changes without using the minehut forums. 😉

Also have one variable per player for some things isn't really the best, so I made some changes below, I have commented out the old code so you know what I'm doing.

For those who are aware of my 'normal' methods of first joins and other parts, I didn't want to completely remake the skript, just try to help people understand that there are other ways.

#————————————————————————————————DO NOT REMOVE THIS SECTION————————————————————————————————#
# MADE BY: BANDITEAGLE
# DISCORD: BanditEagle#2481
# MINEHUT FORUMS PROFILE: https://forums.minehut.com/profile/276950-banditeagle/
# SPIGOT PROFILE: https://www.spigotmc.org/members/banditeagle.935281/
# You are allowed to share this skript, but please mention that this is made by me.
# Staff Usages Skript v1.0
#————————————————————————————————DO NOT REMOVE THIS SECTION————————————————————————————————#

#————————————————————————————————OPTIONS————————————————————————————————#

options:
  #SECTION: RELOAD SKRIPTS
  reloadAlert: true #set to false if you don't want to advertise reloads
  reloadedMsg: "&bThe skript &2<skript>.sk &bhas been reloaded in &a<reloadtime>!" #Do not change <skript> or <reloadtime> as those are needed. Rest can be changed to your liking.
  reloadingMsg: "&bThe skript &2<skript>.sk &bis being reloaded. &c&lThis may cause lag, please be patient." #Do not change <skript> as it's needed. Rest can be changed to your liking.

  #SECTION: BROADCASTING JOIN/LEAVE STATUS
  staffstatus: true #set to false if you don't want to broadcast staff join/leaves
  donatorstatus: true #set to false if you don't want to broadcast donator join/leaves
  memberstatus: true #set to false if you don't want to broadcast member join/leaves
  firstjoinstatus: true #set to false if you don't want to broadcast new joins

#————————————————————————————————OPTIONS————————————————————————————————#

#————————————————————————————————ON 'X'————————————————————————————————#

#SECTION: RELOADING SKRIPT
on load:
  if {@reloadAlert} is true:
    set {loading} to true
    set {_msg} to {@reloadedMsg}
    if {reloadTime} is not set:
      set {reloadTime} to now
    ReloadSkript({_msg})
    delete {reloadTime}

#SECTION: RELOADING SKRIPT
on unload:
  if {@reloadAlert} is true:
    set {reloadTime} to now
    set {loading} to false
    set {_msg} to {@reloadingMsg}
    ReloadSkript({_msg})

#SECTION: BROADCAST IF NEW PLAYER
on first join:
  #set {firstJoin::%uuid of player%} to true
  add player's uuid to {firstjoined::*}
  {@firstjoinstatus} is true
  set {_msg} to "&7[&aNew Join&7] &a%player% &2has joined the server!"
  BroadcastAll({_msg})

#SECTION: CHECKING PLAYER'S STATUS AND BROADCASTING FOR JOINS
on join:
  #if {firstJoin::%uuid of player%} is true:
  if {firstjoined::*} contains player's uuid:
    #delete {firstJoin::%uuid of player%}
    remove player's uuid from {firstjoined::*}
    stop

  else:
    if player has permission "staff.status":
      #SECTION: BROADCAST IF STAFF IS NOT HIDDEN
      {@staffstatus} is true
      #if {hideStatus::%uuid of player%} is false:
      if {hidestatus::*} doesn't contain player's uuid:
        set {_msg} to "&7[&2&l&nStaff Join&7] &a%player% &2has joined the server!"
        BroadcastAll({_msg})
      #else if {hideStatus::%uuid of player%} is true:
      else if {hidestream::*} contain player's uuid:
        wait 1 tick
        make player execute command "/vanish"

    #SECTION: BROADCAST IF DONATOR
    else if player has permission "donator.status":
      {@donatorstatus} is true
      set {_msg} to "&7[&2&lDonator Join&7] &a%player% &2has joined the server!"
      BroadcastAll({_msg})

    #SECTION: BROADCAST IF MEMBER
    else:
      {@memberstatus} is true
      set {_msg} to "&7[&2Join&7] &a%player% &2has joined the server!"
      BroadcastAll({_msg})
    stop

#SECTION: CHECKING PLAYER'S STATUS AND BROADCASTING FOR LEAVES
on quit:
  #SECTION: BROADCAST IF STAFF IS NOT HIDDEN
  if player has permission "staff.status":
    {@staffstatus} is true
    #if {hideStatus::%uuid of player%} is false:
    if {hidestatus::*} doesn't contain player's uuid:
      set {_msg} to "&7[&2&l&nStaff Leave&7] &a%player% &2has left the server!"
      BroadcastAll({_msg})

  #SECTION: BROADCAST IF DONATOR
  else if player has permission "donator.status":
    {@donatorstatus} is true
    set {_msg} to "&7[&2&lDonator Leave&7] &a%player% &2has left the server!"
    BroadcastAll({_msg})

  #SECTION: BROADCAST IF MEMBER
  else:
    {@memberstatus} is true
    set {_msg} to "&7[&2Leave&7] &a%player% &2has left the server!"
    BroadcastAll({_msg})
  #stop

#SECTION: STAFFCHAT [CHAT]
on chat:
  if player has permission "staff.chat":
    set {_m} to uncolored message
    if {_m} starts with "##":
      replace first "##" in {_msg} with ""
      StaffChat({_msg})

#————————————————————————————————ON 'X'————————————————————————————————#

#————————————————————————————————FUNCTIONS————————————————————————————————#

#SECTION: RELOADING SKRIPT
function ReloadSkript(msg: text):
  if {loading} is true:
    replace "<skript>" in {_msg} with script
    replace "<reloadtime>" in {_msg} with "%difference between {reloadTime} and now%"
    send "%{_msg}%" to all players

  else:
    replace "<skript>" in {_msg} with script
    send "%{_msg}%" to all players

#SECTION: BROADCASTING
function BroadcastAll(m: text):
  set {_prefix} to {@prefix}
  set {_msg} to "%{_prefix}% %{_msg}%"
  send "%{_msg}%" to all players

#SECTION: STAFFCHAT [FUNCTION]
function StaffChat(msg: text):
  send "&7[&2Staff Chat&7] &f%uncolored loop-player's displayname% &2| &f%{_msg}%" to players where [input has permission "staff.chat"]

#————————————————————————————————FUNCTIONS————————————————————————————————#

#————————————————————————————————COMMANDS————————————————————————————————#

#SECTION: STAFF HIDESTATUS
command /hidestatus [<text>]:
  permission: staff.hideStatus
  trigger:
    if arg-1 is not set:
      make player execute command "/hidestatus help"

    #SECTION: BROADCAST STATUS
    else if arg-1 is "off":
      #set {hideStatus::%uuid of player%} to false
      remove player's uuid from {hidestatus::*}
      send "&7[&2HideStatus&7] &2-- &aEveryone will be able to see your join & leave messages now. Beware."

    #SECTION: HIDE YOUR STATUS
    else if arg-1 is "on":
      #set {hideStatus::%uuid of player%} to true
      add player's uuid to {hidestatus::*}
      send "&7[&2HideStatus&7] &2-- &aWhen you leave or join players won't see this."

    #SECTION: AUTHOR
    else if arg-1 is "author":
      send " "
      send "&2&l&nThis skript was developed by:&a BanditEagle."
      send " "
      send "&bDiscord: &aBanditEagle##2481"
      send "&bMinehut Forums: &aBanditEagle"
      send " "
      send "&2Add me for questions, requests, or just chatting!"
      send " "

    #SECTION: HELP
    else if arg-1 is "help":
      send ""
      send "&2&lWhat it does:"
      send "&7[&2HideStatus&7] &2-- &aTurning this on will hide you when you join or leave, and will put you into vanish when you join."
      send "&7[&2HideStatus&7] &2-- &aTurning this off will broadcast you joining or leaving the server."
      send ""
      send "&2&lHow to use it:"
      send "&2/hidestatus &con &2-- &cTurn it on"
      send "&2/hidestatus &coff &2-- &cTurn it off"
      send "&2/hidestatus &chelp &2-- &cSee how to use the command"
      send "&2/hidestatus &cauthor &2-- &cSee who created this."
      send ""
    
    stop

#SECTION: STAFF FAKE JOIN/LEAVE
command /fakestatus [<text>]:
  permission: staff.fakeStatus
  trigger:
    if arg-1 is not set:
      make player execute command "/fakestatus help"

    #SECTION: FAKE LEAVE
    else if arg-1 is "leave":
      set {_msg} to "&7[&2Staff Leave&7] &a%player% &2has left the server!"
      BroadcastAll({_msg})

    #SECTION: FAKE JOIN
    else if arg-1 is "join":
      set {_msg} to "&7[&2Staff Join&7] &a%player% &2has joined the server!"
      BroadcastAll({_msg})

    #SECTION: AUTHOR
    else if arg-1 is "author":
      send " "
      send "&2&l&nThis skript was developed by:&a BanditEagle."
      send " "
      send "&bDiscord: &aBanditEagle##2481"
      send "&bMinehut Forums: &aBanditEagle"
      send " "
      send "&2Add me for questions, requests, or just chatting!"
      send " "

    #SECTION: HELP
    else if arg-1 is "help":
      send ""
      send "&2&lHow to use it:"
      send "&2/fakestatus &cjoin &2-- &cSend a fake broadcast of your join"
      send "&2/fakestatus &cleave &2-- &cSend a fake broadcast of your leave"
      send "&2/fakestatus &chelp &2-- &cSee how to use the command"
      send "&2/fakestatus &cauthor &2-- &cSee who created this"
      send ""
    
    stop

#SECTION: STAFFCHAT [COMMAND]
command /staffchat [<text>]:
  aliases: /sc
  permission: staff.chat
  trigger:
    if arg-1 is not set:
      send "&cError: incorrect command usage."
    else:
      set {_msg} to uncolored arg-1
      StaffChat({_msg})
    stop

#————————————————————————————————COMMANDS————————————————————————————————#

 

Edited by Houlton

I'm just a known player who been playing since the 24 July 2019.

Please don't DM me for support, go here (if you don't mind waiting) or join Minehut's Discord (which is more active) if you need assistance.


 

Link to comment
Share on other sites

@Houlton

Thanks for the help! I probably should make a Github for it you are right. I'm going to be following @Tarnerd's advice for the new joins, but other than that your idea of {hideStatus} variable helped a lot! Thank you! ❤️

Edited by BanditEagle

If I have helped you out in your post or you liked what I posted, please upvote and react to my post! It helps me a lot!

Some Minehut Links:

Server Rules • Staff Applications • News & Updates • Reports • Appeals


Minehut: VIP (07/04/2021 --> Current)
Elestra/Versa Realms: Manager (12/04/2021 --> Current)

If you have any questions contact me!
My Discord: BanditEagle#2481
My Spigot Profile: https://www.spigotmc.org/members/banditeagle.935281/
My IGN: BanditEagle

Link to comment
Share on other sites

I have created a GitHub for this skript! You can now more easily write your concerns or ideas you want to see on here!

If I have helped you out in your post or you liked what I posted, please upvote and react to my post! It helps me a lot!

Some Minehut Links:

Server Rules • Staff Applications • News & Updates • Reports • Appeals


Minehut: VIP (07/04/2021 --> Current)
Elestra/Versa Realms: Manager (12/04/2021 --> Current)

If you have any questions contact me!
My Discord: BanditEagle#2481
My Spigot Profile: https://www.spigotmc.org/members/banditeagle.935281/
My IGN: BanditEagle

Link to comment
Share on other sites

Hey everyone, I have just updated the skript to v1.2! This includes some optimizations and a ton of new features! You can find the specific details of this over on the Github or the SpigotMC page!

https://www.spigotmc.org/resources/staff-utilities.91861/updates

https://github.com/BanditEagle/Staff-Utilities/releases/tag/v1.2

 

***Note, there might be some bugs or issues that occur with the skript, especially since it is relatively new features. If you notice anything, or are just confused and want to ask for help, please go on over to the GitHub and create a new issue there! Thank you!

https://github.com/BanditEagle/Staff-Utilities/issues

If I have helped you out in your post or you liked what I posted, please upvote and react to my post! It helps me a lot!

Some Minehut Links:

Server Rules • Staff Applications • News & Updates • Reports • Appeals


Minehut: VIP (07/04/2021 --> Current)
Elestra/Versa Realms: Manager (12/04/2021 --> Current)

If you have any questions contact me!
My Discord: BanditEagle#2481
My Spigot Profile: https://www.spigotmc.org/members/banditeagle.935281/
My IGN: BanditEagle

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...