FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

add those · ExplodingPE/ExplodingPE@b3b2930 · GitHub

Commit b3b2930

Browse files
add those
1 parent b10c07a commit b3b2930

29 files changed

Lines changed: 1765 additions & 0 deletions
Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
GNU LESSER GENERAL PUBLIC LICENSE
2+
Version 3, 29 June 2007
3+
4+
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
5+
Everyone is permitted to copy and distribute verbatim copies
6+
of this license document, but changing it is not allowed.
7+
8+
9+
This version of the GNU Lesser General Public License incorporates
10+
the terms and conditions of version 3 of the GNU General Public
11+
License, supplemented by the additional permissions listed below.
12+
13+
0. Additional Definitions.
14+
15+
As used herein, "this License" refers to version 3 of the GNU Lesser
16+
General Public License, and the "GNU GPL" refers to version 3 of the GNU
17+
General Public License.
18+
19+
"The Library" refers to a covered work governed by this License,
20+
other than an Application or a Combined Work as defined below.
21+
22+
An "Application" is any work that makes use of an interface provided
23+
by the Library, but which is not otherwise based on the Library.
24+
Defining a subclass of a class defined by the Library is deemed a mode
25+
of using an interface provided by the Library.
26+
27+
A "Combined Work" is a work produced by combining or linking an
28+
Application with the Library. The particular version of the Library
29+
with which the Combined Work was made is also called the "Linked
30+
Version".
31+
32+
The "Minimal Corresponding Source" for a Combined Work means the
33+
Corresponding Source for the Combined Work, excluding any source code
34+
for portions of the Combined Work that, considered in isolation, are
35+
based on the Application, and not on the Linked Version.
36+
37+
The "Corresponding Application Code" for a Combined Work means the
38+
object code and/or source code for the Application, including any data
39+
and utility programs needed for reproducing the Combined Work from the
40+
Application, but excluding the System Libraries of the Combined Work.
41+
42+
1. Exception to Section 3 of the GNU GPL.
43+
44+
You may convey a covered work under sections 3 and 4 of this License
45+
without being bound by section 3 of the GNU GPL.
46+
47+
2. Conveying Modified Versions.
48+
49+
If you modify a copy of the Library, and, in your modifications, a
50+
facility refers to a function or data to be supplied by an Application
51+
that uses the facility (other than as an argument passed when the
52+
facility is invoked), then you may convey a copy of the modified
53+
version:
54+
55+
a) under this License, provided that you make a good faith effort to
56+
ensure that, in the event an Application does not supply the
57+
function or data, the facility still operates, and performs
58+
whatever part of its purpose remains meaningful, or
59+
60+
b) under the GNU GPL, with none of the additional permissions of
61+
this License applicable to that copy.
62+
63+
3. Object Code Incorporating Material from Library Header Files.
64+
65+
The object code form of an Application may incorporate material from
66+
a header file that is part of the Library. You may convey such object
67+
code under terms of your choice, provided that, if the incorporated
68+
material is not limited to numerical parameters, data structure
69+
layouts and accessors, or small macros, inline functions and templates
70+
(ten or fewer lines in length), you do both of the following:
71+
72+
a) Give prominent notice with each copy of the object code that the
73+
Library is used in it and that the Library and its use are
74+
covered by this License.
75+
76+
b) Accompany the object code with a copy of the GNU GPL and this license
77+
document.
78+
79+
4. Combined Works.
80+
81+
You may convey a Combined Work under terms of your choice that,
82+
taken together, effectively do not restrict modification of the
83+
portions of the Library contained in the Combined Work and reverse
84+
engineering for debugging such modifications, if you also do each of
85+
the following:
86+
87+
a) Give prominent notice with each copy of the Combined Work that
88+
the Library is used in it and that the Library and its use are
89+
covered by this License.
90+
91+
b) Accompany the Combined Work with a copy of the GNU GPL and this license
92+
document.
93+
94+
c) For a Combined Work that displays copyright notices during
95+
execution, include the copyright notice for the Library among
96+
these notices, as well as a reference directing the user to the
97+
copies of the GNU GPL and this license document.
98+
99+
d) Do one of the following:
100+
101+
0) Convey the Minimal Corresponding Source under the terms of this
102+
License, and the Corresponding Application Code in a form
103+
suitable for, and under terms that permit, the user to
104+
recombine or relink the Application with a modified version of
105+
the Linked Version to produce a modified Combined Work, in the
106+
manner specified by section 6 of the GNU GPL for conveying
107+
Corresponding Source.
108+
109+
1) Use a suitable shared library mechanism for linking with the
110+
Library. A suitable mechanism is one that (a) uses at run time
111+
a copy of the Library already present on the user's computer
112+
system, and (b) will operate properly with a modified version
113+
of the Library that is interface-compatible with the Linked
114+
Version.
115+
116+
e) Provide Installation Information, but only if you would otherwise
117+
be required to provide such information under section 6 of the
118+
GNU GPL, and only to the extent that such information is
119+
necessary to install and execute a modified version of the
120+
Combined Work produced by recombining or relinking the
121+
Application with a modified version of the Linked Version. (If
122+
you use option 4d0, the Installation Information must accompany
123+
the Minimal Corresponding Source and Corresponding Application
124+
Code. If you use option 4d1, you must provide the Installation
125+
Information in the manner specified by section 6 of the GNU GPL
126+
for conveying Corresponding Source.)
127+
128+
5. Combined Libraries.
129+
130+
You may place library facilities that are a work based on the
131+
Library side by side in a single library together with other library
132+
facilities that are not Applications and are not covered by this
133+
License, and convey such a combined library under terms of your
134+
choice, if you do both of the following:
135+
136+
a) Accompany the combined library with a copy of the same work based
137+
on the Library, uncombined with any other library facilities,
138+
conveyed under the terms of this License.
139+
140+
b) Give prominent notice with the combined library that part of it
141+
is a work based on the Library, and explaining where to find the
142+
accompanying uncombined form of the same work.
143+
144+
6. Revised Versions of the GNU Lesser General Public License.
145+
146+
The Free Software Foundation may publish revised and/or new versions
147+
of the GNU Lesser General Public License from time to time. Such new
148+
versions will be similar in spirit to the present version, but may
149+
differ in detail to address new problems or concerns.
150+
151+
Each version is given a distinguishing version number. If the
152+
Library as you received it specifies that a certain numbered version
153+
of the GNU Lesser General Public License "or any later version"
154+
applies to it, you have the option of following the terms and
155+
conditions either of that published version or of any later version
156+
published by the Free Software Foundation. If the Library as you
157+
received it does not specify a version number of the GNU Lesser
158+
General Public License, you may choose any version of the GNU Lesser
159+
General Public License ever published by the Free Software Foundation.
160+
161+
If the Library as you received it specifies that a proxy can decide
162+
whether future versions of the GNU Lesser General Public License shall
163+
apply, that proxy's public statement of acceptance of any version is
164+
permanent authorization for you to choose that version for the
165+
Library.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Development Tools <em>for PocketMine-MP</em>
2+
3+
This program is free software: you can redistribute it and/or modify
4+
it under the terms of the GNU Lesser General Public License as published by
5+
the Free Software Foundation, either version 3 of the License, or
6+
(at your option) any later version.
7+
8+
This program is distributed in the hope that it will be useful,
9+
but WITHOUT ANY WARRANTY; without even the implied warranty of
10+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+
GNU Lesser General Public License for more details.
12+
13+
You should have received a copy of the GNU Lesser General Public License
14+
along with this program. If not, see <http://www.gnu.org/licenses/>.
15+
16+
17+
## Installation
18+
- Drop it into the PocketMine's `plugins/` folder.
19+
- Restart the server. The plugin will be loaded
20+
21+
## Usage
22+
* _/makeplugin <pluginName>_: Creates a Phar plugin archive for its distribution
23+
* _/makeserver_: Creates a PocketMine-MP Phar archive
24+
* _/checkperm <node> [playerName]_: Checks a permission node
25+
26+
## Build phars from the command line
27+
See [this](https://github.com/pmmp/PocketMine-DevTools/wiki/Creating-a-phar-plugin-without-PocketMine-MP) wiki page.
11.1 KB
LoadingViewer requires iframe.
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: DevTools
2+
main: DevTools\DevTools
3+
version: 1.11.3
4+
api: [2.0.0, 3.0.0-ALPHA1, 3.0.0-ALPHA2, 3.0.0-ALPHA3, 3.0.0-ALPHA4, 3.0.0-ALPHA5]
5+
load: STARTUP
6+
author: PocketMine Team
7+
description: Helps develop and distribute PocketMine-MP plugins
8+
website: https://github.com/PocketMine/DevTools
9+
commands:
10+
makeserver:
11+
description: Creates a PocketMine-MP Phar
12+
usage: "/makeserver"
13+
permission: devtools.command.makeserver
14+
makeplugin:
15+
description: Creates a Phar plugin from one in source code form
16+
usage: "/makeplugin <pluginName>"
17+
permission: devtools.command.makeplugin
18+
checkperm:
19+
description: Checks a permission value for the current sender, or a player
20+
usage: "/checkperm <node> [playerName]"
21+
permission: "devtools.command.checkperm;devtools.command.checkperm.other"
22+
permissions:
23+
devtools:
24+
default: op
25+
description: "Allows using all the DevTools things"
26+
children:
27+
devtools.command:
28+
default: op
29+
description: "Allows using all the DevTools commands"
30+
children:
31+
devtools.command.makeplugin:
32+
default: op
33+
description: "Allows the creation of Phar plugins"
34+
devtools.command.extractplugin:
35+
default: op
36+
description: "Allows the extraction of Phar plugins"
37+
devtools.command.makeserver:
38+
default: op
39+
description: "Allows the creation of a PocketMine-MP Phar"
40+
devtools.command.checkperm:
41+
default: true
42+
description: "Allows checking a permission value"
43+
children:
44+
devtools.command.checkperm.other:
45+
default: op
46+
description: "Allows checking others permission value"
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
<?php
2+
3+
/*
4+
* DevTools plugin for PocketMine-MP
5+
* Copyright (C) 2014 PocketMine Team <https://github.com/PocketMine/DevTools>
6+
*
7+
* This program is free software: you can redistribute it and/or modify
8+
* it under the terms of the GNU Lesser General Public License as published by
9+
* the Free Software Foundation, either version 3 of the License, or
10+
* (at your option) any later version.
11+
*
12+
* This program is distributed in the hope that it will be useful,
13+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15+
* GNU General Public License for more details.
16+
*/
17+
18+
const VERSION = "1.11.1";
19+
20+
$opts = getopt("", ["make:", "relative:", "out:", "entry:", "compress", "stub:"]);
21+
22+
if(!isset($opts["make"])){
23+
echo "== PocketMine-MP DevTools CLI interface ==\n\n";
24+
echo "Usage: " . PHP_BINARY . " -dphar.readonly=0 " . $argv[0] . " --make <sourceFolder> --relative <relativePath> --entry \"relativeSourcePath.php\" --out <pharName.phar>\n";
25+
exit(0);
26+
}
27+
28+
if(ini_get("phar.readonly") == 1){
29+
echo "Set phar.readonly to 0 with -dphar.readonly=0\n";
30+
exit(1);
31+
}
32+
33+
$folderPath = rtrim(str_replace("\\", "/", realpath($opts["make"])), "/") . "/";
34+
$relativePath = isset($opts["relative"]) ? rtrim(str_replace("\\", "/", realpath($opts["relative"])), "/") . "/" : $folderPath;
35+
$pharName = $opts["out"] ?? "output.phar";
36+
$stubPath = $opts["stub"] ?? "stub.php";
37+
38+
39+
if(!is_dir($folderPath)){
40+
echo $folderPath . " is not a folder\n";
41+
exit(1);
42+
}
43+
44+
echo "\nCreating " . $pharName . "...\n";
45+
$phar = new \Phar($pharName);
46+
47+
if(file_exists($relativePath . $stubPath)){
48+
echo "Using stub " . $relativePath . $stubPath . "\n";
49+
$phar->setStub('<?php require("phar://" . __FILE__ . "/' . $stubPath . '"); __HALT_COMPILER();');
50+
}elseif(isset($opts["entry"])){
51+
$entry = addslashes(str_replace("\\", "/", $opts["entry"]));
52+
echo "Setting entry point to " . $entry . "\n";
53+
$phar->setStub('<?php require("phar://" . __FILE__ . "/' . $entry . '"); __HALT_COMPILER();');
54+
}else{
55+
if(file_exists($relativePath . "plugin.yml")){
56+
$metadata = yaml_parse_file($relativePath . "plugin.yml");
57+
}else{
58+
echo "Missing entry point or plugin.yml\n";
59+
exit(1);
60+
}
61+
62+
$phar->setMetadata([
63+
"name" => $metadata["name"],
64+
"version" => $metadata["version"],
65+
"main" => $metadata["main"],
66+
"api" => $metadata["api"],
67+
"depend" => ($metadata["depend"] ?? ""),
68+
"description" => ($metadata["description"] ?? ""),
69+
"authors" => ($metadata["authors"] ?? ""),
70+
"website" => ($metadata["website"] ?? ""),
71+
"creationDate" => time()
72+
]);
73+
74+
$phar->setStub('<?php echo "PocketMine-MP plugin ' . $metadata["name"] . ' v' . $metadata["version"] . '\nThis file has been generated using DevTools v" . $version . " at ' . date("r") . '\n----------------\n";if(extension_loaded("phar")){$phar = new \Phar(__FILE__);foreach($phar->getMetadata() as $key => $value){echo ucfirst($key).": ".(is_array($value) ? implode(", ", $value):$value)."\n";}} __HALT_COMPILER();');
75+
}
76+
77+
$phar->setSignatureAlgorithm(\Phar::SHA1);
78+
$phar->startBuffering();
79+
echo "Adding files...\n";
80+
$maxLen = 0;
81+
$count = 0;
82+
foreach(new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($folderPath)) as $file){
83+
$path = rtrim(str_replace(["\\", $relativePath], ["/", ""], $file), "/");
84+
if($path{0} === "." or strpos($path, "/.") !== false){
85+
continue;
86+
}
87+
$phar->addFile($file, $path);
88+
if(strlen($path) > $maxLen){
89+
$maxLen = strlen($path);
90+
}
91+
echo "\r[" . (++$count) . "] " . str_pad($path, $maxLen, " ");
92+
}
93+
94+
$phar->stopBuffering();
95+
96+
echo "\nDone!\n";
97+
exit(0);

0 commit comments

Comments
 (0)

Back | FazBrowse Home | New Git URL