How can I create a WorldBorder using PocketMine-MP? [closed] - php

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed last month.
Improve this question
I'm trying to make a world border by getting player coordinate and stopping them from moving past that coordinate. What should I do? Using Pocketmine 4.0.0
I've tried to find a method to get the coordinates but I don't know what to do.

You can use the PlayerMoveEvent.
use pocketmine\event\player\PlayerMoveEvent;
public function onPlayerMove(PlayerMoveEvent $event) : void{
$player = $event->getPlayer();
$world = $player->getWorld();
$dat = $this->getConfig()->get("border");
if(isset($dat[$world->getDisplayName()])){
$v1 = new Vector3($world->getSpawnLocation()->getX(), 0, $world->getSpawnLocation()->getZ());
$v2 = new Vector3($player->getLocation()->getX(), 0, $player->getLocation()->getZ());
if($v2->distance($v1) >= $dat[$world->getDisplayName()]){
$event->cancel();
}
}
}
This will get the coordinates of the player and set the border from the world spawn.
Then in your configuration file:
border:
# world-name: border-size
world: 1000
You can add as many world's as needed. However, some hacked clients can bypass this method.

Related

Php function with return statement [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 4 years ago.
Improve this question
Can somebody explain me this code? I don't understand why it outputs 21.
<?php
function math($t){
if($t==0)
return 0;
return $t+ math($t-1);
}
echo math(6);
?>
It will echo 21. I have no idea how it got this result.
The function is recursive, it calls itself until it gets to 0, then adds all the previously returned values (6,5,4,3,2,1).
function math($t){
if($t==0)
return 0;
return $t+ math($t-1);
}
echo math(6);
So on loop one it gets 6 then 6-1 = 5 so math gets called again with 5 this time and so on. Take a look at http://sandbox.onlinephpfunctions.com/code/e228f3b696c5058efee03fa978a09179c1f2ffbb.

Stop PHP from adding backslashes to string [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 6 years ago.
Improve this question
I have a function that builds a regex based on an array. The problem is that PHP keeps adding backslashes to some of the characters, and it keeps messing up the regex.
Here is my function:
private static $allowedPermissions = [
/*SV*/
'user_add',
'user_edit',
'user_delete',
'user_view'];
$regexrule = '/';
foreach (self::$allowedPermissions as $allowedPermission) {
$regexrule .= '\b'.$allowedPermission.'\b';
if(end(self::$allowedPermissions) !== $allowedPermission) $regexrule .='|';
}
$regexrule .= "/";
return 'regex:'.$regexrule;
It is adding backslashes where I don't expect them:
regex:\/\\buser_add\\b|\\buser_edit\\b|\\buser_delete\\b|\\buser_view\\b|\\bpatient_add\\b|\\bpatient_edit\\b|\\bpatient_delete\\b|\\bpatient_view\\b|\\bmake_per\\b|\\bmake_per_withconfirmation\\b|\\bconfirm_per\\b|\\beval_per\\b|\\beval_per_withconfirmation\\b|\\bconfirm_per_report\\b\/
Backup screenshot of regex
Is there a workaround?
I found out that returning it in json format was adding the backslashes.

How to make a php crawler to search particular string? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
How can I create a crawler in php which search for a particular string in a webpage and returns whether it is present or not?
Try this function I made, it takes in the pages URL and the string to look for in this URL's content.
<?php
var_dump(searchPage("http://google.com", "Tacos")); //False
var_dump(searchPage("http://google.com", "Google")); //True
function searchPage($url, $string){
$input = file_get_contents($url);
if (strpos($input,$string) !== false) {
return true;
}else{
return false;
}
}
?>
I hope this helped,
Sebastian

File Writing in php without appending [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 8 years ago.
Improve this question
Following is my piece of code which writes to file.
<?php
$fileWrite = fopen("c.txt", "w+");
for($i=0;$i<5;$i++) {
$bytes = fwrite($fileWrite, $i);
}
fclose($fileWrite);
I am getting 01234. It means , pointer is appending to last location, I don't want to append data. Instead need to write 4 in the file.
Then you need to ftruncate the file before writing to it:
ftruncate($fileWrite, 0);
$bytes = fwrite($fileWrite, $i);
This is obviously pretty pointless to do in a loop, but I expect you know that.
I personally recommend using file_put_contents for this simple task. It's easier to use and will not append to the end of the file (unless specified that way).

PHP - Creating custom variable for template [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 9 years ago.
Improve this question
I don't know exactly how to say this, I'll use an example.
//[$var:Username|n] will print username with n length
$myText = 'The participants are [$var:Username|10], [$var:Username|8], and [$var:Username|6]';
$username = array('Alexandrite', 'Maximillian', 'Angelina');
$result = someFunction('[$var:Username|n]', $username, $myText);
echo $result;
//The participants are Alexandrit, Maximill, and Angeli
Any idea how to do this? Maybe using preg_replace?
I'm interested to know why you would even need to do this. Regardless:
preg_replace_callback('/\[\$var:Username\|(\d+)\]/', function ($match)
use (&$count, $username
) {
return substr($username[$count++], 0, $match[1]);
}, $myText);

Categories