bool user_hasItem(const char* user, int item, int count, int health) { User* tempuser = userFromName(std::string(user)); if(tempuser == NULL){ return false; } bool checkingTaskbar = true; int total = 0; for(uint8_t i = 36-9; i < 36-9 || checkingTaskbar; i++) { //First, the "task bar" if(i == 36) { checkingTaskbar = false; i=0; } Item *slot = &tempuser->inv[i+9]; if(item == slot->type && (health == slot->health || health==-1)){ total += slot->count; if(total >= count){ return true; } } } return false; }
bool permission_isAdmin(const char* name) { User* tempuser = userFromName(std::string(name)); if (tempuser == NULL) { return false; } return (IS_ADMIN(tempuser->permissions) != 0); }
void map_createPickupSpawn(int x, int y, int z, int type, int count, int health, const char* user) { User* tempUser = NULL; if(user != NULL) { tempUser = userFromName(std::string(user)); } Mineserver::get()->map(tempUser->pos.map)->createPickupSpawn(x,y,z,type,count,health,tempUser); }
int user_gethealth(const char* user) { User* tempUser = userFromName(std::string(user)); if(tempUser != NULL) { return tempUser->health; } return 0; }
bool user_addItem(const char* user, int item, int count, int health) { User* tempUser = userFromName(std::string(user)); if(tempUser != NULL) { return Mineserver::get()->inventory()->addItems(tempUser, item, count, health); } return false; }
bool permission_isGuest(const char* name) { User* tempuser = userFromName(std::string(name)); if (tempuser == NULL) { return false; } return (IS_GUEST(tempuser->permissions) != 0); }
bool permission_isMember(const char* name) { User* tempuser = userFromName(std::string(name)); if (tempuser == NULL) { return false; } return (IS_MEMBER(tempuser->permissions) != 0); }
bool permission_isOp(const char* name) { User* tempuser = userFromName(std::string(name)); if (tempuser == NULL) { return false; } return IS_OP(tempuser->permissions); }
bool user_kick(const char* user) { User* tempuser = userFromName(std::string(user)); if (tempuser == NULL) { return false; } tempuser->kick("You have been kicked!"); // Need to allow other languages. return true; }
bool permission_setAdmin(const char* name) { User* tempuser = userFromName(std::string(name)); if (tempuser == NULL) { return false; } SET_ADMIN(tempuser->permissions); return true; }
bool user_sethealth(const char* user,int userHealth) { User* tempUser = userFromName(std::string(user)); if(tempUser != NULL) { tempUser->sethealth(userHealth); return true; } return false; }
bool user_teleport(const char* user,double x, double y, double z) { User* tempUser = userFromName(std::string(user)); if(tempUser != NULL) { tempUser->teleport(x, y, z); return true; } return false; }
bool user_addItem(const char* user, int item, int count, int health) { int total = count; User* tempuser = userFromName(std::string(user)); if (tempuser != NULL) { bool checkingTaskbar = true; for (uint8_t i = 36 - 9; i < 36 - 9 || checkingTaskbar; i++) { if (i == 36) { checkingTaskbar = false; i = 0; } Item* slot = &tempuser->inv[i + 9]; if (item == slot->getType() && health == slot->getHealth()) { if (slot->getCount() < 64) { int a = 64 - slot->getCount(); if (a < total) { total -= a; slot->setCount(64); } else { slot->decCount(-total); total = 0; } } } else if (slot->getType() == -1) { slot->setType(item); slot->setHealth(health); if (total < 65) { slot->setCount(total); total = 0; } else { slot->setCount(64); total -= 64; } } if (total == 0) { return true; } } } return false; }
bool permission_setGuest(const char* name) { User* tempuser = userFromName(std::string(name)); if (tempuser == NULL) { return false; } tempuser->permissions = 0; // reset any previous permissions SET_GUEST(tempuser->permissions); return true; }
bool user_setGameMode(const char* user, int gamemode) { User* tempuser = userFromName(std::string(user)); if (tempuser == NULL) return false; if(gamemode != 0 && gamemode != 1) return false; return tempuser->setGameMode((User::GameMode)gamemode); }
bool chat_sendUserlist(const char* user) { std::string userStr(user); User *userPtr = userFromName(userStr); if(userPtr != NULL) { Mineserver::get()->chat()->sendUserlist(userPtr); return true; } return false; }
bool user_setItemInHand(const char* user, int type, int meta, int quant) { User* tempUser = userFromName(std::string(user)); if(tempUser != NULL) { Item* item = &tempUser->inv[tempUser->curItem+36]; item->type = type; item->health = meta; item->count = quant; return true; } return false; }
bool user_teleportMap(const char* user,double x, double y, double z, int map) { User* tempUser = userFromName(std::string(user)); if(map >= Mineserver::get()->mapCount()) { return false; } if(tempUser != NULL && map != tempUser->pos.map) { tempUser->teleport(x, y, z, map); return true; } return false; }
bool user_teleportMap(const char* user, double x, double y, double z, size_t map) { if (map >= ServerInstance->mapCount()) { return false; } User* tempUser = userFromName(std::string(user)); if (tempUser != NULL && map != tempUser->pos.map) { tempUser->teleport(x, y, z, map); return true; } return false; }
bool chat_sendUserlist(const char* user) { const std::string userStr(user); User* userPtr = userFromName(userStr); if (userPtr != NULL) { ServerInstance->chat()->sendUserlist(userPtr); return true; } return false; }
bool user_delItem(const char* user, int item, int count, int health) { User* tempuser = userFromName(std::string(user)); if(tempuser == NULL){ return false; } bool checkingTaskbar = true; int total = count; for(uint8_t i = 36-9; i < 36-9 || checkingTaskbar; i++) { //First, the "task bar" if(i == 36) { checkingTaskbar = false; i=0; } Item *slot = &tempuser->inv[i+9]; if(item == slot->type && (health == slot->health || health ==-1)){ if(slot->count > total) { slot->count -= total; tempuser->buffer << (int8_t)PACKET_SET_SLOT << (int8_t)WINDOW_PLAYER << (int16_t)i+9 << (int16_t)slot->type; if(slot->type != -1) { tempuser->buffer << (int8_t)slot->count << (int16_t)slot->health; } return true; } else { slot->count = 0; slot->health = 0; slot->type = -1; tempuser->buffer << (int8_t)PACKET_SET_SLOT << (int8_t)WINDOW_PLAYER << (int16_t)i+9 << (int16_t)slot->type; if(slot->type != -1) { tempuser->buffer << (int8_t)slot->count << (int16_t)slot->health; } } } } return false; }
bool user_setItemAt(const char* user, int slotn, int type, int meta, int quant) { User* tempuser = userFromName(std::string(user)); if (tempuser == NULL) { return false; } Item* slot = &tempuser->inv[slotn]; slot->setType(type); if (slot->getType() != -1) { slot->setHealth(meta); slot->setCount(quant); } return true; }
bool user_getItemInHand(const char* user, int *type, int *meta, int *quant) { User* tempUser = userFromName(std::string(user)); if(tempUser != NULL) { Item item = tempUser->inv[tempUser->curItem+36]; if(type!=NULL) *type = item.type; if(meta!=NULL) *meta = item.health; if(quant!=NULL) *quant = item.count; return true; } return false; }
bool chat_handleMessage(const char* username, const char* message) { if (strcmp(username, "[Server]") == 0) { User serverUser(-1, SERVER_CONSOLE_UID); serverUser.changeNick("[Server]"); Mineserver::get()->chat()->handleMsg(&serverUser, message); } else { User *user = userFromName(std::string(username)); if(user != NULL) { Mineserver::get()->chat()->handleMsg(user, message); } } return false; }
bool user_getItemAt(const char* user, int slotn, int* type, int* meta, int* quant) { User* tempuser = userFromName(std::string(user)); if (tempuser == NULL) { return false; } Item* slot = &tempuser->inv[slotn]; if (type != NULL) { *type = slot->getType(); } if (meta != NULL) { *meta = slot->getHealth(); } if (quant != NULL) { *quant = slot->getCount(); } return true; }
bool user_delItem(const char* user, int item, int count, int health) { User* tempuser = userFromName(std::string(user)); if (tempuser == NULL) { return false; } bool checkingTaskbar = true; int total = count; for (uint8_t i = 36 - 9; i < 36 - 9 || checkingTaskbar; i++) { //First, the "task bar" if (i == 36) { checkingTaskbar = false; i = 0; } Item* slot = &tempuser->inv[i + 9]; if (item == slot->getType() && (health == slot->getHealth() || health == -1)) { if (slot->getCount() > total) { int a = slot->getCount(); slot->decCount(total); total -= a; return true; } else { total -= slot->getCount(); slot->setType(-1); } } } return false; }
bool user_setItemInHand(const char* user, int type, int meta, int quant) { if (quant > 64) { quant = 64; } if (quant < 0) { quant = 0; } User* tempUser = userFromName(std::string(user)); if (tempUser != NULL) { Item* item = &tempUser->inv[tempUser->curItem + 36]; item->setHealth(meta); item->setCount(quant); if (item->getType() != -1) { item->setType(type); } return true; } return false; }