li3_bot / branches / master / models / Karma.php

history
<?php
/**
 * Lithium: the most rad php framework
 *
 * @copyright     Copyright 2009, Union of RAD (http://union-of-rad.org)
 * @license       http://opensource.org/licenses/bsd-license.php The BSD License
 */

namespace li3_bot\models;

class Karma extends \lithium\core\StaticObject {

	public static $path = null;

	public static function __init() {
		static::$path = LITHIUM_APP_PATH . '/resources/bot/karmas.ini';
	}

	public static function current($user) {
		$data = static::_readIni();

		if (isset($data[$user])) {
			return $data[$user];
		}
		return 0;
	}

	public static function highscore() {
		$data = static::_readIni();

		arsort($data, SORT_NUMERIC);
		return array_slice($data, 0, 10, true);
	}

	public static function increment($user) {
		$data = static::_readIni();

		isset($data[$user]) ? $data[$user]++ : $data[$user] = 1;

		return static::_writeIni($data);
	}

	public static function decrement($user) {
		$data = static::_readIni();

		isset($data[$user]) ? $data[$user]-- : $data[$user] = 0;

		return static::_writeIni($data);
	}

	protected static function _readIni() {
		if (!file_exists(static::$path)) {
			return array();
		}
		return parse_ini_file(static::$path);
	}

	protected static function _writeIni($data) {
		$lines = array("[karmas]");

		foreach ($data as $key => $value) {
			$lines[] = "{$key}={$value}";
		}
		return file_put_contents(static::$path, implode("\n", $lines));
	}
}

?>