-
Total de itens
43 -
Registro em
-
Última visita
Tudo que Muloo postou
-
redirecionando o site para outro que retorne true, como no windows com o arquivo hosts
-
ChangeLog 18/08/2018 - Plugin Lançado! 19/08/2018 - Plugin recompilado na versão 8 do java
-
1.8+ PLUGIN EM ALPHA!! FAVOR REPORTAR A MIN QUALQUER BUG!! Um novo plugin de ScoreBoard baseado em múltiplas scoreboards com sistema de expressão para exibição de scores e API para desenvolvedores! Arquivos de Configuração Atualmente apenas o tempo de atualização das scoreboards podem na config. config.yml Configuração de Scores Para a adição de mais scoreboards basta somente criar um arquivo .yml com o qualquer nome na basta scoreboards dentro da pasta de configuração do plugin e seguindo o template a baixo. Dependências Utilize o plugin PlaceHolderAPI para a adição de tags Download PlaceHolderAPI: https://www.spigotmc.org/resources/placeholderapi.6245/ Wiki com todos os placeholders: https://www.spigotmc.org/wiki/placeholderapi-placeholders/ Default PlaceHolders API API para desenvolvedores PlayerBoardEvent - exemplos de uso ChangeLog Download Versão 0.1-SNAPSHOT - Clique Aqui Ao encontrar qualquer bug contacte me via MP para que eu possar corrigir. Estarei atualizando o plugin assim que possível, adicionando novas funcionalidades para API, otimização do código, correções e etc...
-
Pedido (Obrigatório)*: Logo para plugin semelhante ao do legendchat [ ] Assinatura (sign) [ ] Avatar [ ] Banner (Youtube/Divulgação) [ ] Server-icon [X] Outro: Tema (Obrigatório)*: Logo plugin. Render/Stock (Obrigatório)*: [X] Livre escolha do Designer. [ ] Outro: Tamanho: [ ] 400x200 (Assinatura) [ ] 150x250 (Avatar) [ ] 468x60 (Banner para divulgação) [ ] 2560x1440 (Banner YT) [ ] 64x64 (Server-icon) [X] Outro: 620x213 Texto: [ ] N/D [X] Outro: Legendboard Link do Último Pedido: N/A
-
19/03/2018 - Plugin Atualizado! Melhoria feitas nos códigos. Classe "EPlayer" para api renomeada para "User". Adicionado suporte para alteração no nome e na lore de um item nos kits. Adicionado suporte para pegar cabeça de um jogador pelo kit. Ex: 397 1 player:Muloo Corrigido um bug no qual fazia o arquivo de configuração se esvaziar. Perdão pela demora em atualizar o plugin, tive alguns problemas pessoais e acabei ficando sem meu pc por um tempo.
-
1.8+, Rankup
-
fico feliz que goste do meu trabalho :)
-
tipo o plugin só da load quando der um comando?
-
08/02/2018 - Plugin Atualizado! Corrigido as permissões do comando /gamemode, no qual qualquer player podia alterar seu modo de jogo. Código das placas atualizado. Adicionada novas placas: kits, enchant, warp. Adicionado o comando /hat. Adicionado o comando /enchant. Adicionado 3 novos eventos para api: SignEvent, SignCreateEvent, SignInteractEvent. Algumas melhorias no código foram feitas.
-
Qual versão do minecraft esse modpack?
-
é só abrir o jar do plugin com o winrar e no arquivo plugin.yml delete os comandos dos kit
-
Não, sinto muito. Mas poderei adicionar isso na próxima atualização
-
EssentialsFX 1.8+ EssentialsFX é um projeto que estava parado na minha workspace por vários anos, até que então resolvi criar um servidor e terminá-lo para que eu pudesse usar, então eu resolvi compartilha-lo com vocês também, pois a varias pessoa que assim como eu, acham o essentials pesado, ruim e com algumas funcionalidades desnecessárias. Comandos Arquivos de Configuração Mensagem de entrada alterada em motd.txt, Cooldowns são salvos em MySQL ou SQLite, e sim eu kibei o arquivo de mensagem do essentials config.yml messages.yml kits.yml locations.yml motd.txt Placas API Em breve estarei adicionando novas funcionalidades na API para o plugin. User e Teleport - exemplos de uso PlayerVanishEvent - Exemplo de uso PlayerWarpEvent - Exemplo de Uso CommandExecutorEvent - Exemplo de uso ChangeLog Download Versão 2.1.1 - Clique Aqui quem estava usando alguma versão inferior a 2.1 apague o arquivo config.yml e o arquivo messages.yml para não ocorrer erros Ao encontrar qualquer bug contacte me via MP para que eu possar corrigir. Estarei atualizando o plugin frequentemente, adicionando novas funcionalidades para API, otimização do código, correções e etc...
-
server.properties -> enable-rcon=true, rcon.password=senhaAleatoria $wsr = new WebsenderAPI("127.0.0.1","senhaAleatoria","25565"); // HOST , PASSWORD , PORT
-
resolvido (Dúvida) Computador Gamer - Compatibilidade
pergunta respondeu ao newdude de Muloo em Dúvidas resolvidas
recomendo uma 730 no minimo, as placas com numero de modelo terminadas em 10 da série GT são as mais lentas q tem, tendo seu desempenho praticamente igual em todas, como gt 210 , 310 etc..., falo por experiencia própria, pois tive uma gt 210 e logo em seguida uma 710 e n mudou em nada os frames :3 -
Obrigado
-
Obrigado, mais eu gostaria de fazer um plugin sem o uso de APIs
-
Olá galera, gostaria de pedir a ajuda de vocês para pegar o jogador que estou olhando, sei que tenho que usar PlayerMoveEvent mas não faço a menor ideia de como ;-;
-
obrigado, as vezes eu nao percebo coisa tao besta de arrumar kkkk
-
public static Main plugin; public static FileConfiguration config; public static YamlConfig messages; public static YamlConfig locations; public static YamlConfig kits; public static Cooldown cooldown; @Override public void onEnable() { plugin = this; getLogger().info("§3[Essentials] §aHabilitado"); config = getConfig(); createFiles(); saveDefaultConfig(); registerEvents(); loadCommands(); loadAliases(); SQLManager.SQLManagerConnection(); Cooldown.loadDataBase(); }
-
Olá, implementei uso de mysql/sqlite em kits no plugin essentials que estou fazendo para meu servidor e ao tentar pegar algum kit me deparo com o seguinte erro: [13:08:01 INFO]: Muloo issued server command: /kit vip [13:08:01 ERROR]: null org.bukkit.command.CommandException: Unhandled exception executing command 'kit' in plugin Essentials v0.1 at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:641) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand(PlayerConnection.java:1162) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:997) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:45) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:1) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [spigot.jar:git-Spigot-db6de12-18fbb24] at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_141] at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_141] at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [spigot.jar:git-Spigot-db6de12-18fbb24] at java.lang.Thread.run(Unknown Source) [?:1.8.0_141] Caused by: java.lang.NullPointerException at me.muloo.essentials.kits.CommandKit.onCommand(CommandKit.java:32) ~[?:?] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot.jar:git-Spigot-db6de12-18fbb24] ... 15 more [13:08:01 INFO]: Muloo issued server command: /kit vip [13:08:01 ERROR]: null org.bukkit.command.CommandException: Unhandled exception executing command 'kit' in plugin Essentials v0.1 at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:641) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand(PlayerConnection.java:1162) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:997) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:45) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:1) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [spigot.jar:git-Spigot-db6de12-18fbb24] at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_141] at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_141] at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [spigot.jar:git-Spigot-db6de12-18fbb24] at java.lang.Thread.run(Unknown Source) [?:1.8.0_141] Caused by: java.lang.NullPointerException at me.muloo.essentials.kits.CommandKit.onCommand(CommandKit.java:32) ~[?:?] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot.jar:git-Spigot-db6de12-18fbb24] ... 15 more Linha do erro: if (Main.cooldown.containsCooldown(playerN, kit)) { containsCooldown: public boolean containsCooldown(String player, String kit) { try { Statement statement = c.createStatement(); ResultSet res = statement.executeQuery("SELECT * FROM kits WHERE Player = '" + player + "' AND kit = '"+ kit +"';"); while (res.next()) { return true; } } catch (SQLException e) { e.printStackTrace(); } return false; } Ja tentei até colocar só return false; e continua o mesmo erro. e todos metodos da classe tambem da erro. Segue abaixo as classes utilizadas para o comando kit: CommandKit.class: package me.muloo.essentials.kits; import java.util.concurrent.TimeUnit; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import me.muloo.essentials.Main; import me.muloo.essentials.Utils; import me.muloo.essentials.utils.messages; public class CommandKit implements CommandExecutor { public Main plugin; public CommandKit(Main plugin) { this.plugin = plugin; } @SuppressWarnings("deprecation") @Override public boolean onCommand(CommandSender sender, Command cmd, String string, String[] args) { if(sender instanceof Player){ Player player = (Player)sender; if(args.length == 1){ if(Main.kits.contains("Kits." + args[0].toString())){ String playerN = player.getName(); String kit = args[0].toString(); int cd = Main.kits.getInt("Kits." + args[0].toString() + ".cooldown"); if(player.hasPermission("essentials.kit." + args[0].toString())){ if (Main.cooldown.containsCooldown(playerN, kit)) { player.sendMessage(messages.get("kitTimed").replace("&", "§").replace("{0}", Main.cooldown.getRemainingTime(playerN, kit, TimeUnit.SECONDS.toMillis(cd)))); } else { for (String s : Main.kits.getStringList("Kits." + args[0].toString() + ".items")) { String[] a = s.split(" "); String[] itemid = a[0].split(":"); ItemStack i; if (itemid.length > 1) { i = new ItemStack(Integer.valueOf(itemid[0]).intValue(), Integer.valueOf(a[1]).intValue(), Byte.valueOf(itemid[1]).byteValue()); } else { i = new ItemStack(Integer.valueOf(itemid[0]).intValue(), Integer.valueOf(a[1]).intValue()); } if (a.length > 2) { for (int enchantposition = 2; enchantposition <= a.length - 1; enchantposition++) { String[] enchantnameandnivel = a[enchantposition].split(":"); try { i.addEnchantment(Utils.getEnchants(enchantnameandnivel[0]), Integer.valueOf(enchantnameandnivel[1]).intValue()); } catch (Exception IllegalArgumentException) { player.sendMessage(messages.get("kitError").replace("&", "§")); } } } player.getInventory().addItem(new ItemStack[] { i }); } player.sendMessage(messages.get("kitReceive").replace("&", "§").replace("{0}", args[0])); Main.cooldown.setCooldown(playerN, kit); } } else { player.sendMessage(messages.get("noKitPermission").replace("&", "§")); } } else { player.sendMessage(messages.get("kitNotFound").replace("&", "§")); } } else { player.sendMessage(messages.get("argsError").replace("&", "§").replace("{0}", "/kit <kitname>")); } return true; } else { sender.sendMessage(messages.get("onlyPlayers").replace("&", "§")); } return false; } } Cooldown.class: package me.muloo.essentials.kits; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.concurrent.TimeUnit; import java.util.regex.Matcher; import java.util.regex.Pattern; import me.muloo.essentials.mysql.SQLManager; import me.muloo.essentials.utils.messages; public class Cooldown { private static Connection c = null; public static void loadDataBase() { c = SQLManager.c; SQLManager.createTables("CREATE TABLE IF NOT EXISTS `kits`(`Player` VARCHAR(20) NOT NULL, `kit` VARCHAR(20) NOT NULL, `time` INT NOT NULL);"); } public void setCooldown(String player, String kit) { try { Statement statement = c.createStatement(); statement.executeUpdate("INSERT INTO kits (`Player`, `kit`, `time`) VALUES ('" + player + "', '"+ kit +"', "+ System.currentTimeMillis() +");"); } catch (SQLException e) { e.printStackTrace(); } } public long getCooldown(String player, String kit) { if(containsCooldown(player, kit)) { return getLong(player, kit); } else { return System.currentTimeMillis(); } } private long getLong(String player, String kit) { long l = 0; try { Statement statement = c.createStatement(); ResultSet res = statement.executeQuery("SELECT * FROM kits WHERE Player = '" + player + "' AND kit = '"+ kit +"';"); res.next(); return res.getLong("time"); } catch (SQLException e) { e.printStackTrace(); } return l; } public boolean isExpired(String player, String kit, long l) { String coisa = getRemainingTime(player, kit, l); if (coisa.contains(messages.get("now"))) { return true; } else { return false; } } public String getRemainingTime(String player, String kit, long l) { long tempoAntes = getCooldown(player, kit); long tempoAtual = System.currentTimeMillis() - l; String coisa = formatDifferenceStr((tempoAntes - tempoAtual)); return coisa; } public void removeCooldown(String player, String kit) { try { PreparedStatement ps = c.prepareStatement("DELETE FROM `kits`(Player, kit) VALUES (?, ?);"); ps.setString(1, player); ps.setString(2, kit); ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } } public boolean containsCooldown(String player, String kit) { try { Statement statement = c.createStatement(); ResultSet res = statement.executeQuery("SELECT * FROM kits WHERE Player = '" + player + "' AND kit = '"+ kit +"';"); while (res.next()) { return true; } } catch (SQLException e) { e.printStackTrace(); } return false; } public String formatDifferenceStr(long time) { if (time == 0) { return "never"; } long day = TimeUnit.MILLISECONDS.toDays(time); long hours = TimeUnit.MILLISECONDS.toHours(time) - (day * 24); long minutes = TimeUnit.MILLISECONDS.toMinutes(time) - (TimeUnit.MILLISECONDS.toHours(time) * 60); long seconds = TimeUnit.MILLISECONDS.toSeconds(time) - (TimeUnit.MILLISECONDS.toMinutes(time) * 60); StringBuilder sb = new StringBuilder(); if (day > 0) { sb.append(day).append(" ").append(day == 1 ? messages.get("day") : messages.get("dias")).append(" "); } if (hours > 0) { sb.append(hours).append(" ").append(hours == 1 ? messages.get("hour") : messages.get("hours")).append(" "); } if (minutes > 0) { sb.append(minutes).append(" ").append(minutes == 1 ? messages.get("minute") : messages.get("minutes")).append(" "); } if (seconds > 0) { sb.append(seconds).append(" ").append(seconds == 1 ? messages.get("second") : messages.get("seconds")); } String diff = sb.toString(); return diff.isEmpty() ? messages.get("now") : diff; } public String getDifferenceFormatStr(long timestamp) { return formatDifferenceStr(timestamp - (System.currentTimeMillis())); } // Copyright essentials, all credits to them for this. public long parseDateDiff(String time, boolean future) throws Exception { Pattern timePattern = Pattern.compile("(?[0-9]+)\\s*y[a-z]*[,\\s]*)?" + "(?[0-9]+)\\s*mo[a-z]*[,\\s]*)?" + "(?[0-9]+)\\s*w[a-z]*[,\\s]*)?" + "(?[0-9]+)\\s*d[a-z]*[,\\s]*)?" + "(?[0-9]+)\\s*h[a-z]*[,\\s]*)?" + "(?[0-9]+)\\s*m[a-z]*[,\\s]*)?" + "(?[0-9]+)\\s*(?:s[a-z]*)?)?", Pattern.CASE_INSENSITIVE); Matcher m = timePattern.matcher(time); int years = 0; int months = 0; int weeks = 0; int days = 0; int hours = 0; int minutes = 0; int seconds = 0; boolean found = false; while (m.find()) { if (m.group() == null || m.group().isEmpty()) { continue; } for (int i = 0; i < m.groupCount(); i++) { if (m.group(i) != null && !m.group(i).isEmpty()) { found = true; break; } } if (found) { if (m.group(1) != null && !m.group(1).isEmpty()) { years = Integer.parseInt(m.group(1)); } if (m.group(2) != null && !m.group(2).isEmpty()) { months = Integer.parseInt(m.group(2)); } if (m.group(3) != null && !m.group(3).isEmpty()) { weeks = Integer.parseInt(m.group(3)); } if (m.group(4) != null && !m.group(4).isEmpty()) { days = Integer.parseInt(m.group(4)); } if (m.group(5) != null && !m.group(5).isEmpty()) { hours = Integer.parseInt(m.group(5)); } if (m.group(6) != null && !m.group(6).isEmpty()) { minutes = Integer.parseInt(m.group(6)); } if (m.group(7) != null && !m.group(7).isEmpty()) { seconds = Integer.parseInt(m.group(7)); } break; } } if (!found) { throw new Exception("Illegal Date"); } if (years > 20) { throw new Exception("Illegal Date"); } Calendar c = new GregorianCalendar(); if (years > 0) { c.add(Calendar.YEAR, years * (future ? 1 : -1)); } if (months > 0) { c.add(Calendar.MONTH, months * (future ? 1 : -1)); } if (weeks > 0) { c.add(Calendar.WEEK_OF_YEAR, weeks * (future ? 1 : -1)); } if (days > 0) { c.add(Calendar.DAY_OF_MONTH, days * (future ? 1 : -1)); } if (hours > 0) { c.add(Calendar.HOUR_OF_DAY, hours * (future ? 1 : -1)); } if (minutes > 0) { c.add(Calendar.MINUTE, minutes * (future ? 1 : -1)); } if (seconds > 0) { c.add(Calendar.SECOND, seconds * (future ? 1 : -1)); } return c.getTimeInMillis(); } SQLManager.class: package me.muloo.essentials.mysql; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; import org.bukkit.configuration.file.FileConfiguration; import me.muloo.essentials.Main; import me.muloo.essentials.mysql.mysql.MySQL; import me.muloo.essentials.mysql.sqlite.SQLite; public class SQLManager { private static MySQL MySQL = new MySQL(Main.plugin.getConfig().getString("MySQL.host"), Main.plugin.getConfig().getString("MySQL.port"), Main.plugin.getConfig().getString("MySQL.database"), Main.plugin.getConfig().getString("MySQL.user"), Main.plugin.getConfig().getString("MySQL.password")); private static SQLite SQLite = new SQLite("data.db"); public static Connection c = null; public static void SQLManagerConnection() { if(getConfig().getBoolean("MySQL.enable")) { MySQLConnection(); } else { SQLiteConnection(); } } public static void createTables(String code) { try { Statement statement = c.createStatement(); statement.executeUpdate(code); System.out.print("Table created"); } catch (SQLException e) { e.printStackTrace(); } } private static void MySQLConnection() { try { c = MySQL.openConnection(); System.out.print("MySQL Hooked"); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } } private static void SQLiteConnection() { try { c = SQLite.openConnection(); System.out.print("SQLite Hooked"); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } } private static FileConfiguration getConfig() { return Main.plugin.getConfig(); } } na Main estou usando em onEnable(): SQLManager.SQLManagerConnection(); Cooldown.loadDataBase(); para carregar o database.
-
Olha o print q achei da Gamersboard em FEV 2016
tópico respondeu ao BigBurgerPT de Muloo em Arquivos
sdds mesmo era disso: https://web.archive.org/web/20140516143829/http://atomgamers.com:80/