Пример #1
0
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;
}
Пример #2
0
bool permission_isAdmin(const char* name)
{
  User* tempuser = userFromName(std::string(name));
  if (tempuser == NULL)
  {
    return false;
  }
  return (IS_ADMIN(tempuser->permissions) != 0);
}
Пример #3
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);
}
Пример #4
0
int user_gethealth(const char* user)
{
  User* tempUser = userFromName(std::string(user));
  if(tempUser != NULL)
  { 
    return tempUser->health;
  }
  return 0;
}
Пример #5
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;
}
Пример #6
0
bool permission_isGuest(const char* name)
{
  User* tempuser = userFromName(std::string(name));
  if (tempuser == NULL)
  {
    return false;
  }
  return (IS_GUEST(tempuser->permissions) != 0);
}
Пример #7
0
bool permission_isMember(const char* name)
{
  User* tempuser = userFromName(std::string(name));
  if (tempuser == NULL)
  {
    return false;
  }
  return (IS_MEMBER(tempuser->permissions) != 0);
}
Пример #8
0
bool permission_isOp(const char* name)
{
  User* tempuser = userFromName(std::string(name));
  if (tempuser == NULL)
  {
    return false;
  }
  return IS_OP(tempuser->permissions);
}
Пример #9
0
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;
}
Пример #10
0
bool permission_setAdmin(const char* name)
{
  User* tempuser = userFromName(std::string(name));
  if (tempuser == NULL)
  {
    return false;
  }
  SET_ADMIN(tempuser->permissions);
  return true;
}
Пример #11
0
bool user_sethealth(const char* user,int userHealth)
{
  User* tempUser = userFromName(std::string(user));
  if(tempUser != NULL)
  {
    tempUser->sethealth(userHealth);
    return true;
  }
  return false;
}
Пример #12
0
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;
}
Пример #13
0
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;
}
Пример #14
0
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;
}
Пример #15
0
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);
}
Пример #16
0
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;
}
Пример #17
0
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;
}
Пример #18
0
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;
}
Пример #19
0
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;
}
Пример #20
0
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;
}
Пример #21
0
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;
}
Пример #22
0
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;
}
Пример #23
0
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;
}
Пример #24
0
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;
}
Пример #25
0
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;
}
Пример #26
0
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;
}
Пример #27
0
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;
}