diff --git a/src/main/java/buttondevteam/discordplugin/DiscordConnectedPlayer.java b/src/main/java/buttondevteam/discordplugin/DiscordConnectedPlayer.java index 0ac9e14..a669d0d 100644 --- a/src/main/java/buttondevteam/discordplugin/DiscordConnectedPlayer.java +++ b/src/main/java/buttondevteam/discordplugin/DiscordConnectedPlayer.java @@ -1,1854 +1,16 @@ 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; +import buttondevteam.discordplugin.playerfaker.DiscordFakePlayer; +import sx.blah.discord.handle.obj.IChannel; +import sx.blah.discord.handle.obj.IUser; -public class DiscordConnectedPlayer implements Player { +public class DiscordConnectedPlayer extends DiscordFakePlayer { + private static int nextEntityId = 0; - @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 arg0) { - // TODO Auto-generated method stub - return null; - } - - @Override - public T launchProjectile(Class 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; + public DiscordConnectedPlayer(IUser user, IChannel channel, UUID uuid) { + super(user, channel, nextEntityId++, uuid); } } diff --git a/src/main/java/buttondevteam/discordplugin/listeners/MCChatListener.java b/src/main/java/buttondevteam/discordplugin/listeners/MCChatListener.java index cb1011f..366626e 100644 --- a/src/main/java/buttondevteam/discordplugin/listeners/MCChatListener.java +++ b/src/main/java/buttondevteam/discordplugin/listeners/MCChatListener.java @@ -5,7 +5,9 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.UUID; +import java.util.function.BiFunction; import java.util.function.Consumer; +import java.util.function.Supplier; import java.util.stream.Collectors; import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -127,7 +129,8 @@ public class MCChatListener implements Listener, IListener } public static final HashMap UnconnectedSenders = new HashMap<>(); - public static final HashMap ConnectedSenders = new HashMap<>(); + public static final HashMap ConnectedSenders = new HashMap<>(); + public static final HashMap OnlineSenders = new HashMap<>(); public static short ListC = 0; public static void resetLastMessage() { @@ -216,21 +219,28 @@ public class MCChatListener implements Listener, IListener } } - private DiscordSenderBase getSender(IChannel channel, final IUser author, DiscordPlayer dp) { + @SuppressWarnings("unchecked") + 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 Player mcp; 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 { + BiFunction, Supplier, DiscordSenderBase> getsender = (senders, maker) -> { + if (!senders.containsKey(author.getStringID())) + senders.put(author.getStringID(), maker.get()); + return senders.get(author.getStringID()); + }; + if ((cid = dp.getConnectedID(TBMCPlayer.class)) != null) { // Connected? + if ((mcp = Bukkit.getPlayer(UUID.fromString(cid))) != null) // Online? - Execute as ingame player + dsender = getsender.apply((HashMap) OnlineSenders, + () -> (T) new DiscordPlayerSender(author, channel, mcp)); + else // Offline + dsender = getsender.apply((HashMap) ConnectedSenders, + () -> (T) new DiscordConnectedPlayer(author, channel, UUID.fromString(cid))); + } else { // Not connected 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()); + dsender = getsender.apply((HashMap) UnconnectedSenders, + () -> (T) new DiscordSender(author, channel, p == null ? null : p.PlayerName().get())); // Display the playername, if found } return dsender; } diff --git a/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordFakePlayer.java b/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordFakePlayer.java new file mode 100644 index 0000000..d3db793 --- /dev/null +++ b/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordFakePlayer.java @@ -0,0 +1,721 @@ +package buttondevteam.discordplugin.playerfaker; + +import java.net.InetSocketAddress; +import java.util.*; + +import org.bukkit.*; +import org.bukkit.advancement.Advancement; +import org.bukkit.advancement.AdvancementProgress; +import org.bukkit.conversations.Conversation; +import org.bukkit.conversations.ConversationAbandonedEvent; +import org.bukkit.entity.*; +import org.bukkit.event.player.AsyncPlayerChatEvent; +import org.bukkit.map.MapView; +import org.bukkit.plugin.Plugin; +import org.bukkit.scoreboard.Scoreboard; + +import buttondevteam.discordplugin.DiscordPlugin; +import sx.blah.discord.handle.obj.IChannel; +import sx.blah.discord.handle.obj.IUser; + +public class DiscordFakePlayer extends DiscordHumanEntity implements Player { + protected DiscordFakePlayer(IUser user, IChannel channel, int entityId, UUID uuid) { + super(user, channel, entityId, uuid); + } + + @Override + public String getName() { + return user.getName(); + } + + @Override + public EntityType getType() { + return EntityType.PLAYER; + } + + @Override + public String getCustomName() { + return user.getName(); + } + + @Override + public void setCustomName(String name) { + } + + @Override + public boolean isConversing() { + + return false; + } + + @Override + public void acceptConversationInput(String input) { + } + + @Override + public boolean beginConversation(Conversation conversation) { + return false; + } + + @Override + public void abandonConversation(Conversation conversation) { + } + + @Override + public void abandonConversation(Conversation conversation, ConversationAbandonedEvent details) { + } + + @Override + public boolean isOnline() { + return true;// Let's pretend + } + + @Override + public boolean isBanned() { + return false; + } + + @Override + public boolean isWhitelisted() { + return true; + } + + @Override + public void setWhitelisted(boolean value) { + } + + @Override + public Player getPlayer() { + return this; + } + + @Override + public long getFirstPlayed() { + return 0; + } + + @Override + public long getLastPlayed() { + return 0; + } + + @Override + public boolean hasPlayedBefore() { + return false; + } + + @Override + public Map serialize() { + return new HashMap<>(); + } + + @Override + public void sendPluginMessage(Plugin source, String channel, byte[] message) { + } + + @Override + public Set getListeningPluginChannels() { + return Collections.emptySet(); + } + + @Override + public String getDisplayName() { + return user.getNicknameForGuild(DiscordPlugin.mainServer); + } + + @Override + public void setDisplayName(String name) { + } + + @Override + public String getPlayerListName() { + return getName(); + } + + @Override + public void setPlayerListName(String name) { + } + + @Override + public void setCompassTarget(Location loc) { + } + + @Override + public Location getCompassTarget() { + return new Location(Bukkit.getWorlds().get(0), 0, 0, 0); + } + + @Override + public InetSocketAddress getAddress() { + return null; + } + + @Override + public void sendRawMessage(String message) { + sendMessage(message); + } + + @Override + public void kickPlayer(String message) { + } + + @Override + public void chat(String msg) { + Bukkit.getPluginManager() + .callEvent(new AsyncPlayerChatEvent(true, this, msg, new HashSet<>(Bukkit.getOnlinePlayers()))); + } + + @Override + public boolean performCommand(String command) { + return Bukkit.getServer().dispatchCommand(this, command); + } + + @Override + public boolean isSneaking() { + return false; + } + + @Override + public void setSneaking(boolean sneak) { + } + + @Override + public boolean isSprinting() { + return false; + } + + @Override + public void setSprinting(boolean sprinting) { + } + + @Override + public void saveData() { + } + + @Override + public void loadData() { + } + + @Override + public void setSleepingIgnored(boolean isSleeping) { + } + + @Override + public boolean isSleepingIgnored() { + return false; + } + + @Override + public void playNote(Location loc, byte instrument, byte note) { + } + + @Override + public void playNote(Location loc, Instrument instrument, Note note) { + } + + @Override + public void playSound(Location location, Sound sound, float volume, float pitch) { + } + + @Override + public void playSound(Location location, String sound, float volume, float pitch) { + } + + @Override + public void playSound(Location location, Sound sound, SoundCategory category, float volume, float pitch) { + } + + @Override + public void playSound(Location location, String sound, SoundCategory category, float volume, float pitch) { + } + + @Override + public void stopSound(Sound sound) { + } + + @Override + public void stopSound(String sound) { + } + + @Override + public void stopSound(Sound sound, SoundCategory category) { + } + + @Override + public void stopSound(String sound, SoundCategory category) { + } + + @Override + public void playEffect(Location loc, Effect effect, int data) { + } + + @Override + public void playEffect(Location loc, Effect effect, T data) { + } + + @Override + public void sendBlockChange(Location loc, Material material, byte data) { + } + + @Override + public boolean sendChunkChange(Location loc, int sx, int sy, int sz, byte[] data) { + return false; + } + + @Override + public void sendBlockChange(Location loc, int material, byte data) { + } + + @Override + public void sendSignChange(Location loc, String[] lines) throws IllegalArgumentException { + } + + @Override + public void sendMap(MapView map) { + } + + @Override + public void updateInventory() { + } + + @Override + public void awardAchievement(@SuppressWarnings("deprecation") Achievement achievement) { + } + + @Override + public void removeAchievement(@SuppressWarnings("deprecation") Achievement achievement) { + } + + @Override + public boolean hasAchievement(@SuppressWarnings("deprecation") Achievement achievement) { + return false; + } + + @Override + public void incrementStatistic(Statistic statistic) throws IllegalArgumentException { + } + + @Override + public void decrementStatistic(Statistic statistic) throws IllegalArgumentException { + } + + @Override + public void incrementStatistic(Statistic statistic, int amount) throws IllegalArgumentException { + + } + + @Override + public void decrementStatistic(Statistic statistic, int amount) throws IllegalArgumentException { + + } + + @Override + public void setStatistic(Statistic statistic, int newValue) throws IllegalArgumentException { + + } + + @Override + public int getStatistic(Statistic statistic) throws IllegalArgumentException { + + return 0; + } + + @Override + public void incrementStatistic(Statistic statistic, Material material) throws IllegalArgumentException { + + } + + @Override + public void decrementStatistic(Statistic statistic, Material material) throws IllegalArgumentException { + + } + + @Override + public int getStatistic(Statistic statistic, Material material) throws IllegalArgumentException { + + return 0; + } + + @Override + public void incrementStatistic(Statistic statistic, Material material, int amount) throws IllegalArgumentException { + + } + + @Override + public void decrementStatistic(Statistic statistic, Material material, int amount) throws IllegalArgumentException { + + } + + @Override + public void setStatistic(Statistic statistic, Material material, int newValue) throws IllegalArgumentException { + + } + + @Override + public void incrementStatistic(Statistic statistic, EntityType entityType) throws IllegalArgumentException { + + } + + @Override + public void decrementStatistic(Statistic statistic, EntityType entityType) throws IllegalArgumentException { + + } + + @Override + public int getStatistic(Statistic statistic, EntityType entityType) throws IllegalArgumentException { + + return 0; + } + + @Override + public void incrementStatistic(Statistic statistic, EntityType entityType, int amount) + throws IllegalArgumentException { + + } + + @Override + public void decrementStatistic(Statistic statistic, EntityType entityType, int amount) { + + } + + @Override + public void setStatistic(Statistic statistic, EntityType entityType, int newValue) { + + } + + @Override + public void setPlayerTime(long time, boolean relative) { + + } + + @Override + public long getPlayerTime() { + + return 0; + } + + @Override + public long getPlayerTimeOffset() { + + return 0; + } + + @Override + public boolean isPlayerTimeRelative() { + + return false; + } + + @Override + public void resetPlayerTime() { + + } + + @Override + public void setPlayerWeather(WeatherType type) { + + } + + @Override + public WeatherType getPlayerWeather() { + + return null; + } + + @Override + public void resetPlayerWeather() { + + } + + @Override + public void giveExp(int amount) { + + } + + @Override + public void giveExpLevels(int amount) { + + } + + @Override + public float getExp() { + + return 0; + } + + @Override + public void setExp(float exp) { + + } + + @Override + public int getLevel() { + + return 0; + } + + @Override + public void setLevel(int level) { + + } + + @Override + public int getTotalExperience() { + + return 0; + } + + @Override + public void setTotalExperience(int exp) { + + } + + @Override + public float getExhaustion() { + + return 0; + } + + @Override + public void setExhaustion(float value) { + + } + + @Override + public float getSaturation() { + + return 0; + } + + @Override + public void setSaturation(float value) { + + } + + @Override + public int getFoodLevel() { + + return 0; + } + + @Override + public void setFoodLevel(int value) { + + } + + @Override + public Location getBedSpawnLocation() { + return null; + } + + @Override + public void setBedSpawnLocation(Location location) { + } + + @Override + public void setBedSpawnLocation(Location location, boolean force) { + } + + @Override + public boolean getAllowFlight() { + return false; + } + + @Override + public void setAllowFlight(boolean flight) { + } + + @Override + public void hidePlayer(Player player) { + } + + @Override + public void showPlayer(Player player) { + } + + @Override + public boolean canSee(Player player) { // Nobody can see them + return false; + } + + @Override + public boolean isFlying() { + return false; + } + + @Override + public void setFlying(boolean value) { + } + + @Override + public void setFlySpeed(float value) throws IllegalArgumentException { + } + + @Override + public void setWalkSpeed(float value) throws IllegalArgumentException { + } + + @Override + public float getFlySpeed() { + return 0; + } + + @Override + public float getWalkSpeed() { + return 0; + } + + @Override + public void setTexturePack(String url) { + } + + @Override + public void setResourcePack(String url) { + } + + @Override + public void setResourcePack(String url, byte[] hash) { + } + + @Override + public Scoreboard getScoreboard() { + return null; + } + + @Override + public void setScoreboard(Scoreboard scoreboard) throws IllegalArgumentException, IllegalStateException { + } + + @Override + public boolean isHealthScaled() { + return false; + } + + @Override + public void setHealthScaled(boolean scale) { + } + + @Override + public void setHealthScale(double scale) throws IllegalArgumentException { + } + + @Override + public double getHealthScale() { + return 1; + } + + @Override + public Entity getSpectatorTarget() { + return null; + } + + @Override + public void setSpectatorTarget(Entity entity) { + } + + @Override + public void sendTitle(String title, String subtitle) { + } + + @Override + public void sendTitle(String title, String subtitle, int fadeIn, int stay, int fadeOut) { + } + + @Override + public void resetTitle() { + } + + @Override + public void spawnParticle(Particle particle, Location location, int count) { + } + + @Override + public void spawnParticle(Particle particle, double x, double y, double z, int count) { + + + } + + @Override + public void spawnParticle(Particle particle, Location location, int count, T data) { + + + } + + @Override + public void spawnParticle(Particle particle, double x, double y, double z, int count, T data) { + + + } + + @Override + public void spawnParticle(Particle particle, Location location, int count, double offsetX, double offsetY, + double offsetZ) { + + + } + + @Override + public void spawnParticle(Particle particle, double x, double y, double z, int count, double offsetX, + double offsetY, double offsetZ) { + + + } + + @Override + public void spawnParticle(Particle particle, Location location, int count, double offsetX, double offsetY, + double offsetZ, T data) { + + + } + + @Override + public void spawnParticle(Particle particle, double x, double y, double z, int count, double offsetX, + double offsetY, double offsetZ, T data) { + + + } + + @Override + public void spawnParticle(Particle particle, Location location, int count, double offsetX, double offsetY, + double offsetZ, double extra) { + + + } + + @Override + public void spawnParticle(Particle particle, double x, double y, double z, int count, double offsetX, + double offsetY, double offsetZ, double extra) { + + + } + + @Override + public void spawnParticle(Particle particle, Location location, int count, double offsetX, double offsetY, + double offsetZ, double extra, T 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) { + + + } + + @Override + public AdvancementProgress getAdvancementProgress(Advancement advancement) { // TODO: Test + return null; + } + + @Override + public String getLocale() { + + return null; + } + + @Override + public Player.Spigot spigot() { + return new Player.Spigot(); + } +} diff --git a/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordHumanEntity.java b/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordHumanEntity.java index eab863b..26d220f 100644 --- a/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordHumanEntity.java +++ b/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordHumanEntity.java @@ -6,16 +6,10 @@ 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.*; 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; @@ -25,15 +19,18 @@ public abstract class DiscordHumanEntity extends DiscordLivingEntity implements super(user, channel, entityId, uuid); } + private PlayerInventory inv = new DiscordPlayerInventory(this); + @Override - public PlayerInventory getInventory() { // TODO - return null; + public PlayerInventory getInventory() { + return inv; } + private Inventory enderchest = new DiscordInventory(this); + @Override public Inventory getEnderChest() { - // TODO Auto-generated method stub - return null; + return enderchest; } @Override @@ -47,159 +44,125 @@ public abstract class DiscordHumanEntity extends DiscordLivingEntity implements } @Override - public InventoryView getOpenInventory() { - // TODO Auto-generated method stub + public InventoryView getOpenInventory() { // TODO: Test 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 + public ItemStack getItemInHand() { // TODO: Test all ItemStack methods 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; + return GameMode.SPECTATOR; } @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/DiscordInventory.java b/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordInventory.java new file mode 100644 index 0000000..f8f9886 --- /dev/null +++ b/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordInventory.java @@ -0,0 +1,212 @@ +package buttondevteam.discordplugin.playerfaker; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.ListIterator; +import java.util.stream.Collectors; +import java.util.stream.IntStream; + +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.entity.HumanEntity; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; + +public class DiscordInventory implements Inventory { + public DiscordInventory(DiscordHumanEntity holder) { + this.holder = holder; + } + + @Override + public int getSize() { + return 0; + } + + @Override + public int getMaxStackSize() { + return 0; + } + + @Override + public void setMaxStackSize(int size) { + } + + @Override + public String getName() { + return "Player inventory"; + } + + @Override + public ItemStack getItem(int index) { + return null; + } + + @Override + public HashMap addItem(ItemStack... items) throws IllegalArgumentException { // Can't add anything + return new HashMap<>( + IntStream.range(0, items.length).mapToObj(i -> i).collect(Collectors.toMap(i -> i, i -> items[i]))); + } + + @Override + public HashMap removeItem(ItemStack... items) throws IllegalArgumentException { + return new HashMap<>( + IntStream.range(0, items.length).mapToObj(i -> i).collect(Collectors.toMap(i -> i, i -> items[i]))); + } + + @Override + public ItemStack[] getContents() { + return new ItemStack[0]; + } + + @Override + public void setContents(ItemStack[] items) throws IllegalArgumentException { + if (items.length > 0) + throw new IllegalArgumentException("This inventory does not support items"); + } + + @Override + public ItemStack[] getStorageContents() { + return new ItemStack[0]; + } + + @Override + public void setStorageContents(ItemStack[] items) throws IllegalArgumentException { + if (items.length > 0) + throw new IllegalArgumentException("This inventory does not support items"); + } + + @Override + public boolean contains(int materialId) { + return false; + } + + @Override + public boolean contains(Material material) throws IllegalArgumentException { + return false; + } + + @Override + public boolean contains(ItemStack item) { + return false; + } + + @Override + public boolean contains(int materialId, int amount) { + return false; + } + + @Override + public boolean contains(Material material, int amount) throws IllegalArgumentException { + return false; + } + + @Override + public boolean contains(ItemStack item, int amount) { + return false; + } + + @Override + public boolean containsAtLeast(ItemStack item, int amount) { + return false; + } + + @Override + public HashMap all(int materialId) { + return new HashMap<>(); + } + + @Override + public HashMap all(Material material) throws IllegalArgumentException { + return new HashMap<>(); + } + + @Override + public HashMap all(ItemStack item) { + return new HashMap<>(); + } + + @Override + public int first(int materialId) { + return -1; + } + + @Override + public int first(Material material) throws IllegalArgumentException { + return -1; + } + + @Override + public int first(ItemStack item) { + return -1; + } + + @Override + public int firstEmpty() { + return -1; + } + + @Override + public void remove(int materialId) { + } + + @Override + public void remove(Material material) throws IllegalArgumentException { + } + + @Override + public void remove(ItemStack item) { + } + + @Override + public void clear(int index) { + } + + @Override + public void clear() { + } + + @Override + public List getViewers() { + return new ArrayList<>(0); + } + + @Override + public String getTitle() { + return "Player inventory"; + } + + @Override + public InventoryType getType() { + return InventoryType.PLAYER; + } + + private ListIterator iterator = new ArrayList(0).listIterator(); + + @Override + public ListIterator iterator() { + return iterator; + } + + @Override + public ListIterator iterator(int index) { + return iterator; + } + + @Override + public Location getLocation() { + return holder.getLocation(); + } + + @Override + public void setItem(int index, ItemStack item) { + } + + private HumanEntity holder; + + @Override + public HumanEntity getHolder() { + return holder; + } +} diff --git a/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordPlayerInventory.java b/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordPlayerInventory.java new file mode 100644 index 0000000..447cbcd --- /dev/null +++ b/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordPlayerInventory.java @@ -0,0 +1,105 @@ +package buttondevteam.discordplugin.playerfaker; + +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.PlayerInventory; + +public class DiscordPlayerInventory extends DiscordInventory implements PlayerInventory { + public DiscordPlayerInventory(DiscordHumanEntity holder) { + super(holder); + } + + @Override + public ItemStack[] getArmorContents() { + return new ItemStack[0]; + } + + @Override + public ItemStack[] getExtraContents() { + return new ItemStack[0]; + } + + @Override + public ItemStack getHelmet() { + return null; + } + + @Override + public ItemStack getChestplate() { + return null; + } + + @Override + public ItemStack getLeggings() { + return null; + } + + @Override + public ItemStack getBoots() { + return null; + } + + @Override + public void setArmorContents(ItemStack[] items) { + } + + @Override + public void setExtraContents(ItemStack[] items) { + } + + @Override + public void setHelmet(ItemStack helmet) { + } + + @Override + public void setChestplate(ItemStack chestplate) { + } + + @Override + public void setLeggings(ItemStack leggings) { + } + + @Override + public void setBoots(ItemStack boots) { + } + + @Override + public ItemStack getItemInMainHand() { + return null; + } + + @Override + public void setItemInMainHand(ItemStack item) { + } + + @Override + public ItemStack getItemInOffHand() { + return null; + } + + @Override + public void setItemInOffHand(ItemStack item) { + } + + @Override + public ItemStack getItemInHand() { + return null; + } + + @Override + public void setItemInHand(ItemStack stack) { + } + + @Override + public int getHeldItemSlot() { + return 0; + } + + @Override + public void setHeldItemSlot(int slot) { + } + + @Override + public int clear(int id, int data) { + return 0; + } +}