diff --git a/.travis.yml b/.travis.yml
index dff5f3a..bf018d2 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1 +1,4 @@
language: java
+jdk:
+ - oraclejdk8
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index f84cb96..9960a2d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,7 +11,9 @@
http://maven.apache.org
- src/main/java
+
+ src/main/java
src
@@ -89,6 +91,14 @@
+
@@ -117,6 +127,10 @@
Essentials
http://repo.ess3.net/content/repositories/essrel/
+
+ projectlombok.org
+ http://projectlombok.org/mavenrepo
+
@@ -129,7 +143,7 @@
org.spigotmc
spigot-api
- 1.11-R0.1-SNAPSHOT
+ 1.12-R0.1-SNAPSHOT
provided
@@ -154,7 +168,7 @@
com.github.milkbowl
VaultAPI
- master-SNAPSHOT
+ master-SNAPSHOT
provided
@@ -162,5 +176,17 @@
Essentials
2.13.1
+
+ com.github.xaanit
+ D4J-OAuth
+ master-SNAPSHOT
+
+
+
+ org.projectlombok
+ lombok
+ 1.16.16
+ provided
+
diff --git a/src/main/java/buttondevteam/discordplugin/DiscordConnectedPlayer.java b/src/main/java/buttondevteam/discordplugin/DiscordConnectedPlayer.java
new file mode 100644
index 0000000..0ac9e14
--- /dev/null
+++ b/src/main/java/buttondevteam/discordplugin/DiscordConnectedPlayer.java
@@ -0,0 +1,1854 @@
+package buttondevteam.discordplugin;
+
+import java.net.InetSocketAddress;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+
+import org.bukkit.Achievement;
+import org.bukkit.Effect;
+import org.bukkit.EntityEffect;
+import org.bukkit.GameMode;
+import org.bukkit.Instrument;
+import org.bukkit.Location;
+import org.bukkit.Material;
+import org.bukkit.Note;
+import org.bukkit.Particle;
+import org.bukkit.Server;
+import org.bukkit.Sound;
+import org.bukkit.SoundCategory;
+import org.bukkit.Statistic;
+import org.bukkit.WeatherType;
+import org.bukkit.World;
+import org.bukkit.advancement.Advancement;
+import org.bukkit.advancement.AdvancementProgress;
+import org.bukkit.attribute.Attribute;
+import org.bukkit.attribute.AttributeInstance;
+import org.bukkit.block.Block;
+import org.bukkit.block.PistonMoveReaction;
+import org.bukkit.conversations.Conversation;
+import org.bukkit.conversations.ConversationAbandonedEvent;
+import org.bukkit.entity.Entity;
+import org.bukkit.entity.EntityType;
+import org.bukkit.entity.Player;
+import org.bukkit.entity.Projectile;
+import org.bukkit.entity.Villager;
+import org.bukkit.event.entity.EntityDamageEvent;
+import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
+import org.bukkit.inventory.EntityEquipment;
+import org.bukkit.inventory.Inventory;
+import org.bukkit.inventory.InventoryView;
+import org.bukkit.inventory.InventoryView.Property;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.MainHand;
+import org.bukkit.inventory.Merchant;
+import org.bukkit.inventory.PlayerInventory;
+import org.bukkit.map.MapView;
+import org.bukkit.metadata.MetadataValue;
+import org.bukkit.permissions.Permission;
+import org.bukkit.permissions.PermissionAttachment;
+import org.bukkit.permissions.PermissionAttachmentInfo;
+import org.bukkit.plugin.Plugin;
+import org.bukkit.potion.PotionEffect;
+import org.bukkit.potion.PotionEffectType;
+import org.bukkit.scoreboard.Scoreboard;
+import org.bukkit.util.Vector;
+
+public class DiscordConnectedPlayer implements Player {
+
+ @Override
+ public void closeInventory() {
+ }
+
+ @Override
+ public int getCooldown(Material arg0) {
+ return 0;
+ }
+
+ @Override
+ public Inventory getEnderChest() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public int getExpToLevel() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public GameMode getGameMode() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public PlayerInventory getInventory() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public ItemStack getItemInHand() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public ItemStack getItemOnCursor() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public MainHand getMainHand() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String getName() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public InventoryView getOpenInventory() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Entity getShoulderEntityLeft() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Entity getShoulderEntityRight() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public int getSleepTicks() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public boolean hasCooldown(Material arg0) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isBlocking() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isHandRaised() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isSleeping() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public InventoryView openEnchanting(Location arg0, boolean arg1) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public InventoryView openInventory(Inventory arg0) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void openInventory(InventoryView arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public InventoryView openMerchant(Villager arg0, boolean arg1) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public InventoryView openMerchant(Merchant arg0, boolean arg1) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public InventoryView openWorkbench(Location arg0, boolean arg1) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void setCooldown(Material arg0, int arg1) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setGameMode(GameMode arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setItemInHand(ItemStack arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setItemOnCursor(ItemStack arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setShoulderEntityLeft(Entity arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setShoulderEntityRight(Entity arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public boolean setWindowProperty(Property arg0, int arg1) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean addPotionEffect(PotionEffect arg0) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean addPotionEffect(PotionEffect arg0, boolean arg1) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean addPotionEffects(Collection arg0) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public Collection getActivePotionEffects() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public boolean getCanPickupItems() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public EntityEquipment getEquipment() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public double getEyeHeight() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public double getEyeHeight(boolean arg0) {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public Location getEyeLocation() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Player getKiller() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public double getLastDamage() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public List getLastTwoTargetBlocks(HashSet arg0, int arg1) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public List getLastTwoTargetBlocks(Set arg0, int arg1) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Entity getLeashHolder() throws IllegalStateException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public List getLineOfSight(Set arg0, int arg1) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public int getMaximumAir() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public int getMaximumNoDamageTicks() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public int getNoDamageTicks() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public PotionEffect getPotionEffect(PotionEffectType arg0) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public int getRemainingAir() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public boolean getRemoveWhenFarAway() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public Block getTargetBlock(HashSet arg0, int arg1) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Block getTargetBlock(Set arg0, int arg1) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public boolean hasAI() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean hasLineOfSight(Entity arg0) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean hasPotionEffect(PotionEffectType arg0) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isCollidable() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isGliding() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isLeashed() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public void removePotionEffect(PotionEffectType arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setAI(boolean arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setCanPickupItems(boolean arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setCollidable(boolean arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setGliding(boolean arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setLastDamage(double arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public boolean setLeashHolder(Entity arg0) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public void setMaximumAir(int arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setMaximumNoDamageTicks(int arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setNoDamageTicks(int arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setRemainingAir(int arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setRemoveWhenFarAway(boolean arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public AttributeInstance getAttribute(Attribute arg0) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public boolean addPassenger(Entity arg0) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean addScoreboardTag(String arg0) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean eject() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public int getEntityId() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public float getFallDistance() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public int getFireTicks() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public double getHeight() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public EntityDamageEvent getLastDamageCause() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Location getLocation() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Location getLocation(Location arg0) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public int getMaxFireTicks() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public List getNearbyEntities(double arg0, double arg1, double arg2) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Entity getPassenger() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public List getPassengers() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public PistonMoveReaction getPistonMoveReaction() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public int getPortalCooldown() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public Set getScoreboardTags() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Server getServer() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public int getTicksLived() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public EntityType getType() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public UUID getUniqueId() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Entity getVehicle() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Vector getVelocity() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public double getWidth() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public World getWorld() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public boolean hasGravity() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isCustomNameVisible() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isDead() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isEmpty() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isGlowing() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isInsideVehicle() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isInvulnerable() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isOnGround() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isSilent() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isValid() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean leaveVehicle() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public void playEffect(EntityEffect arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void remove() {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public boolean removePassenger(Entity arg0) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean removeScoreboardTag(String arg0) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public void setCustomNameVisible(boolean arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setFallDistance(float arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setFireTicks(int arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setGlowing(boolean arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setGravity(boolean arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setInvulnerable(boolean arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setLastDamageCause(EntityDamageEvent arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public boolean setPassenger(Entity arg0) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public void setPortalCooldown(int arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setSilent(boolean arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setTicksLived(int arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setVelocity(Vector arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public boolean teleport(Location arg0) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean teleport(Entity arg0) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean teleport(Location arg0, TeleportCause arg1) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean teleport(Entity arg0, TeleportCause arg1) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public List getMetadata(String arg0) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public boolean hasMetadata(String arg0) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public void removeMetadata(String arg0, Plugin arg1) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setMetadata(String arg0, MetadataValue arg1) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void sendMessage(String arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void sendMessage(String[] arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public PermissionAttachment addAttachment(Plugin arg0) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public PermissionAttachment addAttachment(Plugin arg0, int arg1) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public PermissionAttachment addAttachment(Plugin arg0, String arg1, boolean arg2) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public PermissionAttachment addAttachment(Plugin arg0, String arg1, boolean arg2, int arg3) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Set getEffectivePermissions() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public boolean hasPermission(String arg0) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean hasPermission(Permission arg0) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isPermissionSet(String arg0) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isPermissionSet(Permission arg0) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public void recalculatePermissions() {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void removeAttachment(PermissionAttachment arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public boolean isOp() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public void setOp(boolean arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public String getCustomName() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void setCustomName(String arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void damage(double arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void damage(double arg0, Entity arg1) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public double getHealth() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public double getMaxHealth() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public void resetMaxHealth() {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setHealth(double arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setMaxHealth(double arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public T launchProjectile(Class extends T> arg0) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public T launchProjectile(Class extends T> arg0, Vector arg1) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void abandonConversation(Conversation arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void abandonConversation(Conversation arg0, ConversationAbandonedEvent arg1) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void acceptConversationInput(String arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public boolean beginConversation(Conversation arg0) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isConversing() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public long getFirstPlayed() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public long getLastPlayed() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public Player getPlayer() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public boolean hasPlayedBefore() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isBanned() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isOnline() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isWhitelisted() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public void setWhitelisted(boolean arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public Map serialize() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Set getListeningPluginChannels() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void sendPluginMessage(Plugin arg0, String arg1, byte[] arg2) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void awardAchievement(Achievement arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public boolean canSee(Player arg0) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public void chat(String arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void decrementStatistic(Statistic arg0) throws IllegalArgumentException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void decrementStatistic(Statistic arg0, int arg1) throws IllegalArgumentException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void decrementStatistic(Statistic arg0, Material arg1) throws IllegalArgumentException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void decrementStatistic(Statistic arg0, EntityType arg1) throws IllegalArgumentException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void decrementStatistic(Statistic arg0, Material arg1, int arg2) throws IllegalArgumentException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void decrementStatistic(Statistic arg0, EntityType arg1, int arg2) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public InetSocketAddress getAddress() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public AdvancementProgress getAdvancementProgress(Advancement arg0) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public boolean getAllowFlight() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public Location getBedSpawnLocation() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Location getCompassTarget() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String getDisplayName() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public float getExhaustion() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public float getExp() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public float getFlySpeed() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public int getFoodLevel() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public double getHealthScale() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public int getLevel() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public String getLocale() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String getPlayerListName() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public long getPlayerTime() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public long getPlayerTimeOffset() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public WeatherType getPlayerWeather() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public float getSaturation() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public Scoreboard getScoreboard() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Entity getSpectatorTarget() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public int getStatistic(Statistic arg0) throws IllegalArgumentException {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public int getStatistic(Statistic arg0, Material arg1) throws IllegalArgumentException {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public int getStatistic(Statistic arg0, EntityType arg1) throws IllegalArgumentException {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public int getTotalExperience() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public float getWalkSpeed() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public void giveExp(int arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void giveExpLevels(int arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public boolean hasAchievement(Achievement arg0) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public void hidePlayer(Player arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void incrementStatistic(Statistic arg0) throws IllegalArgumentException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void incrementStatistic(Statistic arg0, int arg1) throws IllegalArgumentException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void incrementStatistic(Statistic arg0, Material arg1) throws IllegalArgumentException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void incrementStatistic(Statistic arg0, EntityType arg1) throws IllegalArgumentException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void incrementStatistic(Statistic arg0, Material arg1, int arg2) throws IllegalArgumentException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void incrementStatistic(Statistic arg0, EntityType arg1, int arg2) throws IllegalArgumentException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public boolean isFlying() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isHealthScaled() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isPlayerTimeRelative() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isSleepingIgnored() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isSneaking() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isSprinting() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public void kickPlayer(String arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void loadData() {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public boolean performCommand(String arg0) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public void playEffect(Location arg0, Effect arg1, int arg2) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void playEffect(Location arg0, Effect arg1, T arg2) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void playNote(Location arg0, byte arg1, byte arg2) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void playNote(Location arg0, Instrument arg1, Note arg2) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void playSound(Location arg0, Sound arg1, float arg2, float arg3) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void playSound(Location arg0, String arg1, float arg2, float arg3) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void playSound(Location arg0, Sound arg1, SoundCategory arg2, float arg3, float arg4) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void playSound(Location arg0, String arg1, SoundCategory arg2, float arg3, float arg4) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void removeAchievement(Achievement arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void resetPlayerTime() {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void resetPlayerWeather() {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void resetTitle() {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void saveData() {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void sendBlockChange(Location arg0, Material arg1, byte arg2) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void sendBlockChange(Location arg0, int arg1, byte arg2) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public boolean sendChunkChange(Location arg0, int arg1, int arg2, int arg3, byte[] arg4) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public void sendMap(MapView arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void sendRawMessage(String arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void sendSignChange(Location arg0, String[] arg1) throws IllegalArgumentException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void sendTitle(String arg0, String arg1) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void sendTitle(String arg0, String arg1, int arg2, int arg3, int arg4) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setAllowFlight(boolean arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setBedSpawnLocation(Location arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setBedSpawnLocation(Location arg0, boolean arg1) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setCompassTarget(Location arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setDisplayName(String arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setExhaustion(float arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setExp(float arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setFlySpeed(float arg0) throws IllegalArgumentException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setFlying(boolean arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setFoodLevel(int arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setHealthScale(double arg0) throws IllegalArgumentException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setHealthScaled(boolean arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setLevel(int arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setPlayerListName(String arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setPlayerTime(long arg0, boolean arg1) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setPlayerWeather(WeatherType arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setResourcePack(String arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setResourcePack(String arg0, byte[] arg1) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setSaturation(float arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setScoreboard(Scoreboard arg0) throws IllegalArgumentException, IllegalStateException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setSleepingIgnored(boolean arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setSneaking(boolean arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setSpectatorTarget(Entity arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setSprinting(boolean arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setStatistic(Statistic arg0, int arg1) throws IllegalArgumentException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setStatistic(Statistic arg0, Material arg1, int arg2) throws IllegalArgumentException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setStatistic(Statistic arg0, EntityType arg1, int arg2) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setTexturePack(String arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setTotalExperience(int arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setWalkSpeed(float arg0) throws IllegalArgumentException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void showPlayer(Player arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void spawnParticle(Particle arg0, Location arg1, int arg2) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void spawnParticle(Particle arg0, Location arg1, int arg2, T arg3) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void spawnParticle(Particle arg0, double arg1, double arg2, double arg3, int arg4) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void spawnParticle(Particle arg0, double arg1, double arg2, double arg3, int arg4, T arg5) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void spawnParticle(Particle arg0, Location arg1, int arg2, double arg3, double arg4, double arg5) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void spawnParticle(Particle arg0, Location arg1, int arg2, double arg3, double arg4, double arg5,
+ T arg6) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void spawnParticle(Particle arg0, Location arg1, int arg2, double arg3, double arg4, double arg5,
+ double arg6) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void spawnParticle(Particle arg0, double arg1, double arg2, double arg3, int arg4, double arg5, double arg6,
+ double arg7) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void spawnParticle(Particle arg0, Location arg1, int arg2, double arg3, double arg4, double arg5,
+ double arg6, T arg7) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void spawnParticle(Particle arg0, double arg1, double arg2, double arg3, int arg4, double arg5,
+ double arg6, double arg7, T arg8) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void spawnParticle(Particle arg0, double arg1, double arg2, double arg3, int arg4, double arg5, double arg6,
+ double arg7, double arg8) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void spawnParticle(Particle arg0, double arg1, double arg2, double arg3, int arg4, double arg5,
+ double arg6, double arg7, double arg8, T arg9) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void stopSound(Sound arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void stopSound(String arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void stopSound(Sound arg0, SoundCategory arg1) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void stopSound(String arg0, SoundCategory arg1) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void updateInventory() {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public Spigot spigot() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
diff --git a/src/main/java/buttondevteam/discordplugin/DiscordPlayer.java b/src/main/java/buttondevteam/discordplugin/DiscordPlayer.java
index 5389a42..48d957a 100644
--- a/src/main/java/buttondevteam/discordplugin/DiscordPlayer.java
+++ b/src/main/java/buttondevteam/discordplugin/DiscordPlayer.java
@@ -1,6 +1,7 @@
package buttondevteam.discordplugin;
import buttondevteam.lib.player.ChromaGamerBase;
+import buttondevteam.lib.player.PlayerData;
import buttondevteam.lib.player.UserClass;
@UserClass(foldername = "discord")
@@ -15,4 +16,8 @@ public class DiscordPlayer extends ChromaGamerBase {
did = plugindata.getString(getFolder() + "_id");
return did;
}
+
+ public PlayerData minecraftChat() {
+ return data(false);
+ }
}
diff --git a/src/main/java/buttondevteam/discordplugin/DiscordPlayerSender.java b/src/main/java/buttondevteam/discordplugin/DiscordPlayerSender.java
index de9caea..3edf995 100644
--- a/src/main/java/buttondevteam/discordplugin/DiscordPlayerSender.java
+++ b/src/main/java/buttondevteam/discordplugin/DiscordPlayerSender.java
@@ -1,11 +1,20 @@
package buttondevteam.discordplugin;
import java.net.InetSocketAddress;
-import java.util.*;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+
import org.bukkit.*;
+import org.bukkit.advancement.Advancement;
+import org.bukkit.advancement.AdvancementProgress;
import org.bukkit.attribute.Attribute;
import org.bukkit.attribute.AttributeInstance;
import org.bukkit.block.Block;
+import org.bukkit.block.PistonMoveReaction;
import org.bukkit.conversations.Conversation;
import org.bukkit.conversations.ConversationAbandonedEvent;
import org.bukkit.entity.*;
@@ -27,7 +36,11 @@ import sx.blah.discord.handle.obj.IUser;
@SuppressWarnings("deprecation")
public class DiscordPlayerSender extends DiscordSenderBase implements Player {
- private Player player;
+
+ protected Player player;
+ // protected @Delegate(excludes = ProjectileSource.class) Player player;
+ // protected @Delegate(excludes = { ProjectileSource.class, Permissible.class }) Player player;
+ // protected @Delegate(excludes = { ProjectileSource.class, CommandSender.class }) Player player;
public DiscordPlayerSender(IUser user, IChannel channel, Player player) {
super(user, channel);
@@ -35,1482 +48,1197 @@ public class DiscordPlayerSender extends DiscordSenderBase implements Player {
}
@Override
- public boolean isPermissionSet(String name) {
- return player.isPermissionSet(name);
+ public T launchProjectile(Class extends T> arg0) {
+ return player.launchProjectile(arg0);
}
@Override
- public boolean isPermissionSet(Permission perm) {
- return this.player.isPermissionSet(perm);
+ public T launchProjectile(Class extends T> arg0, Vector arg1) {
+ return player.launchProjectile(arg0, arg1);
}
- @Override
- public boolean hasPermission(String name) {
- return player.hasPermission(name);
+ public String getCustomName() {
+ return player.getCustomName();
}
- @Override
- public boolean hasPermission(Permission perm) {
- return this.player.hasPermission(perm);
+ public AttributeInstance getAttribute(Attribute attribute) {
+ return player.getAttribute(attribute);
}
- @Override
- public PermissionAttachment addAttachment(Plugin plugin, String name, boolean value) {
- return player.addAttachment(plugin, name, value);
+ public void damage(double amount) {
+ player.damage(amount);
}
- @Override
- public PermissionAttachment addAttachment(Plugin plugin) {
- return player.addAttachment(plugin);
- }
-
- @Override
- public PermissionAttachment addAttachment(Plugin plugin, String name, boolean value, int ticks) {
- return player.addAttachment(plugin, name, value, ticks);
- }
-
- @Override
- public PermissionAttachment addAttachment(Plugin plugin, int ticks) {
- return player.addAttachment(plugin, ticks);
- }
-
- @Override
- public void removeAttachment(PermissionAttachment attachment) {
- player.removeAttachment(attachment);
- }
-
- @Override
- public void recalculatePermissions() {
- player.recalculatePermissions();
- }
-
- @Override
- public Set getEffectivePermissions() {
- return player.getEffectivePermissions();
- }
-
- @Override
public boolean isOp() {
return player.isOp();
}
- @Override
+ public void sendPluginMessage(Plugin source, String channel, byte[] message) {
+ player.sendPluginMessage(source, channel, message);
+ }
+
+ public boolean isConversing() {
+ return player.isConversing();
+ }
+
+ public boolean isPermissionSet(String name) {
+ return player.isPermissionSet(name);
+ }
+
+ public void setMetadata(String metadataKey, MetadataValue newMetadataValue) {
+ player.setMetadata(metadataKey, newMetadataValue);
+ }
+
+ public void damage(double amount, Entity source) {
+ player.damage(amount, source);
+ }
+
+ public boolean isOnline() {
+ return player.isOnline();
+ }
+
+ public void setCustomName(String name) {
+ player.setCustomName(name);
+ }
+
public void setOp(boolean value) {
player.setOp(value);
}
- @Override
- public Server getServer() {
- return Bukkit.getServer();
+ public void acceptConversationInput(String input) {
+ player.acceptConversationInput(input);
+ }
+
+ public boolean isPermissionSet(Permission perm) {
+ return player.isPermissionSet(perm);
+ }
+
+ public double getEyeHeight() {
+ return player.getEyeHeight();
}
- @Override
public String getName() {
return player.getName();
}
- // Find: " (\w+)\(\) \{\s+\/\/ TO\DO Auto-generated method stub\s+return null;" - Replace: " $1() { return player.$1();"
- @Override
+ public double getHealth() {
+ return player.getHealth();
+ }
+
+ public List getMetadata(String metadataKey) {
+ return player.getMetadata(metadataKey);
+ }
+
+ public Location getLocation() {
+ return player.getLocation();
+ }
+
+ public boolean beginConversation(Conversation conversation) {
+ return player.beginConversation(conversation);
+ }
+
+ public PlayerInventory getInventory() {
+ return player.getInventory();
+ }
+
+ public boolean hasPermission(String name) {
+ return player.hasPermission(name);
+ }
+
+ public double getEyeHeight(boolean ignoreSneaking) {
+ return player.getEyeHeight(ignoreSneaking);
+ }
+
+ public void setHealth(double health) {
+ player.setHealth(health);
+ }
+
+ public Location getLocation(Location loc) {
+ return player.getLocation(loc);
+ }
+
+ public Map serialize() {
+ return player.serialize();
+ }
+
+ public Inventory getEnderChest() {
+ return player.getEnderChest();
+ }
+
+ public boolean isBanned() {
+ return player.isBanned();
+ }
+
+ public void abandonConversation(Conversation conversation) {
+ player.abandonConversation(conversation);
+ }
+
+ public boolean hasMetadata(String metadataKey) {
+ return player.hasMetadata(metadataKey);
+ }
+
public String getDisplayName() {
return player.getDisplayName();
}
- // Find: " (\w+)\((\w+) (\w+)\) \{\s+\/\/ TO\DO Auto-generated method stub\s" - Replace: " $1($2 $3) { player.$1($3);"
- @Override
+ public MainHand getMainHand() {
+ return player.getMainHand();
+ }
+
+ public Location getEyeLocation() {
+ return player.getEyeLocation();
+ }
+
+ public boolean isWhitelisted() {
+ return player.isWhitelisted();
+ }
+
+ public boolean hasPermission(Permission perm) {
+ return player.hasPermission(perm);
+ }
+
+ public Set getListeningPluginChannels() {
+ return player.getListeningPluginChannels();
+ }
+
+ public double getMaxHealth() {
+ return player.getMaxHealth();
+ }
+
+ public void abandonConversation(Conversation conversation, ConversationAbandonedEvent details) {
+ player.abandonConversation(conversation, details);
+ }
+
+ public void setVelocity(Vector velocity) {
+ player.setVelocity(velocity);
+ }
+
+ public boolean setWindowProperty(Property prop, int value) {
+ return player.setWindowProperty(prop, value);
+ }
+
+ public void setWhitelisted(boolean value) {
+ player.setWhitelisted(value);
+ }
+
+ public void removeMetadata(String metadataKey, Plugin owningPlugin) {
+ player.removeMetadata(metadataKey, owningPlugin);
+ }
+
+ public List getLineOfSight(Set transparent, int maxDistance) {
+ return player.getLineOfSight(transparent, maxDistance);
+ }
+
public void setDisplayName(String name) {
player.setDisplayName(name);
}
- @Override
+ public Vector getVelocity() {
+ return player.getVelocity();
+ }
+
+ public void setMaxHealth(double health) {
+ player.setMaxHealth(health);
+ }
+
+ public Player getPlayer() {
+ return player.getPlayer();
+ }
+
+ public PermissionAttachment addAttachment(Plugin plugin, String name, boolean value) {
+ return player.addAttachment(plugin, name, value);
+ }
+
+ public double getHeight() {
+ return player.getHeight();
+ }
+
+ public double getWidth() {
+ return player.getWidth();
+ }
+
+ public InventoryView getOpenInventory() {
+ return player.getOpenInventory();
+ }
+
public String getPlayerListName() {
return player.getPlayerListName();
}
- @Override
+ public long getFirstPlayed() {
+ return player.getFirstPlayed();
+ }
+
+ public boolean isOnGround() {
+ return player.isOnGround();
+ }
+
public void setPlayerListName(String name) {
player.setPlayerListName(name);
}
- @Override
+ public void resetMaxHealth() {
+ player.resetMaxHealth();
+ }
+
+ public InventoryView openInventory(Inventory inventory) {
+ return player.openInventory(inventory);
+ }
+
+ public PermissionAttachment addAttachment(Plugin plugin) {
+ return player.addAttachment(plugin);
+ }
+
+ public Block getTargetBlock(HashSet transparent, int maxDistance) {
+ return player.getTargetBlock(transparent, maxDistance);
+ }
+
+ public World getWorld() {
+ return player.getWorld();
+ }
+
+ public long getLastPlayed() {
+ return player.getLastPlayed();
+ }
+
+ public boolean teleport(Location location) {
+ return player.teleport(location);
+ }
+
+ public InventoryView openWorkbench(Location location, boolean force) {
+ return player.openWorkbench(location, force);
+ }
+
+ public PermissionAttachment addAttachment(Plugin plugin, String name, boolean value, int ticks) {
+ return player.addAttachment(plugin, name, value, ticks);
+ }
+
+ public boolean teleport(Location location, TeleportCause cause) {
+ return player.teleport(location, cause);
+ }
+
+ public Block getTargetBlock(Set transparent, int maxDistance) {
+ return player.getTargetBlock(transparent, maxDistance);
+ }
+
+ public boolean hasPlayedBefore() {
+ return player.hasPlayedBefore();
+ }
+
+ public InventoryView openEnchanting(Location location, boolean force) {
+ return player.openEnchanting(location, force);
+ }
+
+ public PermissionAttachment addAttachment(Plugin plugin, int ticks) {
+ return player.addAttachment(plugin, ticks);
+ }
+
+ public boolean teleport(Entity destination) {
+ return player.teleport(destination);
+ }
+
public void setCompassTarget(Location loc) {
player.setCompassTarget(loc);
}
- @Override
+ public List getLastTwoTargetBlocks(HashSet transparent, int maxDistance) {
+ return player.getLastTwoTargetBlocks(transparent, maxDistance);
+ }
+
public Location getCompassTarget() {
return player.getCompassTarget();
}
- @Override
public InetSocketAddress getAddress() {
return player.getAddress();
}
- @Override
+ public boolean teleport(Entity destination, TeleportCause cause) {
+ return player.teleport(destination, cause);
+ }
+
+ public void openInventory(InventoryView inventory) {
+ player.openInventory(inventory);
+ }
+
+ public void removeAttachment(PermissionAttachment attachment) {
+ player.removeAttachment(attachment);
+ }
+
public void sendRawMessage(String message) {
player.sendRawMessage(message);
}
- @Override
+ public InventoryView openMerchant(Villager trader, boolean force) {
+ return player.openMerchant(trader, force);
+ }
+
public void kickPlayer(String message) {
player.kickPlayer(message);
}
- @Override
+ public List getLastTwoTargetBlocks(Set transparent, int maxDistance) {
+ return player.getLastTwoTargetBlocks(transparent, maxDistance);
+ }
+
+ public void recalculatePermissions() {
+ player.recalculatePermissions();
+ }
+
+ public List getNearbyEntities(double x, double y, double z) {
+ return player.getNearbyEntities(x, y, z);
+ }
+
public void chat(String msg) {
player.chat(msg);
}
- @Override
public boolean performCommand(String command) {
return player.performCommand(command);
}
- // Find: " (\w+)\(\) \{\s+\/\/ TO\DO Auto-generated method stub\s+return false;" - Replace: " $1() { return player.$1();"
- @Override
+ public Set getEffectivePermissions() {
+ return player.getEffectivePermissions();
+ }
+
+ public InventoryView openMerchant(Merchant merchant, boolean force) {
+ return player.openMerchant(merchant, force);
+ }
+
public boolean isSneaking() {
return player.isSneaking();
}
- @Override
+ public int getEntityId() {
+ return player.getEntityId();
+ }
+
public void setSneaking(boolean sneak) {
player.setSneaking(sneak);
}
- @Override
+ public int getFireTicks() {
+ return player.getFireTicks();
+ }
+
+ public int getRemainingAir() {
+ return player.getRemainingAir();
+ }
+
public boolean isSprinting() {
return player.isSprinting();
}
- @Override
+ public int getMaxFireTicks() {
+ return player.getMaxFireTicks();
+ }
+
+ public void setRemainingAir(int ticks) {
+ player.setRemainingAir(ticks);
+ }
+
public void setSprinting(boolean sprinting) {
player.setSprinting(sprinting);
}
- @Override
+ public void setFireTicks(int ticks) {
+ player.setFireTicks(ticks);
+ }
+
+ public void closeInventory() {
+ player.closeInventory();
+ }
+
+ public int getMaximumAir() {
+ return player.getMaximumAir();
+ }
+
+ public ItemStack getItemInHand() {
+ return player.getItemInHand();
+ }
+
public void saveData() {
player.saveData();
}
- @Override
+ public void remove() {
+ player.remove();
+ }
+
+ public void setMaximumAir(int ticks) {
+ player.setMaximumAir(ticks);
+ }
+
+ public boolean isDead() {
+ return player.isDead();
+ }
+
public void loadData() {
player.loadData();
}
- @Override
+ public boolean isValid() {
+ return player.isValid();
+ }
+
+ public int getMaximumNoDamageTicks() {
+ return player.getMaximumNoDamageTicks();
+ }
+
+ public void setItemInHand(ItemStack item) {
+ player.setItemInHand(item);
+ }
+
+ public Server getServer() {
+ return player.getServer();
+ }
+
+ public void setMaximumNoDamageTicks(int ticks) {
+ player.setMaximumNoDamageTicks(ticks);
+ }
+
public void setSleepingIgnored(boolean isSleeping) {
player.setSleepingIgnored(isSleeping);
}
- @Override
+ public Entity getPassenger() {
+ return player.getPassenger();
+ }
+
+ public ItemStack getItemOnCursor() {
+ return player.getItemOnCursor();
+ }
+
+ public double getLastDamage() {
+ return player.getLastDamage();
+ }
+
+ public boolean setPassenger(Entity passenger) {
+ return player.setPassenger(passenger);
+ }
+
+ public void setItemOnCursor(ItemStack item) {
+ player.setItemOnCursor(item);
+ }
+
public boolean isSleepingIgnored() {
return player.isSleepingIgnored();
}
- // Find: " (\w+)\((\w+) (\w+), (\w+) (\w+), (\w+) (\w+)\) \{\s+\/\/ TO\DO Auto-generated method stub\s" - Replace: " $1($2 $3, $4 $5, $6 $7) { player.$1($3, $5, $7);"
- @Override
+ public void setLastDamage(double damage) {
+ player.setLastDamage(damage);
+ }
+
public void playNote(Location loc, byte instrument, byte note) {
player.playNote(loc, instrument, note);
}
- @Override
+ public boolean hasCooldown(Material material) {
+ return player.hasCooldown(material);
+ }
+
+ public int getNoDamageTicks() {
+ return player.getNoDamageTicks();
+ }
+
+ public List getPassengers() {
+ return player.getPassengers();
+ }
+
+ public void setNoDamageTicks(int ticks) {
+ player.setNoDamageTicks(ticks);
+ }
+
+ public int getCooldown(Material material) {
+ return player.getCooldown(material);
+ }
+
public void playNote(Location loc, Instrument instrument, Note note) {
player.playNote(loc, instrument, note);
}
- // Find: " (\w+)\((\w+) (\w+), (\w+) (\w+), (\w+) (\w+), (\w+) (\w+)\) \{\s+\/\/ TO\DO Auto-generated method stub\s" - Replace: " $1($2 $3, $4 $5, $6 $7, $8 $9) { player.$1($3, $5, $7, $9);"
- @Override
+ public Player getKiller() {
+ return player.getKiller();
+ }
+
+ public boolean addPassenger(Entity passenger) {
+ return player.addPassenger(passenger);
+ }
+
+ public void setCooldown(Material material, int ticks) {
+ player.setCooldown(material, ticks);
+ }
+
+ public boolean addPotionEffect(PotionEffect effect) {
+ return player.addPotionEffect(effect);
+ }
+
+ public boolean removePassenger(Entity passenger) {
+ return player.removePassenger(passenger);
+ }
+
public void playSound(Location location, Sound sound, float volume, float pitch) {
player.playSound(location, sound, volume, pitch);
}
- @Override
+ public boolean isEmpty() {
+ return player.isEmpty();
+ }
+
+ public boolean addPotionEffect(PotionEffect effect, boolean force) {
+ return player.addPotionEffect(effect, force);
+ }
+
+ public boolean eject() {
+ return player.eject();
+ }
+
+ public boolean isSleeping() {
+ return player.isSleeping();
+ }
+
+ public float getFallDistance() {
+ return player.getFallDistance();
+ }
+
public void playSound(Location location, String sound, float volume, float pitch) {
player.playSound(location, sound, volume, pitch);
}
- // Find: " (\w+)\((\w+) (\w+), (\w+) (\w+), (\w+) (\w+), (\w+) (\w+), (\w+) (\w+)\) \{\s+\/\/ TO\DO Auto-generated method stub\s" - Replace: " $1($2 $3, $4 $5, $6 $7, $8 $9, $10 $11) {
- // player.$1($3, $5, $7, $9, $11);"
- @Override
+ public int getSleepTicks() {
+ return player.getSleepTicks();
+ }
+
+ public void setFallDistance(float distance) {
+ player.setFallDistance(distance);
+ }
+
+ public boolean addPotionEffects(Collection effects) {
+ return player.addPotionEffects(effects);
+ }
+
+ public GameMode getGameMode() {
+ return player.getGameMode();
+ }
+
+ public void setLastDamageCause(EntityDamageEvent event) {
+ player.setLastDamageCause(event);
+ }
+
+ public void setGameMode(GameMode mode) {
+ player.setGameMode(mode);
+ }
+
+ public EntityDamageEvent getLastDamageCause() {
+ return player.getLastDamageCause();
+ }
+
+ public boolean hasPotionEffect(PotionEffectType type) {
+ return player.hasPotionEffect(type);
+ }
+
+ public boolean isBlocking() {
+ return player.isBlocking();
+ }
+
public void playSound(Location location, Sound sound, SoundCategory category, float volume, float pitch) {
player.playSound(location, sound, category, volume, pitch);
}
- @Override
+ public boolean isHandRaised() {
+ return player.isHandRaised();
+ }
+
+ public UUID getUniqueId() {
+ return player.getUniqueId();
+ }
+
+ public PotionEffect getPotionEffect(PotionEffectType type) {
+ return player.getPotionEffect(type);
+ }
+
+ public int getTicksLived() {
+ return player.getTicksLived();
+ }
+
+ public int getExpToLevel() {
+ return player.getExpToLevel();
+ }
+
+ public Entity getShoulderEntityLeft() {
+ return player.getShoulderEntityLeft();
+ }
+
+ public void setTicksLived(int value) {
+ player.setTicksLived(value);
+ }
+
public void playSound(Location location, String sound, SoundCategory category, float volume, float pitch) {
player.playSound(location, sound, category, volume, pitch);
}
- @Override
+ public void removePotionEffect(PotionEffectType type) {
+ player.removePotionEffect(type);
+ }
+
+ public void playEffect(EntityEffect type) {
+ player.playEffect(type);
+ }
+
+ public Collection getActivePotionEffects() {
+ return player.getActivePotionEffects();
+ }
+
+ public void setShoulderEntityLeft(Entity entity) {
+ player.setShoulderEntityLeft(entity);
+ }
+
+ public boolean hasLineOfSight(Entity other) {
+ return player.hasLineOfSight(other);
+ }
+
+ public EntityType getType() {
+ return player.getType();
+ }
+
+ public boolean isInsideVehicle() {
+ return player.isInsideVehicle();
+ }
+
public void stopSound(Sound sound) {
player.stopSound(sound);
}
- @Override
+ public boolean leaveVehicle() {
+ return player.leaveVehicle();
+ }
+
public void stopSound(String sound) {
player.stopSound(sound);
}
- @Override
+ public boolean getRemoveWhenFarAway() {
+ return player.getRemoveWhenFarAway();
+ }
+
public void stopSound(Sound sound, SoundCategory category) {
player.stopSound(sound, category);
}
- @Override
+ public Entity getVehicle() {
+ return player.getVehicle();
+ }
+
+ public Entity getShoulderEntityRight() {
+ return player.getShoulderEntityRight();
+ }
+
+ public void setRemoveWhenFarAway(boolean remove) {
+ player.setRemoveWhenFarAway(remove);
+ }
+
public void stopSound(String sound, SoundCategory category) {
player.stopSound(sound, category);
}
- @Override
+ public void setCustomNameVisible(boolean flag) {
+ player.setCustomNameVisible(flag);
+ }
+
+ public EntityEquipment getEquipment() {
+ return player.getEquipment();
+ }
+
public void playEffect(Location loc, Effect effect, int data) {
player.playEffect(loc, effect, data);
}
- @Override
+ public void setCanPickupItems(boolean pickup) {
+ player.setCanPickupItems(pickup);
+ }
+
+ public void setShoulderEntityRight(Entity entity) {
+ player.setShoulderEntityRight(entity);
+ }
+
+ public boolean isCustomNameVisible() {
+ return player.isCustomNameVisible();
+ }
+
public void playEffect(Location loc, Effect effect, T data) {
player.playEffect(loc, effect, data);
}
- @Override
+ public boolean getCanPickupItems() {
+ return player.getCanPickupItems();
+ }
+
+ public void setGlowing(boolean flag) {
+ player.setGlowing(flag);
+ }
+
+ public boolean isLeashed() {
+ return player.isLeashed();
+ }
+
public void sendBlockChange(Location loc, Material material, byte data) {
player.sendBlockChange(loc, material, data);
}
- // Find: " (\w+)\((\w+) (\w+), (\w+) (\w+), (\w+) (\w+), (\w+) (\w+), (\w+) (\w+), (\w+) (\w+)\) \{\s+\/\/ TO\DO Auto-generated method stub\s" - Replace: " $1($2 $3, $4 $5, $6 $7, $8 $9, $10 $11,
- // $12 $13) { player.$1($3, $5, $7, $9, $11, $13);"
+ public boolean isGlowing() {
+ return player.isGlowing();
+ }
+
+ public Entity getLeashHolder() throws IllegalStateException {
+ return player.getLeashHolder();
+ }
+
+ public void setInvulnerable(boolean flag) {
+ player.setInvulnerable(flag);
+ }
+
+ public boolean setLeashHolder(Entity holder) {
+ return player.setLeashHolder(holder);
+ }
- @Override
public boolean sendChunkChange(Location loc, int sx, int sy, int sz, byte[] data) {
return player.sendChunkChange(loc, sx, sy, sz, data);
}
- @Override
+ public boolean isInvulnerable() {
+ return player.isInvulnerable();
+ }
+
+ public boolean isSilent() {
+ return player.isSilent();
+ }
+
+ public void setSilent(boolean flag) {
+ player.setSilent(flag);
+ }
+
+ public boolean isGliding() {
+ return player.isGliding();
+ }
+
+ public void setGliding(boolean gliding) {
+ player.setGliding(gliding);
+ }
+
+ public boolean hasGravity() {
+ return player.hasGravity();
+ }
+
+ public void setGravity(boolean gravity) {
+ player.setGravity(gravity);
+ }
+
public void sendBlockChange(Location loc, int material, byte data) {
player.sendBlockChange(loc, material, data);
}
- @Override
+ public void setAI(boolean ai) {
+ player.setAI(ai);
+ }
+
+ public int getPortalCooldown() {
+ return player.getPortalCooldown();
+ }
+
+ public boolean hasAI() {
+ return player.hasAI();
+ }
+
+ public void setPortalCooldown(int cooldown) {
+ player.setPortalCooldown(cooldown);
+ }
+
+ public void setCollidable(boolean collidable) {
+ player.setCollidable(collidable);
+ }
+
+ public Set getScoreboardTags() {
+ return player.getScoreboardTags();
+ }
+
public void sendSignChange(Location loc, String[] lines) throws IllegalArgumentException {
player.sendSignChange(loc, lines);
}
- @Override
+ public boolean addScoreboardTag(String tag) {
+ return player.addScoreboardTag(tag);
+ }
+
+ public boolean isCollidable() {
+ return player.isCollidable();
+ }
+
+ public boolean removeScoreboardTag(String tag) {
+ return player.removeScoreboardTag(tag);
+ }
+
+ public PistonMoveReaction getPistonMoveReaction() {
+ return player.getPistonMoveReaction();
+ }
+
public void sendMap(MapView map) {
player.sendMap(map);
}
- // Find: " (\w+)\(\) \{\s+\/\/ TO\DO Auto-generated method stub\s" - Replace: " $1() { player.$1();"
- @Override
public void updateInventory() {
player.updateInventory();
}
- @Override
public void awardAchievement(Achievement achievement) {
player.awardAchievement(achievement);
}
- @Override
public void removeAchievement(Achievement achievement) {
player.removeAchievement(achievement);
}
- @Override
public boolean hasAchievement(Achievement achievement) {
return player.hasAchievement(achievement);
}
- @Override
public void incrementStatistic(Statistic statistic) throws IllegalArgumentException {
player.incrementStatistic(statistic);
}
- @Override
public void decrementStatistic(Statistic statistic) throws IllegalArgumentException {
player.decrementStatistic(statistic);
}
- // Find: " (\w+)\((\w+) (\w+), (\w+) (\w+)\)(.+)\{\s+\/\/ TO\DO Auto-generated method stub\s" - Replace: " $1($2 $3, $4 $5) $6 { player.$1($3, $5);"
- @Override
public void incrementStatistic(Statistic statistic, int amount) throws IllegalArgumentException {
player.incrementStatistic(statistic, amount);
}
- @Override
public void decrementStatistic(Statistic statistic, int amount) throws IllegalArgumentException {
player.decrementStatistic(statistic, amount);
}
- @Override
public void setStatistic(Statistic statistic, int newValue) throws IllegalArgumentException {
player.setStatistic(statistic, newValue);
}
- @Override
public int getStatistic(Statistic statistic) throws IllegalArgumentException {
return player.getStatistic(statistic);
}
- @Override
public void incrementStatistic(Statistic statistic, Material material) throws IllegalArgumentException {
player.incrementStatistic(statistic, material);
}
- @Override
public void decrementStatistic(Statistic statistic, Material material) throws IllegalArgumentException {
player.decrementStatistic(statistic, material);
}
- @Override
public int getStatistic(Statistic statistic, Material material) throws IllegalArgumentException {
return player.getStatistic(statistic, material);
}
- // Find: " (\w+)\((\w+) (\w+), (\w+) (\w+), (\w+) (\w+)\)(.+)\{\s+\/\/ TO\DO Auto-generated method stub\s" - Replace: " $1($2 $3, $4 $5, $6 $7) $8 { player.$1($3, $5, $7);"
- @Override
public void incrementStatistic(Statistic statistic, Material material, int amount) throws IllegalArgumentException {
player.incrementStatistic(statistic, material, amount);
}
- @Override
public void decrementStatistic(Statistic statistic, Material material, int amount) throws IllegalArgumentException {
player.decrementStatistic(statistic, material, amount);
}
- @Override
public void setStatistic(Statistic statistic, Material material, int newValue) throws IllegalArgumentException {
player.setStatistic(statistic, material, newValue);
}
- @Override
public void incrementStatistic(Statistic statistic, EntityType entityType) throws IllegalArgumentException {
player.incrementStatistic(statistic, entityType);
}
- @Override
public void decrementStatistic(Statistic statistic, EntityType entityType) throws IllegalArgumentException {
player.decrementStatistic(statistic, entityType);
}
- @Override
public int getStatistic(Statistic statistic, EntityType entityType) throws IllegalArgumentException {
return player.getStatistic(statistic, entityType);
}
- @Override
public void incrementStatistic(Statistic statistic, EntityType entityType, int amount)
throws IllegalArgumentException {
player.incrementStatistic(statistic, entityType, amount);
}
- @Override
public void decrementStatistic(Statistic statistic, EntityType entityType, int amount) {
player.decrementStatistic(statistic, entityType, amount);
}
- @Override
public void setStatistic(Statistic statistic, EntityType entityType, int newValue) {
player.setStatistic(statistic, entityType, newValue);
}
- /**
- * Find: " (\w+)\((\w+) (\w+), (\w+) (\w+)\) \{\s+\/\/ TO\DO Auto-generated method stub\s" - Replace: " $1($2 $3, $4 $5) { player.$1($3, $5);"
- */
- @Override
public void setPlayerTime(long time, boolean relative) {
player.setPlayerTime(time, relative);
}
- @Override
public long getPlayerTime() {
return player.getPlayerTime();
}
- @Override
public long getPlayerTimeOffset() {
return player.getPlayerTimeOffset();
}
- @Override
public boolean isPlayerTimeRelative() {
return player.isPlayerTimeRelative();
}
- @Override
public void resetPlayerTime() {
player.resetPlayerTime();
}
- @Override
public void setPlayerWeather(WeatherType type) {
player.setPlayerWeather(type);
}
- @Override
public WeatherType getPlayerWeather() {
return player.getPlayerWeather();
}
- @Override
public void resetPlayerWeather() {
player.resetPlayerWeather();
}
- @Override
public void giveExp(int amount) {
player.giveExp(amount);
}
- @Override
public void giveExpLevels(int amount) {
player.giveExpLevels(amount);
}
- @Override
public float getExp() {
return player.getExp();
}
- @Override
public void setExp(float exp) {
player.setExp(exp);
}
- @Override
public int getLevel() {
return player.getLevel();
}
- @Override
public void setLevel(int level) {
player.setLevel(level);
}
- @Override
public int getTotalExperience() {
return player.getTotalExperience();
}
- @Override
public void setTotalExperience(int exp) {
player.setTotalExperience(exp);
}
- @Override
public float getExhaustion() {
return player.getExhaustion();
}
- @Override
public void setExhaustion(float value) {
player.setExhaustion(value);
}
- @Override
public float getSaturation() {
return player.getSaturation();
}
- @Override
public void setSaturation(float value) {
player.setSaturation(value);
}
- @Override
public int getFoodLevel() {
return player.getFoodLevel();
}
- @Override
public void setFoodLevel(int value) {
player.setFoodLevel(value);
}
- @Override
public Location getBedSpawnLocation() {
return player.getBedSpawnLocation();
}
- @Override
public void setBedSpawnLocation(Location location) {
player.setBedSpawnLocation(location);
}
- @Override
public void setBedSpawnLocation(Location location, boolean force) {
player.setBedSpawnLocation(location, force);
}
- @Override
public boolean getAllowFlight() {
return player.getAllowFlight();
}
- @Override
public void setAllowFlight(boolean flight) {
player.setAllowFlight(flight);
}
- @Override
public void hidePlayer(Player player) {
player.hidePlayer(player);
}
- @Override
public void showPlayer(Player player) {
player.showPlayer(player);
}
- @Override
public boolean canSee(Player player) {
return player.canSee(player);
}
- @Override
- public boolean isOnGround() {
- return player.isOnGround();
- }
-
- @Override
public boolean isFlying() {
return player.isFlying();
}
- @Override
public void setFlying(boolean value) {
player.setFlying(value);
}
- @Override
public void setFlySpeed(float value) throws IllegalArgumentException {
player.setFlySpeed(value);
}
- @Override
public void setWalkSpeed(float value) throws IllegalArgumentException {
player.setWalkSpeed(value);
}
- // Find: "\{\s+(.+)\s+return (?:(?:0)|(?:null)|(?:false));" - Replace: "{ return $1"
- @Override
public float getFlySpeed() {
return player.getFlySpeed();
}
- @Override
public float getWalkSpeed() {
return player.getWalkSpeed();
}
- @Override
public void setTexturePack(String url) {
player.setTexturePack(url);
}
- @Override
public void setResourcePack(String url) {
player.setResourcePack(url);
}
- @Override
+ public void setResourcePack(String url, byte[] hash) {
+ player.setResourcePack(url, hash);
+ }
+
public Scoreboard getScoreboard() {
return player.getScoreboard();
}
- @Override
public void setScoreboard(Scoreboard scoreboard) throws IllegalArgumentException, IllegalStateException {
player.setScoreboard(scoreboard);
}
- @Override
public boolean isHealthScaled() {
return player.isHealthScaled();
}
- @Override
public void setHealthScaled(boolean scale) {
player.setHealthScaled(scale);
}
- // Find: " (\w+)\((\w+) (\w+)\)(.+)\{\s+\/\/ TO\DO Auto-generated method stub\s" - Replace: " $1($2 $3) $4 { player.$1($3);"
- @Override
public void setHealthScale(double scale) throws IllegalArgumentException {
player.setHealthScale(scale);
}
- @Override
public double getHealthScale() {
return player.getHealthScale();
}
- @Override
public Entity getSpectatorTarget() {
return player.getSpectatorTarget();
}
- @Override
public void setSpectatorTarget(Entity entity) {
player.setSpectatorTarget(entity);
}
- @Override
public void sendTitle(String title, String subtitle) {
player.sendTitle(title, subtitle);
}
- @Override
+ public void sendTitle(String title, String subtitle, int fadeIn, int stay, int fadeOut) {
+ player.sendTitle(title, subtitle, fadeIn, stay, fadeOut);
+ }
+
public void resetTitle() {
player.resetTitle();
}
- @Override
public void spawnParticle(Particle particle, Location location, int count) {
player.spawnParticle(particle, location, count);
}
- @Override
public void spawnParticle(Particle particle, double x, double y, double z, int count) {
player.spawnParticle(particle, x, y, z, count);
}
- @Override
public void spawnParticle(Particle particle, Location location, int count, T data) {
player.spawnParticle(particle, location, count, data);
}
- // Find: " (\w+)\((\w+) (\w+), (\w+) (\w+), (\w+) (\w+), (\w+) (\w+), (\w+) (\w+), (\w+) (\w+)\) \{\s+\/\/ TO\DO Auto-generated method stub\s" - Replace: " $1($2 $3, $4 $5, $6 $7, $8 $9, $10 $11,
- // $12 $13) { player.$1($3, $5, $7, $9, $11, $13);"
- @Override
public void spawnParticle(Particle particle, double x, double y, double z, int count, T data) {
player.spawnParticle(particle, x, y, z, count, data);
}
- @Override
public void spawnParticle(Particle particle, Location location, int count, double offsetX, double offsetY,
double offsetZ) {
player.spawnParticle(particle, location, count, offsetX, offsetY, offsetZ);
}
- @Override
public void spawnParticle(Particle particle, double x, double y, double z, int count, double offsetX,
double offsetY, double offsetZ) {
- player.spawnParticle(particle, offsetX, y, z, count, offsetX, offsetY, offsetZ);
+ player.spawnParticle(particle, x, y, z, count, offsetX, offsetY, offsetZ);
}
- @Override
public void spawnParticle(Particle particle, Location location, int count, double offsetX, double offsetY,
double offsetZ, T data) {
- player.spawnParticle(particle, location, count, data);
+ player.spawnParticle(particle, location, count, offsetX, offsetY, offsetZ, data);
}
- @Override
public void spawnParticle(Particle particle, double x, double y, double z, int count, double offsetX,
double offsetY, double offsetZ, T data) {
player.spawnParticle(particle, x, y, z, count, offsetX, offsetY, offsetZ, data);
}
- @Override
public void spawnParticle(Particle particle, Location location, int count, double offsetX, double offsetY,
double offsetZ, double extra) {
player.spawnParticle(particle, location, count, offsetX, offsetY, offsetZ, extra);
}
- @Override
public void spawnParticle(Particle particle, double x, double y, double z, int count, double offsetX,
double offsetY, double offsetZ, double extra) {
player.spawnParticle(particle, x, y, z, count, offsetX, offsetY, offsetZ, extra);
}
- @Override
public void spawnParticle(Particle particle, Location location, int count, double offsetX, double offsetY,
double offsetZ, double extra, T data) {
player.spawnParticle(particle, location, count, offsetX, offsetY, offsetZ, extra, data);
}
- @Override
public void spawnParticle(Particle particle, double x, double y, double z, int count, double offsetX,
double offsetY, double offsetZ, double extra, T data) {
player.spawnParticle(particle, x, y, z, count, offsetX, offsetY, offsetZ, extra, data);
}
- @Override
- public Spigot spigot() {
+ public AdvancementProgress getAdvancementProgress(Advancement advancement) {
+ return player.getAdvancementProgress(advancement);
+ }
+
+ public String getLocale() {
+ return player.getLocale();
+ }
+
+ public org.bukkit.entity.Player.Spigot spigot() {
return player.spigot();
}
-
- @Override
- public PlayerInventory getInventory() {
- return player.getInventory();
- }
-
- @Override
- public Inventory getEnderChest() {
- return player.getEnderChest();
- }
-
- @Override
- public MainHand getMainHand() {
- return player.getMainHand();
- }
-
- @Override
- public boolean setWindowProperty(Property prop, int value) {
- return player.setWindowProperty(prop, value);
- }
-
- @Override
- public InventoryView getOpenInventory() {
- return player.getOpenInventory();
- }
-
- @Override
- public InventoryView openInventory(Inventory inventory) {
- return player.openInventory(inventory);
- }
-
- @Override
- public InventoryView openWorkbench(Location location, boolean force) {
- return player.openWorkbench(location, force);
- }
-
- @Override
- public InventoryView openEnchanting(Location location, boolean force) {
- return player.openEnchanting(location, force);
- }
-
- @Override
- public void openInventory(InventoryView inventory) {
- player.openInventory(inventory);
- }
-
- @Override
- public InventoryView openMerchant(Villager trader, boolean force) {
- return player.openMerchant(trader, force);
- }
-
- @Override
- public InventoryView openMerchant(Merchant merchant, boolean force) {
- return player.openMerchant(merchant, force);
- }
-
- @Override
- public void closeInventory() {
- player.closeInventory();
- }
-
- @Override
- public ItemStack getItemInHand() {
- return player.getItemInHand();
- }
-
- @Override
- public void setItemInHand(ItemStack item) {
- player.setItemInHand(item);
- }
-
- @Override
- public ItemStack getItemOnCursor() {
- return player.getItemOnCursor();
- }
-
- @Override
- public void setItemOnCursor(ItemStack item) {
- player.setItemOnCursor(item);
- }
-
- @Override
- public boolean isSleeping() {
- return player.isSleeping();
- }
-
- @Override
- public int getSleepTicks() {
- return player.getSleepTicks();
- }
-
- @Override
- public GameMode getGameMode() {
- return player.getGameMode();
- }
-
- @Override
- public void setGameMode(GameMode mode) {
- player.setGameMode(mode);
- }
-
- @Override
- public boolean isBlocking() {
- return player.isBlocking();
- }
-
- @Override
- public boolean isHandRaised() {
- return player.isHandRaised();
- }
-
- @Override
- public int getExpToLevel() {
- return player.getExpToLevel();
- }
-
- @Override
- public double getEyeHeight() {
- return player.getEyeHeight();
- }
-
- @Override
- public double getEyeHeight(boolean ignoreSneaking) {
- return player.getEyeHeight(ignoreSneaking);
- }
-
- @Override
- public Location getEyeLocation() {
- return player.getEyeLocation();
- }
-
- @Override
- public List getLineOfSight(HashSet transparent, int maxDistance) {
- return player.getLineOfSight(transparent, maxDistance);
- }
-
- @Override
- public List getLineOfSight(Set transparent, int maxDistance) {
- return player.getLineOfSight(transparent, maxDistance);
- }
-
- @Override
- public Block getTargetBlock(HashSet transparent, int maxDistance) {
- return player.getTargetBlock(transparent, maxDistance);
- }
-
- @Override
- public Block getTargetBlock(Set transparent, int maxDistance) {
- return player.getTargetBlock(transparent, maxDistance);
- }
-
- @Override
- public List getLastTwoTargetBlocks(HashSet transparent, int maxDistance) {
- return player.getLastTwoTargetBlocks(transparent, maxDistance);
- }
-
- @Override
- public List getLastTwoTargetBlocks(Set transparent, int maxDistance) {
- return player.getLastTwoTargetBlocks(transparent, maxDistance);
- }
-
- @Override
- public int getRemainingAir() {
- return player.getRemainingAir();
- }
-
- @Override
- public void setRemainingAir(int ticks) {
- player.setRemainingAir(ticks);
- }
-
- @Override
- public int getMaximumAir() {
- return player.getMaximumAir();
- }
-
- @Override
- public void setMaximumAir(int ticks) {
- player.setMaximumAir(ticks);
- }
-
- @Override
- public int getMaximumNoDamageTicks() {
- return player.getMaximumNoDamageTicks();
- }
-
- @Override
- public void setMaximumNoDamageTicks(int ticks) {
- player.setMaximumNoDamageTicks(ticks);
- }
-
- @Override
- public double getLastDamage() {
- return player.getLastDamage();
- }
-
- @Override
- public int _INVALID_getLastDamage() {
- return player._INVALID_getLastDamage();
- }
-
- @Override
- public void setLastDamage(double damage) {
- player.setLastDamage(damage);
- }
-
- @Override
- public void _INVALID_setLastDamage(int damage) {
- player._INVALID_setLastDamage(damage);
- }
-
- @Override
- public int getNoDamageTicks() {
- return player.getNoDamageTicks();
- }
-
- @Override
- public void setNoDamageTicks(int ticks) {
- player.setNoDamageTicks(ticks);
- }
-
- @Override
- public Player getKiller() {
- return player.getKiller();
- }
-
- @Override
- public boolean addPotionEffect(PotionEffect effect) {
- return player.addPotionEffect(effect);
- }
-
- @Override
- public boolean addPotionEffect(PotionEffect effect, boolean force) {
- return player.addPotionEffect(effect, force);
- }
-
- @Override
- public boolean addPotionEffects(Collection effects) {
- return player.addPotionEffects(effects);
- }
-
- @Override
- public boolean hasPotionEffect(PotionEffectType type) {
- return player.hasPotionEffect(type);
- }
-
- @Override
- public PotionEffect getPotionEffect(PotionEffectType type) {
- return player.getPotionEffect(type);
- }
-
- @Override
- public void removePotionEffect(PotionEffectType type) {
- player.removePotionEffect(type);
- }
-
- @Override
- public Collection getActivePotionEffects() {
- return player.getActivePotionEffects();
- }
-
- @Override
- public boolean hasLineOfSight(Entity other) {
- return player.hasLineOfSight(other);
- }
-
- @Override
- public boolean getRemoveWhenFarAway() {
- return player.getRemoveWhenFarAway();
- }
-
- @Override
- public void setRemoveWhenFarAway(boolean remove) {
- player.setRemoveWhenFarAway(remove);
- }
-
- @Override
- public EntityEquipment getEquipment() {
- return player.getEquipment();
- }
-
- @Override
- public void setCanPickupItems(boolean pickup) {
- player.setCanPickupItems(pickup);
- }
-
- @Override
- public boolean getCanPickupItems() {
- return player.getCanPickupItems();
- }
-
- @Override
- public boolean isLeashed() {
- return player.isLeashed();
- }
-
- @Override
- public Entity getLeashHolder() throws IllegalStateException {
- return player.getLeashHolder();
- }
-
- @Override
- public boolean setLeashHolder(Entity holder) {
- return player.setLeashHolder(holder);
- }
-
- @Override
- public boolean isGliding() {
- return player.isGliding();
- }
-
- @Override
- public void setGliding(boolean gliding) {
- player.setGliding(gliding);
- }
-
- @Override
- public void setAI(boolean ai) {
- player.setAI(ai);
- }
-
- @Override
- public boolean hasAI() {
- return player.hasAI();
- }
-
- @Override
- public void setCollidable(boolean collidable) {
- player.setCollidable(collidable);
- }
-
- @Override
- public boolean isCollidable() {
- return player.isCollidable();
- }
-
- @Override
- public AttributeInstance getAttribute(Attribute attribute) {
- return player.getAttribute(attribute);
- }
-
- @Override
- public Location getLocation() {
- return player.getLocation();
- }
-
- @Override
- public Location getLocation(Location loc) {
- return player.getLocation(loc);
- }
-
- @Override
- public void setVelocity(Vector velocity) {
- player.setVelocity(velocity);
- }
-
- @Override
- public Vector getVelocity() {
- return player.getVelocity();
- }
-
- @Override
- public World getWorld() {
- return player.getWorld();
- }
-
- @Override
- public boolean teleport(Location location) {
- return player.teleport(location);
- }
-
- @Override
- public boolean teleport(Location location, TeleportCause cause) {
- return player.teleport(location, cause);
- }
-
- @Override
- public boolean teleport(Entity destination) {
- return player.teleport(destination);
- }
-
- @Override
- public boolean teleport(Entity destination, TeleportCause cause) {
- return player.teleport(destination, cause);
- }
-
- @Override
- public List getNearbyEntities(double x, double y, double z) {
- return player.getNearbyEntities(x, y, z);
- }
-
- @Override
- public int getEntityId() {
- return player.getEntityId();
- }
-
- @Override
- public int getFireTicks() {
- return player.getFireTicks();
- }
-
- @Override
- public int getMaxFireTicks() {
- return player.getMaxFireTicks();
- }
-
- @Override
- public void setFireTicks(int ticks) {
- player.setFireTicks(ticks);
- }
-
- @Override
- public void remove() {
- player.remove();
- }
-
- @Override
- public boolean isDead() {
- return player.isDead();
- }
-
- @Override
- public boolean isValid() {
- return player.isValid();
- }
-
- @Override
- public Entity getPassenger() {
- return player.getPassenger();
- }
-
- @Override
- public boolean setPassenger(Entity passenger) {
- return player.setPassenger(passenger);
- }
-
- @Override
- public boolean isEmpty() {
- return player.isEmpty();
- }
-
- @Override
- public boolean eject() {
- return player.eject();
- }
-
- @Override
- public float getFallDistance() {
- return player.getFallDistance();
- }
-
- @Override
- public void setFallDistance(float distance) {
- player.setFallDistance(distance);
- }
-
- @Override
- public void setLastDamageCause(EntityDamageEvent event) {
- player.setLastDamageCause(event);
- }
-
- @Override
- public EntityDamageEvent getLastDamageCause() {
- return player.getLastDamageCause();
- }
-
- @Override
- public UUID getUniqueId() {
- return player.getUniqueId();
- }
-
- @Override
- public int getTicksLived() {
- return player.getTicksLived();
- }
-
- @Override
- public void setTicksLived(int value) {
- player.setTicksLived(value);
- }
-
- @Override
- public void playEffect(EntityEffect type) {
- player.playEffect(type);
- }
-
- @Override
- public EntityType getType() {
- return player.getType();
- }
-
- @Override
- public boolean isInsideVehicle() {
- return player.isInsideVehicle();
- }
-
- @Override
- public boolean leaveVehicle() {
- return player.leaveVehicle();
- }
-
- @Override
- public Entity getVehicle() {
- return player.getVehicle();
- }
-
- @Override
- public void setCustomNameVisible(boolean flag) {
- player.setCustomNameVisible(flag);
- }
-
- @Override
- public boolean isCustomNameVisible() {
- return player.isCustomNameVisible();
- }
-
- @Override
- public void setGlowing(boolean flag) {
- player.setGlowing(flag);
- }
-
- @Override
- public boolean isGlowing() {
- return player.isGlowing();
- }
-
- @Override
- public void setInvulnerable(boolean flag) {
- player.setInvulnerable(flag);
- }
-
- @Override
- public boolean isInvulnerable() {
- return player.isInvulnerable();
- }
-
- @Override
- public boolean isSilent() {
- return player.isSilent();
- }
-
- @Override
- public void setSilent(boolean flag) {
- player.setSilent(flag);
- }
-
- @Override
- public boolean hasGravity() {
- return player.hasGravity();
- }
-
- @Override
- public void setGravity(boolean gravity) {
- player.setGravity(gravity);
- }
-
- @Override
- public int getPortalCooldown() {
- return player.getPortalCooldown();
- }
-
- @Override
- public void setPortalCooldown(int cooldown) {
- player.setPortalCooldown(cooldown);
- }
-
- @Override
- public Set getScoreboardTags() {
- return player.getScoreboardTags();
- }
-
- @Override
- public boolean addScoreboardTag(String tag) {
- return player.addScoreboardTag(tag);
- }
-
- @Override
- public boolean removeScoreboardTag(String tag) {
- return player.removeScoreboardTag(tag);
- }
-
- @Override
- public void setMetadata(String metadataKey, MetadataValue newMetadataValue) {
- player.setMetadata(metadataKey, newMetadataValue);
- }
-
- @Override
- public List getMetadata(String metadataKey) {
- return player.getMetadata(metadataKey);
- }
-
- @Override
- public boolean hasMetadata(String metadataKey) {
- return player.hasMetadata(metadataKey);
- }
-
- @Override
- public void removeMetadata(String metadataKey, Plugin owningPlugin) {
- player.removeMetadata(metadataKey, owningPlugin);
- }
-
- @Override
- public String getCustomName() {
- return player.getCustomName();
- }
-
- @Override
- public void setCustomName(String name) {
- player.setCustomName(name);
- }
-
- @Override
- public void damage(double amount) {
- player.damage(amount);
- }
-
- @Override
- public void _INVALID_damage(int amount) {
- player._INVALID_damage(amount);
- }
-
- @Override
- public void damage(double amount, Entity source) {
- player.damage(amount, source);
- }
-
- @Override
- public void _INVALID_damage(int amount, Entity source) {
- player._INVALID_damage(amount, source);
- }
-
- @Override
- public double getHealth() {
- return player.getHealth();
- }
-
- @Override
- public int _INVALID_getHealth() {
- return player._INVALID_getHealth();
- }
-
- @Override
- public void setHealth(double health) {
- player.setHealth(health);
- }
-
- @Override
- public void _INVALID_setHealth(int health) {
- player._INVALID_setHealth(health);
- }
-
- @Override
- public double getMaxHealth() {
- return player.getMaxHealth();
- }
-
- @Override
- public int _INVALID_getMaxHealth() {
- return player._INVALID_getMaxHealth();
- }
-
- @Override
- public void setMaxHealth(double health) {
- player.setMaxHealth(health);
- }
-
- @Override
- public void _INVALID_setMaxHealth(int health) {
- player._INVALID_setMaxHealth(health);
- }
-
- @Override
- public void resetMaxHealth() {
- player.resetMaxHealth();
- }
-
- @Override
- public T launchProjectile(Class extends T> projectile) {
- return player.launchProjectile(projectile);
- }
-
- @Override
- public T launchProjectile(Class extends T> projectile, Vector velocity) {
- return player.launchProjectile(projectile, velocity);
- }
-
- @Override
- public boolean isConversing() {
- return player.isConversing();
- }
-
- @Override
- public void acceptConversationInput(String input) {
- player.acceptConversationInput(input);
- }
-
- @Override
- public boolean beginConversation(Conversation conversation) {
- return player.beginConversation(conversation);
- }
-
- @Override
- public void abandonConversation(Conversation conversation) {
- player.abandonConversation(conversation);
- }
-
- @Override
- public void abandonConversation(Conversation conversation, ConversationAbandonedEvent details) {
- player.abandonConversation(conversation, details);
- }
-
- @Override
- public boolean isOnline() {
- return player.isOnline();
- }
-
- @Override
- public boolean isBanned() {
- return player.isBanned();
- }
-
- @Override
- public void setBanned(boolean banned) {
- player.setBanned(banned);
- }
-
- @Override
- public boolean isWhitelisted() {
- return player.isWhitelisted();
- }
-
- @Override
- public void setWhitelisted(boolean value) {
- player.setWhitelisted(value);
- }
-
- @Override
- public Player getPlayer() {
- return player.getPlayer();
- }
-
- @Override
- public long getFirstPlayed() {
- return player.getFirstPlayed();
- }
-
- @Override
- public long getLastPlayed() {
- return player.getLastPlayed();
- }
-
- @Override
- public boolean hasPlayedBefore() {
- return player.hasPlayedBefore();
- }
-
- @Override
- public Map serialize() {
- return player.serialize();
- }
-
- @Override
- public void sendPluginMessage(Plugin source, String channel, byte[] message) {
- player.sendPluginMessage(source, channel, message);
- }
-
- @Override
- public Set getListeningPluginChannels() {
- return player.getListeningPluginChannels();
- }
-
- @Override
- public void sendTitle(String arg0, String arg1, int arg2, int arg3, int arg4) {
- player.sendTitle(arg0, arg1, arg2, arg3, arg4);
-
- }
}
diff --git a/src/main/java/buttondevteam/discordplugin/DiscordPlugin.java b/src/main/java/buttondevteam/discordplugin/DiscordPlugin.java
index 0478c4b..2517692 100644
--- a/src/main/java/buttondevteam/discordplugin/DiscordPlugin.java
+++ b/src/main/java/buttondevteam/discordplugin/DiscordPlugin.java
@@ -4,7 +4,10 @@ import java.awt.Color;
import java.io.File;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
+import java.util.Calendar;
import java.util.List;
+import java.util.Random;
+
import org.bukkit.Bukkit;
import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.java.JavaPlugin;
@@ -23,10 +26,9 @@ import sx.blah.discord.api.events.IListener;
import sx.blah.discord.api.internal.json.objects.EmbedObject;
import sx.blah.discord.handle.impl.events.ReadyEvent;
import sx.blah.discord.handle.obj.*;
-import sx.blah.discord.util.DiscordException;
-import sx.blah.discord.util.EmbedBuilder;
-import sx.blah.discord.util.MissingPermissionsException;
-import sx.blah.discord.util.RateLimitException;
+import sx.blah.discord.util.*;
+import sx.blah.discord.util.RequestBuffer.IRequest;
+import sx.blah.discord.util.RequestBuffer.IVoidRequest;
public class DiscordPlugin extends JavaPlugin implements IListener {
private static final String SubredditURL = "https://www.reddit.com/r/ChromaGamers";
@@ -126,15 +128,34 @@ public class DiscordPlugin extends JavaPlugin implements IListener {
MCChatListener mcchat = new MCChatListener();
dc.getDispatcher().registerListener(mcchat);
TBMCCoreAPI.RegisterEventsForExceptions(mcchat, this);
- dc.getDispatcher().registerListener(new AutoUpdaterListener());
+ TBMCCoreAPI.RegisterEventsForExceptions(new AutoUpdaterListener(), this);
Bukkit.getPluginManager().registerEvents(new ExceptionListener(), this);
TBMCCoreAPI.RegisterEventsForExceptions(new MCListener(), this);
TBMCChatAPI.AddCommands(this, DiscordMCCommandBase.class);
TBMCCoreAPI.RegisterUserClass(DiscordPlayer.class);
- new Thread(() -> AnnouncementGetterThreadMethod()).start();
+ new Thread(this::AnnouncementGetterThreadMethod).start();
setupProviders();
TBMCCoreAPI.SendUnsentExceptions();
TBMCCoreAPI.SendUnsentDebugMessages();
+ if (!TBMCCoreAPI.IsTestServer()) {
+ final Calendar currentCal = Calendar.getInstance();
+ final Calendar newCal = Calendar.getInstance();
+ currentCal.set(currentCal.get(Calendar.YEAR), currentCal.get(Calendar.MONTH),
+ currentCal.get(Calendar.DAY_OF_MONTH), 4, 10);
+ if (currentCal.get(Calendar.DAY_OF_MONTH) % 9 == 0 && currentCal.before(newCal)) {
+ Random rand = new Random();
+ sendMessageToChannel(dc.getChannels().get(rand.nextInt(dc.getChannels().size())),
+ "You could make a religion out of this");
+ }
+ }
+ /*
+ * IDiscordOAuth doa = new DiscordOAuthBuilder(dc).withClientID("226443037893591041") .withClientSecret(getConfig().getString("appsecret")) .withRedirectUrl("https://" +
+ * (TBMCCoreAPI.IsTestServer() ? "localhost" : "server.figytuna.com") + ":8081/callback") .withScopes(Scope.IDENTIFY).withHttpServerOptions(new HttpServerOptions().setPort(8081))
+ * .withSuccessHandler((rc, user) -> { rc.response().headers().add("Location", "https://" + (TBMCCoreAPI.IsTestServer() ? "localhost" : "server.figytuna.com") + ":8080/login?type=discord&"
+ * + rc.request().query()); rc.response().setStatusCode(303); rc.response().end("Redirecting"); rc.response().close(); }).withFailureHandler(rc -> { rc.response().headers().add("Location",
+ * "https://" + (TBMCCoreAPI.IsTestServer() ? "localhost" : "server.figytuna.com") + ":8080/login?type=discord&" + rc.request().query()); rc.response().setStatusCode(303);
+ * rc.response().end("Redirecting"); rc.response().close(); }).build(); getLogger().info("Auth URL: " + doa.buildAuthUrl());
+ */
} catch (Exception e) {
TBMCCoreAPI.SendException("An error occured while enabling DiscordPlugin!", e);
}
@@ -234,7 +255,7 @@ public class DiscordPlugin extends JavaPlugin implements IListener {
try {
if (channel == chatchannel)
MCChatListener.resetLastMessage(); // If this is a chat message, it'll be set again
- final String content = TBMCCoreAPI.IsTestServer() && channel != chatchannel
+ final String content = TBMCCoreAPI.IsTestServer() && channel != chatchannel || channel == botroomchannel // Both are the same for testing
? "*The following message is from a test server*\n" + message : message;
return perform(
() -> embed == null ? channel.sendMessage(content) : channel.sendMessage(content, embed, false));
@@ -283,39 +304,23 @@ public class DiscordPlugin extends JavaPlugin implements IListener {
/**
* Performs Discord actions, retrying when ratelimited. May return null if action fails too many times or in safe mode.
*/
- public static > T perform(DiscordSupplier action)
- throws DiscordException, MissingPermissionsException {
- for (int i = 0; i < 20; i++)
- try {
- if (SafeMode)
- return null;
- return action.get();
- } catch (RateLimitException e) {
- try {
- Thread.sleep(e.getRetryDelay() > 0 ? e.getRetryDelay() : 10);
- } catch (InterruptedException e1) {
- e1.printStackTrace();
- }
- }
- return null;
+ public static T perform(IRequest action) {
+ if (SafeMode)
+ return null;
+ return RequestBuffer.request(action).get(); // Let the pros handle this
}
/**
* Performs Discord actions, retrying when ratelimited.
*/
- public static void perform(DiscordRunnable action) throws DiscordException, MissingPermissionsException {
- for (int i = 0; i < 20; i++)
- try {
- if (SafeMode)
- return;
- action.run();
- return; // Gotta escape that loop
- } catch (RateLimitException e) {
- try {
- Thread.sleep(e.getRetryDelay() > 0 ? e.getRetryDelay() : 10);
- } catch (InterruptedException e1) {
- e1.printStackTrace();
- }
- }
+ public static Void perform(IVoidRequest action) {
+ if (SafeMode)
+ return null;
+ return RequestBuffer.request(action).get(); // Let the pros handle this
+ }
+
+ public static boolean checkIfSomeoneIsTestingWhileWeArent() {
+ return !TBMCCoreAPI.IsTestServer()
+ && dc.getOurUser().getPresence().getPlayingText().orElse("").equals("testing");
}
}
diff --git a/src/main/java/buttondevteam/discordplugin/DiscordSender.java b/src/main/java/buttondevteam/discordplugin/DiscordSender.java
index 9942973..81a414b 100644
--- a/src/main/java/buttondevteam/discordplugin/DiscordSender.java
+++ b/src/main/java/buttondevteam/discordplugin/DiscordSender.java
@@ -97,9 +97,12 @@ public class DiscordSender extends DiscordSenderBase implements CommandSender {
@Override
public String getName() {
- if (user == null)
- return "Discord user";
- return name == null ? user.getDisplayName(DiscordPlugin.mainServer) : name;
+ return name == null ? user == null ? "Discord user" : user.getDisplayName(DiscordPlugin.mainServer) : name;
+ }
+
+ @Override
+ public Spigot spigot() {
+ return new CommandSender.Spigot();
}
}
diff --git a/src/main/java/buttondevteam/discordplugin/commands/DiscordCommandBase.java b/src/main/java/buttondevteam/discordplugin/commands/DiscordCommandBase.java
index be80fbf..2cfe732 100644
--- a/src/main/java/buttondevteam/discordplugin/commands/DiscordCommandBase.java
+++ b/src/main/java/buttondevteam/discordplugin/commands/DiscordCommandBase.java
@@ -20,13 +20,16 @@ public abstract class DiscordCommandBase {
commands.put("userinfo", new UserinfoCommand());
commands.put("help", new HelpCommand());
commands.put("role", new RoleCommand());
+ commands.put("mcchat", new MCChatCommand());
}
public static void runCommand(String cmd, String args, IMessage message) {
DiscordCommandBase command = commands.get(cmd);
if (command == null) {
DiscordPlugin.sendMessageToChannel(message.getChannel(),
- "Unknown command: " + cmd + " with args: " + args + "\nDo @ChromaBot help for help");
+ "Unknown command: " + cmd + " with args: " + args + "\nDo '"
+ + (message.getChannel().isPrivate() ? "" : message.getClient().getOurUser().mention() + " ")
+ + "help' for help");
return;
}
try {
diff --git a/src/main/java/buttondevteam/discordplugin/commands/MCChatCommand.java b/src/main/java/buttondevteam/discordplugin/commands/MCChatCommand.java
new file mode 100644
index 0000000..e25092c
--- /dev/null
+++ b/src/main/java/buttondevteam/discordplugin/commands/MCChatCommand.java
@@ -0,0 +1,43 @@
+package buttondevteam.discordplugin.commands;
+
+import buttondevteam.discordplugin.DiscordPlayer;
+import buttondevteam.discordplugin.listeners.MCChatListener;
+import buttondevteam.lib.TBMCCoreAPI;
+import buttondevteam.lib.player.PlayerData;
+import sx.blah.discord.handle.obj.IMessage;
+
+public class MCChatCommand extends DiscordCommandBase {
+
+ @Override
+ public String getCommandName() {
+ return "mcchat";
+ }
+
+ @Override
+ public void run(IMessage message, String args) {
+ if (!message.getChannel().isPrivate()) {
+ message.reply("This command can only be issued while DMing the bot.");
+ return;
+ }
+ try (final DiscordPlayer user = DiscordPlayer.getUser(message.getAuthor().getStringID(), DiscordPlayer.class)) {
+ PlayerData mcchat = user.minecraftChat();
+ mcchat.set(!mcchat.get());
+ MCChatListener.privateMCChat(message.getChannel(), mcchat.get());
+ message.reply("Minecraft chat " + (mcchat.get() //
+ ? "enabled. Use '" + message.getClient().getOurUser().mention()
+ + " mcchat' (with the mention) to disable." //
+ : "disabled."));
+ } catch (Exception e) {
+ TBMCCoreAPI.SendException("Error while setting mcchat for user" + message.getAuthor().getName(), e);
+ }
+ }
+
+ @Override
+ public String[] getHelpText() {
+ return new String[] { //
+ "mcchat enables or disables the Minecraft chat in private messages.", //
+ "It can be useful if you don't want your messages to be visible, for example when talking a private channel." //
+ }; // TODO: Pin channel switching to indicate the current channel
+ }
+
+}
diff --git a/src/main/java/buttondevteam/discordplugin/listeners/AutoUpdaterListener.java b/src/main/java/buttondevteam/discordplugin/listeners/AutoUpdaterListener.java
index 276797b..e302e8d 100644
--- a/src/main/java/buttondevteam/discordplugin/listeners/AutoUpdaterListener.java
+++ b/src/main/java/buttondevteam/discordplugin/listeners/AutoUpdaterListener.java
@@ -1,65 +1,24 @@
package buttondevteam.discordplugin.listeners;
-import java.awt.Color;
-import java.util.function.Supplier;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
import buttondevteam.discordplugin.DiscordPlugin;
-import buttondevteam.discordplugin.DiscordSender;
+import buttondevteam.lib.PluginUpdater;
import buttondevteam.lib.TBMCCoreAPI;
-import sx.blah.discord.api.events.IListener;
-import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
-import sx.blah.discord.handle.obj.IEmbed;
-import sx.blah.discord.util.EmbedBuilder;
-public class AutoUpdaterListener implements IListener {
- @Override
- public void handle(MessageReceivedEvent event) {
+public class AutoUpdaterListener implements Listener {
+ @EventHandler
+ public void handle(PluginUpdater.UpdatedEvent event) {
if (DiscordPlugin.SafeMode)
return;
- if (!event.getMessage().getChannel().getStringID().equals(DiscordPlugin.officechannel.getStringID()))
- return;
- if (239123781401051138L != event.getMessage().getWebhookLongID())
- return;
- if (event.getMessage().getEmbeds().size() == 0)
- return;
- final IEmbed embed = event.getMessage().getEmbeds().get(0);
- final String title = embed.getTitle();
- if (!title.contains("new commit"))
- return;
- String branch = title.substring(title.indexOf(':') + 1, title.indexOf(']'));
- String project = title.substring(title.indexOf('[') + 1, title.indexOf(':'));
- if ((branch.equals("master") || (TBMCCoreAPI.IsTestServer() && branch.equals("dev")))
- && TBMCCoreAPI.UpdatePlugin(project,
- new DiscordSender(null,
- TBMCCoreAPI.IsTestServer() //
- ? DiscordPlugin.chatchannel //
- : DiscordPlugin.botroomchannel),
- branch)
- && ((Supplier) () -> { // Best looking code I've ever written
- try {
- int hi, ei, prnum;
- if ((hi = embed.getDescription().indexOf('#')) > -1
- && ((ei = embed.getDescription().indexOf(' ', hi + 1)) > -1
- || (ei = embed.getDescription().indexOf(".", hi + 1)) > -1
- || (ei = embed.getDescription().length()) > -1)
- && (prnum = Integer.parseInt(embed.getDescription().substring(hi + 1, ei))) > -1)
- DiscordPlugin.sendMessageToChannel(DiscordPlugin.updatechannel, "",
- new EmbedBuilder().withColor(Color.WHITE).withTitle("Update details")
- .withUrl("https://github.com/TBMCPlugins/" + project + "/pull/" + prnum)
- .build());
- else
- throw new Exception("No PR found");
- } catch (Exception e) {
- DiscordPlugin.sendMessageToChannel(DiscordPlugin.updatechannel, "",
- new EmbedBuilder().withColor(Color.WHITE).withTitle("Update details:")
- .withDescription(embed.getDescription() + " (" + e.getMessage() + ")").build());
- }
- return true;
- }).get() && (!TBMCCoreAPI.IsTestServer() || !branch.equals("master")))
- try {
- DiscordPlugin.perform(() -> event.getMessage().addReaction(DiscordPlugin.DELIVERED_REACTION));
- } catch (Exception e) {
- TBMCCoreAPI.SendException("An error occured while reacting to plugin update!", e);
- }
+ try {
+ DiscordPlugin.perform(() -> DiscordPlugin.officechannel.getMessageHistory(10).stream()
+ .filter(m -> m.getWebhookLongID() == 239123781401051138L && m.getEmbeds().get(0).getTitle()
+ .contains(event.getData().get("repository").getAsJsonObject().get("name").getAsString()))
+ .findFirst().get().addReaction(DiscordPlugin.DELIVERED_REACTION));
+ } catch (Exception e) {
+ TBMCCoreAPI.SendException("An error occured while reacting to plugin update!", e);
+ }
}
}
diff --git a/src/main/java/buttondevteam/discordplugin/listeners/CommandListener.java b/src/main/java/buttondevteam/discordplugin/listeners/CommandListener.java
index bc08243..8313ffa 100644
--- a/src/main/java/buttondevteam/discordplugin/listeners/CommandListener.java
+++ b/src/main/java/buttondevteam/discordplugin/listeners/CommandListener.java
@@ -1,10 +1,13 @@
package buttondevteam.discordplugin.listeners;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Random;
+import buttondevteam.discordplugin.DiscordPlayer;
import buttondevteam.discordplugin.DiscordPlugin;
import buttondevteam.discordplugin.commands.DiscordCommandBase;
+import buttondevteam.lib.TBMCCoreAPI;
import sx.blah.discord.api.events.IListener;
import sx.blah.discord.handle.impl.events.guild.channel.message.MentionEvent;
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
@@ -17,15 +20,23 @@ public class CommandListener {
"Between now and the heat-death of the universe.", // Ghostise
"Soon™", "Ask again this time next month", // Ghostise
"In about 3 seconds", // Nicolai
- "Right after we finish coding 7 plugins",//Ali
- "It'll be done tomorrow.",//Ali
- "We just need to complete one tiiiny feature",//Ali
- "In 18 commits",//Ali
- "After we finish strangling Towny",//Ali
- "When we kill every bug in the system",//Ali
- "Once the server stops screaming error messages.",//Ali
+ "After we finish 8 plugins", // Ali
+ "Tomorrow.", // Ali
+ "After one tiiiny feature", // Ali
+ "Next commit", // Ali
+ "After we finish strangling Towny", // Ali
+ "When we kill every *fucking* bug", // Ali
+ "Once the server stops screaming.", // Ali
+ "After HL3 comes out", // Ali
+ "Next time you ask", // Ali
+ "When will *you* be open?" // Ali
};
+ private static final String[] serverReadyQuestions = new String[] { "when will the server be open",
+ "when will the server be ready", "when will the server be done", "when will the server be complete",
+ "when will the server be finished", "when's the server ready", "when's the server open",
+ "Vhen vill ze server be open?" };
+
private static final Random serverReadyRandom = new Random();
private static final ArrayList usableServerReadyStrings = new ArrayList(serverReadyStrings.length) {
private static final long serialVersionUID = 2213771460909848770L;
@@ -48,10 +59,14 @@ public class CommandListener {
if (event.getMessage().getAuthor().isBot())
return;
final IChannel channel = event.getMessage().getChannel();
- if (!channel.getStringID().equals(DiscordPlugin.botchannel.getStringID()) && !channel.isPrivate())
+ if (!channel.getStringID().equals(DiscordPlugin.botchannel.getStringID())
+ && (!channel.isPrivate() || DiscordPlugin.checkIfSomeoneIsTestingWhileWeArent()))
return;
if (channel.getStringID().equals(DiscordPlugin.chatchannel.getStringID()))
return; // The chat code already handles this - Right now while testing botchannel is the same as chatchannel
+ if (DiscordPlayer.getUser(event.getAuthor().getStringID(), DiscordPlayer.class).minecraftChat().get()) // Let the MCChatListener handle it
+ return;
+ event.getMessage().getChannel().setTypingStatus(true); // Fun
runCommand(event.getMessage(), true);
}
}, new IListener() {
@@ -59,19 +74,19 @@ public class CommandListener {
public void handle(MessageReceivedEvent event) {
if (DiscordPlugin.SafeMode)
return;
- if (event.getMessage().getContent().toLowerCase().contains("when will the server be open?")) {
+ final String msglowercase = event.getMessage().getContent().toLowerCase();
+ if (!TBMCCoreAPI.IsTestServer()
+ && Arrays.stream(serverReadyQuestions).anyMatch(s -> msglowercase.contains(s))) {
int next;
- /*
- * if (serverReadyStrings.length <= lastServerReadyStrings.size()) { next = lastServerReadyStrings.get(0); lastServerReadyStrings.clear(); } else { next = (short) serverReadyRandom
- * .nextInt(serverReadyStrings.length - lastServerReadyStrings.size()); for (short i = 0; i < lastServerReadyStrings.size(); i++) { short j = lastServerReadyStrings.get(i); if
- * (next == j) next++; if (next >= serverReadyStrings.length) next = 0; } lastServerReadyStrings.add(next); }
- */
if (usableServerReadyStrings.size() == 0)
createUsableServerReadyStrings(usableServerReadyStrings);
next = usableServerReadyStrings.remove(serverReadyRandom.nextInt(usableServerReadyStrings.size()));
DiscordPlugin.sendMessageToChannel(event.getMessage().getChannel(), serverReadyStrings[next]);
}
- if (!event.getMessage().getChannel().isPrivate())
+ if (!event.getMessage().getChannel().isPrivate() //
+ || DiscordPlayer.getUser(event.getAuthor().getStringID(), DiscordPlayer.class).minecraftChat()
+ .get()
+ || DiscordPlugin.checkIfSomeoneIsTestingWhileWeArent())
return;
if (event.getMessage().getAuthor().isBot())
return;
@@ -92,7 +107,6 @@ public class CommandListener {
public static boolean runCommand(IMessage message, boolean mentionedonly) {
if (DiscordPlugin.SafeMode)
return true;
- message.getChannel().setTypingStatus(true);
final StringBuilder cmdwithargs = new StringBuilder(message.getContent());
final String mention = DiscordPlugin.dc.getOurUser().mention(false);
final String mentionNick = DiscordPlugin.dc.getOurUser().mention(true);
@@ -104,6 +118,7 @@ public class CommandListener {
message.getChannel().setTypingStatus(false);
return false;
}
+ message.getChannel().setTypingStatus(true);
int index = cmdwithargs.indexOf(" ");
String cmd;
String args;
diff --git a/src/main/java/buttondevteam/discordplugin/listeners/MCChatListener.java b/src/main/java/buttondevteam/discordplugin/listeners/MCChatListener.java
index 119bad1..fceef50 100644
--- a/src/main/java/buttondevteam/discordplugin/listeners/MCChatListener.java
+++ b/src/main/java/buttondevteam/discordplugin/listeners/MCChatListener.java
@@ -1,8 +1,11 @@
package buttondevteam.discordplugin.listeners;
+import java.awt.Color;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.UUID;
+import java.util.function.Consumer;
import java.util.stream.Collectors;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
@@ -13,8 +16,8 @@ import buttondevteam.discordplugin.*;
import buttondevteam.lib.*;
import buttondevteam.lib.chat.Channel;
import buttondevteam.lib.chat.TBMCChatAPI;
-import buttondevteam.lib.player.ChromaGamerBase;
import buttondevteam.lib.player.TBMCPlayer;
+import lombok.val;
import sx.blah.discord.api.events.IListener;
import sx.blah.discord.api.internal.json.objects.EmbedObject;
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
@@ -28,52 +31,75 @@ public class MCChatListener implements Listener, IListener
return;
if (e.getSender() instanceof DiscordSender || e.getSender() instanceof DiscordPlayerSender)
return;
- if (!e.getChannel().equals(Channel.GlobalChat))
- return;
synchronized (this) {
final String authorPlayer = DiscordPlugin.sanitizeString(e.getSender() instanceof Player //
? ((Player) e.getSender()).getDisplayName() //
: e.getSender().getName());
- final EmbedBuilder embed = new EmbedBuilder().withAuthorName(authorPlayer).withDescription(e.getMessage());
- final EmbedObject embedObject = e.getSender() instanceof Player
- ? embed.withAuthorIcon(
- "https://minotar.net/avatar/" + ((Player) e.getSender()).getName() + "/32.png").build()
- : embed.build();
+ final EmbedBuilder embed = new EmbedBuilder().withAuthorName(authorPlayer).withDescription(e.getMessage())
+ .withColor(new Color(e.getChannel().color.getRed(), e.getChannel().color.getGreen(),
+ e.getChannel().color.getBlue()));
+ if (e.getSender() instanceof Player)
+ embed.withAuthorIcon("https://minotar.net/avatar/" + ((Player) e.getSender()).getName() + "/32.png");
final long nanoTime = System.nanoTime();
- if (lastmessage == null || lastmessage.isDeleted()
- || !authorPlayer.equals(lastmessage.getEmbeds().get(0).getAuthor().getName())
- || lastmsgtime / 1000000000f < nanoTime / 1000000000f - 120) {
- lastmessage = DiscordPlugin.sendMessageToChannel(DiscordPlugin.chatchannel, "", embedObject);
- lastmsgtime = nanoTime;
- lastmsg = e.getMessage();
- } else
- try {
- lastmsg = embedObject.description = lastmsg + "\n" + embedObject.description;
- DiscordPlugin.perform(() -> lastmessage.edit("", embedObject));
- } catch (MissingPermissionsException | DiscordException e1) {
- TBMCCoreAPI.SendException("An error occured while editing chat message!", e1);
- }
+ Consumer doit = lastmsgdata -> {
+ final EmbedObject embedObject = embed.build();
+ String msg = lastmsgdata.channel.isPrivate() ? DiscordPlugin.sanitizeString(e.getChannel().DisplayName)
+ : "";
+ if (lastmsgdata.message == null || lastmsgdata.message.isDeleted()
+ || !authorPlayer.equals(lastmsgdata.message.getEmbeds().get(0).getAuthor().getName())
+ || lastmsgdata.time / 1000000000f < nanoTime / 1000000000f - 120
+ || !lastmsgdata.mcchannel.ID.equals(e.getChannel().ID)) {
+ lastmsgdata.message = DiscordPlugin.sendMessageToChannel(lastmsgdata.channel, msg, embedObject);
+ lastmsgdata.time = nanoTime;
+ lastmsgdata.mcchannel = e.getChannel();
+ } else
+ try {
+ lastmsgdata.content = embedObject.description = lastmsgdata.content + "\n"
+ + embedObject.description;// The message object doesn't get updated
+ final LastMsgData _lastmsgdata = lastmsgdata;
+ DiscordPlugin.perform(() -> _lastmsgdata.message.edit(msg, embedObject));
+ } catch (MissingPermissionsException | DiscordException e1) {
+ TBMCCoreAPI.SendException("An error occured while editing chat message!", e1);
+ }
+ };
+ if (e.getChannel().equals(Channel.GlobalChat))
+ doit.accept(
+ lastmsgdata == null ? lastmsgdata = new LastMsgData(DiscordPlugin.chatchannel) : lastmsgdata);
+
+ for (LastMsgData data : lastmsgPerUser) {
+ final IUser iUser = data.channel.getUsersHere().stream()
+ .filter(u -> u.getLongID() != u.getClient().getOurUser().getLongID()).findFirst().get(); // Doesn't support group DMs
+ final DiscordPlayer user = DiscordPlayer.getUser(iUser.getStringID(), DiscordPlayer.class);
+ if (user.minecraftChat().get() && e.shouldSendTo(getSender(data.channel, iUser, user)))
+ doit.accept(data);
+ }
} // TODO: Author URL
}
+ private static class LastMsgData {
+ public IMessage message;
+ public long time;
+ public String content;
+ public IChannel channel;
+ public Channel mcchannel;
+
+ public LastMsgData(IChannel channel) {
+ this.channel = channel;
+ }
+ }
+
@EventHandler
public void onChatPreprocess(TBMCChatPreprocessEvent event) {
int start = -1;
- // System.out.println("A");
while ((start = event.getMessage().indexOf('@', start + 1)) != -1) {
- // System.out.println("Start: " + start);
int mid = event.getMessage().indexOf('#', start + 1);
- // System.out.println("Mid: " + mid);
if (mid == -1)
return;
int end_ = event.getMessage().indexOf(' ', mid + 1);
- // System.out.println("End: " + end_);
if (end_ == -1)
end_ = event.getMessage().length();
final int end = end_;
final int startF = start;
- // System.out.println("Name: " + event.getMessage().substring(start, mid));
- // System.out.println("Disc: " + event.getMessage().substring(mid, end));
DiscordPlugin.dc.getUsersByName(event.getMessage().substring(start + 1, mid)).stream()
.filter(u -> u.getDiscriminator().equals(event.getMessage().substring(mid + 1, end))).findAny()
.ifPresent(user -> event.setMessage(event.getMessage().substring(0, startF) + "@" + user.getName()
@@ -86,27 +112,36 @@ public class MCChatListener implements Listener, IListener
private static final String[] UnconnectedCmds = new String[] { "list", "u", "shrug", "tableflip", "unflip", "mwiki",
"yeehaw" };
- private static IMessage lastmessage = null;
- private static long lastmsgtime = 0;
- private static String lastmsg;
+ private static LastMsgData lastmsgdata;
private static short lastlist = 0;
private static short lastlistp = 0;
+ /**
+ * Used for messages in PMs (mcchat).
+ */
+ private static ArrayList lastmsgPerUser = new ArrayList();
+
+ public static boolean privateMCChat(IChannel channel, boolean start) {
+ return start ? lastmsgPerUser.add(new LastMsgData(channel))
+ : lastmsgPerUser.removeIf(lmd -> lmd.channel.getLongID() == channel.getLongID());
+ }
public static final HashMap UnconnectedSenders = new HashMap<>();
public static final HashMap ConnectedSenders = new HashMap<>();
public static short ListC = 0;
public static void resetLastMessage() {
- lastmessage = null;
- }
+ (lastmsgdata == null ? lastmsgdata = new LastMsgData(DiscordPlugin.chatchannel) : lastmsgdata).message = null; // Don't set the whole object to null, the player and channel information should
+ } // be preserved
@Override // Discord
- public void handle(sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent event) {
- final IUser author = event.getMessage().getAuthor();
+ public void handle(MessageReceivedEvent event) {
+ val author = event.getMessage().getAuthor();
+ val user = DiscordPlayer.getUser(author.getStringID(), DiscordPlayer.class);
if (!event.getMessage().getChannel().getStringID().equals(DiscordPlugin.chatchannel.getStringID())
- /* && !(event.getMessage().getChannel().isPrivate() && privatechat) */)
+ && !(event.getMessage().getChannel().isPrivate() && user.minecraftChat().get()
+ && !DiscordPlugin.checkIfSomeoneIsTestingWhileWeArent()))
return;
- lastmessage = null;
+ resetLastMessage();
lastlist++;
if (author.isBot())
return;
@@ -115,23 +150,7 @@ public class MCChatListener implements Listener, IListener
String dmessage = event.getMessage().getContent();
synchronized (this) {
try {
- DiscordPlayer dp = ChromaGamerBase.getUser(author.getStringID(), DiscordPlayer.class);
- final DiscordSenderBase dsender;
- Player mcp = null; // Offline players can't really run commands, or can they?
- final String cid;
- if ((cid = dp.getConnectedID(TBMCPlayer.class)) != null // Connected?
- && (mcp = Bukkit.getPlayer(UUID.fromString(cid))) != null) { // Execute as ingame player
- if (!ConnectedSenders.containsKey(author.getStringID()))
- ConnectedSenders.put(author.getStringID(),
- new DiscordPlayerSender(author, event.getMessage().getChannel(), mcp));
- dsender = ConnectedSenders.get(author.getStringID());
- } else {
- TBMCPlayer p = dp.getAs(TBMCPlayer.class);
- if (!UnconnectedSenders.containsKey(author.getStringID()))
- UnconnectedSenders.put(author.getStringID(), new DiscordSender(author,
- event.getMessage().getChannel(), p == null ? null : p.PlayerName().get())); // Display the playername, if found
- dsender = UnconnectedSenders.get(author.getStringID());
- }
+ final DiscordSenderBase dsender = getSender(event.getMessage().getChannel(), author, user);
for (IUser u : event.getMessage().getMentions()) {
dmessage = dmessage.replace(u.mention(false), "@" + u.getName()); // TODO: IG Formatting
@@ -140,11 +159,15 @@ public class MCChatListener implements Listener, IListener
}
if (dmessage.startsWith("/")) {
+ DiscordPlugin.perform(() -> {
+ if (!event.getMessage().isDeleted() && !event.getChannel().isPrivate())
+ event.getMessage().delete();
+ });
final String cmd = dmessage.substring(1).toLowerCase();
- if (mcp == null && !Arrays.stream(UnconnectedCmds)
+ if (dsender instanceof DiscordSender && !Arrays.stream(UnconnectedCmds)
.anyMatch(s -> cmd.equals(s) || cmd.startsWith(s + " "))) {
// Command not whitelisted
- DiscordPlugin.sendMessageToChannel(event.getMessage().getChannel(), // TODO
+ dsender.sendMessage( // TODO
"Sorry, you need to be online on the server and have your accounts connected, you can only access these commands:\n"
+ Arrays.stream(UnconnectedCmds).map(uc -> "/" + uc)
.collect(Collectors.joining(", "))
@@ -163,13 +186,17 @@ public class MCChatListener implements Listener, IListener
} else
Bukkit.dispatchCommand(dsender, cmd);
lastlistp = (short) Bukkit.getOnlinePlayers().size();
- if (!event.getMessage().isDeleted())
- event.getMessage().delete();
} else {
- TBMCChatAPI.SendChatMessage(Channel.GlobalChat, dsender,
- dmessage + (event.getMessage().getAttachments().size() > 0 ? "\n" + event.getMessage()
- .getAttachments().stream().map(a -> a.getUrl()).collect(Collectors.joining("\n"))
- : ""));
+ if (dmessage.length() == 0 && event.getMessage().getAttachments().size() == 0)
+ TBMCChatAPI.SendChatMessage(Channel.GlobalChat, dsender, "pinned a message on Discord."); // TODO: Not chat message
+ else
+ TBMCChatAPI
+ .SendChatMessage(Channel.GlobalChat,
+ dsender, dmessage
+ + (event.getMessage().getAttachments().size() > 0
+ ? "\n" + event.getMessage().getAttachments().stream()
+ .map(a -> a.getUrl()).collect(Collectors.joining("\n"))
+ : ""));
event.getMessage().getChannel().getMessageHistory().stream().forEach(m -> {
try {
final IReaction reaction = m.getReactionByUnicode(DiscordPlugin.DELIVERED_REACTION);
@@ -187,4 +214,23 @@ public class MCChatListener implements Listener, IListener
}
}
}
+
+ private DiscordSenderBase getSender(IChannel channel, final IUser author, DiscordPlayer dp) {
+ final DiscordSenderBase dsender;
+ Player mcp = null; // Offline players can't really run commands, or can they? No, they can't, really.
+ final String cid;
+ if ((cid = dp.getConnectedID(TBMCPlayer.class)) != null // Connected?
+ && (mcp = Bukkit.getPlayer(UUID.fromString(cid))) != null) { // Execute as ingame player
+ if (!ConnectedSenders.containsKey(author.getStringID()))
+ ConnectedSenders.put(author.getStringID(), new DiscordPlayerSender(author, channel, mcp));
+ dsender = ConnectedSenders.get(author.getStringID());
+ } else {
+ TBMCPlayer p = dp.getAs(TBMCPlayer.class);
+ if (!UnconnectedSenders.containsKey(author.getStringID()))
+ UnconnectedSenders.put(author.getStringID(),
+ new DiscordSender(author, channel, p == null ? null : p.PlayerName().get())); // Display the playername, if found
+ dsender = UnconnectedSenders.get(author.getStringID());
+ }
+ return dsender;
+ }
}
diff --git a/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordEntity.java b/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordEntity.java
new file mode 100644
index 0000000..b17048a
--- /dev/null
+++ b/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordEntity.java
@@ -0,0 +1,317 @@
+package buttondevteam.discordplugin.playerfaker;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.UUID;
+
+import org.bukkit.Bukkit;
+import org.bukkit.EntityEffect;
+import org.bukkit.Location;
+import org.bukkit.Server;
+import org.bukkit.World;
+import org.bukkit.block.PistonMoveReaction;
+import org.bukkit.entity.Entity;
+import org.bukkit.event.entity.EntityDamageEvent;
+import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
+import org.bukkit.metadata.MetadataValue;
+import org.bukkit.permissions.PermissibleBase;
+import org.bukkit.permissions.ServerOperator;
+import org.bukkit.plugin.Plugin;
+import org.bukkit.util.Vector;
+
+import buttondevteam.discordplugin.DiscordSenderBase;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.experimental.Delegate;
+import sx.blah.discord.handle.obj.IChannel;
+import sx.blah.discord.handle.obj.IUser;
+
+@Getter
+@Setter
+public abstract class DiscordEntity extends DiscordSenderBase implements Entity {
+ protected DiscordEntity(IUser user, IChannel channel, int entityId, UUID uuid) {
+ super(user, channel);
+ this.entityId = entityId;
+ uniqueId = uuid;
+ }
+
+ private HashMap metadata = new HashMap();
+
+ @Delegate
+ private PermissibleBase perm = new PermissibleBase(new ServerOperator() {
+ private @Getter @Setter boolean op;
+ });
+
+ private Location location;
+ private Vector velocity;
+ private final int entityId;
+ private EntityDamageEvent lastDamageCause;
+ private final Set scoreboardTags = new HashSet();
+ private final UUID uniqueId;
+
+ @Override
+ public void setMetadata(String metadataKey, MetadataValue newMetadataValue) {
+ metadata.put(metadataKey, newMetadataValue);
+ }
+
+ @Override
+ public List getMetadata(String metadataKey) {
+ return Arrays.asList(metadata.get(metadataKey)); // Who needs multiple data anyways
+ }
+
+ @Override
+ public boolean hasMetadata(String metadataKey) {
+ return metadata.containsKey(metadataKey);
+ }
+
+ @Override
+ public void removeMetadata(String metadataKey, Plugin owningPlugin) {
+ metadata.remove(metadataKey);
+ }
+
+ @Override
+ public Location getLocation(Location loc) {
+ if (loc != null) {
+ loc.setWorld(getWorld());
+ loc.setX(location.getX());
+ loc.setY(location.getY());
+ loc.setZ(location.getZ());
+ loc.setYaw(location.getYaw());
+ loc.setPitch(location.getPitch());
+ }
+
+ return loc;
+ }
+
+ @Override
+ public double getHeight() {
+ return 0;
+ }
+
+ @Override
+ public double getWidth() {
+ return 0;
+ }
+
+ @Override
+ public boolean isOnGround() {
+ return false;
+ }
+
+ @Override
+ public World getWorld() {
+ return location.getWorld();
+ }
+
+ @Override
+ public boolean teleport(Location location) {
+ this.location = location;
+ return true;
+ }
+
+ @Override
+ public boolean teleport(Location location, TeleportCause cause) {
+ this.location = location;
+ return true;
+ }
+
+ @Override
+ public boolean teleport(Entity destination) {
+ this.location = destination.getLocation();
+ return true;
+ }
+
+ @Override
+ public boolean teleport(Entity destination, TeleportCause cause) {
+ this.location = destination.getLocation();
+ return true;
+ }
+
+ @Override
+ public List getNearbyEntities(double x, double y, double z) {
+ return Arrays.asList();
+ }
+
+ @Override
+ public int getFireTicks() {
+ return 0;
+ }
+
+ @Override
+ public int getMaxFireTicks() {
+ return 0;
+ }
+
+ @Override
+ public void setFireTicks(int ticks) {
+ }
+
+ @Override
+ public void remove() {
+ }
+
+ @Override
+ public boolean isDead() { // Impossible to kill
+ return false;
+ }
+
+ @Override
+ public boolean isValid() {
+ return true;
+ }
+
+ @Override
+ public Server getServer() {
+ return Bukkit.getServer();
+ }
+
+ @Override
+ public Entity getPassenger() {
+ return null;
+ }
+
+ @Override
+ public boolean setPassenger(Entity passenger) {
+ return false;
+ }
+
+ @Override
+ public List getPassengers() {
+ return Arrays.asList();
+ }
+
+ @Override
+ public boolean addPassenger(Entity passenger) {
+ return false;
+ }
+
+ @Override
+ public boolean removePassenger(Entity passenger) { // Don't support passengers
+ return false;
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return true;
+ }
+
+ @Override
+ public boolean eject() {
+ return false;
+ }
+
+ @Override
+ public float getFallDistance() {
+ return 0;
+ }
+
+ @Override
+ public void setFallDistance(float distance) {
+ }
+
+ @Override
+ public int getTicksLived() {
+ return 1;
+ }
+
+ @Override
+ public void setTicksLived(int value) {
+ }
+
+ @Override
+ public void playEffect(EntityEffect type) {
+ }
+
+ @Override
+ public boolean isInsideVehicle() {
+ return false;
+ }
+
+ @Override
+ public boolean leaveVehicle() {
+ return false;
+ }
+
+ @Override
+ public Entity getVehicle() { // Don't support vehicles
+ return null;
+ }
+
+ @Override
+ public void setCustomNameVisible(boolean flag) {
+ }
+
+ @Override
+ public boolean isCustomNameVisible() {
+ return true;
+ }
+
+ @Override
+ public void setGlowing(boolean flag) {
+ }
+
+ @Override
+ public boolean isGlowing() {
+ return false;
+ }
+
+ @Override
+ public void setInvulnerable(boolean flag) {
+ }
+
+ @Override
+ public boolean isInvulnerable() {
+ return true;
+ }
+
+ @Override
+ public boolean isSilent() {
+ return true;
+ }
+
+ @Override
+ public void setSilent(boolean flag) {
+ }
+
+ @Override
+ public boolean hasGravity() {
+ return false;
+ }
+
+ @Override
+ public void setGravity(boolean gravity) {
+ }
+
+ @Override
+ public int getPortalCooldown() {
+ return 0;
+ }
+
+ @Override
+ public void setPortalCooldown(int cooldown) {
+ }
+
+ @Override
+ public boolean addScoreboardTag(String tag) {
+ return scoreboardTags.add(tag);
+ }
+
+ @Override
+ public boolean removeScoreboardTag(String tag) {
+ return scoreboardTags.remove(tag);
+ }
+
+ @Override
+ public PistonMoveReaction getPistonMoveReaction() {
+ return PistonMoveReaction.IGNORE;
+ }
+
+ @Override
+ public Entity.Spigot spigot() {
+ return new Entity.Spigot();
+ }
+
+}
diff --git a/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordHumanEntity.java b/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordHumanEntity.java
new file mode 100644
index 0000000..eab863b
--- /dev/null
+++ b/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordHumanEntity.java
@@ -0,0 +1,205 @@
+package buttondevteam.discordplugin.playerfaker;
+
+import java.util.UUID;
+
+import org.bukkit.GameMode;
+import org.bukkit.Location;
+import org.bukkit.Material;
+import org.bukkit.entity.Entity;
+import org.bukkit.entity.EntityType;
+import org.bukkit.entity.HumanEntity;
+import org.bukkit.entity.Villager;
+import org.bukkit.inventory.Inventory;
+import org.bukkit.inventory.InventoryView;
+import org.bukkit.inventory.InventoryView.Property;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.MainHand;
+import org.bukkit.inventory.Merchant;
+import org.bukkit.inventory.PlayerInventory;
+
+import sx.blah.discord.handle.obj.IChannel;
+import sx.blah.discord.handle.obj.IUser;
+
+public abstract class DiscordHumanEntity extends DiscordLivingEntity implements HumanEntity {
+ protected DiscordHumanEntity(IUser user, IChannel channel, int entityId, UUID uuid) {
+ super(user, channel, entityId, uuid);
+ }
+
+ @Override
+ public PlayerInventory getInventory() { // TODO
+ return null;
+ }
+
+ @Override
+ public Inventory getEnderChest() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public MainHand getMainHand() {
+ return MainHand.RIGHT;
+ }
+
+ @Override
+ public boolean setWindowProperty(Property prop, int value) {
+ return false;
+ }
+
+ @Override
+ public InventoryView getOpenInventory() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public InventoryView openInventory(Inventory inventory) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public InventoryView openWorkbench(Location location, boolean force) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public InventoryView openEnchanting(Location location, boolean force) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void openInventory(InventoryView inventory) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public InventoryView openMerchant(Villager trader, boolean force) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public InventoryView openMerchant(Merchant merchant, boolean force) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void closeInventory() {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public ItemStack getItemInHand() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void setItemInHand(ItemStack item) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public ItemStack getItemOnCursor() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void setItemOnCursor(ItemStack item) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public boolean hasCooldown(Material material) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public int getCooldown(Material material) {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public void setCooldown(Material material, int ticks) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public boolean isSleeping() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public int getSleepTicks() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public GameMode getGameMode() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void setGameMode(GameMode mode) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public boolean isBlocking() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isHandRaised() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public int getExpToLevel() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public Entity getShoulderEntityLeft() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void setShoulderEntityLeft(Entity entity) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public Entity getShoulderEntityRight() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void setShoulderEntityRight(Entity entity) {
+ // TODO Auto-generated method stub
+
+ }
+
+}
diff --git a/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordLivingEntity.java b/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordLivingEntity.java
new file mode 100644
index 0000000..23f2601
--- /dev/null
+++ b/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordLivingEntity.java
@@ -0,0 +1,303 @@
+package buttondevteam.discordplugin.playerfaker;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.UUID;
+
+import org.bukkit.Location;
+import org.bukkit.Material;
+import org.bukkit.attribute.Attribute;
+import org.bukkit.attribute.AttributeInstance;
+import org.bukkit.block.Block;
+import org.bukkit.entity.Entity;
+import org.bukkit.entity.LivingEntity;
+import org.bukkit.entity.Player;
+import org.bukkit.entity.Projectile;
+import org.bukkit.inventory.EntityEquipment;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.potion.PotionEffect;
+import org.bukkit.potion.PotionEffectType;
+import org.bukkit.util.Vector;
+
+import lombok.Getter;
+import lombok.Setter;
+import sx.blah.discord.handle.obj.IChannel;
+import sx.blah.discord.handle.obj.IUser;
+
+public abstract class DiscordLivingEntity extends DiscordEntity implements LivingEntity {
+
+ protected DiscordLivingEntity(IUser user, IChannel channel, int entityId, UUID uuid) {
+ super(user, channel, entityId, uuid);
+ }
+
+ private @Getter EntityEquipment equipment = new DiscordEntityEquipment(this);
+
+ @Getter
+ @Setter
+ private static class DiscordEntityEquipment implements EntityEquipment {
+
+ private float leggingsDropChance;
+ private ItemStack leggings;
+ private float itemInOffHandDropChance;
+ private ItemStack itemInOffHand;
+ private float itemInMainHandDropChance;
+ private ItemStack itemInMainHand;
+ private float itemInHandDropChance;
+ private ItemStack itemInHand;
+ private float helmetDropChance;
+ private ItemStack helmet;
+ private float chestplateDropChance;
+ private ItemStack chestplate;
+ private float bootsDropChance;
+ private ItemStack boots;
+ private ItemStack[] armorContents = new ItemStack[0]; // TODO
+ private final Entity holder;
+
+ public DiscordEntityEquipment(Entity holder) {
+ this.holder = holder;
+ }
+
+ @Override
+ public void clear() {
+ armorContents = new ItemStack[0];
+ }
+ }
+
+ @Override
+ public AttributeInstance getAttribute(Attribute attribute) { // We don't support any attribute
+ return null;
+ }
+
+ @Override
+ public void damage(double amount) {
+ }
+
+ @Override
+ public void damage(double amount, Entity source) {
+ }
+
+ @Override
+ public double getHealth() {
+ return getMaxHealth();
+ }
+
+ @Override
+ public void setHealth(double health) {
+ }
+
+ @Override
+ public double getMaxHealth() {
+ return 100;
+ }
+
+ @Override
+ public void setMaxHealth(double health) {
+ }
+
+ @Override
+ public void resetMaxHealth() {
+ }
+
+ @Override
+ public T launchProjectile(Class extends T> projectile) {
+ return null;
+ }
+
+ @Override
+ public T launchProjectile(Class extends T> projectile, Vector velocity) {
+ return null;
+ }
+
+ @Override
+ public double getEyeHeight() {
+ return 0;
+ }
+
+ @Override
+ public double getEyeHeight(boolean ignoreSneaking) {
+ return 0;
+ }
+
+ @Override
+ public Location getEyeLocation() {
+ return getLocation();
+ }
+
+ @Override
+ public List getLineOfSight(Set transparent, int maxDistance) {
+ return Arrays.asList();
+ }
+
+ @Override
+ public Block getTargetBlock(HashSet transparent, int maxDistance) {
+ return null;
+ }
+
+ @Override
+ public Block getTargetBlock(Set transparent, int maxDistance) {
+ return null;
+ }
+
+ @Override
+ public List getLastTwoTargetBlocks(HashSet transparent, int maxDistance) {
+ return Arrays.asList();
+ }
+
+ @Override
+ public List getLastTwoTargetBlocks(Set transparent, int maxDistance) {
+ return Arrays.asList();
+ }
+
+ @Override
+ public int getRemainingAir() {
+ return 100;
+ }
+
+ @Override
+ public void setRemainingAir(int ticks) {
+ }
+
+ @Override
+ public int getMaximumAir() {
+ return 100;
+ }
+
+ @Override
+ public void setMaximumAir(int ticks) {
+ }
+
+ @Override
+ public int getMaximumNoDamageTicks() {
+ return 100;
+ }
+
+ @Override
+ public void setMaximumNoDamageTicks(int ticks) {
+ }
+
+ @Override
+ public double getLastDamage() {
+ return 0;
+ }
+
+ @Override
+ public void setLastDamage(double damage) {
+ }
+
+ @Override
+ public int getNoDamageTicks() {
+ return 100;
+ }
+
+ @Override
+ public void setNoDamageTicks(int ticks) {
+ }
+
+ @Override
+ public Player getKiller() {
+ return null;
+ }
+
+ @Override
+ public boolean addPotionEffect(PotionEffect effect) {
+ return false;
+ }
+
+ @Override
+ public boolean addPotionEffect(PotionEffect effect, boolean force) {
+ return false;
+ }
+
+ @Override
+ public boolean addPotionEffects(Collection effects) {
+ return false;
+ }
+
+ @Override
+ public boolean hasPotionEffect(PotionEffectType type) {
+ return false;
+ }
+
+ @Override
+ public PotionEffect getPotionEffect(PotionEffectType type) {
+ return null;
+ }
+
+ @Override
+ public void removePotionEffect(PotionEffectType type) {
+ }
+
+ @Override
+ public Collection getActivePotionEffects() {
+ return Arrays.asList();
+ }
+
+ @Override
+ public boolean hasLineOfSight(Entity other) {
+ return false;
+ }
+
+ @Override
+ public boolean getRemoveWhenFarAway() {
+ return false;
+ }
+
+ @Override
+ public void setRemoveWhenFarAway(boolean remove) {
+ }
+
+ @Override
+ public void setCanPickupItems(boolean pickup) {
+ }
+
+ @Override
+ public boolean getCanPickupItems() {
+ return false;
+ }
+
+ @Override
+ public boolean isLeashed() {
+ return false;
+ }
+
+ @Override
+ public Entity getLeashHolder() throws IllegalStateException {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public boolean setLeashHolder(Entity holder) {
+ return false;
+ }
+
+ @Override
+ public boolean isGliding() {
+ return false;
+ }
+
+ @Override
+ public void setGliding(boolean gliding) {
+ }
+
+ @Override
+ public void setAI(boolean ai) {
+ }
+
+ @Override
+ public boolean hasAI() {
+ return false;
+ }
+
+ @Override
+ public void setCollidable(boolean collidable) {
+ }
+
+ @Override
+ public boolean isCollidable() {
+ return false;
+ }
+
+}
diff --git a/src/test/java/buttondevteam/DiscordPlugin/AppTest.java b/src/test/java/buttondevteam/DiscordPlugin/AppTest.java
index c560777..46ad699 100644
--- a/src/test/java/buttondevteam/DiscordPlugin/AppTest.java
+++ b/src/test/java/buttondevteam/DiscordPlugin/AppTest.java
@@ -1,11 +1,5 @@
package buttondevteam.DiscordPlugin;
-import java.util.Arrays;
-import java.util.stream.Collectors;
-
-import org.apache.commons.lang.exception.ExceptionUtils;
-
-import buttondevteam.lib.TBMCCoreAPI;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
@@ -35,26 +29,6 @@ public class AppTest extends TestCase {
* Rigourous Test :-)
*/
public void testApp() {
- /*String sourcemessage = "Test message";
- Exception e = new Exception("Test exception");
- StringBuilder sb = TBMCCoreAPI.IsTestServer() ? new StringBuilder()
- : new StringBuilder("Coder role").append("\n");
- sb.append(sourcemessage).append("\n");
- sb.append("```").append("\n");
- String stackTrace = Arrays.stream(ExceptionUtils.getStackTrace(e).split("\\n"))
- .filter(s -> !(s.contains("\tat ") && ( //
- s.contains("java.util") //
- || s.contains("java.lang") //
- || s.contains("net.minecraft.server") //
- || s.contains("sun.reflect") //
- || s.contains("org.bukkit") //
- ))).collect(Collectors.joining("\n"));
- if (stackTrace.length() > 1800)
- stackTrace = stackTrace.substring(0, 1800);
- sb.append(stackTrace).append("\n");
- sb.append("```");
- System.out.println(sb.toString());
- assertTrue(sb.toString().contains("Coder role"));*/
assertTrue(true);
}
}