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: 8 additions & 0 deletions .poggit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
--- # Poggit-CI Manifest. Open the CI at https://poggit.pmmp.io/ci/poggit-orphanage/Alias
branches:
- master
projects:
Alias:
path: ""
icon: icon.png
...
Binary file added icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
48 changes: 12 additions & 36 deletions plugin.yml
Original file line number Diff line number Diff line change
@@ -1,49 +1,25 @@
name: Alias
version: 2.0
api: [2.0.0]
version: 1.2.3
api: [3.0.0]
author: ZacHack
description: Allows users to view all the usernames one user has used
description: Allows users to view all the usernames used from a player's IP
main: Alias\MainClass

commands:
alias:
description: "Allows users to view all the usernames one user has used"
usage: "/alias <username>"
permission: "alias.command.alias"
setalias:
description: "Change Alias's settings"
usage: "/setalias <cid/ip>"
permission: "alias.command.setalias"
aliasip:
description: "Uses IP"
usage: "/aliasip <username>"
permission: "alias.command.aliasip"
aliascid:
description: "Uses Client ID"
usage: "/aliascid <username>"
permission: "alias.command.aliascid"
checkalias:
description: "Check what Alias is set to"
usage: "/checkalias"
permission: "alias.commmand.checkalias"

permissions:
alias:
alias:
default: op
description: "Allows ops to use the alias command"
children:
alias.command:
default: op
description: "Alias commands"
description: "Allows ops to use the alias command"
children:
alias.command.alias:
default: op
description: "Allows users to view all the usernames one user has used"
alias.command.setalias:
default: op
description: "Change settings for Alias"
alias.command.aliasip:
default: op
description: "Uses IP"
alias.command.aliascid:
default: op
description: "Uses Client ID"
alias.command.checkalias:
default: op
description: "Checks what Alias is set to"
alias.command.alias:
default: op
description: "Allows checking player names"
268 changes: 43 additions & 225 deletions src/Alias/MainClass.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,254 +7,72 @@
use pocketmine\event\Listener;
use pocketmine\event\player\PlayerJoinEvent;
use pocketmine\Player;
use pocketmine\Iplayer;
use pocketmine\OfflinePlayer;
use pocketmine\plugin\PluginBase;
use pocketmine\utils\Config;
use pocketmine\utils\TextFormat;

class MainClass extends PluginBase implements Listener{
public function onEnable(){

$config = new Config($this->getDataFolder()."config.yml", CONFIG::YAML, array(
"CID/IP" => "CID",
));
$this->getServer()->getPluginManager()->registerEvents($this, $this);
if(!is_dir($this->getDataFolder()."players/lastip")){
@mkdir($this->getDataFolder()."players/lastip", 0777, true);
class MainClass extends PluginBase implements Listener {
public function onEnable() {
$this->getServer()->getPluginManager()->registerEvents($this, $this);
$simpleauth = $this->getServer()->getPluginManager()->getPlugin("SimpleAuth");
if($simpleauth == null) {
$this->getLogger()->info(TextFormat::YELLOW . "You do not have SimpleAuth");
$this->getLogger()->info(TextFormat::YELLOW . "You can only get a players alias if he/she is online!");
}
if(!is_dir($this->getDataFolder()."players/ip")){
@mkdir($this->getDataFolder()."players/ip", 0777, true);
}
if(!is_dir($this->getDataFolder()."players/cid")){
@mkdir($this->getDataFolder()."players/cid", 0777, true);
}
if(!is_dir($this->getDataFolder()."players/lastcid")){
@mkdir($this->getDataFolder()."players/lastcid", 0777, true);
}

public function onDisable() {
}

public function onJoin(PlayerJoinEvent $event) {
if(!is_dir($this->getDataFolder() . "players/")) {
@mkdir($this->getDataFolder() . "players/", 0777, true);
}
}
public function onDisable(){}
public function onJoin(PlayerJoinEvent $event){
$name = $event->getPlayer()->getDisplayName();
$ip = $event->getPlayer()->getAddress();
$cid = $event->getPlayer()->getClientId();
if(is_file($this->getDataFolder()."players/lastcid/".$name[0]."/".$name.".yml")){
unlink($this->getDataFolder()."players/lastcid/".$name[0]."/".$name.".yml");
$name = $event->getPlayer()->getDisplayName();
$cid = $event->getPlayer()->getClientId();
@mkdir($this->getDataFolder()."players/lastcid/".$name[0]."", 0777, true);
$lastcid = new Config($this->getDataFolder()."players/lastcid/".$name[0]."/".$name.".yml", CONFIG::YAML, array(
"lastcid" => "".$cid."",
));
$lastcid->save();
$cidfile = new Config($this->getDataFolder()."players/cid/".$cid.".txt", CONFIG::ENUM);
$cidfile->set($name);
$cidfile->save();
}else{
$name = $event->getPlayer()->getDisplayName();
$cid = $event->getPlayer()->getClientId();
@mkdir($this->getDataFolder()."players/lastcid/".$name[0]."", 0777, true);
$lastcid = new Config($this->getDataFolder()."players/lastcid/".$name[0]."/".$name.".yml", CONFIG::YAML, array(
"lastcid" => "".$cid."",
));
$lastcid->save();
$cidfile = new Config($this->getDataFolder()."players/cid/".$cid.".txt", CONFIG::ENUM);
$cidfile->set($name);
$cidfile->save();
}
if(is_file($this->getDataFolder()."players/lastip/".$name[0]."/".$name.".yml")){
unlink($this->getDataFolder()."players/lastip/".$name[0]."/".$name.".yml");
$name = $event->getPlayer()->getDisplayName();
$ip = $event->getPlayer()->getAddress();
@mkdir($this->getDataFolder()."players/lastip/".$name[0]."", 0777, true);
$lastip = new Config($this->getDataFolder()."players/lastip/".$name[0]."/".$name.".yml", CONFIG::YAML, array(
"lastip" => "".$ip."",
));
$lastip->save();
@mkdir($this->getDataFolder()."players/ip/".$ip[0]."", 0777, true);
$ipfile = new Config($this->getDataFolder()."players/ip/".$ip[0]."/".$ip.".txt", CONFIG::ENUM);
$ipfile->set($name);
$ipfile->save();
}else{
$name = $event->getPlayer()->getDisplayName();
$ip = $event->getPlayer()->getAddress();
@mkdir($this->getDataFolder()."players/lastip/".$name[0]."", 0777, true);
$lastip = new Config($this->getDataFolder()."players/lastip/".$name[0]."/".$name.".yml", CONFIG::YAML, array(
"lastip" => "".$ip."",
));
$lastip->save();
@mkdir($this->getDataFolder()."players/ip/".$ip[0]."", 0777, true);
$ipfile = new Config($this->getDataFolder()."players/ip/".$ip[0]."/".$ip.".txt", CONFIG::ENUM);
$ipfile->set($name);
$ipfile->save();
}
$file = new Config($this->getDataFolder() . "players/" . $ip . ".txt", CONFIG::ENUM);
$file->set($name);
$file->save();
}
public function onCommand(CommandSender $sender, Command $command, $label, array $args){
switch($command->getName()){

public function onCommand(CommandSender $sender, Command $command, string $label, array $args): bool {
switch($command->getName()) {
case "alias":
if(!isset($args[0])){
$sender->sendMessage(TextFormat::YELLOW."Usage: ".$command->getUsage()."");
return true;
}
$config = new Config($this->getDataFolder()."config.yml", CONFIG::YAML);
$switch = $config->get("CID/IP");
if($switch == "CID"){
$name = strtolower($args[0]);
$player = $this->getServer()->getPlayer($name);
if($player instanceOf Player){
$cid = $player->getPlayer()->getClientId();
$file = new Config($this->getDataFolder()."players/cid/".$cid.".txt");
$names = $file->getAll(true);
$names = implode(', ', $names);
$sender->sendMessage(TextFormat::BLUE."[Alias] Showing alias of ".$name."...");
$sender->sendMessage(TextFormat::GREEN."[Alias] ".$names."");
return true;
}else{
if(!is_file($this->getDataFolder()."players/lastcid/".$name[0]."/".$name.".yml")){
$sender->sendMessage(TextFormat::YELLOW."[Alias] Error: Player does not have any client ID records!");
return true;
}else{
$lastcid = new Config($this->getDataFolder()."players/lastcid/".$name[0]."/".$name.".yml");
$cid = $lastcid->get("lastcid");
$file = new Config($this->getDataFolder()."players/cid/".$cid.".txt");
$names = $file->getAll(true);
if($names == null){
$sender->sendMessage(TextFormat::YELLOW."[Alias] Error: Player does not have any client ID records!");
return true;
}else{
$names = implode(', ', $names);
$sender->sendMessage(TextFormat::BLUE."[Alias] Showing alias of ".$name."...");
$sender->sendMessage(TextFormat::GREEN."[Alias] ".$names."");
return true;
}
}
}
}elseif($switch == "IP"){
$name = strtolower($args[0]);
$player = $this->getServer()->getPlayer($name);
if($player instanceOf Player){
$ip = $player->getPlayer()->getAddress();
$file = new Config($this->getDataFolder()."players/ip/".$ip[0]."/".$ip.".txt");
$names = $file->getAll(true);
$names = implode(', ', $names);
$sender->sendMessage(TextFormat::BLUE."[Alias] Showing alias of ".$name."...");
$sender->sendMessage(TextFormat::GREEN."[Alias] ".$names."");
return true;
}else{
if(!is_file($this->getDataFolder()."players/lastip/".$name[0]."/".$name.".yml")){
$sender->sendMessage(TextFormat::YELLOW."[Alias] Error: Player does not exist!");
return true;
}else{
$lastip = new Config($this->getDataFolder()."players/lastip/".$name[0]."/".$name.".yml");
$ip = $lastip->get("lastip");
$file = new Config($this->getDataFolder()."players/ip/".$ip[0]."/".$ip.".txt");
$names = $file->getAll(true);
if($names == null){
$sender->sendMessage(TextFormat::YELLOW."[Alias] Error: Player does not have any IP records!");
return true;
}else{
$names = implode(', ', $names);
$sender->sendMessage(TextFormat::GREEN."[Alias] Showing alias of ".$name."...");
$sender->sendMessage(TextFormat::BLUE."[Alias] ".$names."");
return true;
}
}
}
}else{
$sender->sendMessage(TextFormat::YELLOW."[Alias] Error! Please make sure your config is set properly!");
return true;
}
return true;
case "setalias":
if(!isset($args[0])){
$sender->sendMessage(TextFormat::YELLOW."Usage: ".$command->getUsage()."");
return true;
}
$args[0] = strtoupper($args[0]);
$config = new Config($this->getDataFolder()."config.yml", CONFIG::YAML);
unlink($this->getDataFolder()."config.yml");
$config = new Config($this->getDataFolder()."config.yml", CONFIG::YAML, array(
"CID/IP" => "".$args[0]."",
));
$sender->sendMessage(TextFormat::GREEN."[Alias] You have changed the setting to use ".$args[0]."");
return true;
case "aliasip":
if(!isset($args[0])){
$sender->sendMessage(TextFormat::YELLOW."Usage: ".$command0>getUsage()."");
if(!isset($args[0])) {
$sender->sendmessage(TextFormat::RED . "Usage: " . $command->getUsage() . "");
return true;
}
$name = strtolower($args[0]);
$player = $this->getServer()->getPlayer($name);
if($player instanceOf Player){
if($player instanceOf Player) {
$ip = $player->getPlayer()->getAddress();
$file = new Config($this->getDataFolder()."players/ip/".$ip[0]."/".$ip.".txt");
$file = new Config($this->getDataFolder() . "players/" . $ip . ".txt");
$names = $file->getAll(true);
$names = implode(', ', $names);
$sender->sendMessage(TextFormat::BLUE."[Alias] Showing alias of ".$name."...");
$sender->sendMessage(TextFormat::GREEN."[Alias] ".$names."");
$sender->sendMessage(TextFormat::GREEN . "[Alias] Showing players who joined from the same IP as " . $name . "...");
$sender->sendMessage(TextFormat::AQUA . $names);
return true;
}else{
if(!is_file($this->getDataFolder()."players/lastip/".$name[0]."/".$name.".yml")){
$sender->sendMessage(TextFormat::YELLOW."[Alias] Error: Player does not have any IP records!");
return true;
}else{
$lastip = new Config($this->getDataFolder()."players/lastip/".$name[0]."/".$name.".yml");
$ip = $lastip->get("lastip");
$file = new Config($this->getDataFolder()."players/ip/".$ip[0]."/".$ip.".txt");
$names = $file->getAll(true);
if($names == null){
$sender->sendMessage(TextFormat::YELLOW."[Alias] Error: Player does not have any IP records!");
return true;
}else{
$names = implode(', ', $names);
$sender->sendMessage(TextFormat::GREEN."[Alias] Showing alias of ".$name."...");
$sender->sendMessage(TextFormat::BLUE."[Alias] ".$names."");
return true;
}
}
}
return true;
case "aliascid":
if(!isset($args[0])){
$sender->sendMessage(TextFormat::YELLOW."Usage: ".$command0>getUsage()."");
return true;
}
$name = strtolower($args[0]);
$player = $this->getServer()->getPlayer($name);
if($player instanceOf Player){
$cid = $player->getPlayer()->getClientId();
$file = new Config($this->getDataFolder()."players/cid/".$cid.".txt");
$names = $file->getAll(true);
$names = implode(', ', $names);
$sender->sendMessage(TextFormat::BLUE."[Alias] Showing alias of ".$name."...");
$sender->sendMessage(TextFormat::GREEN."[Alias] ".$names."");
return true;
}else{
if(!is_file($this->getDataFolder()."players/lastcid/".$name[0]."/".$name.".yml")){
$sender->sendMessage(TextFormat::YELLOW."[Alias] Error: Player does not have any client ID records!");
return true;
}else{
$lastcid = new Config($this->getDataFolder()."players/lastcid/".$name[0]."/".$name.".yml");
$cid = $lastcid->get("lastcid");
$file = new Config($this->getDataFolder()."players/cid/".$cid.".txt");
$names = $file->getAll(true);
if($names == null){
$sender->sendMessage(TextFormat::YELLOW."[Alias] Error: Player does not have any client ID records!");
return true;
}else{
break;
} else {
$simpleauth = $this->getServer()->getPluginManager()->getPlugin("SimpleAuth");
if($simpleauth !== null) {
$saconfig = $simpleauth->getDataProvider()->getPlayerData($name);
if($saconfig !== null && isset($saconfig['ip']) && strlen($saconfig['ip']) > 0) {
$lastip = $saconfig['ip'];
$file = new Config($this->getDataFolder() . "players/" . $lastip . ".txt");
$names = $file->getAll(true);
$names = implode(', ', $names);
$sender->sendMessage(TextFormat::BLUE."[Alias] Showing alias of ".$name."...");
$sender->sendMessage(TextFormat::GREEN."[Alias] ".$names."");
$sender->sendMessage(TextFormat::GREEN . "[Alias] Showing players who joined from the same IP as " . $name . "...");
$sender->sendMessage(TextFormat::AQUA . $names . "");
return true;
} else {
$sender->sendMessage(TextFormat::RED . "Player not found");
}
} else {
$sender->sendMessage(TextFormat::RED . "SimpleAuth is not enabled, the player must be online");
}
}
return true;
case "checkalias":
$config = new Config($this->getDataFolder()."config.yml");
$setting = $config->get("CID/IP");
$sender->sendMessage(TextFormat::GREEN."[Alias] Alias is set to ".$setting."");
return true;
}
}
}
}