Cuberite Forum
Player stats list - Printable Version

+- Cuberite Forum (https://forum.cuberite.org)
+-- Forum: Plugins (https://forum.cuberite.org/forum-1.html)
+--- Forum: Plugin Requests (https://forum.cuberite.org/forum-3.html)
+--- Thread: Player stats list (/thread-1883.html)



Player stats list - Boo - 04-19-2015

Hello, I need to make a little database with this information:

Player name
Killed mobs
Destroyed Blocks
Died
etc.

If its possible on mc-server?


RE: Player stats list - worktycho - 04-19-2015

There are hooks for all of those events and SQLite bindings to store the data so it should be possible.


RE: Player stats list - Boo - 04-19-2015

Can you write a little example? i am a novice in lua


RE: Player stats list - worktycho - 04-19-2015

I'm afraid I'm the wrong person to ask, I know the API from the c++ side, so I know very little about lua as well.


RE: Player stats list - Boo - 04-19-2015

crap. i am too :-( Relly MC-Server Nice platform for server. but plugins...


RE: Player stats list - xoft - 04-19-2015

Have a look at the documentation page, it has a few examples, too, in the Articles section:
http://mc-server.xoft.cz/LuaAPI/


RE: Player stats list - Boo - 04-20-2015

:-( I do not quite understand programming. I need an example of writing to a text file number of broken blocks. Please help, it is very necessary


RE: Player stats list - DiamondToaster - 04-21-2015

Well, if you wanna write to a .ini file (basically a fancy text file), here's some basic functions:

-- File path, the root starts at the MCServer executable
local FilePath = "Plugins/SomePlugin/MyIniFile.ini"

-- An integer that we want to store, let's say 34
local BlocksDestroyed = 34

-- Creates a .ini file object
local SomeIniFile = cIniFile()

-- Create a key for values to go under
SomeIniFile:AddKeyName("BlocksBroken")

-- Create a value under this key name
SomeIniFile:SetValueI("BlocksBroken", "ValueNumber", BlocksDestroyed)

-- Write the file to disk
SomeIniFile:WriteFile(FilePath)

If you would like to access that value from disk, do this:

-- Read the file off of the disk
SomeIniFile:ReadFile(FilePath)

-- Set value of NumBlocks to the amount stored under the key name and that specific value name
local NumBlocks = SomeIniFile:GetValueI("BlocksBroken", "ValueNumber")
file
NumBlocks would then contain the 34 that was stored in the file earlier. If you look in the file at the set file path, you should see a file structured like this:

[BlocksBroken]
ValueNumber=34

Hope this might have helped.


RE: Player stats list - NiLSPACE - 04-21-2015

@DiamondToaster But that isn't per-player right?


RE: Player stats list - DiamondToaster - 04-21-2015

Well, that was just an example of how it worked.

Per-player, I would do something like this:

-- Assuming the blocks broken is 34 or something like that...
local BlocksBroken = 34

-- If the player's key name does not exist, add it
if SomeIniFile:FindKey(Player:GetUUID()) == -1 then
    SomeIniFile:AddKeyName(Player:GetUUID())
end

-- Write the amount of blocks broken under the 'BlocksBroken' value under the Player's UUID
SomeIniFile:SetValueI(Player:GetUUID(), "BlocksBroken", BlocksBroken)

-- Write the file to disk
SomeIniFile:WriteFile(FilePath)

And to access it:
-- Read the file off of the disk
SomeIniFile:ReadFile(FilePath)
 
-- Set value of NumBlocks to the amount stored under the Player's key name and 'BlocksBroken' value name
local NumBlocks = SomeIniFile:GetValueI(Player:GetUUID(), "BlocksBroken")