### Flags # Teams_Groups: # Teams_Group_Name_Kills: # Teams_Group_Name_Deaths: # Teams_Group_Name_Rank: # Teams_Group_Name_Members: # Teams_Group_Name_Leaders: # Teams_Group_Name_Created: # Teams_Group_Name_Bank: # Teams_Player_Group: # Teams_Player_Menu_Respond: # Teams_Player_Pending: # Teams_Player_Chat: # Teams_Version: type: version name: Teams id: 87 description: Allows teaming up with other players. version: 3 Teams_Data: type: yaml data config: ranks: kills: "1": 500 "2": 1250 "3": 2000 "4": 10000 "5": 50000 "6": 100000 colors: "1": "&7" "2": "&9" "3": "&6" "4": "&b" "5": "&a" "6": "&c" chat_system: "true" # TODO namemaxlength: 10 nameminlength: 2 maxmembers: 8 commands: main: "team" args: help: "help" create: "create" info: "info" leave: "leave" top: "top" accept: "accept" deny: "deny" invite: "invite" deposit: "deposit" withdraw: "withdraw" rename: "rename" promote: "promote" kick: "kick" args_descriptions: help: "Shows commands for teams." create: "(name) Creates a new team." info: "(name/lpayer) Shows information about a team." leave: "Leaves the team you are in." top: "Shows a list of top teams." accept: "Accepts an invitation from a team." deny: "Declines an invitation from a team." invite: "(player) Invites a player." deposit: "(money) Puts money into your team-bank" withdraw: "(money) Takes money from your team-bank" rename: "(new name) Changes your team name." promote: "(player) Gives player leader promotion." kick: "(player) Kick a player from your team." lang: # Titles help_title: "Team Information" yourteam_title: "Your Team" # Error messages alreadyonteam: "is already on a team!" noteam: "Is not on any team!" unknown: "Unknown command!" missargs: "Not enugh arguements!" teamalreadyexist: "already exists!" noteamfound: "No team was found!" nolistteam: "There are no teams!" teamfull: "cannot have more members!" nopending: "have not been invited to any team!" alreadypending: "already have an invitation!" notenoughmoney: "do not have enough money!" notvalid: "This command is not correct!" nametoolong: "Name is too long!" nametooshort: "Name is too short!" nonegative: "No negative numbers!" notyourside: "is not on your team!" alreadyleader: "is already a leader!" cannotkickleader: "cannot kick a leader!" noleader: "is not a leader!" spamming: "Cooldown command, wait" noplayerfound: "No player was found!" # You you: "You" # Announces newteam: "has created a new team called" teamdisband1: "Team" teamdisband2: "was disbanded by" renamedteam1: "changed team-name from" renamedteam2: "to" # Info teamtotal: "Team Total" kills: "Kills" deaths: "Deaths" kdr: "KDR" teambank: "Team Bank" teamrank: "Team Rank" level: "Level" members: "Members" leaders: "Leaders" created: "Team created" nextrank: "Next Rank" moreinfo: "For more information, write" # messages leftteam: "left team" invited: "on your team invited" invitedtoteam: "have been invited to team" declinedpending: "declined the invitation to" acceptedpending: "became a member of" moneydeposit1: "deposited" moneydeposit2: "to your team bank" moneywithdraw1: "took" moneywithdraw2: "from your team bank" menufinalstep: "Write the last argument for your command." promoted: "gave leadership to" waskicked1: "kick" waskicked2: "out of" gotkicked: "were kicked out of" teamrankup: "Your team is now rank" # top toptitle: "Top Teams" topkdr: "KDR" topupdate: "Updating list..." Teams_Help_List: type: task debug: false script: - narrate "<&9>--- <&d> <&9>---" - foreach { - narrate "<&6>/ ]> <&8>- <&b>]>" } Teams_Help_Message: type: procedure debug: false script: - determine "<&b>/ " Teams_Events: type: world debug: false events: on system time hourly: - webget "http://stats.denizenscript.com/tracker?script=&version=" on player death: - if { - define flag2 "Teams_Group__Deaths" - flag server ":++" } - if { - run Teams_Kills player: instantly } else if { - run Teams_Kills player: instantly } on player damaged: - if != ENTITY_ATTACK { - if != PROJECTILE { - queue clear } } - if { - define player - inject Teams_FriendlyFire } else if { - define player - inject Teams_FriendlyFire } on player clicks in Teams_Menu: - determine cancelled passively - inventory close d: - if == "Teams_Close" { - queue clear } - define title ]> - if (]> { - flag player Teams_Player_Menu_Respond: - narrate "<&a> <&b>/ (*)" - queue clear } - execute as_player " " on player drags in Teams_Menu: - determine cancelled on player drags in Teams_Menu_v2: - determine cancelled on player clicks in Teams_Menu_v2: - determine cancelled passively - inventory close d: Teams_Kills: type: task debug: false script: ## HOTFIX - if { - define flag Teams_Group__Kills - if ].not||true> { - announce "<&c> har som ikke findes!" to_flagged:Show_Errors - flag player Teams_Player_Group:! } } ## - if { - define flag1 "Teams_Group__Kills" - flag server ":++" - if _Rank]> < { - if ].round> >= _Rank]>].round> { - define flag Teams_Group__Rank - flag server ":_Rank].add_int[1]>" - define flag "Teams_Group__Members" - define text1 "_Rank]>].parse_color>" - define text2 "_Rank]>" - announce "<&b> <&3> " } } } Teams_FriendlyFire: type: task debug: false script: - if && { - if == { - determine CANCELLED } } Teams_Command: type: command name: team description: Commands for teams. usage: / debug: false aliases: - # permission: ggpvp.teams # permission message: Sorry, , you don't have the permission ''! script: ## HOTFIX - if { - define flag Teams_Group__Members - if ].not||true> { - announce "<&c> har som ikke findes!" to_flagged:Show_Errors - flag player Teams_Player_Group:! } else if ].as_list.contains[].not||true> { - announce "<&c> har som ikke findes!" to_flagged:Show_Errors - flag player Teams_Player_Group:! } } ## - if > 0 { # Help - if == "" { - inject Teams_Help_List } # Create else if == "" { - if { - narrate " " - queue clear } - if >= 2 { - define team "" - if { - narrate "<&c> " - queue clear } - if _Created]||true> { - narrate "<&c> " - queue clear } - if > { - narrate "<&c> " - queue clear } - if < { - narrate "<&c> " - queue clear } - if |<&>|<&cm>|<&ss>|<&sq>|<&sp>|< >|<&dq>|<&co>|<&sc>|<&rb>|<&lb>|<&rc>|<&lc>|<&ns>|<&pc>|<&pipe>|<&ds>|<<>|<>>|<&bs>|<&at>|<&dot>]||true> { - narrate "<&c> " - queue clear } - flag player Teams_Player_Spam:True duration:30s # Create Team - flag player Teams_Player_Group: - define flag "Teams_Group__Kills" - flag server ":0" - define flag "Teams_Group__Deaths" - flag server ":0" - define flag "Teams_Group__Bank" - flag server ":0" - define flag "Teams_Group__Rank" - flag server ":1" - define flag "Teams_Group__Members" - flag server ":|:" - define flag "Teams_Group__Leaders" - flag server ":|:" - define flag "Teams_Group__Created" - flag server ":--" - flag server Teams_Groups:->: - announce "<&b> <&3> <&b>" } else { - narrate "<&c> " } } # Info else if == "" { - if >= 2 { # Check other team (args either player or team) - define team - define flag Teams_Group__Members - if ].not> { - define Target ]||null> - if == null { - narrate "<&c> " - queue clear } else { # Found player - if { - define flag Teams_Group__Members - if ].not||true> { - narrate "<&c> " - queue clear } - define team } else { - narrate "<&c> " - queue clear } } } # Found team - define flag1 "Teams_Group__Kills" - define flag2 "Teams_Group__Deaths" - define flag3 "Teams_Group__Members" - define flag4 "Teams_Group__Leaders" - define flag5 "Teams_Group__Created" - define flag6 "Teams_Group__Bank" - define flag7 "Teams_Group__Rank" - define nextlvl "<&8>(<&a> <&8><&co> <&c>].round><&8>/<&c>_Rank]>]> <&a><&8>)" - define teamcolor "_Rank]>].parse_color>" - narrate "<&9>--- --- <&b> <&9>--- ---" - narrate "<&a> <&8><&co> <&c>].round>" - narrate "<&a> <&8><&co> <&c>].round>" - narrate "<&a> <&8><&co> <&c>]>|]>]>" - narrate "<&a> <&8><&co> <&c>]> $" - narrate "<&a> <&8><&co> ]> " - narrate "<&a> <&8><&co> <&3>].as_list.parse[name].separated_by[<&sp>]>" - narrate "<&a> <&8><&co> <&3>].as_list.parse[name].separated_by[<&sp>]>" - narrate "<&9>--- --- <&7> ]> <&9>--- ---" } else if { # Check own team - define flag1 "Teams_Group__Kills" - define flag2 "Teams_Group__Deaths" - define flag3 "Teams_Group__Members" - define flag4 "Teams_Group__Leaders" - define flag5 "Teams_Group__Created" - define flag6 "Teams_Group__Bank" - define flag7 "Teams_Group__Rank" - define nextlvl "<&8>(<&a> <&8><&co> <&c>].round><&8>/<&c>_Rank]>]> <&a><&8>)" - define teamcolor "_Rank]>].parse_color>" - narrate "<&9>--- --- <&b> <&9>--- ---" - narrate "<&a> <&8><&co> <&c>].round>" - narrate "<&a> <&8><&co> <&c>].round>" - narrate "<&a> <&8><&co> <&c>]>|]>]>" - narrate "<&a> <&8><&co> <&c>]> $" - narrate "<&a> <&8><&co> ]> " - narrate "<&a> <&8><&co> <&3>].as_list.parse[name].separated_by[<&sp>]>" - narrate "<&a> <&8><&co> <&3>].as_list.parse[name].separated_by[<&sp>]>" - narrate "<&9>--- --- <&7> ]> <&9>--- ---" } else { - narrate "<&c> " } } # Leave else if == "" { - inject Teams_Inject_Leave } # top else if == "" { - if { - if { - narrate "<&8>" - narrate "].deduplicate.size>" - define Leaders ].deduplicate.sort[Teams_Proc_Sort].get[1].to[5]||li@> - flag server teams_topkills_cooldown:True duration:2h - flag server teams_topkills:! - flag server teams_topkills: } - narrate "----- <&6><&r> -----" - if { - foreach { - narrate "<&9><&8>. <&6> <&8>- <&6>_Kills].round||0> <&8>(<&9><&8><&co> <&6>_Kills]>|_Deaths]>]><&8>)" } } else { - narrate "<&c>Venter på næste sortering..." } } else { - narrate "<&c> " } } # Invite else if == "" { - if >= 2 { - if { - narrate "<&c> " - queue clear } - define flag Teams_Group__Leaders - if ].as_list.contains[].not> { - narrate "<&c> " - queue clear } - define flag Teams_Group__Members - if ].size> >= { - narrate "<&c> " - queue clear } - define Target ]||null> - if == null { - narrate "<&c> " - queue clear } - if == { - narrate "<&c> " - queue clear } # else if { # - narrate "<&c> " # - queue clear # } else if { - narrate "<&c> " - queue clear } - define flag Teams_Group__Members - narrate "<&b> <&3> <&b>" targets:].as_list.filter[is_online]> - flag Teams_Player_Pending: duration:2m - define command "/ (<&8>/<&a>)" - define lang " " - narrate "<&3> <&b> <&a>" targets: } else { - narrate "<&c> " } } # Deny else if == "" { - if { - narrate "<&c> " - queue clear } - narrate " " - define flag "Teams_Group__Members" - narrate "<&b> <&3> <&b>" targets:].as_list.filter[is_online]> - flag player Teams_Player_Pending:! } # Accept else if == "" { - if { - narrate "<&c> " - queue clear } - define flag Teams_Group__Members - if ].size> >= { - narrate "<&c> " - queue clear } - if { - inject Teams_Inject_Leave } - flag player Teams_Player_Group: - flag server ":->:" - define flag "Teams_Group__Members" - narrate "<&b> <&3> <&b>" targets:].as_list.filter[is_online]> - flag player Teams_Player_Pending:! } # Deposit else if == "" { - if { - narrate "<&c> " - queue clear } - if >= 2 { - define deposited - if == null { - narrate "<&c> " - queue clear } - if < { - narrate "<&c> " - queue clear } - if < 0 { - narrate "<&c> " - queue clear } - take money quantity: - define flag Teams_Group__Bank - define total ].add_int[]> - flag server ":" - define flag "Teams_Group__Members" - narrate "<&b> <&3> <&b> <&3>" targets:].as_list.filter[is_online]> } else { - narrate "<&c> " } } # Withdraw else if == "" { - if { - narrate "<&c> " - queue clear } - if >= 2 { - define flag Teams_Group__Leaders - if ].as_list.contains[].not||true> { - narrate "<&c> " - queue clear } - define flag Teams_Group__Bank - define withdrew - if == null { - narrate "<&c> " - queue clear } - if ]> < { - narrate "<&c> " - queue clear } - if < 0 { - narrate "<&c> " - queue clear } - define total ].sub_int[]> - give money quantity: - flag server ":" - define flag "Teams_Group__Members" - narrate "<&b> <&3> <&b> <&3>" targets:].as_list.filter[is_online]> } else { - narrate "<&c> " } } # Rename else if == "" { - if { - narrate " " - queue clear } - if >= 2 { - define newteam "" - if { - narrate "<&c> " - queue clear } - define flag Teams_Group__Leaders - if ].as_list.contains[].not> { - narrate "<&c> " - queue clear } - if _Created]> { - narrate "<&c> " - queue clear } - if > { - narrate "<&c> " - queue clear } - if < { - narrate "<&c> " - queue clear } - if |<&>|<&cm>|<&ss>|<&sq>|<&sp>|< >|<&dq>|<&co>|<&sc>|<&rb>|<&lb>|<&rc>|<&lc>|<&ns>|<&pc>|<&pipe>|<&ds>|<<>|<>>|<&bs>|<&at>|<&dot>]||true> { - narrate "<&c> " - queue clear } - flag player Teams_Player_Spam:True duration:30s - define oldteam - define flag1new "Teams_Group__Kills" - define flag1old "Teams_Group__Kills" - flag server ":]>" - define flag2new "Teams_Group__Deaths" - define flag2old "Teams_Group__Deaths" - flag server ":]>" - define flag3new "Teams_Group__Bank" - define flag3old "Teams_Group__Bank" - flag server ":]>" - define flag4new "Teams_Group__Rank" - define flag4old "Teams_Group__Rank" - flag server ":]>" - define flag5new "Teams_Group__Members" - define flag5old "Teams_Group__Members" - foreach ].as_list> { - flag server ":->:" - flag Teams_Player_Group: } - define flag6new "Teams_Group__Leaders" - define flag6old "Teams_Group__Leaders" - foreach ].as_list> { - flag server ":->:" } - define flag7new "Teams_Group__Created" - define flag7old "Teams_Group__Created" - flag server ":]>" - flag server Teams_Groups:->: - flag server Teams_Groups:<-: - define flag Teams_Group__Kills - flag server ":!" - define flag Teams_Group__Deaths - flag server ":!" - define flag Teams_Group__Members - flag server ":!" - define flag Teams_Group__Leaders - flag server ":!" - define flag Teams_Group__Rank - flag server ":!" - define flag Teams_Group__Bank - flag server ":!" - define flag Teams_Group__Created - flag server ":!" - announce "<&b> <&3> <&b> <&3> <&b>" } else { - narrate "<&c> " } } # Promote else if == "" { - if { - narrate "<&c> " - queue clear } - if >= 2 { - define flag1 Teams_Group__Leaders - if ].as_list.contains[].not||true> { - narrate "<&c> " - queue clear } - define target ]||null> - if == null { - narrate "<&c> " - queue clear } - define flag2 Teams_Group__Members - if ].as_list.contains[].not> { - narrate "<&c> " - queue clear } - if ].as_list.contains[]||true> { - narrate "<&c> " - queue clear } # Give promotion - flag server ":->:" - define flag "Teams_Group__Members" - narrate "<&b> <&3> <&b>" targets:].as_list.filter[is_online]> } else { - narrate "<&c> " } } # kick else if == "" { - if { - narrate "<&c> " - queue clear } - if >= 2 { - define flag1 Teams_Group__Leaders - if ].as_list.contains[].not> { - narrate "<&c> " - queue clear } - define target ]||null> - if == null { - narrate "<&c> " - queue clear } - define flag2 Teams_Group__Members - if ].as_list.contains[].not||true> { ## HOTFIX - if ].as_list.contains[]||true> { - announce "<&c> er leder på men ikke member!" to_flagged:Show_Errors - flag server ":<-:" } ## - narrate "<&c> " - queue clear } - if ].as_list.contains[]||true> { - narrate "<&c> " - queue clear } - flag server ":<-:" - flag Teams_Player_Group:! - run Teams_Kicked_player player: - if { - narrate "<&3> <&b>" targets: } - define flag "Teams_Group__Members" - narrate "<&b> <&3> <&b> <&3> <&b>" targets:].as_list.filter[is_online]> } else { - narrate "<&c> " } } else { - narrate "<&c> " } } else { - if { - flag server Teams_Target_Menu: - inventory open d:in@Teams_Menu_v2 # - inventory open d:in@Teams_Menu } else { - inject Teams_Help_List } } Teams_Kicked_player: type: task debug: false script: - flag player Teams_Player_Group:! Teams_Inject_Leave: type: task debug: false script: - if { - narrate " " - queue clear } - if { - narrate "<&3> <&b>" - define team - flag player Teams_Player_Group:! - define flag Teams_Group__Members - flag server ":<-:" - if ]> { - if ].as_list.is_empty.not||false> { - narrate "<&b> <&3> <&b>" targets:].as_list.filter[is_online]> } } - define flag Teams_Group__Leaders - if ].as_list.contains[]> { - flag player Teams_Player_Spam:True duration:30s - flag server ":<-:" - if ].not> { - if ].as_list.is_empty||true> { # Remove team - define flag Teams_Group__Kills - flag server ":!" - define flag Teams_Group__Deaths - flag server ":!" - define flag Teams_Group__Members - if ]> { - foreach ].as_list> { - flag Teams_Player_Group:! } } - flag server ":!" - define flag Teams_Group__Leaders - flag server ":!" - define flag Teams_Group__Rank - flag server ":!" - define flag Teams_Group__Bank - flag server ":!" - define flag Teams_Group__Created - flag server ":!" - flag server "Teams_Groups:<-:" - announce "<&3> <&b> <&3> <&b>" } } } } else { - narrate "<&c> " } Teams_Chat: type: command name: teamchat debug: false description: Commands for teams. usage: /teamchat aliases: - tc # permission: ggpvp.teams # permission message: Sorry, , you don't have the permission ''! script: - if { - narrate "<&c> " - queue clear } - define flag "Teams_Group__Members" - narrate "<&8>[<&c>Team-Chat<&8>] <&b><&co> <&e>" targets:].as_list.filter[is_online]> # Menu Teams_Menu_Proc: type: procedure debug: false definitions: item|line script: - define value "]>" - choose "": - case "1": - determine red_wool - case "2": - determine "<&6><&l>].to_titlecase>" - case "3": - determine "<&b>]>" - default: - determine "Chosen default" Teams_Menu_Proc_v2: type: procedure debug: false definitions: item|line script: - define target - choose "": - case "name": - choose "": - case "1": - determine book - case "2": - determine "<&6><&l>" - case "3": - determine "<&a> " - case "4": - determine "" - case "5": - determine "<&7>" - case "6": - determine "<&7>" - case "7": - determine "<&7>_Created]>" - default: - determine "Chosen default in " - case "kills": - choose "": - case "1": - determine diamond_sword - case "2": - determine "<&a> <&8><&co>" - case "3": - determine "<&c><&l>_Kills].round||0> <&6>" - case "4": - determine "<&c><&l>_Deaths].round||0> <&6>" - case "5": - define flag1 Teams_Group__Kills - define flag2 Teams_Group__Deaths # ].div[]>].round_to[2]||0> - determine "<&c><&l>]>|]>]> <&6>" - default: - determine "Chosen default in " - case "members": - choose "": - case "1": - determine diamond_chestplate - case "2": - determine "<&a> <&8><&co> " - case "3": - determine "<&3>_Leaders].as_list.parse[name].separated_by[|<&3>]>" - case "4": - determine "<&a> <&8><&co> " - case "5": ## change to foreach loop (with define) - determine "<&3>_Members].as_list.parse[name].separated_by[|<&3>]>" - case "6": - determine "<&8>(<&c>_Members].as_list.size><&8>/<&c><&8>)" - default: - determine "Chosen default in " - case "rank": - choose "": - case "1": - determine redstone - case "2": - determine "<&a> <&8><&co> " - case "3": - define teamcolor "_Rank]>].parse_color>" - determine "<&l> _Rank].round||0>" - case "4": - define nextlvl "<&c>_Kills].round><&8>/<&c>_Rank]>]> <&a>" - determine "<&a> <&8><&co> " - default: - determine "Chosen default in " - case "money": - choose "": - case "1": - determine Nether_Star - case "2": - determine "<&a> <&8><&co> " - case "3": - determine "<&c><&l>_Bank]||0>" - default: - determine "Chosen default" Teams_Menu_v2: type: inventory debug: false inventory: CHEST title: <&8> size: 54 definitions: name: [display_name=;lore=li@||||] kills: [flags=HIDE_ATTRIBUTES;display_name=;lore=li@||] members: [display_name=;lore=li@|||] close: i@Teams_Close penge: [display_name=;lore=li@] rank: [flags=HIDE_ATTRIBUTES;display_name=;lore=li@|] slots: - "[] [] [] [] [] [] [] [] []" - "[] [] [] [] [rank] [] [] [] []" - "[] [] [kills] [] [] [] [members] [] []" - "[] [] [] [] [penge] [] [] [] []" - "[] [] [] [] [] [] [] [] []" - "[] [] [] [] [name] [] [] [] [Close]" Teams_Menu: type: inventory debug: false inventory: CHEST title: <&8> size: 18 definitions: T1: [display_name=;lore=li@] T2: [display_name=;lore=li@] T3: [display_name=;lore=li@] T4: [display_name=;lore=li@] T5: [display_name=;lore=li@] T6: [display_name=;lore=li@] T7: [display_name=;lore=li@] T8: [display_name=;lore=li@] T9: [display_name=;lore=li@] T10: [display_name=;lore=li@] Close: i@Teams_Close slots: - "[T1] [T2] [T3] [T4] [T5] [] [] [] []" - "[T6] [T7] [T8] [T9] [T10] [] [] [] [Close]" Teams_Close: type: item debug: false material: BARRIER display name: <&a>Luk Menu ## TODO: MAY OR MAY NOT SORT CORRECTLY! Teams_Proc_Sort: type: procedure debug: false definitions: p1|p2 script: # If P2's kill score is better than P1's move P2 up, ooh that bitch is climbin! - if _Kills].round||0> > _Kills].round||0> { - determine 1 } # If P1's kill score is better than P2's move P1 up, ooh that bitch is climbin! else if _Kills].round||0> > _Kills].round||0> { - determine -1 } # Their kill score is equal, so do nothing... boring.. else { - determine 0 } ## Teams_KDR_Cal: type: procedure debug: false definitions: kills|death script: - if == 0 { - determine "0" } else if == { - determine "1" } else { - determine "].round_to[2]>" } Teams_Members_proc: type: procedure debug: false definitions: team script: - if == 0 { - determine "0" } else if == { - determine "1" } else { - determine "].round_to[2]>" } # <&3>_Leaders].as_list.parse[name]. # separated_by[|<&3>]>