1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
| if( Command == "addadmin" || Command == "aa" )
{
stringstream SS;
string Name, Date, NewData, BaseDate, Days, BeforeDays;
SS << Payload;
SS >> Name;
if( !SS.eof())
{
SS >> NewData;
string DateChars = "0123456789";
if( NewData.find_first_not_of( DateChars ) == string :: npos )
{
if( UTIL_ToUInt32(NewData)>365 )
{
QueueChatCommand( "Количество дней не может превышать 365!", User, Whisper );
return;
}
else if( UTIL_ToUInt32(NewData)>0 )
{
CDBTimeAdmin *TimeAdmin = TimeAdminName( Name );
if( TimeAdmin )
{
BeforeDays = UTIL_ToString( UTIL_ToUInt32(TimeAdmin->GetDaysRemaining()) );
Date = UTIL_ToString( UTIL_ToUInt32(NewData)+UTIL_ToUInt32(TimeAdmin->GetDaysRemaining()) );
BaseDate = UTIL_ToString( UTIL_ToUInt32(NewData)+UTIL_ToUInt32(TimeAdmin->GetDaysRemaining()) + 3 );
Days = UTIL_ToString( UTIL_ToUInt32(NewData)+UTIL_ToUInt32(TimeAdmin->GetDaysRemaining()) );
}
else
{
Date = UTIL_ToString( UTIL_ToUInt32(NewData) + 0 );
BaseDate = UTIL_ToString( UTIL_ToUInt32(NewData) + 3 );
Days = UTIL_ToString(UTIL_ToUInt32(NewData)+0);
BeforeDays = UTIL_ToString(UTIL_ToUInt32(NewData)+0);
}
struct tm * timeinfo;
char buffer [80];
time_t NowDate = time( NULL );
time_t NowDateBase = time( NULL );
NowDate += 3600*24*UTIL_ToUInt32(Date);
timeinfo = localtime( &NowDate );
strftime (buffer,80,"%Y-%m-%d",timeinfo);
Date = buffer;
if( UTIL_ToUInt32(BaseDate)>0 )
{
NowDateBase += 3600*24*UTIL_ToUInt32(BaseDate);
timeinfo = localtime( &NowDateBase );
strftime (buffer,80,"%Y-%m-%d",timeinfo);
BaseDate = buffer;
}
}
else
{
QueueChatCommand( "Количество дней не может быть равно 0!", User, Whisper );
return;
}
}
else
{
QueueChatCommand( "Количество дней может содержать только цифры!", User, Whisper );
return;
}
CDBTimeAdmin *TimeAdmin = TimeAdminName( Name );
if ( TimeAdmin )
{
if( IsAdmin( Name ) )
QueueChatCommand( "Дата Администратора " + Name + " обновлена до " + Date + " (дней: " + BeforeDays + "->" + Days + ")", User, Whisper );
else
QueueChatCommand( Name + " восстановлен в Администраторы до " + Date + " (дней: " + BeforeDays + "->" + Days + ")", User, Whisper );
m_GHost->m_Callables.push_back(m_GHost->m_DB->ThreadedAdminUpdate(m_Server, Name, Date, BaseDate, User));
RemoveAdmin( Name );
RemoveTimeAdmin( Name );
AddAdmin( Name );
AddTimeAdmin( Name, Date );
}
else
{
m_PairedAdminAdds.push_back( PairedAdminAdd( User, m_GHost->m_DB->ThreadedAdminAdd(m_Server, Name, Date, BaseDate, User) ) );
QueueChatCommand( Name + " добавлен в Администраторы до " + Date + " (дней: " + Days + ")", User, Whisper );
}
}
else
QueueChatCommand( "Укажите количество дней", User, Whisper );
} |