Date: 2020/06/24 14:14:46 UTC-07:00
Type: Denizen Script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#Script: 1.0.3
#Author: Icecapade
#Date 2020-06-24
IcecapadeFreeze:
type: command
name: freeze
debug: false
usage: /freeze [Player]
description: freeze a player
permission: icecapade.freeze
permission message: <&3>You need the permission <&b><permission> <&3>to use that command!
tab complete:
- choose <context.args.size>:
- case 0:
- determine <server.online_players.filter[has_flag[frozen].not].parse[name]>
- case 1:
- if "!<context.raw_args.ends_with[ ]>":
- determine <server.online_players.filter[has_flag[frozen].not].parse[name].filter[starts_with[<context.args.first>]]>
script:
- if <context.args.size> == 1:
- define player <server.match_player[<context.args.first>]||null>
- if <[player]> == null:
- narrate "<red>Player not found."
- stop
- if !<[player].has_flag[frozen]>:
- if <[player]> == <player>:
- narrate "<red>You can't freeze yourself!"
- stop
- if <[player].is_op>:
- narrate "<blue><player.name> <red>tried to freeze you." targets:<[player]>
- stop
- create player <[player].name> <[player].location> save:npcplayer
- wait 5t
- adjust <[player]> spectate:<entry[npcplayer].created_npc>
- flag <[player]> frozen:<entry[npcplayer].created_npc>
- narrate "<red>You were frozen by <blue><player.name>" targets:<[player]>
- narrate "<red><player.name> were frozen by <blue><player.name>" targets:<server.online_players.filter[has_permission[icecapade.freeze.notify]]>
- while <[player].has_flag[frozen]>:
- if !<player.is_online>:
- narrate "<blue><player.name> <red>went offline while <blue><[player].name><red> is still frozen!" targets:<server.online_players.filter[has_permission[icecapade.freeze]]>
- stop
- if !<[player].is_online>:
- stop
- if <[loop_index].div[60].mod[5]> == 0:
- narrate "<[player].name> is frozen since <[loop_index].div[60]> minutes. <element[Click here to unfreeze him.].on_click[/unfreeze <[player].name>]>" targets:<server.online_players.filter[has_permission[icecapade.freeze]]>
- wait 1s
- else:
- narrate "<red>Player is already frozen."
- else:
- narrate "<&3>Syntax: <&b>/freeze [Player]"
IcecapadeUnfreeze:
type: command
debug: false
name: unfreeze
usage: /unfreeze [Player]
description: unfreeze a player
permission: icecapade.freeze
permission message: <&3>You need the permission <&b><permission> <&3>to use that command!
tab complete:
- choose <context.args.size>:
- case 0:
- determine <server.online_players_flagged[frozen].parse[name]>
- case 1:
- if "!<context.raw_args.ends_with[ ]>":
- determine <server.online_players_flagged[frozen].parse[name].filter[starts_with[<context.args.first>]]>
script:
- if <context.args.size> == 1:
- define player <server.match_player[<context.args.first>]||null>
- if <[player]> == null:
- narrate "<red>Player not found."
- stop
- if <[player].has_flag[frozen]>:
- adjust <[player]> spectate:<[player]>
- remove <[player].flag[frozen]>
- flag <[player]> frozen:!
- narrate "<red>You were unfrozen by <blue><player.name>" targets:<[player]>
- narrate "<blue><[player].name> <red>were unfrozen by <blue><player.name>" targets:<server.online_players.filter[has_permission[icecapade.freeze.notify]]>
- else:
- narrate "<red>Player is not frozen."
- else:
- narrate "<&3>Syntax: <&b>/unfreeze [Player]"
IcecapadeFreezeEvent:
type: world
debug: false
events:
on player joins flagged:frozen:
- narrate "<blue><player.name> <red>joined while he's frozen!" targets:<server.online_players.filter[has_permission[icecapade.freeze]]>
- create player <player.name> <player.location> save:npcplayer
- flag player frozen:<entry[npcplayer].created_npc>
- wait 5t
- adjust <player> spectate:<entry[npcplayer].created_npc>
on player quits flagged:frozen:
- narrate "<blue><player.name> <red>went offline while he's frozen!" targets:<server.online_players.filter[has_permission[icecapade.freeze]]>
- remove <player.flag[frozen]>
on player teleports flagged:frozen:
- narrate "<blue><player.name> <red>tried to teleport while he's frozen!" targets:<server.online_players.filter[has_permission[icecapade.freeze]]>
- determine cancelled