Stefatorus
4 years ago
2 changed files with 134 additions and 135 deletions
@ -1,72 +1,72 @@ |
|||||
<project xmlns="http://maven.apache.org/POM/4.0.0" |
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
|
||||
<modelVersion>4.0.0</modelVersion> |
|
||||
|
|
||||
<groupId>cx.sfy</groupId> |
|
||||
<artifactId>templateplugin</artifactId> |
|
||||
<version>0.1</version> |
|
||||
<packaging>jar</packaging> |
|
||||
|
|
||||
<name>TemplatePlugin</name> |
|
||||
<url>http://maven.apache.org</url> |
|
||||
|
|
||||
<properties> |
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
|
||||
<plugin.description>Template Plugin Description</plugin.description> |
|
||||
</properties> |
|
||||
|
|
||||
<build> |
|
||||
<finalName>${project.name}</finalName> |
|
||||
<directory>target</directory> |
|
||||
<sourceDirectory>src</sourceDirectory> |
|
||||
<resources> |
|
||||
<resource> |
|
||||
<directory>resources</directory> |
|
||||
<filtering>true</filtering> |
|
||||
<includes> |
|
||||
<include>*</include> |
|
||||
</includes> |
|
||||
</resource> |
|
||||
</resources> |
|
||||
<plugins> |
|
||||
<!-- Set a compiler level --> |
|
||||
<plugin> |
|
||||
<groupId>org.apache.maven.plugins</groupId> |
|
||||
<artifactId>maven-compiler-plugin</artifactId> |
|
||||
<version>2.3.2</version> |
|
||||
<configuration> |
|
||||
<source>1.8</source> |
|
||||
<target>1.8</target> |
|
||||
</configuration> |
|
||||
</plugin> |
|
||||
</plugins> |
|
||||
</build> |
|
||||
|
|
||||
<repositories> |
|
||||
<repository> |
|
||||
<id>spigot-repo</id> |
|
||||
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url> |
|
||||
</repository> |
|
||||
<repository> |
|
||||
<id>mikeprimm-repo</id> |
|
||||
<url>http://repo.mikeprimm.com/</url> |
|
||||
</repository> |
|
||||
</repositories> |
|
||||
|
|
||||
<dependencies> |
|
||||
<dependency> |
|
||||
<groupId>org.spigotmc</groupId> |
|
||||
<artifactId>spigot-api</artifactId> |
|
||||
<!-- Peasants don't update or use new features :D --> |
|
||||
<version>1.12.2-R0.1-SNAPSHOT</version> |
|
||||
<scope>provided</scope> |
|
||||
</dependency> |
|
||||
<dependency> |
|
||||
<groupId>com.mojang</groupId> |
|
||||
<artifactId>authlib</artifactId> |
|
||||
<version>1.5.13</version> |
|
||||
<scope>provided</scope> |
|
||||
</dependency> |
|
||||
</dependencies> |
|
||||
</project> |
|
||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" |
||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
||||
|
<modelVersion>4.0.0</modelVersion> |
||||
|
|
||||
|
<groupId>com.entryrise</groupId> |
||||
|
<artifactId>coupons</artifactId> |
||||
|
<version>0.1</version> |
||||
|
<packaging>jar</packaging> |
||||
|
|
||||
|
<name>ERCoupons</name> |
||||
|
<url>http://maven.apache.org</url> |
||||
|
|
||||
|
<properties> |
||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
||||
|
<plugin.description>EntryRise coupon tool</plugin.description> |
||||
|
</properties> |
||||
|
|
||||
|
<build> |
||||
|
<finalName>${project.name}</finalName> |
||||
|
<directory>target</directory> |
||||
|
<sourceDirectory>src</sourceDirectory> |
||||
|
<resources> |
||||
|
<resource> |
||||
|
<directory>resources</directory> |
||||
|
<filtering>true</filtering> |
||||
|
<includes> |
||||
|
<include>*</include> |
||||
|
</includes> |
||||
|
</resource> |
||||
|
</resources> |
||||
|
<plugins> |
||||
|
<!-- Set a compiler level --> |
||||
|
<plugin> |
||||
|
<groupId>org.apache.maven.plugins</groupId> |
||||
|
<artifactId>maven-compiler-plugin</artifactId> |
||||
|
<version>2.3.2</version> |
||||
|
<configuration> |
||||
|
<source>1.8</source> |
||||
|
<target>1.8</target> |
||||
|
</configuration> |
||||
|
</plugin> |
||||
|
</plugins> |
||||
|
</build> |
||||
|
|
||||
|
<repositories> |
||||
|
<repository> |
||||
|
<id>spigot-repo</id> |
||||
|
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url> |
||||
|
</repository> |
||||
|
<repository> |
||||
|
<id>mikeprimm-repo</id> |
||||
|
<url>http://repo.mikeprimm.com/</url> |
||||
|
</repository> |
||||
|
</repositories> |
||||
|
|
||||
|
<dependencies> |
||||
|
<dependency> |
||||
|
<groupId>org.spigotmc</groupId> |
||||
|
<artifactId>spigot-api</artifactId> |
||||
|
<!-- Peasants don't update or use new features :D --> |
||||
|
<version>1.8.8-R0.1-SNAPSHOT</version> |
||||
|
<scope>provided</scope> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>com.mojang</groupId> |
||||
|
<artifactId>authlib</artifactId> |
||||
|
<version>1.5.13</version> |
||||
|
<scope>provided</scope> |
||||
|
</dependency> |
||||
|
</dependencies> |
||||
|
</project> |
||||
|
@ -1,63 +1,62 @@ |
|||||
package com.entryrise.coupons.mineutils; |
|
||||
|
|
||||
import java.lang.reflect.Field; |
|
||||
import java.util.Base64; |
|
||||
import java.util.UUID; |
|
||||
|
|
||||
import org.bukkit.Material; |
|
||||
import org.bukkit.inventory.ItemStack; |
|
||||
import org.bukkit.inventory.meta.ItemMeta; |
|
||||
import org.bukkit.inventory.meta.SkullMeta; |
|
||||
|
|
||||
import com.mojang.authlib.GameProfile; |
|
||||
import com.mojang.authlib.properties.Property; |
|
||||
|
|
||||
public class HeadUtils { |
|
||||
|
|
||||
public static ItemStack getSkull(String skinURL) { |
|
||||
ItemStack head = getSkullItem(); |
|
||||
if(skinURL.isEmpty())return head; |
|
||||
|
|
||||
|
|
||||
ItemMeta headMeta = head.getItemMeta(); |
|
||||
GameProfile profile = new GameProfile(UUID.randomUUID(), null); |
|
||||
byte[] encodedData = Base64.getEncoder().encode(String.format("{textures:{SKIN:{url:\"%s\"}}}", skinURL).getBytes()); |
|
||||
profile.getProperties().put("textures", new Property("textures", new String(encodedData))); |
|
||||
Field profileField = null; |
|
||||
try { |
|
||||
profileField = headMeta.getClass().getDeclaredField("profile"); |
|
||||
} catch (NoSuchFieldException | SecurityException e) { |
|
||||
e.printStackTrace(); |
|
||||
} |
|
||||
profileField.setAccessible(true); |
|
||||
try { |
|
||||
profileField.set(headMeta, profile); |
|
||||
} catch (IllegalArgumentException | IllegalAccessException e) { |
|
||||
e.printStackTrace(); |
|
||||
} |
|
||||
head.setItemMeta(headMeta); |
|
||||
return head; |
|
||||
} |
|
||||
|
|
||||
@SuppressWarnings("deprecation") |
|
||||
public static ItemStack getPlayerSkull(String username) { |
|
||||
ItemStack head = getSkullItem(); |
|
||||
ItemMeta imeta = head.getItemMeta(); |
|
||||
|
|
||||
SkullMeta smeta = (SkullMeta) imeta; |
|
||||
|
|
||||
smeta.setOwner(username); |
|
||||
head.setItemMeta(smeta); |
|
||||
return head; |
|
||||
} |
|
||||
|
|
||||
public static Material getSkull() { |
|
||||
Material mat = Material.getMaterial("SKULL_ITEM"); |
|
||||
|
|
||||
return (mat != null) ? mat : Material.getMaterial("PLAYER_HEAD"); |
|
||||
} |
|
||||
|
|
||||
public static ItemStack getSkullItem() { |
|
||||
return new ItemStack(getSkull(), 1, (short) 3); |
|
||||
} |
|
||||
} |
|
||||
|
package com.entryrise.coupons.mineutils; |
||||
|
|
||||
|
import java.lang.reflect.Field; |
||||
|
import java.util.Base64; |
||||
|
import java.util.UUID; |
||||
|
|
||||
|
import org.bukkit.Material; |
||||
|
import org.bukkit.inventory.ItemStack; |
||||
|
import org.bukkit.inventory.meta.ItemMeta; |
||||
|
import org.bukkit.inventory.meta.SkullMeta; |
||||
|
|
||||
|
import com.mojang.authlib.GameProfile; |
||||
|
import com.mojang.authlib.properties.Property; |
||||
|
|
||||
|
public class HeadUtils { |
||||
|
|
||||
|
public static ItemStack getSkull(String skinURL) { |
||||
|
ItemStack head = getSkullItem(); |
||||
|
if(skinURL.isEmpty())return head; |
||||
|
|
||||
|
|
||||
|
ItemMeta headMeta = head.getItemMeta(); |
||||
|
GameProfile profile = new GameProfile(UUID.randomUUID(), null); |
||||
|
byte[] encodedData = Base64.getEncoder().encode(String.format("{textures:{SKIN:{url:\"%s\"}}}", skinURL).getBytes()); |
||||
|
profile.getProperties().put("textures", new Property("textures", new String(encodedData))); |
||||
|
Field profileField = null; |
||||
|
try { |
||||
|
profileField = headMeta.getClass().getDeclaredField("profile"); |
||||
|
} catch (NoSuchFieldException | SecurityException e) { |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
profileField.setAccessible(true); |
||||
|
try { |
||||
|
profileField.set(headMeta, profile); |
||||
|
} catch (IllegalArgumentException | IllegalAccessException e) { |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
head.setItemMeta(headMeta); |
||||
|
return head; |
||||
|
} |
||||
|
|
||||
|
public static ItemStack getPlayerSkull(String username) { |
||||
|
ItemStack head = getSkullItem(); |
||||
|
ItemMeta imeta = head.getItemMeta(); |
||||
|
|
||||
|
SkullMeta smeta = (SkullMeta) imeta; |
||||
|
|
||||
|
smeta.setOwner(username); |
||||
|
head.setItemMeta(smeta); |
||||
|
return head; |
||||
|
} |
||||
|
|
||||
|
public static Material getSkull() { |
||||
|
Material mat = Material.getMaterial("SKULL_ITEM"); |
||||
|
|
||||
|
return (mat != null) ? mat : Material.getMaterial("PLAYER_HEAD"); |
||||
|
} |
||||
|
|
||||
|
public static ItemStack getSkullItem() { |
||||
|
return new ItemStack(getSkull(), 1, (short) 3); |
||||
|
} |
||||
|
} |
||||
|
Loading…
Reference in new issue