Skip to content

Commit 8d35dde

Browse files
committed
Update | Beta 5.1.6
1 parent aaae009 commit 8d35dde

File tree

13 files changed

+494
-48
lines changed

13 files changed

+494
-48
lines changed

src/Bot.php

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
use Exception;
77
use Ourted\Interfaces\Channel;
88
use Ourted\Interfaces\Guild;
9+
use Ourted\Interfaces\Invite;
10+
use Ourted\Interfaces\Member;
911
use Ourted\Interfaces\User;
1012
use Ourted\Model\Message\Embed;
1113
use Ourted\Utils\API;
@@ -17,6 +19,17 @@
1719

1820
class Bot
1921
{
22+
23+
static $GUILD_TEXT = 0;
24+
static $DM = 1;
25+
static $GUILD_VOICE = 2;
26+
static $GROUP_DM = 3;
27+
static $GUILD_NEWS = 4;
28+
static $GUILD_STORE = 5;
29+
30+
31+
32+
2033
/**
2134
* State
2235
* @var State
@@ -49,6 +62,10 @@ class Bot
4962
public $guild;
5063
/** @var User */
5164
public $user;
65+
/** @var Member */
66+
public $member;
67+
/** @var Invite */
68+
public $invite;
5269
/**
5370
* Default WSS URL (from the Discord API docs)
5471
* @var string
@@ -101,6 +118,8 @@ public function __construct($botToken, $botPrefix, $wssUrl = null)
101118
$this->token = $botToken;
102119
$this->settings = new Settings($this);
103120
$this->channel = new Channel($this);
121+
$this->member = new Member($this);
122+
$this->invite = new Invite($this);
104123
$this->guild = new Guild($this);
105124
$this->user = new User($this);
106125
$this->api = new API($this);
@@ -121,33 +140,18 @@ public function init()
121140
$state->addDispatch($this->dispatch);
122141

123142

124-
125-
126-
127-
128143
$conn->on('message', function (MessageInterface $msg) use ($conn, $state) {
129144
$json = json_decode($msg);
130145
$state->action($json, $this->loop);
131146
});
132147

133148

134-
135-
136149
$conn->on('close', function ($code = null, $reason = null) {
137150
echo "Connection closed ({$code} - {$reason})\n";
138151
die();
139152
});
140153

141154

142-
143-
144-
145-
146-
147-
148-
149-
150-
151155
}, function (Exception $e) {
152156
echo "Could not connect: {$e->getMessage()}\n";
153157
$this->stop();

src/Interfaces/Channel.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
use Ourted\Bot;
66
use Ourted\Model\Message\Message;
7-
use stdClass;
87

98
class Channel{
109

@@ -38,7 +37,7 @@ public function sendMessage($message, $channel){
3837
* Deleting Message
3938
*
4039
* @return bool|string
41-
* @var Message|stdClass $message
40+
* @var Message $message
4241
*/
4342

4443
public function deleteMessage($message)
@@ -96,8 +95,7 @@ public function getMessage($channel, $message_id)
9695
* @return mixed
9796
*/
9897
public function deleteChannel($channel){
99-
return json_decode($this->bot->api->init_curl_with_header("/channels/{$channel->id}","", "DELETE"));
98+
return json_decode($this->bot->api->init_curl_with_header("channels/{$channel->id}","", "DELETE"));
10099
}
101100

102-
103101
}

src/Interfaces/Emoji.php

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
<?php
2+
3+
namespace Ourted\Interfaces;
4+
5+
use Ourted\Bot;
6+
7+
class Emoji
8+
{
9+
10+
/** @var Bot */
11+
private $bot;
12+
13+
public function __construct($bot)
14+
{
15+
$this->bot = $bot;
16+
}
17+
18+
/**
19+
* @param \Ourted\Model\Guild\Guild $guild
20+
* @return \Ourted\Model\Guild\Emoji
21+
*/
22+
public function getEmojis($guild)
23+
{
24+
return json_decode($this->bot->api->init_curl_with_header(
25+
"guilds/{$guild->id}/emojis",
26+
"", "GET"));
27+
}
28+
29+
/**
30+
* @param \Ourted\Model\Guild\Guild $guild
31+
* @param string
32+
* @param mixed
33+
* @return \Ourted\Model\Guild\Emoji
34+
*/
35+
public function createEmoji($guild, $name, $image)
36+
{
37+
return $this->getEmoji($guild, json_decode($this->bot->api->init_curl_with_header(
38+
"guilds/{$guild->id}/emojis",
39+
"{\"name\":\"{$name}\",\"image\":\"{$image}\",\"roles\":\"[]\"}"))->id);
40+
}
41+
42+
/**
43+
* @param \Ourted\Model\Guild\Guild $guild
44+
* @param $emoji_id
45+
* @return \Ourted\Model\Guild\Emoji
46+
*/
47+
public function getEmoji($guild, $emoji_id)
48+
{
49+
return new \Ourted\Model\Guild\Emoji($this->bot, $guild->id, $emoji_id);
50+
}
51+
52+
/**
53+
* @param \Ourted\Model\Guild\Guild $guild
54+
* @param \Ourted\Model\Guild\Emoji
55+
* @return \Ourted\Model\Guild\Emoji
56+
*/
57+
public function deleteEmoji($guild, $emoji)
58+
{
59+
return $this->getEmoji($guild, json_decode($this->bot->api->init_curl_with_header(
60+
"guilds/{$guild->id}/emojis/{$emoji->id}",
61+
"", "DELETE"))->id);
62+
}
63+
64+
65+
}

src/Interfaces/Guild.php

Lines changed: 104 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@
33
namespace Ourted\Interfaces;
44

55
use Ourted\Bot;
6+
use Ourted\Model\Guild\Integration;
67
use Ourted\Model\Role\Role;
78

8-
class Guild{
9+
class Guild
10+
{
911

1012
/** @var Bot */
1113
private $bot;
@@ -29,7 +31,8 @@ public function get_guilds_properties()
2931
"", "GET"));
3032
}
3133

32-
public function getGuild($id){
34+
public function getGuild($id)
35+
{
3336
return new \Ourted\Model\Guild\Guild($this->bot, $id);
3437
}
3538

@@ -39,7 +42,8 @@ public function getGuild($id){
3942
* @param $role_id int|string
4043
* @return Role
4144
*/
42-
public function getRole($guild, $role_id){
45+
public function getRole($guild, $role_id)
46+
{
4347
return new Role($this->bot, $guild, $role_id);
4448
}
4549

@@ -48,7 +52,8 @@ public function getRole($guild, $role_id){
4852
* @param $guild \Ourted\Model\Guild\Guild
4953
* @return Role
5054
*/
51-
public function getRoles($guild){
55+
public function getRoles($guild)
56+
{
5257
return new Role($this->bot, $guild);
5358
}
5459

@@ -58,10 +63,41 @@ public function getRoles($guild){
5863
* @param $guild \Ourted\Model\Guild\Guild
5964
* @return mixed
6065
*/
61-
public function getChannels($guild){
62-
return json_decode($this->bot->api->init_curl_with_header("guilds/{$guild->id}/channels","", "GET"));
66+
public function getChannels($guild)
67+
{
68+
return json_decode($this->bot->api->init_curl_with_header("guilds/{$guild->id}/channels", "", "GET"));
6369
}
6470

71+
/**
72+
*
73+
* @param $guild \Ourted\Model\Guild\Guild
74+
* @return mixed
75+
*/
76+
public function getPrune($guild)
77+
{
78+
return json_decode($this->bot->api->init_curl_with_header("guilds/{$guild->id}/prunes", "", "GET"));
79+
}
80+
81+
/**
82+
*
83+
* @param $guild \Ourted\Model\Guild\Guild
84+
* @return mixed
85+
*/
86+
public function getInvites($guild)
87+
{
88+
return json_decode($this->bot->api->init_curl_with_header("guilds/{$guild->id}/invites", "", "GET"));
89+
}
90+
91+
92+
/**
93+
*
94+
* @param $guild \Ourted\Model\Guild\Guild
95+
* @return mixed
96+
*/
97+
public function getIntegrations($guild)
98+
{
99+
return new Integration($this->bot, $guild->id);
100+
}
65101

66102

67103
/**
@@ -73,8 +109,68 @@ public function getChannels($guild){
73109
* @param bool $hoist
74110
* @return Role
75111
*/
76-
public function addRole($guild, $role_name, $color, $mentionable, $hoist){
77-
$result = json_decode($this->bot->api->init_curl_with_header("guilds/{$guild->id}/roles","{\"name\":\"{$role_name}\", \"color\":\"{$color}\", \"hoist\":{$hoist}, \"mentionable\":{$mentionable}}", "POST"));
112+
public function addRole($guild, $role_name, $color, $mentionable, $hoist)
113+
{
114+
$result = json_decode($this->bot->api->init_curl_with_header("guilds/{$guild->id}/roles", "{\"name\":\"{$role_name}\", \"color\":\"{$color}\", \"hoist\":{$hoist}, \"mentionable\":{$mentionable}}", "POST"));
78115
return new Role($this->bot, $guild, $result->id);
79116
}
117+
118+
/**
119+
*
120+
* @param \Ourted\Model\Guild\Guild $guild
121+
* @param string $role_name
122+
* @param int|string $color
123+
* @param bool $mentionable
124+
* @param bool $hoist
125+
* @return Role
126+
*/
127+
public function modifyRole($guild, $role_name = null, $color = null, $mentionable = null, $hoist = null)
128+
{
129+
$result = json_decode($this->bot->api->init_curl_with_header("guilds/{$guild->id}/roles", "{\"name\":\"{$role_name}\", \"color\":\"{$color}\", \"hoist\":{$hoist}, \"mentionable\":{$mentionable}}", "PATCH"));
130+
return new Role($this->bot, $guild, $result->id);
131+
}
132+
133+
/**
134+
*
135+
* @param \Ourted\Model\Guild\Guild $guild
136+
* @param string|int $role_id
137+
* @return Role
138+
*/
139+
public function deleteRole($guild, $role_id)
140+
{
141+
$result = json_decode($this->bot->api->init_curl_with_header("guilds/{$guild->id}/roles/{$role_id}", "", "DELETE"));
142+
return new Role($this->bot, $guild, $result->id);
143+
}
144+
145+
/**
146+
*
147+
* @param \Ourted\Model\Guild\Guild $guild
148+
* @param string
149+
* @param int
150+
* @param string
151+
* @param int
152+
* @param int
153+
* @param int
154+
* @param int
155+
* @param int
156+
* @param bool
157+
* @return \Ourted\Model\Channel\Channel
158+
*/
159+
public function createChannel($guild, $channel_name, $type = 0, $topic = "", $bitrate = 0, $user_limit = 0, $rate_limit_per_user = 0, $position = 0, $parent_id = 0, $nsfw = false)
160+
{
161+
$result = json_decode($this->bot->api->init_curl_with_header("guilds/{$guild->id}/channels", "{\"name\": \"{$channel_name}\", \"type\": {$type}, \"topic\", \"{$topic}\", \"bitrate\":{$bitrate}, \"user_limit\": {$user_limit}, \"rate_limit_per_user\": {$rate_limit_per_user}, \"position\":{$position}, \"parent_id\": {$parent_id}, \"nsfw\": {$nsfw}}", "POST"));
162+
return new \Ourted\Model\Channel\Channel($this->bot, $result->id);
163+
}
164+
165+
/**
166+
*
167+
* @param \Ourted\Model\Guild\Guild $guild
168+
* @param \Ourted\Model\Channel\Channel
169+
* @param int
170+
*/
171+
public function changeChannelPosition($guild, $channel, $position)
172+
{
173+
$result = json_decode($this->bot->api->init_curl_with_header("guilds/{$guild->id}/channels", "{\"id\":{$channel->id}, \"position\":{$position}}", "PATCH"));
174+
return new \Ourted\Model\Channel\Channel($this->bot, $result->id);
175+
}
80176
}

src/Interfaces/Invite.php

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php
2+
3+
namespace Ourted\Interfaces;
4+
5+
use Ourted\Bot;
6+
7+
class Invite{
8+
9+
/** @var Bot */
10+
private $bot;
11+
12+
public function __construct($bot)
13+
{
14+
$this->bot = $bot;
15+
}
16+
17+
/**
18+
*
19+
* @param int|string $invite_code
20+
* @return mixed
21+
*/
22+
public function getInvite($invite_code){
23+
return new \Ourted\Model\Invite\Invite($this->bot, $invite_code);
24+
}
25+
}

0 commit comments

Comments
 (0)