Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions src/Rest/Helpers/Channel/EditPermissionsBuilder.php
Original file line number Diff line number Diff line change
Expand Up @@ -37,29 +37,29 @@ public function getOverwriteId(): ?string

public function setAllow(Bitwise $allow): self
{
$this->data['allow'] = $allow->getBitSet();
$this->data['allow'] = (string) $allow->get();

return $this;
}

public function getAllow(): ?Bitwise
{
return isset($this->data['allow'])
? Bitwise::fromBitSet($this->data['allow'])
? new Bitwise((int) $this->data['allow'])
: null;
}

public function setDeny(Bitwise $deny): self
{
$this->data['deny'] = $deny->getBitSet();
$this->data['deny'] = (string) $deny->get();

return $this;
}

public function getDeny(): ?Bitwise
{
return isset($this->data['deny'])
? Bitwise::fromBitSet($this->data['deny'])
? new Bitwise((int) $this->data['deny'])
: null;
}

Expand Down
4 changes: 2 additions & 2 deletions src/Rest/Helpers/Command/CommandBuilder.php
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ public function getOptions(): ?array
*/
public function setDefaultMemberPermissions(Bitwise $permissions): self
{
$this->data['default_member_permissions'] = $permissions->getBitSet();
$this->data['default_member_permissions'] = (string) $permissions->get();

return $this;
}
Expand All @@ -145,7 +145,7 @@ public function setDefaultMemberPermissions(Bitwise $permissions): self
public function getDefaultMemberPermissions(): ?Bitwise
{
return isset($this->data['default_member_permissions'])
? Bitwise::fromBitSet($this->data['default_member_permissions'])
? new Bitwise((int) $this->data['default_member_permissions'])
: null;
}

Expand Down
11 changes: 9 additions & 2 deletions tests/Rest/Helpers/Channel/EditPermissionsBuilderTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public function testSetAllow(): void

$this->assertNull($builder->getAllow());

$bitwise = new Bitwise(
$bitwise = Bitwise::from(
1 << 1,
1 << 2,
1 << 3
Expand All @@ -48,6 +48,7 @@ public function testSetAllow(): void
$builder->setAllow($bitwise);

$this->assertEquals($bitwise->get(), $builder->getAllow()->get());
$this->assertSame('14', $builder->get()['allow']);
}

public function testSetDeny(): void
Expand All @@ -56,7 +57,7 @@ public function testSetDeny(): void

$this->assertNull($builder->getDeny());

$bitwise = new Bitwise(
$bitwise = Bitwise::from(
1 << 1,
1 << 2,
1 << 3
Expand All @@ -65,5 +66,11 @@ public function testSetDeny(): void
$builder->setDeny($bitwise);

$this->assertEquals($bitwise->get(), $builder->getDeny()->get());

/*
* A decimal bit field, as Discord reads it; the binary representation
* would be read back as a different set of permissions.
*/
$this->assertSame('14', $builder->get()['deny']);
}
}
8 changes: 7 additions & 1 deletion tests/Rest/Helpers/Command/CommandBuilderTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,13 @@ public function testSetDefaultMemberPermissions(): void
$commandBuilder->setDefaultMemberPermissions($permissions);

$this->assertEquals($permissions->get(), $commandBuilder->getDefaultMemberPermissions()->get());
$this->assertEquals($permissions->getBitSet(), $commandBuilder->get()['default_member_permissions']);

/*
* Discord reads this as a decimal bit field. Sending the binary
* representation would be read back as an entirely different, and
* much larger, set of permissions.
*/
$this->assertSame('6', $commandBuilder->get()['default_member_permissions']);
}

public function testSetDmPermission(): void
Expand Down