Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import:
- java.util.Collections
- java.util.UUID
- org.bukkit.Bukkit
- com.comphenix.protocol.wrappers.PlayerInfoData
- com.comphenix.protocol.wrappers.WrappedGameProfile
- com.comphenix.protocol.wrappers.WrappedSignedProperty
- on load:
- set {_package} to Bukkit.getServer().getClass().getPackage().getName()
- set {_strlist::*} to split {_package} by "."
- set {nmsver} to {_strlist::4}
- on connect:
- copy json text from "https://api.mojang.com/users/profiles/minecraft/%player%" to {_basicplayerdata::*}
- {_basicplayerdata::id} is set
- set {uuid::%player%} to UUID.fromString({_basicplayerdata::id}.replaceFirst("(\p{XDigit}{8})(\p{XDigit}{4})(\p{XDigit}{4})(\p{XDigit}{4})(\p{XDigit}+)", "$1-$2-$3-$4-$5"))
- if check [{value::%player%} is not set] or check [{signature::%player%} is not set]:
- set {_skindata} to text from "https://sessionserver.mojang.com/session/minecraft/profile/%{_basicplayerdata::id}%?unsigned=false" parsed as jsonobject
- set {value::%player%} to {_skindata}.get("properties").get(0).get("value")
- set {signature::%player%} to {_skindata}.get("properties").get(0).get("signature")
- set {_wrappedgameprofile} to new WrappedGameProfile(player.getProfile())
- if Bukkit.getServer().getServer().getOnlineMode() is false:
- set {_wrappedgameprofile}.getHandle().id! to {uuid::%player%}
- player.getHandle().a({uuid::%player%})
- {value::%player%} is set
- {signature::%player%} is set
- {_wrappedgameprofile}.getProperties().put("textures", new WrappedSignedProperty("textures", {value::%player%}, {signature::%player%}))
- on packet event play_server_player_info:
- set {_oldplayerinfodata} to event-packet.getPlayerInfoDataLists().read(0).get(0)
- set {_gameprofile} to {_oldplayerinfodata}.getProfile()
- set {_mcid} to {_gameprofile}.getName()
- {value::%{_mcid}%} is set
- {signature::%{_mcid}%} is set
- {_gameprofile}.getProperties().put("textures", new WrappedSignedProperty("textures", {value::%{_mcid}%}, {signature::%{_mcid}%}))
- set {_playerinfodata} to new PlayerInfoData({_gameprofile}, {_oldplayerinfodata}.getLatency(), {_oldplayerinfodata}.getGameMode(), {_oldplayerinfodata}.getDisplayName())
- event-packet.getPlayerInfoDataLists().write(0, Collections.singletonList({_playerinfodata}))
- on unload:
- delete {uuid::*}
- delete {value::*}
- delete {signature::*}
- on skript disable:
- delete {uuid::*}
- delete {value::*}
- delete {signature::*}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement