Other available versions. Ordered by newest to oldest versions:
Just so you know, we don't know the file format for every file. If it's just a bunch of random characters, it's probably a .zip or .jar.
# -------------------------------
#
# ReportsX
# Coded by xd0
# --------------------------------
#======================================
# DO NOT TOUCH THE FOLLOWING.
on skript load:
set {debug} to "&cDisabled"
set {reports.toggle} to true
set {Report.Debug} to true
set {playerReceiveCloseMessage.toggle} to true
#======================================
#======================================
# The following is the main configuration for the script.
# The options are incredibly strict with how they are changed. If you are not exactly sure with the description of the option, check the page.
Options:
# This is the prefix for the script. It is recommended to have brackets, but that is your decision
prefix: &8[&aReport&8]
# This is the command of the script. This is what players will type in game.
command: report
# This is the permission for staff/moderators.
perm: reports.see
# This is the permission for Administrator and up. This is a dangerous permission to grant.
adminperm: reports.admin
# This is just the version of ReportX.
version: 2.1
# This option is able to be changed. This is how much ReportX logs for admins. The only options here are:
# LITE -> only logs the admin commands.
# HEAVY -> logs everything [HIGHLY DO NOT RECOMMEND USING THIS, but hey...]
loggingrate: LITE
# The following is the configuration for the messages.
# If the option contains the prefix MSG, it is highly recommended you do not change it unless you know what you're doing.
# If the option contains the prefix Message, no repercussions will occur if changed.
DebugDisableBroadcastMSG: &b%{_p}% has disabled Debug Mode!
DebugDisableMessage: &cYou just disabled Debug Mode!
DebugEnableBroadcastMSG: &b%{_p}% has enabled Debug Mode!
DebugEnableMessage: &aYou just enabled Debug Mode!
ReportListMSG: &b%player% &7reported &b%{_player}% &7for &b%{_reason}%&7 at&b %{report.date::%player%}%
FinishedReportMSG: You reported &c%{_player}% &7for &c%{_reason}%&7.
ReportDisabledToggleMessage: &aYou have just toggled off alerts!
ReportEnabledToggleMessage: &aYou have just toggled on alerts!
NoPermissionMessage: &cYou do not have permission to use this command.
ConfigurationMessage: &aConfiguration reloaded!
CloseReportMessage: &aYou have just closed your report.
NoReportListMessage: &cThere are currently no open reports.
MustHaveReportMessage: &cYou must have an open report in order to close one!
CheckReportMSG: &aYou are observing &e%arg-2%'s&a report!
CheckReportBroadcastMSG: &b%event-player% is observing %arg-2%'s report!
ConfigurationBroadcastMSG: &b%event-player% has reloaded the configuration!
NotOnlinePlayerMessage: &cThe player you wanted to check is not online!
NoOpenReportMessage: &cThat player does not have an open report!
SpecifyCheckPlayerMessage: &cYou must specify a player!
ClearedAllReportsMessage: &4You have just cleared all of the opened reports. This may cause issues with reporting players in the future.
ClosedReportToReporterMessage: &cYour report was closed!
ClosedReportToYouMSG: You closed the Report of &c%arg-2%.
ClosedReportBroadcastMSG: &c%player% &7closed &c%{_player}%'s report.
EnablePlayerReceiveReportBroadcastMSG: &b%{_p}% just toggled on closing report messages.
EnablePlayerReceiveReportMessage: &aYou just toggled on closing report messages for players.
DisablePlayerReceiveReportBroadcastMSG: &b%{_p}% just toggled off closing report messages.
DisablePlayerReceiveReportMessage: &aYou just toggled off closing report messages for players.
ClearLogsMessage: &4You just cleared the logs!
NoLogsMessage: &cThere were not logs to be cleared.
#======================================
#================================================
function reportLogs(p: player, page: number, t: text):
set {_pageStart} to 45*{_page}
set {_i} to 1
set {_a} to 0
open virtual chest inventory with 6 rows named "&4Page %{_page}%" to {_p}
{_t} is "LITE":
set {_g} to "{@loggingrate}" parsed as text
loop {report.logs.lite::*}:
(loop-index parsed as integer) > {_pageStart}
set {_player} to "%loop-value%" parsed as offline player
create gui slot {_a} of {_p} with paper named "%loop-value%"
add 1 to {_a}
{_a} = ((45*{_i})):
exit loop
create gui slot 49 of {_p} with door named "&cMain Page" to close then run function reportLogs({_p}, 0, {_g})
(amount of {report.logs.lite::*}) > {_pageStart} + 45:
create gui slot 53 of {_p} with arrow named "&9Next Page" to close then run function reportLogs({_p}, ({_page}+1), {_g})
{_page} > 0:
create gui slot 45 of {_p} with arrow named "&9Previous Page" to close then run function reportLogs({_p}, ({_page}-1), {_g})
{_t} is "HEAVY":
set {_g} to "{@loggingrate}" parsed as text
loop {report.logs.heavy::*}:
(loop-index parsed as integer) > {_pageStart}
set {_player} to "%loop-value%" parsed as offline player
create gui slot {_a} of {_p} with paper named "%loop-value%"
add 1 to {_a}
{_a} = ((45*{_i})):
exit loop
create gui slot 49 of {_p} with door named "&cMain Page" to close then run function reportLogs({_p}, 0, {_g})
(amount of {report.logs.heavy::*}) > {_pageStart} + 45:
create gui slot 53 of {_p} with arrow named "&9Next Page" to close then run function reportLogs({_p}, ({_page}+1), {_g})
{_page} > 0:
create gui slot 45 of {_p} with arrow named "&9Previous Page" to close then run function reportLogs({_p}, ({_page}-1), {_g})
function reportList(p: player, page: number):
set {_pageStart} to 45*{_page}
set {_i} to 1
set {_a} to 0
open virtual chest inventory with 6 rows named "&4Page %{_page}%" to {_p}
loop {reports::*}:
(loop-index parsed as integer) > {_pageStart}
set {_player} to "%loop-value%" parsed as offline player
create gui slot {_a} of {_p} with paper named "%loop-value%"
add 1 to {_a}
{_a} = ((45*{_i})):
exit loop
create gui slot 49 of {_p} with door named "&cMain Page" to close then run function reportList({_p}, 0)
(amount of {reports::*}) > {_pageStart} + 45:
create gui slot 53 of {_p} with arrow named "&9Next Page" to close then run function reportList({_p}, ({_page}+1))
{_page} > 0:
create gui slot 45 of {_p} with arrow named "&9Previous Page" to close then run function reportList({_p}, ({_page}-1))
command /{@command} [<text>] [<text>]:
trigger:
arg 1 is not set:
player does not have permission "{@perm}":
send "&6&m-----------------------------------------------------"
send " &a&lReportsX"
send " &7Coded by xd0"
send ""
send "&c/{@command} <Player> <Reason> &8- &7Report a Player."
send "&c/{@command} close &8- &7Closes your open report."
send ""
send "&6&m-----------------------------------------------------"
send "&6&m-----------------------------------------------------"
send " &a&lReportsX"
send " &7Coded by xd0"
send ""
send "&c/{@command} <Player> <Reason> &8- &7Report a Player."
send "&c/{@command} check <Player> &8- &7Check a Report."
send "&c/{@command} delete <Player> &8- &7Delete a report."
send "&c/{@command} close &8- &7Closes your open report."
send "&c/{@command} list&8- &7Lists currently opened reports."
player has permission "{@adminperm}":
send "&c/{@command} admin&8- &7Opens the Admin Panel."
send "&c/{@command} ver/version&8- &7Displays the version of ReportX."
send "&c/{@command} toggle&8- &7Toggles whether you will receive alerts."
send ""
send "&6&m-----------------------------------------------------"
arg 1 is not "check", "delete", "list", "admin", "clear", "reload", "toggle", "ver", "version", "logs" or "close":
arg 2 is set:
{reports.%event-player%} = {reports::*}:
send "{@prefix}&c You already opened a report."
stop
set {_player} to "%arg 1%" parsed as offline player
set {_reason} to "%arg 2%" parsed as text
set {report.date::%player%} to now
set {reports.%player%} to "{@ReportListMSG}" parsed as string
add {reports.%player%} to {reports::*}
set {report::%player%::player} to {_player}
set {report.commanduse.date} to now
set {report.log} to "&b%event-player%&7 used &b/{@command} at %{report.commanduse.date}%"
add {report.log} to {report.logs.heavy::*}
send "{@prefix} {@FinishedReportMSG}"
{reports.toggle} = true:
loop all players:
loop-player has permission "{@perm}":
{reports.alerts.%loop-player%} = true:
send "{@prefix} &7There is a new Report! &bNeeded: &9Staff-Member" to loop-player
send "{@prefix} &c%player% &7reported &c%{_player}%&7 for &c%{_reason}%" to loop-player
stop
stop
loop all players:
loop-player has permission "{@perm}":
send "{@prefix} &cReport alerts have been toggled off by an administrator!" to loop-player
send "{@prefix} &cContact an administrator to toggle alerts on!" to loop-player
stop
send "{@prefix} Use &c/{@command} <Player> <Reason>"
arg-1 = "logs":
player has permission "{@adminperm}":
set {report.commanduse.date} to now
set {report.log} to "&b%event-player%&7 used &b/{@command} logs at %{report.commanduse.date}%"
add {report.log} to {report.logs.heavy::*}
set {_t} to "{@loggingrate}" parsed as text
reportLogs(Player, 0, {_t})
arg-1 = "ver" or "version":
player has permission "{@adminperm}":
set {report.commanduse.date} to now
set {report.log} to "&b%event-player%&7 used &b/{@command} ver at %{report.commanduse.date}%"
add {report.log} to {report.logs.heavy::*}
send "{@prefix} &cYou are running ReportX version &b{@version}"
else:
send "{@NoPermissionMessage}"
arg-1 = "toggle":
player has permission "{@perm}":
{reports.alerts.%event-player%} = true:
set {report.commanduse.date} to now
set {report.log} to "&b%event-player%&7 turned off personal alerts at %{report.commanduse.date}%"
add {report.log} to {report.logs.heavy::*}
set {reports.alerts.%event-player%} to false
send "{@prefix} {@ReportDisabledToggleMessage}"
{reports.alerts.%event-player%} = false:
set {reports.alerts.%event-player%} to true
set {report.commanduse.date} to now
set {report.log} to "&b%event-player%&7 turned on personal alerts at %{report.commanduse.date}%"
add {report.log} to {report.logs.heavy::*}
send "{@prefix} {@ReportEnabledToggleMessage}"
{reports.alerts.%event-player%} is not set:
set {report.commanduse.date} to now
set {report.log} to "&b%event-player%&7 turned off personal alerts at %{report.commanduse.date}%"
add {report.log} to {report.logs.heavy::*}
set {reports.alerts.%event-player%} to false
send "{@prefix} {@ReportDisabledToggleMessage}"
else:
send "{@NoPermissionMessage}"
arg-1 = "list":
player has permission "{@perm}":
set {report.commanduse.date} to now
set {report.log} to "&b%event-player%&7 used &b/{@command} list at %{report.commanduse.date}%"
add {report.log} to {report.logs.heavy::*}
{reports::*} is set:
reportList(Player, 0)
stop
send "{@prefix} {@NoReportListMessage}"
else:
send "{@NoPermissionMessage}"
arg-1 = "close":
{reports.%event-player%} = {reports::*}:
set {report.commanduse.date} to now
set {report.log} to "&b%event-player%&7 used &b/{@command} close at %{report.commanduse.date}%"
add {report.log} to {report.logs.heavy::*}
delete {report::%player%}
remove {reports.%event-player%} from {reports::*}
send "{@prefix} {@CloseReportMessage}"
else:
send "{@prefix} {@MustHaveReportMessage}"
arg-1 = "clear":
player has permission "{@adminperm}":
clear {reports::*}
send "{@prefix} {@ClearedAllReportsMessage}"
set {report.commanduse.date} to now
set {report.log} to "&b%event-player%&7 used &b/{@command} clear at %{report.commanduse.date}%"
add {report.log} to {report.logs.lite::*}
add {report.log} to {report.logs.heavy::*}
execute player command "/report admin"
else:
send "{@NoPermissionMessage}"
arg-1 = "check":
player has permission "{@perm}":
arg-2 is set:
{reports.%arg-2%} = {reports::*}:
{report::%arg-2%::player} is online:
teleport event-player to {report::%arg-2%::player}
execute player command "/v"
remove {reports.%arg-2%} from {reports::*}
set {report.commanduse.date} to now
set {report.log} to "&b%event-player%&7 used &b/{@command} check at %{report.commanduse.date}%"
add {report.log} to {report.logs.heavy::*}
send "{@prefix} {@CheckReportMSG}"
loop all players:
loop-player has permission "{@perm}":
send "{@prefix} {@CheckReportBroadcastMSG}" to loop-player
stop
stop
else:
send "{@prefix} {@NotOnlinePlayerMessage}"
else:
send "{@prefix} {@NoOpenReportMessage}"
else:
send "{@prefix} {@SpecifyCheckPlayerMessage}"
else:
send "{@NoPermissionMessage}"
arg-1 = "reload":
if player has permission "{@adminperm}":
{Report.Debug} = true:
set {report.commanduse.date} to now
set {report.log} to "&b%event-player%&7 used &b/{@command} reload at %{report.commanduse.date}%"
add {report.log} to {report.logs.lite::*}
add {report.log} to {report.log.heavy::*}
send "{@prefix} &4&lDEBUG MODE ENABLED: &cConfiguration reloading. May cause a lag spike..."
execute player command "/skript reload ReportX"
wait 5 ticks
send "{@prefix} {@ConfigurationMessage}"
loop all players:
loop-player has permission "{@perm}":
send "{@prefix} {@ConfigurationBroadcastMSG}" to loop-player
execute player command "/report admin"
{Report.Debug} = false:
set {report.commanduse.date} to now
set {report.log} to "&b%event-player%&7 used &b/{@command} reload at %{report.commanduse.date}%"
add {report.log} to {report.logs.lite::*}
add {report.log} to {report.log.heavy::*}
send "{@prefix} &4&lDEBUG MODE DISABLED: &cConfiguration reloading. May cause a lag spike..."
execute console command "/skript reload ReportX"
wait 5 ticks
send "{@prefix} {@ConfigurationMessage}"
loop all players:
loop-player has permission "{@perm}":
send "{@prefix} {@ConfigurationBroadcastMSG}" to loop-player
execute player command "/report admin"
else:
send "{@NoPermissionMessage}"
arg-1 = "delete":
player has permission "{@perm}":
arg 2 is set:
{reports.%arg-2%} = {reports::*}:
set {_player} to "%arg 2%" parsed as offline player
remove {reports.%arg-2%} from {reports::*}
set {report.commanduse.date} to now
set {report.log} to "&b%event-player%&7 used &b/{@command} delete at %{report.commanduse.date}%"
add {report.log} to {report.logs.heavy::*}
{playerReceiveCloseMessage.toggle} = true:
send "{@prefix} {@ClosedReportToReporterMessage}" to {_player}
send "{@prefix} {@ClosedReportToYouMSG}"
loop all players:
loop-player has permission "{@perm}":
send "{@prefix} {@ClosedReportBroadcastMSG}" to loop-player
else:
send "{@prefix} {@NoOpenReportMessage}"
else:
send "{@prefix} {@SpecifyCheckPlayerMessage}"
else:
send "{@NoPermissionMessage}"
arg-1 = "admin":
player has permission "{@adminperm}":
set {report.commanduse.date} to now
set {report.log} to "&b%event-player%&7 used &b/{@command} admin at %{report.commanduse.date}%"
add {report.log} to {report.logs.lite::*}
add {report.log} to {report.logs.heavy::*}
open virtual chest inventory with 5 rows named "{@prefix} &c&lAdmin Panel" to player
create gui slot 10 of player with red stained glass named "&a&lReload&7 the Configuration" with lore "&8Fully reloads all options in the config file." to run player command "/report reload"
create gui slot 13 of player with redstone block named "&c&lClear&7 opened reports" with lore "&8Clears all currently opened reports." to run player command "/report clear"
create gui slot 16 of player with clay ball named "&a&lToggle&7 debug-mode" with lore "&8Debug mode is currently %{debug}%." to run function toggleDebug(Player)
create gui slot 31 of player with book named "&4&lClear&7 all command logs" with lore "&8Logs were last cleared by &c%{logs.clearer}%&7 at &c%{logs.cleardate}%." to run function clearLogs(Player)
create gui slot 28 of player with redstone torch on named "&a&lToggle&7 in-game alerts" with lore "&8In-Game Alerts are currently %{reports.toggle}%" to run function toggleAlerts(Player)
create gui slot 34 of player with paper named "&a&lToggle&7 closing report messages" with lore "&8Players getting reports are currently %{playerReceiveCloseMessage.toggle}%" to run function toggleCloseReportMessage(Player)
else:
send "{@NoPermissionMessage}"
#===============================================
#=============================================== Admin Panel Script
function clearLogs(p: player):
{report.logs.lite::*} is set:
clear {report.logs.lite::*}
set {logs.clearer} to {_p}
set {logs.cleardate} to now
send "{@prefix} {@ClearLogsMessage}" to {_p}
stop
send "{@prefix} {@NoLogsMessage}" to {_p}
function toggleDebug(p: player):
{Report.Debug} = true:
set {Report.Debug} to false
set {debug} to "&cDisabled" parsed as string
set {report.commanduse.date} to now
set {report.log} to "&b%{_p}%&7 disabled debug mode at %{report.commanduse.date}%"
add {report.log} to {report.logs.lite::*}
send "{@prefix} {@DebugDisableMessage}" to {_p}
execute {_p} command "/report admin"
loop all players:
loop-player has permission "{@perm}":
send "{@prefix} {@DebugDisableBroadcastMSG}" to loop-player
stop
{Report.Debug} = false:
set {Report.Debug} to true
set {debug} to "&aEnabled" parsed as string
set {report.commanduse.date} to now
set {report.log} to "&b%{_p}%&7 enabled debug mode at %{report.commanduse.date}%"
add {report.log} to {report.logs.lite::*}
send "{@prefix} {@DebugEnableMessage}" to {_p}
execute {_p} command "/report admin"
loop all players:
loop-player has permission "{@perm}":
send "{@prefix} {@DebugEnableBroadcastMSG}" to loop-player
function toggleAlerts(p: player):
{reports.toggle} = true:
set {reports.toggle} to false
set {report.commanduse.date} to now
set {report.log} to "&b%{_p}%&7 turned off alerts at %{report.commanduse.date}%"
add {report.log} to {report.logs.lite::*}
send "{@prefix} &4You have just turned off all in-game report alerts. To re-enable them, go into the admin panel and click toggle alerts." to {_p}
execute {_p} command "/report admin"
stop
{reports.toggle} = false:
set {reports.toggle} to true
set {report.commanduse.date} to now
set {report.log} to "&b%{_p}%&7 turned on alerts at %{report.commanduse.date}%"
add {report.log} to {report.logs.lite::*}
send "{@prefix} &aYou have just turned on all in-game report alerts. It is highly recommended to keep this setting on." to {_p}
execute {_p} command "/report admin"
function toggleCloseReportMessage(p: player):
{playerReceiveCloseMessage.toggle} = true:
set {playerReceiveCloseMessage.toggle} to false
set {report.commanduse.date} to now
set {report.log} to "&b%{_p}%&7 turned off report messages at %{report.commanduse.date}%"
add {report.log} to {report.logs.lite::*}
execute {_p} command "/report admin"
send "{@prefix} {@DisablePlayerReceiveReportMessage}" to {_p}
loop all players:
loop-player has permission "{@perm}":
send "{@prefix} {@DisablePlayerReceiveReportBroadcastMSG}" to loop-player
stop
else:
set {playerReceiveCloseMessage.toggle} to true
set {report.commanduse.date} to now
set {report.log} to "&b%{_p}%&7 turned off report messages at %{report.commanduse.date}%"
add {report.log} to {report.logs.lite::*}
execute {_p} command "/report admin"
send "{@prefix} {@EnablePlayerReceiveReportMessage}" to {_p}
loop all players:
loop-player has permission "{@perm}":
send "{@prefix} {@EnablePlayerReceiveReportBroadcastMSG}" to loop-player