*Updated plugin from Bukkit/Spigot 1.9.2 to 1.9.4
*Updated plugin.yml version number from 1.3.1 to 1.4.0 *Changed plugin internal version number from 14 to 15 *Added website attribute to plugin.yml *Update checking now occurs on a separate thread *Update checking now occurs once every 24 hours instead of only once when the server is started *If an update check determines that a newer version is available, an update message will be displayed in the console once every hour *If an update check determines that a newer version is available, server OPs will be presented with an update message when they log in
This commit is contained in:
parent
e47a6a7ea8
commit
2bb45ab770
@ -11,6 +11,6 @@
|
||||
<classpathentry kind="lib" path="libs/worldedit-bukkit-6.1.jar"/>
|
||||
<classpathentry kind="lib" path="libs/worldguard-6.1.jar"/>
|
||||
<classpathentry kind="lib" path="libs/CustomItems-1.0.0.jar"/>
|
||||
<classpathentry kind="lib" path="libs/craftbukkit-1.9.2.jar"/>
|
||||
<classpathentry kind="lib" path="libs/craftbukkit-1.9.4.jar"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,2 +1,2 @@
|
||||
/bin/
|
||||
/libs/craftbukkit-1.9.2.jar
|
||||
/libs/craftbukkit-1.9.4.jar
|
@ -4,9 +4,9 @@ import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Random;
|
||||
|
||||
import net.minecraft.server.v1_9_R1.EntityPlayer;
|
||||
import net.minecraft.server.v1_9_R1.PacketPlayOutPlayerInfo;
|
||||
import net.minecraft.server.v1_9_R1.PacketPlayOutPlayerInfo.EnumPlayerInfoAction;
|
||||
import net.minecraft.server.v1_9_R2.EntityPlayer;
|
||||
import net.minecraft.server.v1_9_R2.PacketPlayOutPlayerInfo;
|
||||
import net.minecraft.server.v1_9_R2.PacketPlayOutPlayerInfo.EnumPlayerInfoAction;
|
||||
import net.theprogrammersworld.herobrine.Herobrine;
|
||||
import net.theprogrammersworld.herobrine.Util;
|
||||
import net.theprogrammersworld.herobrine.AI.cores.Attack;
|
||||
@ -33,7 +33,7 @@ import org.bukkit.Bukkit;
|
||||
import org.bukkit.Effect;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.craftbukkit.v1_9_R1.entity.CraftPlayer;
|
||||
import org.bukkit.craftbukkit.v1_9_R2.entity.CraftPlayer;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
|
@ -89,9 +89,10 @@ public class ConfigDB
|
||||
public boolean UseSound = true;
|
||||
public boolean ShowInTabList = false;
|
||||
public boolean CheckForUpdates = true;
|
||||
|
||||
public static String pluginVersionNumber = Bukkit.getServer().getPluginManager().getPlugin("Herobrine").
|
||||
getDescription().getVersion();
|
||||
|
||||
public boolean newVersionFound = false;
|
||||
private boolean isStartupDone = false;
|
||||
|
||||
public ConfigDB(Logger l)
|
||||
|
@ -1,9 +1,6 @@
|
||||
package net.theprogrammersworld.herobrine;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.URL;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.logging.Logger;
|
||||
@ -29,9 +26,10 @@ import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.WorldCreator;
|
||||
import org.bukkit.WorldType;
|
||||
import org.bukkit.command.ConsoleCommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.metadata.FixedMetadataValue;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
@ -60,7 +58,6 @@ public class Herobrine extends JavaPlugin implements Listener {
|
||||
|
||||
public Location hbSpawnData = null;
|
||||
public boolean removeHBNextTick = false;
|
||||
public String pluginVersionCount = "14";
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
@ -78,27 +75,17 @@ public class Herobrine extends JavaPlugin implements Listener {
|
||||
getServer().getPluginManager().registerEvents(new InventoryListener(), this);
|
||||
getServer().getPluginManager().registerEvents(new PlayerListener(), this);
|
||||
getServer().getPluginManager().registerEvents(new WorldListener(), this);
|
||||
getServer().getPluginManager().registerEvents(this, this);
|
||||
initHerobrine();
|
||||
|
||||
// Start the telemetry collection.
|
||||
new Thread(new Telemetry()).start();
|
||||
|
||||
// If the user has update checking turned on, check if the server is running the latest version
|
||||
// of the plugin and display a message in the server console if it is not.
|
||||
// If the user has update checking turned on, start the thread responsible for performing
|
||||
// the check.
|
||||
if(configdb.CheckForUpdates)
|
||||
{
|
||||
ConsoleCommandSender console = Bukkit.getServer().getConsoleSender();
|
||||
try {
|
||||
URL versionCheckURL = new URL("https://www.theprogrammersworld.net/Herobrine/latestVersion.html");
|
||||
BufferedReader remoteNumberReader = new BufferedReader(new InputStreamReader(versionCheckURL.openStream()));
|
||||
String remoteVersionNumber = remoteNumberReader.readLine();
|
||||
if(!remoteVersionNumber.equals(pluginVersionCount))
|
||||
console.sendMessage(ChatColor.RED + "A new version of Herobrine is available.\nTo get it, " +
|
||||
"go to www.theprogrammersworld.net/Herobrine and click \"Download\".");
|
||||
} catch (Exception e) {
|
||||
console.sendMessage(ChatColor.RED + "Herobrine was unable to connect to the internet to check\n" +
|
||||
"for a new version.");
|
||||
}
|
||||
new Thread(new UpdateScanner()).start();
|
||||
}
|
||||
}
|
||||
|
||||
@ -283,5 +270,17 @@ public class Herobrine extends JavaPlugin implements Listener {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||
// When a player joins the server, check if they are an OP. If they are,
|
||||
// and a newer version of Herobrine is available, display a message to
|
||||
// them stating so.
|
||||
Player joinedPlayer = event.getPlayer();
|
||||
if(configdb.newVersionFound && joinedPlayer.isOp()) {
|
||||
joinedPlayer.sendMessage(ChatColor.RED + "A new version of Herobrine is available. To " +
|
||||
"get it, go to www.theprogrammersworld.net/Herobrine and click \"Download\".");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
53
src/net/theprogrammersworld/herobrine/UpdateScanner.java
Normal file
53
src/net/theprogrammersworld/herobrine/UpdateScanner.java
Normal file
@ -0,0 +1,53 @@
|
||||
package net.theprogrammersworld.herobrine;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.URL;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.ConsoleCommandSender;
|
||||
|
||||
public class UpdateScanner implements Runnable {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
// Check for a newer version of the plugin, and put the thread to sleep for 24 hours
|
||||
// before the check is performed again. If a newer version is found, begin reporting
|
||||
// the discovery of a newer version once every hour.
|
||||
final String pluginVersionCount = "15";
|
||||
ConsoleCommandSender console = Bukkit.getServer().getConsoleSender();
|
||||
|
||||
while(!Herobrine.getPluginCore().getConfigDB().newVersionFound) {
|
||||
// Check for updates once every 24 hours.
|
||||
try {
|
||||
URL versionCheckURL = new URL("https://www.theprogrammersworld.net/Herobrine/latestVersion.html");
|
||||
BufferedReader remoteNumberReader = new BufferedReader(new InputStreamReader(versionCheckURL.openStream()));
|
||||
String remoteVersionNumber = remoteNumberReader.readLine();
|
||||
if(!remoteVersionNumber.equals(pluginVersionCount)) {
|
||||
// A newer version was found. Change the value of "newVersionFound", and break
|
||||
// from this loop in to a loop that will display a "new version" report in the
|
||||
// console once every hour.
|
||||
Herobrine.getPluginCore().getConfigDB().newVersionFound = true;
|
||||
break;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
console.sendMessage(ChatColor.RED + "Herobrine was unable to connect to the internet to check\n" +
|
||||
"for a new version.");
|
||||
}
|
||||
try {
|
||||
Thread.sleep(86400000);
|
||||
} catch (InterruptedException e) {}
|
||||
}
|
||||
|
||||
while(true) {
|
||||
// Display a "new version" message in the console once every hour.
|
||||
console.sendMessage(ChatColor.RED + "A new version of Herobrine is available.\nTo get it, " +
|
||||
"go to www.theprogrammersworld.net/Herobrine and click \"Download\".");
|
||||
try {
|
||||
Thread.sleep(3600000);
|
||||
} catch (InterruptedException e) {}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -966,7 +966,7 @@ public class CmdExecutor implements CommandExecutor {
|
||||
double x = Herobrine.herobrineNPC.getNMSEntity().locX;
|
||||
double y = Herobrine.herobrineNPC.getNMSEntity().locY;
|
||||
double z = Herobrine.herobrineNPC.getNMSEntity().locZ;
|
||||
net.minecraft.server.v1_9_R1.World world = Herobrine.herobrineNPC.getNMSEntity().getWorld();
|
||||
net.minecraft.server.v1_9_R2.World world = Herobrine.herobrineNPC.getNMSEntity().getWorld();
|
||||
sender.sendMessage(red + "Herobrine's location world: " + world + " x: " + x + " y: " + y +
|
||||
" z: " + z);
|
||||
|
||||
|
@ -5,8 +5,8 @@ import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
import net.minecraft.server.v1_9_R1.Entity;
|
||||
import net.minecraft.server.v1_9_R1.PlayerInteractManager;
|
||||
import net.minecraft.server.v1_9_R2.Entity;
|
||||
import net.minecraft.server.v1_9_R2.PlayerInteractManager;
|
||||
import net.theprogrammersworld.herobrine.Herobrine;
|
||||
import net.theprogrammersworld.herobrine.nms.NPC.entity.HumanEntity;
|
||||
import net.theprogrammersworld.herobrine.nms.NPC.entity.HumanNPC;
|
||||
|
@ -1,10 +1,10 @@
|
||||
package net.theprogrammersworld.herobrine.nms.NPC.entity;
|
||||
|
||||
import net.minecraft.server.v1_9_R1.Entity;
|
||||
import net.minecraft.server.v1_9_R1.EntityHuman;
|
||||
import net.minecraft.server.v1_9_R1.EntityPlayer;
|
||||
import net.minecraft.server.v1_9_R1.WorldSettings.EnumGamemode;
|
||||
import net.minecraft.server.v1_9_R1.PlayerInteractManager;
|
||||
import net.minecraft.server.v1_9_R2.Entity;
|
||||
import net.minecraft.server.v1_9_R2.EntityHuman;
|
||||
import net.minecraft.server.v1_9_R2.EntityPlayer;
|
||||
import net.minecraft.server.v1_9_R2.WorldSettings.EnumGamemode;
|
||||
import net.minecraft.server.v1_9_R2.PlayerInteractManager;
|
||||
import net.theprogrammersworld.herobrine.nms.NPC.NPCCore;
|
||||
import net.theprogrammersworld.herobrine.nms.NPC.network.NetworkHandler;
|
||||
import net.theprogrammersworld.herobrine.nms.NPC.utils.NMSWorldAccess;
|
||||
@ -12,8 +12,8 @@ import net.theprogrammersworld.herobrine.nms.NPC.utils.NMSWorldAccess;
|
||||
import com.mojang.authlib.GameProfile;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.craftbukkit.v1_9_R1.CraftServer;
|
||||
import org.bukkit.craftbukkit.v1_9_R1.entity.CraftPlayer;
|
||||
import org.bukkit.craftbukkit.v1_9_R2.CraftServer;
|
||||
import org.bukkit.craftbukkit.v1_9_R2.entity.CraftPlayer;
|
||||
|
||||
public class HumanEntity extends EntityPlayer {
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
package net.theprogrammersworld.herobrine.nms.NPC.entity;
|
||||
|
||||
import net.minecraft.server.v1_9_R1.EntityPlayer;
|
||||
import net.minecraft.server.v1_9_R1.PacketPlayInArmAnimation;
|
||||
import net.minecraft.server.v1_9_R1.WorldServer;
|
||||
import net.minecraft.server.v1_9_R2.EntityPlayer;
|
||||
import net.minecraft.server.v1_9_R2.PacketPlayInArmAnimation;
|
||||
import net.minecraft.server.v1_9_R2.WorldServer;
|
||||
import net.theprogrammersworld.herobrine.Herobrine;
|
||||
|
||||
import org.bukkit.Location;
|
||||
@ -94,8 +94,8 @@ public class HumanNPC {
|
||||
if (newYaw > 0.0D || newYaw < 180.0D){
|
||||
((EntityPlayer) getNMSEntity()).yaw = (float) (newYaw - 90.0);
|
||||
((EntityPlayer) getNMSEntity()).pitch = (float) newPitch;
|
||||
((EntityPlayer) getNMSEntity()).aK = (float) (newYaw - 90.0);
|
||||
((EntityPlayer) getNMSEntity()).aI = (float) (newYaw - 90.0);
|
||||
((EntityPlayer) getNMSEntity()).aL = (float) (newYaw - 90.0);
|
||||
((EntityPlayer) getNMSEntity()).aJ = (float) (newYaw - 90.0);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
package net.theprogrammersworld.herobrine.nms.NPC.network;
|
||||
|
||||
import net.minecraft.server.v1_9_R1.EnumProtocolDirection;
|
||||
import net.minecraft.server.v1_9_R1.NetworkManager;
|
||||
import net.minecraft.server.v1_9_R2.EnumProtocolDirection;
|
||||
import net.minecraft.server.v1_9_R2.NetworkManager;
|
||||
|
||||
public class NetworkCore extends NetworkManager {
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
package net.theprogrammersworld.herobrine.nms.NPC.network;
|
||||
|
||||
import net.minecraft.server.v1_9_R1.EntityPlayer;
|
||||
import net.minecraft.server.v1_9_R1.Packet;
|
||||
import net.minecraft.server.v1_9_R1.PlayerConnection;
|
||||
import net.minecraft.server.v1_9_R2.EntityPlayer;
|
||||
import net.minecraft.server.v1_9_R2.Packet;
|
||||
import net.minecraft.server.v1_9_R2.PlayerConnection;
|
||||
import net.theprogrammersworld.herobrine.nms.NPC.NPCCore;
|
||||
|
||||
public class NetworkHandler extends PlayerConnection {
|
||||
|
@ -1,11 +1,11 @@
|
||||
package net.theprogrammersworld.herobrine.nms.NPC.network;
|
||||
|
||||
import net.minecraft.server.v1_9_R1.Packet;
|
||||
import net.minecraft.server.v1_9_R2.Packet;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.craftbukkit.v1_9_R1.entity.CraftPlayer;
|
||||
import org.bukkit.craftbukkit.v1_9_R2.entity.CraftPlayer;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
|
@ -3,12 +3,12 @@ package net.theprogrammersworld.herobrine.nms.NPC.utils;
|
||||
import java.util.List;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import net.minecraft.server.v1_9_R1.MinecraftServer;
|
||||
import net.minecraft.server.v1_9_R1.WorldServer;
|
||||
import net.minecraft.server.v1_9_R2.MinecraftServer;
|
||||
import net.minecraft.server.v1_9_R2.WorldServer;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.craftbukkit.v1_9_R1.CraftServer;
|
||||
import org.bukkit.craftbukkit.v1_9_R2.CraftServer;
|
||||
|
||||
public class NMSServerAccess {
|
||||
|
||||
|
@ -3,11 +3,11 @@ package net.theprogrammersworld.herobrine.nms.NPC.utils;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import net.minecraft.server.v1_9_R1.PlayerChunkMap;
|
||||
import net.minecraft.server.v1_9_R1.WorldServer;
|
||||
import net.minecraft.server.v1_9_R2.PlayerChunkMap;
|
||||
import net.minecraft.server.v1_9_R2.WorldServer;
|
||||
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.craftbukkit.v1_9_R1.CraftWorld;
|
||||
import org.bukkit.craftbukkit.v1_9_R2.CraftWorld;
|
||||
|
||||
public class NMSWorldAccess {
|
||||
|
||||
|
@ -2,9 +2,9 @@ package net.theprogrammersworld.herobrine.nms.entity;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import net.minecraft.server.v1_9_R1.EntitySkeleton;
|
||||
import net.minecraft.server.v1_9_R1.GenericAttributes;
|
||||
import net.minecraft.server.v1_9_R1.World;
|
||||
import net.minecraft.server.v1_9_R2.EntitySkeleton;
|
||||
import net.minecraft.server.v1_9_R2.GenericAttributes;
|
||||
import net.minecraft.server.v1_9_R2.World;
|
||||
import net.theprogrammersworld.herobrine.Herobrine;
|
||||
import net.theprogrammersworld.herobrine.misc.ItemName;
|
||||
|
||||
|
@ -2,9 +2,9 @@ package net.theprogrammersworld.herobrine.nms.entity;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import net.minecraft.server.v1_9_R1.EntityZombie;
|
||||
import net.minecraft.server.v1_9_R1.GenericAttributes;
|
||||
import net.minecraft.server.v1_9_R1.World;
|
||||
import net.minecraft.server.v1_9_R2.EntityZombie;
|
||||
import net.minecraft.server.v1_9_R2.GenericAttributes;
|
||||
import net.minecraft.server.v1_9_R2.World;
|
||||
import net.theprogrammersworld.herobrine.Herobrine;
|
||||
|
||||
import org.bukkit.Location;
|
||||
|
@ -4,7 +4,7 @@ import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Map;
|
||||
|
||||
import net.minecraft.server.v1_9_R1.EntityTypes;
|
||||
import net.minecraft.server.v1_9_R2.EntityTypes;
|
||||
import net.theprogrammersworld.herobrine.Herobrine;
|
||||
|
||||
public class EntityInjector {
|
||||
|
@ -3,10 +3,10 @@ package net.theprogrammersworld.herobrine.nms.entity;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import net.minecraft.server.v1_9_R1.World;
|
||||
import net.minecraft.server.v1_9_R2.World;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.craftbukkit.v1_9_R1.CraftWorld;
|
||||
import org.bukkit.craftbukkit.v1_9_R2.CraftWorld;
|
||||
|
||||
public class EntityManager {
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
name: Herobrine
|
||||
main: net.theprogrammersworld.herobrine.Herobrine
|
||||
version: 1.3.1
|
||||
version: 1.4.0
|
||||
website: https://www.theprogrammersworld.net
|
||||
commands:
|
||||
herobrine:
|
||||
description: Main command.
|
||||
|
Reference in New Issue
Block a user