Ir para conteúdo

SISTEMA SIMPLES DE CÁLCULO


chicogamer

Posts Recomendados

yCálculo

 

Sistema de cálculo é um sistema bem simples que calcula a expressão matemática introduzida.

É totalmente configurável, e também não tem o exploit do WorldEdit que permite qualquer jogador crashar o servidor.

Na configuração é possível trocar dados como, mensagens, formatar o número (de 1000000 passaria para 1.000.000), e também é possível ativar a opção de substituir os comandos do WorldEdit (//calc e //calculate) para o comando principal do sistema.

 

CHANGELOG

» v1.0 - Lançamento do sistema

» v1.1 - Correção de bugs, bloqueado operações que contem métodos que poderão lagar o servidor, adicionado limite de 9.223.372.036.854.775.807 (Long.MAX_VALUE) aos cálculos.

 

COMANDOS

» /calcular <expressão> - Calcula a expressão indicada.

» /calcular recarregar - Recarrega dos dados da configuração.

 

PERMISSÕES

» /calcular <expressão> - Sem permissão

» /calcular recarregar - "ycalcular.recarregar" ou OP

 

EXCLUSIVIDADE

Apesar do sistema ser simples, tem várias funcionalidades exclusivas.

Tal como: Calcular expressões de multiplicação e divisão primeiro e depois adição e subtração, todos os cálculos são efetuados em outra Thread o que significa que não irá lagar nada o seu servidor.

Apesar de funcionar com o eval do JavaScript, é bloqueado todos os métodos adicionais que não sejam de adição, subtração, divisão ou multiplicação

 

CONFIG

 

## PLUGIN DESENVOLVIDO POR EXTREMEDEV ##

## Mensagens ##
Mensagem_erro: "&cNão foi possível calcular a expressão: ."
Mensagem_calculo: "&aO resultado de é &f&a."
Mensagem_argumentos: "&cPor favor, use /calcular ."

## O resultado 1000000 passaria para: 1.000.000 ##
Numero_formatado: true

## Atraso para executar o comando novamente ##
Delay: true

## tempo em ticks (20 ticks = 1 segundo) ##
Delay_tempo: 20
Delay_mensagem: "&cAguarde para executar novamente esse comando."

## Substituir comandos como: //calc e //calculate para /calcular. ##
Substituir_comandos_do_WorldEdit: true

 

 

EXEMPLOS

 

mlLqBUysTpatJi5nZnS43Q.png

 

 

1ibHHBkdSTGS0qw1vLUgZA.png

 

 

DEMONSTRAÇÃO & DOWNLOAD

https://www.youtube.com/watch?v=aQDXTdtKzm0

Editado por yExtremeDev
Link para o comentário
Compartilhar em outros sites

Provavelmente tem a mesma "vulnerabilidade" do WorldEdit, já que você também usa o eval do Javascript...

 

Seria mais seguro fazer um código próprio pra parsear e calcular, ou usar um já pronto...

 

Não tem o exploit do worldedit, além de que é executado em outra Thread, se por acaso ele descobrir um método de fazer uma operação pesada, não vai lagar o servidor.

Link para o comentário
Compartilhar em outros sites

Não tem o exploit do worldedit, além de que é executado em outra Thread, se por acaso ele descobrir um método de fazer uma operação pesada, não vai lagar o servidor.

 

Não importa que é outra Thread, eu faço o uso de CPU ir pra 100% com 8 caracteres.

 

Simples e fácil. Basta fazer um loop infinito e isso vai ficar rodando "pra sempre" nas Threads iniciadas, fazendo com que o uso de CPU vá para as alturas.

 

YidByUM.png

miv02GT.png

Editado por leonardosc
Link para o comentário
Compartilhar em outros sites

Qual o maximo de numeros que posso introduzir? e caso eu faça uma conta pesada?

Não tem máxima, já testei e não tem o exploit do worldedit. Se não me engano os únicos sinais operatórios disponíveis são +,-,*,/.

Link para o comentário
Compartilhar em outros sites

O plugin tem vários exploits, não recomendo ninguém a utiliza-lo.

[18:35:04] [PaperSpigot Watchdog Thread/ERROR]: The server has stopped responding!
[18:35:04] [PaperSpigot Watchdog Thread/ERROR]: Please report this to PaperSpigot directly!
[18:35:04] [PaperSpigot Watchdog Thread/ERROR]: Be sure to include ALL relevant console errors and Minecraft crash reports
[18:35:04] [PaperSpigot Watchdog Thread/ERROR]: PaperSpigot version: git-TacoSpigot-"27784328" (MC: 1.8.8)
[18:35:04] [PaperSpigot Watchdog Thread/ERROR]: ------------------------------
[18:35:04] [PaperSpigot Watchdog Thread/ERROR]: Server thread dump (Look for plugins here before reporting to PaperSpigot!):
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: ------------------------------
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: Current Thread: Server thread
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 	PID: 15 | Suspended: false | Native: false | State: RUNNABLE
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 	Stack:
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		java.util.zip.ZipFile.getEntry(Native Method)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		java.util.zip.ZipFile.getEntry(Unknown Source)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		java.util.jar.JarFile.getEntry(Unknown Source)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		java.util.jar.JarFile.getJarEntry(Unknown Source)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		sun.misc.URLClassPath$JarLoader.getResource(Unknown Source)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		sun.misc.URLClassPath.getResource(Unknown Source)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		java.net.URLClassLoader$1.run(Unknown Source)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		java.net.URLClassLoader$1.run(Unknown Source)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		java.security.AccessController.doPrivileged(Native Method)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		java.net.URLClassLoader.findClass(Unknown Source)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:102)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		org.bukkit.plugin.java.JavaPluginLoader.getClassByName(JavaPluginLoader.java:193)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:98)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:87)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		java.lang.ClassLoader.loadClass(Unknown Source)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		java.lang.ClassLoader.loadClass(Unknown Source)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		java.lang.Class.forName0(Native Method)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		java.lang.Class.forName(Unknown Source)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		ru.tehkode.permissions.bukkit.regexperms.PermissibleInjector$ClassPresencePermissibleInjector.isApplicable(PermissibleInjector.java:110)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		ru.tehkode.permissions.bukkit.regexperms.RegexPermissions.uninjectPermissible(RegexPermissions.java:103)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		ru.tehkode.permissions.bukkit.regexperms.RegexPermissions.access$100(RegexPermissions.java:21)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		ru.tehkode.permissions.bukkit.regexperms.RegexPermissions$EventListener.onPlayerQuit(RegexPermissions.java:142)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		java.lang.reflect.Method.invoke(Unknown Source)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:300)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:74)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:501)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:486)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		net.minecraft.server.v1_8_R3.PlayerList.disconnect(PlayerList.java:364)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:880)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		net.minecraft.server.v1_8_R3.NetworkManager.l(NetworkManager.java:314)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		net.minecraft.server.v1_8_R3.ServerConnection.c(ServerConnection.java:145)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:875)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:378)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:713)
[18:35:05] [PaperSpigot Watchdog Thread/ERROR]: 		net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:616)
[18:35:06] [PaperSpigot Watchdog Thread/ERROR]: 		java.lang.Thread.run(Unknown Source)
[18:35:06] [PaperSpigot Watchdog Thread/ERROR]: ------------------------------
[18:35:06] [PaperSpigot Watchdog Thread/ERROR]: Entire Thread Dump:
Link para o comentário
Compartilhar em outros sites

Não importa que é outra Thread, eu faço o uso de CPU ir pra 100% com 8 caracteres.

 

Simples e fácil. Basta fazer um loop infinito e isso vai ficar rodando "pra sempre" nas Threads iniciadas, fazendo com que o uso de CPU vá para as alturas.

 

YidByUM.png

miv02GT.png

 

 

Certo, irei bloquear os métodos do java script, deixando apenas disponível os operadores: +,-,/,*. Valeu por informar.

Link para o comentário
Compartilhar em outros sites

Pronto, testem novamente o plugin mas com a versão 1.1.

Acho que foi resolvido todos os problemas de lag.

Alguma duvida, no post do sistema tem o changelog.

Algum bug, só comentar aqui que irei resolver o mais rápido possível.

Link para o comentário
Compartilhar em outros sites

ANÁLISE DE INATIVIDADE
 

Este tópico foi automaticamente arquivado devido à inatividade. Para manter a organização e fluidez das discussões na comunidade, tópicos que permanecem sem novas interações por um período prolongado são fechados automaticamente.
 

Se houver interesse em retomar o conteúdo, sinta-se à vontade para criar um novo tópico ou entre em contato com a equipe da comunidade para reabrir este tópico.


Equipe de Moderação
Gamer's Board
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...