Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #############################################################################################################################################################################################
- # #
- # #
- # SYSTEM SPRAWDZANIA PLIKÓW GRACZA #
- # #
- # #
- #############################################################################################################################################################################################
- ###########################################################
- # #
- # Sprawdzanie plików gracza #
- # #
- ###########################################################
- function checkPlayerData(p: player) :: boolean:
- loop 2 times:
- set {_playerName} to yaml value "[rCore] playerName" from file "/plugins/Skript/scripts/rCore/users/%{_p}'s uuid%.yml"
- set {_playerIp} to yaml value "[rCore] playerIp" from file "/plugins/Skript/scripts/rCore/users/%{_p}'s uuid%.yml"
- set {_banData} to yaml value "[rCore] banData" from file "/plugins/Skript/scripts/rCore/users/%{_p}'s uuid%.yml"
- set {_info} to false
- if {_playerName} is not set:
- set yaml value "[rCore] playerName" from file "/plugins/Skript/scripts/rCore/users/%{_p}'s uuid%.yml" to "%{_p}%" parsed as text
- set {_info} to true
- if {_playerIp} is not set:
- set yaml value "[rCore] playerIp" from file "/plugins/Skript/scripts/rCore/users/%{_p}'s uuid%.yml" to "%{_p}'s ip%" parsed as text
- set {_info} to true
- if {_banData} is not set:
- set yaml value "[rCore] banData" from file "/plugins/Skript/scripts/rCore/users/%{_p}'s uuid%.yml" to "null" parsed as text
- set {_info} to true
- return {_info}
- stop
- ###########################################################
- # #
- # EVENTY DOTYCZĄCE SPRAWDZANIA PLIKÓW GRACZA #
- # #
- ###########################################################
- # EVENT, W KTÓRYM ODBYWA SIĘ SPRAWDZANIE PLIKÓW GRACZA
- on join:
- if checkPlayerData(player) is true:
- kick player due to "&4Twoje dane zostały uszkodzone!%nl%&aSpróbuj wejść na serwer ponownie.%nl%&eJeżeli to nie pomoże - skontaktuj się z administratorem."
- stop
- stop
- #############################################################################################################################################################################################
- # #
- # #
- # SYSTEM SPRAWDZANIA PLIKÓW IP #
- # #
- # #
- #############################################################################################################################################################################################
- ###########################################################
- # #
- # Sprawdzanie plików IP #
- # #
- ###########################################################
- function checkPlayerData(p: player) :: boolean:
- loop 2 times:
- set {_playerName} to yaml value "[rCore] playerName" from file "/plugins/Skript/scripts/rCore/users/%{_p}'s uuid%.yml"
- set {_playerIp} to yaml value "[rCore] playerIp" from file "/plugins/Skript/scripts/rCore/users/%{_p}'s uuid%.yml"
- set {_banData} to yaml value "[rCore] banData" from file "/plugins/Skript/scripts/rCore/users/%{_p}'s uuid%.yml"
- set {_info} to false
- if {_playerName} is not set:
- set yaml value "[rCore] playerName" from file "/plugins/Skript/scripts/rCore/users/%{_p}'s uuid%.yml" to "%{_p}%" parsed as text
- set {_info} to true
- if {_playerIp} is not set:
- set yaml value "[rCore] playerIp" from file "/plugins/Skript/scripts/rCore/users/%{_p}'s uuid%.yml" to "%{_p}'s ip%" parsed as text
- set {_info} to true
- if {_banData} is not set:
- set yaml value "[rCore] banData" from file "/plugins/Skript/scripts/rCore/users/%{_p}'s uuid%.yml" to "null" parsed as text
- set {_info} to true
- return {_info}
- stop
- ###########################################################
- # #
- # EVENTY DOTYCZĄCE SPRAWDZANIA PLIKÓW IP #
- # #
- ###########################################################
- # EVENT, W KTÓRYM ODBYWA SIĘ SPRAWDZANIE PLIKÓW GRACZA
- on join:
- if checkPlayerData(player) is true:
- kick player due to "&4Twoje dane zostały uszkodzone!%nl%&aSpróbuj wejść na serwer ponownie.%nl%&eJeżeli to nie pomoże - skontaktuj się z administratorem."
- stop
- stop
- #############################################################################################################################################################################################
- # #
- # #
- # SYSTEM BANOWANIA GRACZA #
- # #
- # #
- #############################################################################################################################################################################################
- ###########################################################
- # #
- # Funkcje dotyczące banów #
- # #
- ###########################################################
- # FUNKCJA BANOWANIA (PLAYER)
- function banPlayer(p: player, b: player, r: text, t: text) :: text:
- if file "/plugins/Skript/scripts/rCore/users/%{_p}'s uuid%.yml" doesn't exist:
- return "&7Gracz o podanym nicku nie był nigdy na serwerze!"
- stop
- if {_p} have permission "rCore.ban.plus":
- if {_b} doesn't have permission "rCore.ban.all":
- return "&7Nie posiadasz wystarczających uprawnień do zbanowania tego gracza!"
- stop
- set {_ts} to "permanentny"
- if {_t} is not "permanentny":
- set {_ts} to getParseTimeSpan({_t})
- if {_ts} is not timespan:
- return "&7Podany czas jest niepoprawny! (Format: &6dni;godziny;minuty;sekundy&7. Np. 0;5;3;0.)"
- stop
- broadcast " "
- broadcast "&f&lMC&c&lPL &9» &7Gracz &6%{_p}% &7został zbanowany na serwerze przez &6%{_b}% &7za &6%{_r}%&7."
- broadcast "&f&lMC&c&lPL &9» &7Czas trwania bana: &6%translateEnglishTimeNamesToPolish({_t})%&7."
- broadcast " "
- kick {_p} due to "&c&l&m+---------------------------------+%nl%%nl%&r&4ZOSTAŁEŚ ZBANOWANY NA SERWERZE!%nl%%nl%&7Powód: &a%colored {_r}%%nl%&7Osoba banująca: &a%{_b}%%nl%&7Czas: &a%translateEnglishTimeNamesToPolish({_t})%%nl%"
- set yaml value "[rCore] banData" from file "/plugins/Skript/scripts/rCore/users/%{_p}'s uuid%.yml" to "%{_b}%;%{_ts}%;%{_r}%;%{_t}%;%now%" parsed as text
- return "&7Gracz &6%{_p}% &7został zbanowany!"
- stop
- # FUNKCJA SPRAWDZANIA STANU BANA (PLAYER)
- function checkBanPlayer(p: player) :: boolean:
- set {_banData} to yaml value "[rCore] banData" from file "/plugins/Skript/scripts/rCore/users/%{_p}'s uuid%.yml"
- set {_banData} to {_banData} parsed as text
- if {_banData} is not "null":
- return true
- stop
- return false
- stop
- # FUNKCJA SPRAWDZANIA MIJANIA BANA (PLAYER)
- function checkBanPlayerRemind(p: player) :: boolean:
- if checkBanPlayer({_p}) is false:
- stop
- set {_banTime} to getPlayerBanInfo({_p}, "banTime")
- if {_banTime} is "permanentny":
- return false
- stop
- set {_banTime} to getParseTimeSpan({_banTime})
- set {_banDate} to getPlayerBanInfo({_p}, "banDate")
- set {_banDate} to skUtil {_banDate} parsed as date formatted as "HH:mm:ss, dd.MM.yyyy"
- subtract a hour from {_banDate}
- set {_waited} to difference between {_banDate} and now
- if {_waited} is less than {_banTime}:
- return false
- stop
- unBanPlayer({_p}, "SYSTEM")
- return true
- stop
- # FUNKCJA ODBANOWYWUJĄCA (PLAYER)
- function unBanPlayer(p: player, ub: text) :: text:
- if checkBanPlayer({_p}) is false:
- return "&7Ten gracz nie posiada bana!"
- stop
- set yaml value "[rCore] banData" from file "/plugins/Skript/scripts/rCore/users/%{_p}'s uuid%.yml" to "null" parsed as text
- broadcast " "
- broadcast "&f&lMC&c&lPL &9» &7Gracz &6%{_p}% &7został odbanowany przez &6%{_ub}%&7!"
- broadcast " "
- return "&7Gracz &6%{_p}% &7został odbanowany!"
- stop
- # FUNKCJA POBIERAJĄCA INFORMACJE DOTYCZĄCE BANA (PLAYER)
- function getPlayerBanInfo(p: player, type: text) :: text:
- if checkBanPlayer({_p}) is false:
- return "&7Ten gracz nie posiada blokady!"
- stop
- if {_type} is "banRemind":
- set {_banTime} to getPlayerBanInfo({_p}, "banTime")
- if {_banTime} is "permanentny":
- return "nigdy"
- stop
- set {_banTime} to getParseTimeSpan({_banTime})
- set {_banDate} to getPlayerBanInfo({_p}, "banDate")
- set {_banDate} to skUtil {_banDate} parsed as date formatted as "HH:mm:ss, dd.MM.yyyy"
- subtract a hour from {_banDate}
- add {_banTime} to {_banDate}
- set {_return} to "%{_banDate}%" parsed as text
- return {_return}
- stop
- set {_id} to 0
- if {_type} is "banBanner":
- set {_id} to 1
- if {_type} is "banTime":
- set {_id} to 2
- if {_type} is "banReason":
- set {_id} to 3
- if {_type} is "banFormatedTime":
- set {_id} to 4
- if {_type} is "banDate":
- set {_id} to 5
- set {_banData} to yaml value "[rCore] banData" from file "/plugins/Skript/scripts/rCore/users/%{_p}'s uuid%.yml"
- set {_banData} to {_banData} parsed as text
- set {_banData::*} to {_banData} split at ";"
- return {_banData::%{_id}%}
- stop
- ###########################################################
- # #
- # Eventy dotyczące banowania #
- # #
- ###########################################################
- # EVENT, W KTÓRYM ODBYWA SIĘ SPRAWDZANIE STANU BANA I EWENTUALNE ODBANOWYWANIE, WYRZUCANIE
- on connect:
- if checkBanPlayer(player) is true:
- if checkBanPlayerRemind(player) is false:
- kick player due to "&c&l&m+---------------------------------+%nl%%nl%&r&4ZOSTAŁEŚ ZBANOWANY NA SERWERZE!%nl%%nl%&7Powód: &a%colored getPlayerBanInfo(player, ""banReason"")%%nl%&7Czas trwania: &a%translateEnglishTimeNamesToPolish(getPlayerBanInfo(player, ""banFormatedTime""))%%nl%&7Mija: &a%getPlayerBanInfo(player, ""banRemind"")%%nl%"
- stop
- if checkBanIp("%player's ip%") is true:
- if checkBanIpRemind("%player's ip%") is false:
- kick player due to getIpBanInfo("%player's ip%", "banReason")
- stop
- stop
- ###########################################################
- # #
- # Komendy dotyczące banowania #
- # #
- ###########################################################
- # KOMENDA PERMANENTNIE BANUJĄCA
- command /ban [<text>] [<text="&4Admin ma zawsze racje!">]:
- trigger:
- if player doesn't have permission "rCore.ban":
- send "&f&lMC&c&lPL &9» &7Nie posiadsz uprawnień do wykonania tej komendy!"
- stop
- if arg 1 is not set:
- send "&f&lMC&c&lPL &9» &7Podaj nick gracza do zbanowania!"
- stop
- set {_reason} to colored arg 2
- set {_player} to getParsePlayer(arg 1)
- set {_message} to banPlayer({_player}, player, {_reason}, "permanentny")
- send "&f&lMC&c&lPL &9» %{_message}%"
- stop
- # KOMENDA TYMCZASOWO BANUJĄCA
- command /tempban [<text>] [<text>] [<text = "&4Admin ma zawsze racje!">]:
- trigger:
- if player doesn't have permission "rCore.tempban":
- send "&f&lMC&c&lPL &9» &7Nie posiadasz uprawnień do wykonania tej komendy!"
- stop
- if arg 1 is not set:
- send "&f&lMC&c&lPL &9» &7Podaj nick gracza do zbanowania!"
- stop
- if arg 2 is not set:
- send "&f&lMC&c&lPL &9» &7Podaj czas bana. (Format: &6dni;godziny;minuty;sekundy&7. Np. 0;5;3;0.)"
- stop
- set {_reason} to colored arg 3
- set {_player} to getParsePlayer(arg 1)
- set {_timeSpan} to getParseToStringTimeSpan(arg 2)
- set {_message} to banPlayer({_player}, player, {_reason}, {_timeSpan})
- send "&f&lMC&c&lPL &9» %{_message}%"
- stop
- #############################################################################################################################################################################################
- # #
- # #
- # SYSTEM BANOWANIA IP DO ZROBIENIA #
- # #
- # #
- #############################################################################################################################################################################################
- ###########################################################
- # #
- # Funkcje dotyczące banów #
- # #
- ###########################################################
- # FUNKCJA BANOWANIA (PLAYER)
- function banPlayer(p: player, b: player, r: text, t: text) :: text:
- if file "/plugins/Skript/scripts/rCore/users/%{_p}'s uuid%.yml" doesn't exist:
- return "&7Gracz o podanym nicku nie był nigdy na serwerze!"
- stop
- if {_p} have permission "rCore.ban.plus":
- if {_b} doesn't have permission "rCore.ban.all":
- return "&7Nie posiadasz wystarczających uprawnień do zbanowania tego gracza!"
- stop
- set {_ts} to "permanentny"
- if {_t} is not "permanentny":
- set {_ts} to getParseTimeSpan({_t})
- if {_ts} is not timespan:
- return "&7Podany czas jest niepoprawny! (Format: &6dni;godziny;minuty;sekundy&7. Np. 0;5;3;0.)"
- stop
- broadcast " "
- broadcast "&f&lMC&c&lPL &9» &7Gracz &6%{_p}% &7został zbanowany na serwerze przez &6%{_b}% &7za &6%{_r}%&7."
- broadcast "&f&lMC&c&lPL &9» &7Czas trwania bana: &6%translateEnglishTimeNamesToPolish({_t})%&7."
- broadcast " "
- kick {_p} due to "&c&l&m+---------------------------------+%nl%%nl%&r&4ZOSTAŁEŚ ZBANOWANY NA SERWERZE!%nl%%nl%&7Powód: &a%colored {_r}%%nl%&7Osoba banująca: &a%{_b}%%nl%&7Czas: &a%translateEnglishTimeNamesToPolish({_t})%%nl%"
- set yaml value "[rCore] banData" from file "/plugins/Skript/scripts/rCore/users/%{_p}'s uuid%.yml" to "%{_b}%;%{_ts}%;%{_r}%;%{_t}%;%now%" parsed as text
- return "&7Gracz &6%{_p}% &7został zbanowany!"
- stop
- # FUNKCJA SPRAWDZANIA STANU BANA (PLAYER)
- function checkBanPlayer(p: player) :: boolean:
- set {_banData} to yaml value "[rCore] banData" from file "/plugins/Skript/scripts/rCore/users/%{_p}'s uuid%.yml"
- set {_banData} to {_banData} parsed as text
- if {_banData} is not "null":
- return true
- stop
- return false
- stop
- # FUNKCJA SPRAWDZANIA MIJANIA BANA (PLAYER)
- function checkBanPlayerRemind(p: player) :: boolean:
- if checkBanPlayer({_p}) is false:
- stop
- set {_banTime} to getPlayerBanInfo({_p}, "banTime")
- if {_banTime} is "permanentny":
- return false
- stop
- set {_banTime} to getParseTimeSpan({_banTime})
- set {_banDate} to getPlayerBanInfo({_p}, "banDate")
- set {_banDate} to skUtil {_banDate} parsed as date formatted as "HH:mm:ss, dd.MM.yyyy"
- subtract a hour from {_banDate}
- set {_waited} to difference between {_banDate} and now
- if {_waited} is less than {_banTime}:
- return false
- stop
- unBanPlayer({_p}, "SYSTEM")
- return true
- stop
- # FUNKCJA ODBANOWYWUJĄCA (PLAYER)
- function unBanPlayer(p: player, ub: text) :: text:
- if checkBanPlayer({_p}) is false:
- return "&7Ten gracz nie posiada bana!"
- stop
- set yaml value "[rCore] banData" from file "/plugins/Skript/scripts/rCore/users/%{_p}'s uuid%.yml" to "null" parsed as text
- broadcast " "
- broadcast "&f&lMC&c&lPL &9» &7Gracz &6%{_p}% &7został odbanowany przez &6%{_ub}%&7!"
- broadcast " "
- return "&7Gracz &6%{_p}% &7został odbanowany!"
- stop
- # FUNKCJA POBIERAJĄCA INFORMACJE DOTYCZĄCE BANA (PLAYER)
- function getPlayerBanInfo(p: player, type: text) :: text:
- if checkBanPlayer({_p}) is false:
- return "&7Ten gracz nie posiada blokady!"
- stop
- if {_type} is "banRemind":
- set {_banTime} to getPlayerBanInfo({_p}, "banTime")
- if {_banTime} is "permanentny":
- return "nigdy"
- stop
- set {_banTime} to getParseTimeSpan({_banTime})
- set {_banDate} to getPlayerBanInfo({_p}, "banDate")
- set {_banDate} to skUtil {_banDate} parsed as date formatted as "HH:mm:ss, dd.MM.yyyy"
- subtract a hour from {_banDate}
- add {_banTime} to {_banDate}
- set {_return} to "%{_banDate}%" parsed as text
- return {_return}
- stop
- set {_id} to 0
- if {_type} is "banBanner":
- set {_id} to 1
- if {_type} is "banTime":
- set {_id} to 2
- if {_type} is "banReason":
- set {_id} to 3
- if {_type} is "banFormatedTime":
- set {_id} to 4
- if {_type} is "banDate":
- set {_id} to 5
- set {_banData} to yaml value "[rCore] banData" from file "/plugins/Skript/scripts/rCore/users/%{_p}'s uuid%.yml"
- set {_banData} to {_banData} parsed as text
- set {_banData::*} to {_banData} split at ";"
- return {_banData::%{_id}%}
- stop
- ###########################################################
- # #
- # Eventy dotyczące banowania #
- # #
- ###########################################################
- # EVENT, W KTÓRYM ODBYWA SIĘ SPRAWDZANIE STANU BANA I EWENTUALNE ODBANOWYWANIE, WYRZUCANIE
- on connect:
- if checkBanPlayer(player) is true:
- if checkBanPlayerRemind(player) is false:
- kick player due to "&c&l&m+---------------------------------+%nl%%nl%&r&4ZOSTAŁEŚ ZBANOWANY NA SERWERZE!%nl%%nl%&7Powód: &a%colored getPlayerBanInfo(player, ""banReason"")%%nl%&7Czas trwania: &a%translateEnglishTimeNamesToPolish(getPlayerBanInfo(player, ""banFormatedTime""))%%nl%&7Mija: &a%getPlayerBanInfo(player, ""banRemind"")%%nl%"
- stop
- if checkBanIp("%player's ip%") is true:
- if checkBanIpRemind("%player's ip%") is false:
- kick player due to getIpBanInfo("%player's ip%", "banReason")
- stop
- stop
- ###########################################################
- # #
- # Komendy dotyczące banowania #
- # #
- ###########################################################
- # KOMENDA PERMANENTNIE BANUJĄCA
- command /ban [<text>] [<text="&4Admin ma zawsze racje!">]:
- trigger:
- if player doesn't have permission "rCore.ban":
- send "&f&lMC&c&lPL &9» &7Nie posiadsz uprawnień do wykonania tej komendy!"
- stop
- if arg 1 is not set:
- send "&f&lMC&c&lPL &9» &7Podaj nick gracza do zbanowania!"
- stop
- set {_reason} to colored arg 2
- set {_player} to getParsePlayer(arg 1)
- set {_message} to banPlayer({_player}, player, {_reason}, "permanentny")
- send "&f&lMC&c&lPL &9» %{_message}%"
- stop
- # KOMENDA TYMCZASOWO BANUJĄCA
- command /tempban [<text>] [<text>] [<text = "&4Admin ma zawsze racje!">]:
- trigger:
- if player doesn't have permission "rCore.tempban":
- send "&f&lMC&c&lPL &9» &7Nie posiadasz uprawnień do wykonania tej komendy!"
- stop
- if arg 1 is not set:
- send "&f&lMC&c&lPL &9» &7Podaj nick gracza do zbanowania!"
- stop
- if arg 2 is not set:
- send "&f&lMC&c&lPL &9» &7Podaj czas bana. (Format: &6dni;godziny;minuty;sekundy&7. Np. 0;5;3;0.)"
- stop
- set {_reason} to colored arg 3
- set {_player} to getParsePlayer(arg 1)
- set {_timeSpan} to getParseToStringTimeSpan(arg 2)
- set {_message} to banPlayer({_player}, player, {_reason}, {_timeSpan})
- send "&f&lMC&c&lPL &9» %{_message}%"
- stop
- #############################################################################################################################################################################################
- # #
- # #
- # INNE #
- # #
- # #
- #############################################################################################################################################################################################
- ###########################################################
- # #
- # Funkcje parsedujące #
- # #
- ###########################################################
- # FUNKCJA PARSEDUJĄCA TEKST NA GRACZA
- function getParsePlayer(p: text) :: player:
- set {_p} to {_p} parsed as offlineplayer
- return {_p}
- # FUNKCJA PARSEDUJĄCA TEKST NA TIMESPAN
- function getParseTimeSpan(t: text) :: timespan:
- set {_t} to {_t} parsed as timespan
- return {_t}
- # FUNKCJA TWORZĄCA TIMESPAN
- function getParseToStringTimeSpan(t: text) :: text:
- set {_t::*} to {_t} split at ";"
- set {_i} to size of {_t::*}
- if {_i} is not equal to 4:
- return "null"
- stop
- set {_return} to "%{_t::1}% days, %{_t::2}% hours, %{_t::3}% minutes and %{_t::4}% seconds"
- return {_return}
- # FUNKCJA TŁUMACZĄCA NA JĘZYK POLSKI ANGIELSKIE NAZWY CZASOWE
- function translateEnglishTimeNamesToPolish(t: text) :: text:
- if {_t} is "permanentny":
- return {_t}
- stop
- set {_t::*} to {_t} split at " "
- set {_day} to {_t::1}
- set {_day} to {_day} parsed as number
- if {_day} is 0:
- set {_day} to ""
- if {_day} is 1:
- set {_day} to "1 dzień "
- if {_day} is larger than 1:
- set {_day} to "%{_day}% dni "
- set {_hour} to {_t::3}
- set {_hour} to {_hour} parsed as number
- if {_hour} is 0:
- set {_hour} to ""
- if {_hour} is 1:
- set {_hour} to "1 godzina "
- if {_hour} is 2 or 3 or 4:
- set {_hour} to "%{_hour}% godziny "
- if {_hour} is larger than 4:
- set {_hour} to "%{_hour}% godzin "
- set {_minute} to {_t::5}
- set {_minute} to {_minute} parsed as number
- if {_minute} is 0:
- set {_minute} to ""
- if {_minute} is 1:
- set {_minute} to "1 minuta "
- if {_minute} is 2 or 3 or 4:
- set {_minute} to "%{_minute}% minuty "
- if {_minute} is larger than 4:
- set {_minute} to "%{_minute}% minut "
- set {_second} to {_t::8}
- set {_second} to {_second} parsed as number
- if {_second} is 0:
- set {_second} to ""
- if {_second} is 1:
- set {_second} to "1 sekunda "
- if {_second} is 2 or 3 or 4:
- set {_second} to "%{_second}% sekundy "
- if {_second} is larger than 4:
- set {_second} to "%{_second}% sekund "
- set {_return} to "%{_day}%%{_hour}%%{_minute}%%{_second}%"
- return {_return}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement