Code Monkey home page Code Monkey logo

hawkreloaded's People

Contributors

adamjones57 avatar betterphp avatar bob7l avatar ecconia avatar elchilen0 avatar gabdug avatar oloflarsson avatar orelio avatar puremin0rez avatar seyfahni avatar stutiguias avatar untergrundbiber avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

hawkreloaded's Issues

Queue overloaded because of 'null'

Using HawkEye Reloaded devBuild#55 (commit b4da955) on Spigot 1.8.7, the queue fills up but is never written to the database:

[23:36:35 INFO]: [HawkEye] The queue is almost overloaded! Queue: 27698346
[23:36:35 WARN]: [HawkEye] null
[23:36:37 INFO]: [HawkEye] The queue is almost overloaded! Queue: 27701705
[23:36:37 WARN]: [HawkEye] null
[23:36:39 INFO]: [HawkEye] The queue is almost overloaded! Queue: 27705064
[23:36:39 WARN]: [HawkEye] null

When shutting down the server, I see the following error message:

[23:38:18 ERROR]: [HawkEye] Error whilst attempting to get connection: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Too many connections
[23:38:18 WARN]: [HawkEye] null
[23:38:18 INFO]: [HawkEye] The queue is almost overloaded! Queue: 27840282
[23:38:18 ERROR]: [HawkEye] Error whilst attempting to get connection: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Too many connections
[23:38:18 WARN]: [HawkEye] null
[23:38:18 ERROR]: [HawkEye] Unable to close SQL connection: java.lang.NullPointerException
[23:38:18 INFO]: [HawkEye] Version 1.6.2 disabled!

I also activated HawkEye's debug output, but did not notice anything unusual. HawkEye Reloaded was updated from 1.6.2 and no changes where made to the configuration. Likewise there where no changes made in the MySQL server's configuration.

I assume that this is a bug within HawkEye. Please let me know if I can help you to track it down and resolve it.

entity-kill not working on Hawkeye Reloaded 1.6.0

It seems as if it's not logging when people kill animals.

I have it enabled and it shows that its being logged in /hawk info but its simply just not being logged. I've tried using the /hawk here radius and /hawk search r: command and it doesn't work. Filtering by a:entity-kill also doesn't show any results.

Hawkeye web interface not logging properly

Hello. We use hawkeye reloaded on our server. We seem to be having some issues with different parts of the plugin however.

The online web interface is currently showing wrong players issuing commands and the same for chats. So if i said "Hello World" it would tell us that a different player said "Hello World".

The same goes for commands. I was warning a player (my IGN is Thortuna) but the logs show up as a different player did it, this players name will change every time i open the web interface and search the same thing.
https://gyazo.com/a6023ae6b57d3865fd2f2c9691934124
https://gyazo.com/e73486729c980006d05bb6faae68540e
As you can see the first one is correct in both images but the second one is wrong. Both the ID's for the log is the same but it changes what player did this every time you search it again.

SQL date column is text

Can the date column be changed to something sane like an integer timestamp (or built-in sql timestamp type)? There's no way that having it stored as text is performant compared to the alternatives. It also can't be indexed over as text to speed up queries that specify a time range.

Add radius to rollback report

It would be great to see in what radius the rollback happened.
One of the line of current report is something like:
"Attempting to rollback 23 results"

I would like to see:
"Attempting to rollback 23 results in 10 radius"

or if radius is not set:
"Attempting to rollback 23 results in World"

This could help me to notice if I didn't miss-type a command,
like once I typed: "/he rollback environment r.10"

Armor Stands Not Logged

Armor stands are not logged at all wanted to bring this to your attention

using latest dev build

Support for item names for "f:"?

Item ids works fine but sometimes it's got messed up with other numbers like amount of items moved in chest.
/ha search f:DIAMOND_ORE - doesn't work at all
/ha search f:56 - works but got messed up with other numbers

Issue with Duplicated entry on inserting players into the database

Error location: https://github.com/bob7l/HawkReloaded/blob/master/src/uk/co/oliwali/HawkEye/database/DataManager.java#L132

SQL:
INSERT INTO hawk_table (player) VALUES (?) ON DUPLICATE KEY UPDATE player=VALUES(player)

Error:
com.mysql.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry 'usernamePlaceholder' for key 'player'

How to reproduce:
Unknown. If you login as an existing username with another case (Such as changing S to s), then the key will be considered a duplicate and the UPDATE query will be ran. I haven't been able to reproduce this error on MySQL 5.7

I believe this is due to a bug with MySQL. Attempting to update a unique key "ON DUPLICATE KEY" appears to arise issues on some rare occasions with a few users. My guess is it's attempting to replace the prior username with the new username, but since the prior username already exists within the database, it's unable to do so? Could this possibly be a concurrency issue internally?

Maven repo?

Is there a maven repository the artifacts of HawkReloaded are being pushed to? I was unable to find one.

Logging Issue

Howdy,

We are running version 1.7.2 on Spigot 1.9.4 and we are having a logging issue with a single specific player, according to the database we have 3 actions logged, which would be a join, leave, and a single command. Nothing past that is being logged. Hawk is working perfectly for everyone else. Any ideas what we might be dealing with here?

NPE on breaking a bed block

/version hawkeye reports 1.7.2.

2016-05-06 18:58:49 [Server thread/ERROR] Could not pass event BlockBreakEvent to HawkEye v1.7.2
org.bukkit.event.EventException
    at uk.co.oliwali.HawkEye.listeners.HawkEyeListener$1.execute(HawkEyeListener.java:55) ~[?:?]
    at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:78) ~[patched_1.9.2.jar:git-Paper-723]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[patched_1.9.2.jar:git-Paper-723]
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:517) [patched_1.9.2.jar:git-Paper-723]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:502) [patched_1.9.2.jar:git-Paper-723]
    at net.minecraft.server.v1_9_R1.PlayerInteractManager.breakBlock(PlayerInteractManager.java:292) [patched_1.9.2.jar:git-Paper-723]
    at net.minecraft.server.v1_9_R1.PlayerInteractManager.a(PlayerInteractManager.java:218) [patched_1.9.2.jar:git-Paper-723]
    at net.minecraft.server.v1_9_R1.PlayerConnection.a(PlayerConnection.java:847) [patched_1.9.2.jar:git-Paper-723]
    at net.minecraft.server.v1_9_R1.PacketPlayInBlockDig.a(SourceFile:40) [patched_1.9.2.jar:git-Paper-723]
    at net.minecraft.server.v1_9_R1.PacketPlayInBlockDig.a(SourceFile:10) [patched_1.9.2.jar:git-Paper-723]
    at net.minecraft.server.v1_9_R1.PlayerConnectionUtils$1.run(SourceFile:13) [patched_1.9.2.jar:git-Paper-723]
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_72]
    at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_72]
    at net.minecraft.server.v1_9_R1.SystemUtils.a(SourceFile:45) [patched_1.9.2.jar:git-Paper-723]
    at net.minecraft.server.v1_9_R1.MinecraftServer.D(MinecraftServer.java:813) [patched_1.9.2.jar:git-Paper-723]
    at net.minecraft.server.v1_9_R1.DedicatedServer.D(DedicatedServer.java:404) [patched_1.9.2.jar:git-Paper-723]
    at net.minecraft.server.v1_9_R1.MinecraftServer.C(MinecraftServer.java:723) [patched_1.9.2.jar:git-Paper-723]
    at net.minecraft.server.v1_9_R1.MinecraftServer.run(MinecraftServer.java:622) [patched_1.9.2.jar:git-Paper-723]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_72]
Caused by: java.lang.NullPointerException
    at org.bukkit.craftbukkit.v1_9_R1.block.CraftBlock.getRelative(CraftBlock.java:195) ~[patched_1.9.2.jar:git-Paper-723]
    at org.bukkit.craftbukkit.v1_9_R1.block.CraftBlock.getRelative(CraftBlock.java:191) ~[patched_1.9.2.jar:git-Paper-723]
    at uk.co.oliwali.HawkEye.blocks.BedBlock.getCorrectBlock(BedBlock.java:49) ~[?:?]
    at uk.co.oliwali.HawkEye.listeners.MonitorBlockListener.onBlockBreak(MonitorBlockListener.java:38) ~[?:?]
    at sun.reflect.GeneratedMethodAccessor16.invoke(Unknown Source) ~[?:?]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_72]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_72]
    at uk.co.oliwali.HawkEye.listeners.HawkEyeListener$1.execute(HawkEyeListener.java:52) ~[?:?]
    ... 18 more

container-transact

Even if you enable logging for all three container-transact, container-insert and container-extract you can search for container-transact and will not get any results.

It might be useful, if container-transact could be used as short-cut for container-insert and container-extract.

On the other side, if container-transact should be removed in the future, it would be nice to print a warning that there won't be any new logs, because they are now split into container-insert and container-extract.

Anyway, container-transact should be omitted from configuration.

Problem with Web Interface

Hello,
I have one serious problem with web interface. The index.php page returns this error:


Warning: session_start() [function.session-start]: open(/data/web/virtuals/17932/virtual/session/sess_d49f74eaf81d8ab10da2216800ff0f7e, O_RDWR) failed: No such file or directory (2) in /data/web/virtuals/17932/virtual/www/subdom/hawkeye/classic/login.php on line 3

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /data/web/virtuals/17932/virtual/www/subdom/hawkeye/classic/login.php:3) in /data/web/virtuals/17932/virtual/www/subdom/hawkeye/classic/login.php on line 3

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /data/web/virtuals/17932/virtual/www/subdom/hawkeye/classic/login.php:3) in /data/web/virtuals/17932/virtual/www/subdom/hawkeye/classic/login.php on line 3

Warning: Cannot modify header information - headers already sent by (output started at /data/web/virtuals/17932/virtual/www/subdom/hawkeye/classic/login.php:3) in /data/web/virtuals/17932/virtual/www/subdom/hawkeye/classic/login.php on line 42

and after login form is this error:


Warning: Unknown: open(/data/web/virtuals/17932/virtual/session/sess_d49f74eaf81d8ab10da2216800ff0f7e, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/data/web/virtuals/17932/virtual/session) in Unknown on line 0

Please help. Thanks.

Horse Entities not logged

Killed a skeleton horse rolled it back did not spawn back a skeleton horse so its safe to assume all horse data is broken

using latest dev build

[SEVERE] [HawkEye] Error checking HawkEye tables: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Key column 'date' doesn't exist in table

When server was start , This error (Spigot 1.6.2)(MySQL 5.6)(HawkEye #30)
[SEVERE] [HawkEye] Error checking HawkEye tables: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Key column 'date' doesn't exist in table
[SEVERE] [HawkEye] Error initiating HawkEye database connection, disabling plugin
[INFO] [HawkEye] Disabling HawkEye v1.5.0
[SEVERE] Error occurred while disabling HawkEye v1.5.0 (Is it up to date?)
java.lang.NullPointerException
at uk.co.oliwali.HawkEye.HawkEye.onDisable(HawkEye.java:74)
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:219)
at org.bukkit.plugin.java.JavaPluginLoader.disablePlugin(JavaPluginLoader.java:481)
at org.bukkit.plugin.SimplePluginManager.disablePlugin(SimplePluginManager.java:401)
at uk.co.oliwali.HawkEye.HawkEye.onEnable(HawkEye.java:129)
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:457)
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:382)
at org.bukkit.craftbukkit.v1_6_R2.CraftServer.loadPlugin(CraftServer.java:286)
at org.bukkit.craftbukkit.v1_6_R2.CraftServer.enablePlugins(CraftServer.java:268)
at net.minecraft.server.v1_6_R2.MinecraftServer.l(MinecraftServer.java:319)
at net.minecraft.server.v1_6_R2.MinecraftServer.f(MinecraftServer.java:296)
at net.minecraft.server.v1_6_R2.MinecraftServer.a(MinecraftServer.java:256)
at net.minecraft.server.v1_6_R2.DedicatedServer.init(DedicatedServer.java:164)
at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:397)
at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582)

Remove static usage in DataManager

Atm there is a large amount of static methods within the DataManager. I really don't think they're that big of deal, but if we ever plan on expanding or using Decorator patterns, then this will be a serious issue.

Using no static will also allow for us to add special DataManagers for special Data. For instance, maybe the worldedit listener should be inserted at a slower rate then other data. We could easily implement this with a decorator.

Add DataType API for custom DataTypes

My plan is to create new DataType API so plugins are able to register and utilize their own DataTypes without being forced to use one of the preexisting.

I'm also planning on changing the DataType Enum to an object. So instead of enums, the DataType's will be constants. We'll then grab all the constants via reflection and add them into the table. Enums are incredibly limiting and should only be used for really basic things like ID constants.

Basic rundown:
Register your DataType before it's used. The method may be DataType.addDataType(customDataType);

The DataType consists of a view variables such as the name, and the ID. You will NOT be able to define a custom constructor due to the fact that the constructor is used specifically by the HawkEye query and modifying the constructor will cause exceptions. So instead you'll define your DataEntry class (Whether it's custom, or one of HawkEye's).

I will MOST LIKELY expand the DataType's further to allow for better ingegration with the web interface. For instance, being able to define whether or not a DataType is serialized as a block, or item.

If a DataType is registered with a pre-existing ID, or too large of an ID, an exception will be thrown. Same goes for having the same name as a DataType.

Once the DataType is registered, it'll be entered into the MySQL. This is so the webinterface can see the new datatypes. It's also so if a custom datatype is registered once, and then not registered the next runtime, we can simply create a dummy DataType instead of returning a null DataType. Registering your DataType replaces the Dummy value.

DEV-Builds

I saw that your link to the devbuilds is down .... could you provide dropbox/similar links to get my hands on them? most loggers dont have that amount of events nor a webinterface ...
or will some other version work for 1.7.10?

MySQL Errors

Being spammed on every loggable interaction. Running HawkEye-dev Build 66
Server: KCauldron 1.7.10 / tested against Spigot/Bukkit 1.7.10 as well

[19:20:10 WARN]: [HawkEye] No operations allowed after connection closed.Connection was implicitly closed by the driver.
[19:20:10 WARN]: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.Connection was implicitly closed by the driver.
[19:20:10 WARN]: at sun.reflect.GeneratedConstructorAccessor239.newInstance(Unknown Source)
[19:20:10 WARN]: at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[19:20:10 WARN]: at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
[19:20:10 WARN]: at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
[19:20:10 WARN]: at com.mysql.jdbc.Util.getInstance(Util.java:382)
[19:20:10 WARN]: at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013)
[19:20:10 WARN]: at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
[19:20:10 WARN]: at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)
[19:20:10 WARN]: at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
[19:20:10 WARN]: at com.mysql.jdbc.ConnectionImpl.throwConnectionClosedException(ConnectionImpl.java:1213)
[19:20:10 WARN]: at com.mysql.jdbc.ConnectionImpl.getMutex(ConnectionImpl.java:3101)
[19:20:10 WARN]: at com.mysql.jdbc.ConnectionImpl.setAutoCommit(ConnectionImpl.java:4975)
[19:20:10 WARN]: at uk.co.oliwali.HawkEye.database.JDCConnection.setAutoCommit(JDCConnection.java:249)
[19:20:10 WARN]: at uk.co.oliwali.HawkEye.database.DataManager.run(DataManager.java:391)
[19:20:10 WARN]: at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftTask.run(CraftTask.java:71)
[19:20:10 WARN]: at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
[19:20:10 WARN]: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[19:20:10 WARN]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
[19:20:10 WARN]: at java.lang.Thread.run(Thread.java:745)
[19:20:10 WARN]: Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet successfully received from the server was 832,229 milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago.
[19:20:10 WARN]: at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[19:20:10 WARN]: at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
[19:20:10 WARN]: at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[19:20:10 WARN]: at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
[19:20:10 WARN]: at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
[19:20:10 WARN]: at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116)
[19:20:10 WARN]: at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3082)
[19:20:10 WARN]: at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2968)
[19:20:10 WARN]: at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3516)
[19:20:10 WARN]: at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
[19:20:10 WARN]: at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
[19:20:10 WARN]: at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2620)
[19:20:10 WARN]: at com.mysql.jdbc.ConnectionImpl.setAutoCommit(ConnectionImpl.java:5022)
[19:20:10 WARN]: ... 7 more
[19:20:10 WARN]: Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.
[19:20:10 WARN]: at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2529)
[19:20:10 WARN]: at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2979)
[19:20:10 WARN]: ... 13 more

Cheers for continuing Hawkeye :)

Just wanted to drop by and say thanks to you guys for continuing what I started. Means a lot to me to still see Hawkeye going strong :) Crazy that you are still using my original code base 2 years later!

HE Web Interface and Container Inserts/Extracts

I realize the web interface hasn't been updated in quite a while (and prior to now, it hasn't really needed one). As it currently stands, however, one can no longer search for transactions due to the switch to inserts and extracts. Will there be an update to reflect this change in the near future?

Doors don't count as "one block"

Similar to the issue double chests used to have, the top part and bottom part of a door count as "different" logs to Hawkeye. Maybe this can be fixed?

Expand the new ItemSerializer

I plan to extend the item-serializer to just about all entry objects. Entities will serialize things like armor, certain attributes (Such as villager career) and their custom names. I also plan to completely remove the current inventory serializer and replace it with the new.

My plan is to extend the serializer throughout hawkeye to insure every little detail is properly logged and further updates to minecraft will be easily implemented into our logging capabilities.

Add PostgreSQL support

I didn't look in the code to find out whether you are using some kind of database abstraction layer, but it would be nice to have the option to use a PostgreSQL database instead of a MySQL database.

There is no such logging plugin known to use Postgres - so it would be a nice feature, i guess.

Attempting to add sheep to the player database?

Just updated from some versions ago to 1.7.1, and found the following shortly after server startup:

2016-04-15 18:28:07 [ERROR] [HawkEye] Unable to add player to database: com.mysq
l.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'SHEEP' in 'fi
eld list'

[Severe] Cannot use multiple rollback arguments

While attempting to roll back a grief from a long-time player on my server, I used the following command.

/he rollback p:Gizmo_Burre t:48h

Instead of rolling back the player by 48 hours, Hawkeye apparently ignored the second argument and rolled back the entirety of Gizmo_Burre's existing edits, causing several clients to crash including my own. Upon logging back in, /he undo proved ineffective.

From what I'm told by my staff, this is no fluke and has occurred several times without my knowing. I urge you to look into this as soon as possible.

Ingame /he tool logs are different depending on which side of a chest you click on.

When i hawk eye a doublechest with the ingame /he tool i get different results depending on which side i /he tool. If i click on the left side it says no results found. When i click on the right side it shows me all the items in the chest which is full.

Previously it combined the two and showed you the content of the entire double chest but this is not functioning on our server atleast at the moment. This seems to be happening on Trapped chests.

Full chest:
https://gyazo.com/b4edd49fb4bbc3a9b214206b2dfc7d5d
Left side of the chest:
https://gyazo.com/36ec00aee74e93fcc0e5bd415ccc3c0f
Right side of the chest:
https://gyazo.com/5bc1334a6bc1c0bb723998a5ec1dd157

[SEVERE] [1.5.1] /ha tpto <id> doesn't work, leaves an error in console.

Some of my staff members would do a lookup for the latest changes through /ha search t:1h

Then if they want to teleport to one of the interactions, they receive an "Entry not found" in the game chat. This is the error I receive in the server console:

2013-08-22 12:27:51 [SEVERE] [HawkEye] Unable to retrieve data entry from MySQL Server: java.lang.InstantiationException: uk.co.oliwali.HawkEye.entry.BlockChangeEntry

However, the error doesn't happen 100% of the time. If you want the sql database for debugging, I'm willing to supply it to you if needed :)

Item Frames & Armor Stands not properly logged

Item frames will log the placement and breaking of the frame itself, but not the item added or removed from the frame.

Armor stands are not logged at all. Not even sure there are proper inventory events for armor stands yet?

Port config node not being respected

So for whatever reason I can't get Hawkeye to connect to my database, and all I'm getting is it hanging server startup for ~20 seconds until it times out on the connection - with it stating that it had a problem connecting to the database. I'm not sure what the issue is nor where to look, hence my request for a "debug mode" or at least more informative error messages.

As for my issue, I've setup and can access the user account on the same machine via HeidiSQL, and gave it all permissions to its own, fresh database. Version 1.6.2 as per config, compiled from GitHub.

Hawkeye username interpretation not strict enough

We recently had a few major issues where some users got rolled back when that wasn't intended.

If I were to have a player called SomeGriefer, and i would want to roll him back.
During the defining of the player's name with /ha rollback p:, hawkeye isn't strict enough on determining what players would have to be rolled back.

If i were to type down Some, it would rollback everyone who's names start with Some. Even worse, if i were to type just s, (or t which might happen if you're making mistakes with the flags) it will rollback every single user whose name starts with that character.
This functionality is very useful for doing searches, but very nasty for doing rollbacks.

My suggestion: If hawkeye is about to do a rollback, make sure to interpret the name very strictly (100% accurate), otherwise don't rollback anything at all.

/hawk preview not working fully

When trying to do a /hawk preview p:q220 t:15m it would show me the rollback Hawkeye would do for what I did in the last 15 mins, but I can't make the preview take effect with /hawk apply, because it keeps printing the hawkeye menu.

Upon logging out and back in, I also noticed the rollback didn't work, so I suppose this is a bug!

Show player edits by radius.

/ha search r:30
username(1130edits), username2(6123), username3(163)
Instead of scrolling all hawk pages when trying to find griefers nicknames. Miss this feature from BigBrother.

WorldEdit Forced Dependence.

I assume this was a slight error but it seems that Hawkeye requires WE to be installed now with the new WE logging :)

http://pastebin.com/XLwWsPPd

Also any chance of looking more into MCPC+ Project? A lot of people there are using your mod to log modded server functions a few issues here and there but overall works nice.

Create new inventory serializer and make it future proof.

I've been thinking about designing a new serializer for data. Here's how it would work (Probably?)

[ This isn't meant to be usable code, just a quick write up for my plans ]

enum serialKey {
INVENTORY_ITEM('i') //stores itemid:itemdurability
INVENTORY_ITEM_NAME('n') //stores display name meta
INVENTORY_ITEM_ENCHANT('e') //stores enchant data
INVENTORY_ITEM_LORE('l') //stores lore
}

The end result probably wont even use enum, it'll most likely just be a collection of objects in an array. With this setup, we'll also be able to add config options for the user so they can disable/enable certain data they want to be saved. For instance, some users may not want lore to be saved.

So the serialized data would look something like this:

"i(12:1)n(MyBlock!!)e(2:1|3:1|5:4)l(My car|is black)"

The point of this serializer is to A, make it future proof so like when 1.9 comes out and we need to store attribute values aswell, and B it'll make the data easy to search for. - and + will still be used in the inventory-transaction data to symbolize whether or not the item was taken or added.

Web Interface Wont Work

Hello!

I'm having a problem with the web interface. Whenever I try to search for something, all it does is keep searching for results! I don't know what to do, and I need this feature on my server for my moderators. Please help!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.