Skip to content

Commit

Permalink
Resolved Conflicts
Browse files Browse the repository at this point in the history
  • Loading branch information
JavierLeon9966 committed Feb 14, 2022
2 parents 74da94d + 589f3be commit 83ab2c0
Show file tree
Hide file tree
Showing 64 changed files with 1,304 additions and 951 deletions.
3 changes: 1 addition & 2 deletions .poggit.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
--- # Poggit-CI Manifest. Open the CI at https://poggit.pmmp.io/ci/vecnavium-pm-pl/Slapper
--- # Poggit-CI Manifest. Open the CI at https://poggit.pmmp.io/ci/Vecnavium/Slapper
build-by-default: true
branches:
- stable
- master
projects:
Slapper:
path: ""
Expand Down
Empty file modified .travis.yml
100755 → 100644
Empty file.
8 changes: 3 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,14 @@
<img href="https://discord.gg/6M9tGyWPjr"><img src="https://img.shields.io/discord/837701868649709568?label=discord&color=7289DA&logo=discord" alt="Discord" /></a>
</p>

## NOTICE
This plugin has not been abandoned during the updating of the Slapper. There has been some slight complicaions which is slowing the project down on updating it to API 4
so please be patient this project will be moving again soon. Hasting me will not speed up the process in any way

## Addons

Official addons:
- [SlapperRotation](https://github.com/Vecnavium/SlapperRotation)
- [SlapperCooldown](https://github.com/Vecnavium/SlapperCooldown)
- [SlapBack](https://github.com/Vecnavium/SlapBack)
- [SlapBack](https://github.com/vecnavium-pm-pl/SlapBack)
- [SlapperCache](https://github.com/Vecnavium/SlapperCache)
- [SlapperPlus](https://github.com/Vecnavium/SlapperPlus)


# Basic documentation
Expand Down
30 changes: 13 additions & 17 deletions plugin.yml
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
name: Slapper
author: [Vecnavium, jojoe77777]
version: 1.6.3
version: 2.0.1
description: Slapper, the NPC plugin for PocketMine-MP
main: slapper\Main
api: 3.13.0
mcpe-protocol: [465, 471, 475]
api: 4.0.0
mcpe-protocol: 486

commands:
slapper:
description: Create a Slapper NPC, or edit an existing one!
usage: "/slapper [args]..."
permission: slapper.command
permission: slapper.create;slapper.edit;slapper.remove;slapper.id;slapper.help
rca:
description: Execute a command as someone else!
usage: "/rca <player> <command>"
Expand All @@ -21,31 +21,27 @@ commands:
permission: slapper.nothing

permissions:
slapper:
description: Allow using all Slapper commands
default: op
children:
slapper.command:
description: Allow using /slapper
slapper.command:
description: Allow using command /slapper
default: op
slapper.create:
slapper.create:
description: Allow using command /slapper create
default: op
slapper.edit:
slapper.edit:
description: Allow editing Slapper entity data with /slapper edit
default: op
slapper.nothing:
slapper.nothing:
description: Allow doing nothing
default: op
slapper.rca:
slapper.rca:
description: Allow running commands as other players
default: op
slapper.remove:
slapper.remove:
description: Allow removing Slapper entities with /slapper remove [id]
default: op
slapper.id:
slapper.id:
description: Allow viewing entity ID
default: op
slapper.help:
slapper.help:
description: Allow viewing Slapper help page
default: op
1,394 changes: 726 additions & 668 deletions src/slapper/Main.php
100755 → 100644

Large diffs are not rendered by default.

62 changes: 62 additions & 0 deletions src/slapper/SlapperCommandSender.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
<?php

declare(strict_types=1);

namespace slapper;

use pocketmine\command\CommandSender;
use pocketmine\lang\Language;
use pocketmine\lang\Translatable;
use pocketmine\permission\DefaultPermissions;
use pocketmine\permission\PermissibleBase;
use pocketmine\permission\PermissibleDelegateTrait;
use pocketmine\Server;

class SlapperCommandSender implements CommandSender{
use PermissibleDelegateTrait;

protected ?int $lineHeight = null;

private Server $server;
private Language $language;

public function __construct(private Main $plugin){
$this->server = $plugin->getServer();
$this->language = $this->server->getLanguage();
$this->perm = new PermissibleBase([DefaultPermissions::ROOT_OPERATOR => true]);
}

public function getServer() : Server{
return $this->server;
}

public function getLanguage() : Language{
return $this->language;
}

public function sendMessage(Translatable|string $message) : void{
if($message instanceof Translatable){
$message = $this->language->translate($message);
}

$logger = $this->plugin->getLogger();
foreach(explode("\n", trim($message)) as $line){
$logger->info($line);
}
}

public function getName() : string{
return $this->plugin->getName();
}

public function getScreenLineHeight() : int{
return $this->lineHeight ?? PHP_INT_MAX;
}

public function setScreenLineHeight(?int $height) : void{
if($height !== null and $height < 1){
throw new \InvalidArgumentException("Line height must be at least 1");
}
$this->lineHeight = $height;
}
}
22 changes: 22 additions & 0 deletions src/slapper/SlapperInterface.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?php

namespace slapper;

use slapper;

interface SlapperInterface
{

/** @return string[] */
public function getCommands(): array;

public function addCommand(string $command): void;

public function hasCommand(string $command): bool;

public function removeCommand(string $command): void;

public function setSlapperVersion(string $version): void;

public function getSlapperVersion(): string;
}
90 changes: 39 additions & 51 deletions src/slapper/SlapperTrait.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,83 +4,71 @@

namespace slapper;

use pocketmine\entity\DataPropertyManager;
use pocketmine\entity\Entity;
use pocketmine\nbt\tag\CompoundTag;
use pocketmine\nbt\tag\FloatTag;
use pocketmine\nbt\tag\IntTag;
use pocketmine\network\mcpe\protocol\SetActorDataPacket as SetEntityDataPacket;
use pocketmine\Player;
use pocketmine\player\Player;

/**
* Trait containing methods used in various Slappers.
*/
trait SlapperTrait {
/** @var CompoundTag */
public $namedtag;

protected bool $networkPropertiesDirty = false;

/**
* @return DataPropertyManager
* @var true[]
* @phpstan-var array<string, true>
*/
abstract public function getDataPropertyManager(): DataPropertyManager;
protected array $commands = [];

protected string $version;

/**
* @return string
*/
abstract public function getNameTag(): string;

abstract public function sendNameTag(Player $player): void;

abstract public function setGenericFlag(int $flag, bool $value = true): void;

public function prepareMetadata(): void {
$this->setGenericFlag(Entity::DATA_FLAG_IMMOBILE, true);
if (!$this->namedtag->hasTag("Scale", FloatTag::class)) {
$this->namedtag->setFloat("Scale", 1.0, true);
}
$this->getDataPropertyManager()->setFloat(Entity::DATA_SCALE, $this->namedtag->getFloat("Scale"));
}

public function tryChangeMovement(): void {

//NOOP
}

public function sendData($playerList, array $data = null): void {
if(!is_array($playerList)){
$playerList = [$playerList];
}

foreach($playerList as $p){
$playerData = $data ?? $this->getDataPropertyManager()->getAll();
unset($playerData[self::DATA_NAMETAG]);
$pk = new SetEntityDataPacket();
$pk->entityRuntimeId = $this->getId();
$pk->metadata = $playerData;
$p->dataPacket($pk);

$this->sendNameTag($p);
}
public function prepareMetadata(): void {
$this->networkPropertiesDirty = true;
}

public function saveSlapperNbt(): void {
$visibility = 0;
if ($this->isNameTagVisible()) {
$visibility = 1;
if ($this->isNameTagAlwaysVisible()) {
$visibility = 2;
}
}
$scale = $this->getDataPropertyManager()->getFloat(Entity::DATA_SCALE);
$this->namedtag->setInt("NameVisibility", $visibility, true);
$this->namedtag->setFloat("Scale", $scale, true);
public function sendData(?array $playerList, ?array $data = null): void {
//NOOP
}

public function getDisplayName(Player $player): string {
$vars = [
"{name}" => $player->getName(),
"{display_name}" => $player->getName(),
"{display_name}" => $player->getDisplayName(),
"{nametag}" => $player->getNameTag()
];
return str_replace(array_keys($vars), array_values($vars), $this->getNameTag());
}

/** @return string[] */
public function getCommands(): array{
return array_keys($this->commands);
}

public function addCommand(string $command): void{
$this->commands[$command] = true;
}

public function hasCommand(string $command): bool{
return isset($this->commands[$command]);
}

public function removeCommand(string $command): void{
unset($this->commands[$command]);
}

public function setSlapperVersion(string $version): void{
$this->version = $version;
}

public function getSlapperVersion(): string{
return $this->version;
}
}
4 changes: 3 additions & 1 deletion src/slapper/entities/SlapperBat.php
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@

namespace slapper\entities;

use pocketmine\data\bedrock\EntityLegacyIds;

class SlapperBat extends SlapperEntity {

const TYPE_ID = 19;
const TYPE_ID = EntityLegacyIds::BAT;
const HEIGHT = 0.9;

}
4 changes: 3 additions & 1 deletion src/slapper/entities/SlapperBlaze.php
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@

namespace slapper\entities;

use pocketmine\data\bedrock\EntityLegacyIds;

class SlapperBlaze extends SlapperEntity {

const TYPE_ID = 43;
const TYPE_ID = EntityLegacyIds::BLAZE;
const HEIGHT = 1.8;

}
4 changes: 3 additions & 1 deletion src/slapper/entities/SlapperCaveSpider.php
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@

namespace slapper\entities;

use pocketmine\data\bedrock\EntityLegacyIds;

class SlapperCaveSpider extends SlapperEntity {

const TYPE_ID = 40;
const TYPE_ID = EntityLegacyIds::CAVE_SPIDER;
const HEIGHT = 0.5;

}
4 changes: 3 additions & 1 deletion src/slapper/entities/SlapperChicken.php
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@

namespace slapper\entities;

use pocketmine\data\bedrock\EntityLegacyIds;

class SlapperChicken extends SlapperEntity {

const TYPE_ID = 10;
const TYPE_ID = EntityLegacyIds::CHICKEN;
const HEIGHT = 0.7;

}
4 changes: 3 additions & 1 deletion src/slapper/entities/SlapperCow.php
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@

namespace slapper\entities;

use pocketmine\data\bedrock\EntityLegacyIds;

class SlapperCow extends SlapperEntity {

const TYPE_ID = 11;
const TYPE_ID = EntityLegacyIds::COW;
const HEIGHT = 1.4;

}
4 changes: 3 additions & 1 deletion src/slapper/entities/SlapperCreeper.php
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@

namespace slapper\entities;

use pocketmine\data\bedrock\EntityLegacyIds;

class SlapperCreeper extends SlapperEntity {

const TYPE_ID = 33;
const TYPE_ID = EntityLegacyIds::COW;
const HEIGHT = 1.7;

}
4 changes: 3 additions & 1 deletion src/slapper/entities/SlapperDonkey.php
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@

namespace slapper\entities;

use pocketmine\data\bedrock\EntityLegacyIds;

class SlapperDonkey extends SlapperEntity {

const TYPE_ID = 24;
const TYPE_ID = EntityLegacyIds::DONKEY;
const HEIGHT = 1.6;

}
Loading

0 comments on commit 83ab2c0

Please sign in to comment.