浏览代码

paper docu updated

mloeschenkohl 2 年之前
父节点
当前提交
21cc4ac655

+ 55 - 199
docu_core.php

@@ -146,7 +146,7 @@
     <table>
         <tr>
             <th class="command">read.number</th>
-            <th class="desc">returns a double parsed from a string</th>
+            <th class="desc">returns a double parsed from a string or null if not possible</th>
         </tr>
         <tr>
             <td class="bold">Format</td>
@@ -355,6 +355,20 @@
             <td>remove(iterator)</td>
         </tr>
     </table>
+	<table>
+        <tr>
+            <th class="command">modTimer</th>
+            <th class="desc">modifies the timer for the auto scheduler</th>
+        </tr>
+        <tr>
+            <td class="bold">Format</td>
+            <td>modTimer(milliseconds)</td>
+        </tr>
+        <tr>
+            <td class="bold">Arguments</td>
+            <td>milliseconds as long</td>
+        </tr>
+    </table>
 </section>
 
 <section id="Event">
@@ -1298,247 +1312,195 @@
     </table>
 </section>
 
-<section id="Text">
+<section id="String">
     <table>
         <tr>
-            <th class="command">text</th>
+            <th class="command">string</th>
             <th class="desc">returns any object as string</th>
         </tr>
         <tr>
             <td class="bold">Format</td>
-            <td>text(object)</td>
+            <td>string(object)</td>
         </tr>
     </table>
     <table>
         <tr>
-            <th class="command">text.number</th>
+            <th class="command">string.number</th>
             <th class="desc">returns a number as string without unnecessary .0</th>
         </tr>
         <tr>
             <td class="bold">Format</td>
-            <td>text.number(number)</td>
+            <td>string.number(number)</td>
         </tr>
     </table>
     <table>
         <tr>
-            <th class="command">text.class</th>
+            <th class="command">string.class</th>
             <th class="desc">returns the class of any object</th>
         </tr>
         <tr>
             <td class="bold">Format</td>
-            <td>text.class(objekt)</td>
+            <td>string.class(objekt)</td>
         </tr>
     </table>
     <table>
         <tr>
-            <th class="command">text.toUpperCase</th>
+            <th class="command">string.toUpperCase</th>
             <th class="desc">returns a string capitalized</th>
         </tr>
         <tr>
             <td class="bold">Format</td>
-            <td>text.toUpperCase(string)</td>
+            <td>string.toUpperCase(string)</td>
         </tr>
     </table>
     <table>
         <tr>
-            <th class="command">text.toLowerCase</th>
+            <th class="command">string.toLowerCase</th>
             <th class="desc">returns a string decapitalized</th>
         </tr>
         <tr>
             <td class="bold">Format</td>
-            <td>text.toLowerCase(string)</td>
+            <td>string.toLowerCase(string)</td>
         </tr>
     </table>
     <table>
         <tr>
-            <th class="command">text.split</th>
-            <th class="desc">returns a string splitted by a given separator as list </th>
+            <th class="command">string.split</th>
+            <th class="desc">returns a string splitted by a given separator as array </th>
         </tr>
         <tr>
             <td class="bold">Format</td>
-            <td>text.split(separator, string)</td>
+            <td>string.split(separator, string)</td>
         </tr>
     </table>
     <table>
         <tr>
-            <th class="command">text.concatList</th>
-            <th class="desc">returns one string which connects all elements of a sub list with a connector</th>
-        </tr>
-        <tr>
-            <td class="bold">Format</td>
-            <td>text.concatList(list, connector, fromIndex, toIndex)</td>
-        </tr>
-    </table>
-    <table>
-        <tr>
-            <th class="command">text.concat</th>
+            <th class="command">string.concat</th>
             <th class="desc">returns one string which connects all given arguments</th>
         </tr>
         <tr>
             <td class="bold">Format</td>
-            <td>text.concat(arg, ...)</td>
-        </tr>
-    </table>
-    <table>
-        <tr>
-            <th class="command">text.concatSpace</th>
-            <th class="desc">returns one string which connects all given arguments with a space</th>
-        </tr>
-        <tr>
-            <td class="bold">Format</td>
-            <td>text.concatSpace(arg, ...)</td>
+            <td>string.concat(arg, ...)</td>
         </tr>
     </table>
     <table>
         <tr>
-            <th class="command">text.startsWith</th>
+            <th class="command">string.startsWith</th>
             <th class="desc">returns true if a string starts with another starting from a given index</th>
         </tr>
         <tr>
             <td class="bold">Format</td>
-            <td>text.startsWith(string, search_text, start_index)</td>
+            <td>string.startsWith(string, search_text, start_index)</td>
         </tr>
     </table>
     <table>
         <tr>
-            <th class="command">text.endsWith</th>
+            <th class="command">string.endsWith</th>
             <th class="desc">returns true if a string ends with another</th>
         </tr>
         <tr>
             <td class="bold">Format</td>
-            <td>text.endsWith(string, search_text)</td>
+            <td>string.endsWith(string, search_text)</td>
         </tr>
     </table>
     <table>
         <tr>
-            <th class="command">text.contains</th>
+            <th class="command">string.contains</th>
             <th class="desc">returns true if a string is in another</th>
         </tr>
         <tr>
             <td class="bold">Format</td>
-            <td>text.contains(string, search_text)</td>
+            <td>string.contains(string, search_text)</td>
         </tr>
     </table>
     <table>
         <tr>
-            <th class="command">text.indexOf</th>
+            <th class="command">string.indexOf</th>
             <th class="desc">returns the index of string in another starting from a given index or -1 if not found</th>
         </tr>
         <tr>
             <td class="bold">Format</td>
-            <td>text.indexOf(string, search_text, start_index)</td>
+            <td>string.indexOf(string, search_text, start_index)</td>
         </tr>
     </table>
     <table>
         <tr>
-            <th class="command">text.lastIndexOf</th>
+            <th class="command">string.lastIndexOf</th>
             <th class="desc">returns the last index of a string in another starting from a given index or -1 if not found</th>
         </tr>
         <tr>
             <td class="bold">Format</td>
-            <td>text.lastIndexOf(string, search_text, start_index)</td>
+            <td>string.lastIndexOf(string, search_text, start_index)</td>
         </tr>
     </table>
     <table>
         <tr>
-            <th class="command">text.replace</th>
+            <th class="command">string.replace</th>
             <th class="desc">replaces all occurrences of a given string in another with a given string</th>
         </tr>
         <tr>
             <td class="bold">Format</td>
-            <td>text.replace(string, search_text, swap_text)</td>
+            <td>string.replace(string, search_text, swap_text)</td>
         </tr>
     </table>
     <table>
         <tr>
-            <th class="command">text.trim</th>
+            <th class="command">string.trim</th>
             <th class="desc">returns a string without leading and trailing whitespaces</th>
         </tr>
         <tr>
             <td class="bold">Format</td>
-            <td>text.trim(string)</td>
+            <td>string.trim(string)</td>
         </tr>
     </table>
     <table>
         <tr>
-            <th class="command">text.matches</th>
+            <th class="command">string.matches</th>
             <th class="desc">returns true if a string matches a regex</th>
         </tr>
         <tr>
             <td class="bold">Format</td>
-            <td>text.matches(string, regex)</td>
+            <td>string.matches(string, regex)</td>
         </tr>
     </table>
     <table>
         <tr>
-            <th class="command">text.charcode</th>
+            <th class="command">string.charcode</th>
             <th class="desc">returns the character code of an index in a string</th>
         </tr>
         <tr>
             <td class="bold">Format</td>
-            <td>text.charcode(string, index)</td>
+            <td>string.charcode(string, index)</td>
         </tr>
     </table>
     <table>
         <tr>
-            <th class="command">text.fromCode</th>
+            <th class="command">string.fromCode</th>
             <th class="desc">returns a string from a character code</th>
         </tr>
         <tr>
             <td class="bold">Format</td>
-            <td>text.fromCode(character_code)</td>
+            <td>string.fromCode(character_code)</td>
         </tr>
     </table>
    <table>
         <tr>
-            <th class="command">text.length</th>
+            <th class="command">string.length</th>
             <th class="desc">returns the length of a string</th>
         </tr>
         <tr>
             <td class="bold">Format</td>
-            <td>text.length(string)</td>
+            <td>string.length(string)</td>
         </tr>
     </table>
     <table>
         <tr>
-            <th class="command">text.subString</th>
+            <th class="command">string.subString</th>
             <th class="desc">returns a sub string starting at one index and ending at another exclusively</th>
         </tr>
         <tr>
             <td class="bold">Format</td>
-            <td>text.subString(string, from_index, to_index)</td>
-        </tr>
-    </table>
-    <table>
-        <tr>
-            <th class="command">text.onlyLetters</th>
-            <th class="desc">returns true if a text has only letters</th>
-        </tr>
-        <tr>
-            <td class="bold">Format</td>
-            <td>text.onlyLetters(String)</td>
-        </tr>
-    </table>
-    <table>
-        <tr>
-            <th class="command">text.convert</th>
-            <th class="desc">converts strings into objects</th>
-        </tr>
-        <tr>
-            <td class="bold">Format</td>
-            <td>text.convert(any object)</td>
-        </tr>
-        <tr>
-            <td class="bold">Info</td>
-            <td>
-				null -> null<br>
-				"null" -> null<br>
-				"true" -> true<br>
-				"false" -> false<br>
-				"\"" -> \"<br>
-				"1" -> 1.0<br>
-				"string" -> "string"
-			</td>
+            <td>string.subString(string, from_index, to_index)</td>
         </tr>
     </table>
 </section>
@@ -1727,110 +1689,4 @@
             <td>config.getString(config, key, default)</td>
         </tr>
     </table>
-</section>
-
-<section id="Matrix">
-    <table>
-        <tr>
-            <th class="command">matrix.new</th>
-            <th class="desc">returns a new matrix</th>
-        </tr>
-        <tr>
-            <td class="bold">Format</td>
-            <td>matrix.new()</td>
-        </tr>
-    </table>
-	<table>
-        <tr>
-            <th class="command">matrix.newRotationX</th>
-            <th class="desc">returns a new rotated matrix</th>
-        </tr>
-        <tr>
-            <td class="bold">Format</td>
-            <td>matrix.newRotationX(angle in radiant)</td>
-        </tr>
-    </table>
-	<table>
-        <tr>
-            <th class="command">matrix.newRotationY</th>
-            <th class="desc">returns a new rotated matrix</th>
-        </tr>
-        <tr>
-            <td class="bold">Format</td>
-            <td>matrix.newRotationY(angle in radiant)</td>
-        </tr>
-    </table>
-	<table>
-        <tr>
-            <th class="command">matrix.mul</th>
-            <th class="desc">multiplies two matrices</th>
-        </tr>
-        <tr>
-            <td class="bold">Format</td>
-            <td>matrix.mul(matrix1, matrix2)</td>
-        </tr>
-    </table>
-	<table>
-        <tr>
-            <th class="command">matrix.mulVector</th>
-            <th class="desc">multiplies a matrix and a vector</th>
-        </tr>
-        <tr>
-            <td class="bold">Format</td>
-            <td>matrix.mulVector(matrix, vector)</td>
-        </tr>
-    </table>
-</section>
-
-<section id="Vector">
-	<table>
-        <tr>
-            <th class="command">vector.new</th>
-            <th class="desc">returns a new vector</th>
-        </tr>
-        <tr>
-            <td class="bold">Format</td>
-            <td>vector.new(x, y, z)</td>
-        </tr>
-    </table>
-	<table>
-        <tr>
-            <th class="command">vector.set</th>
-            <th class="desc">modifies a vector</th>
-        </tr>
-        <tr>
-            <td class="bold">Format</td>
-            <td>vector.set(vector, x, y, z)</td>
-        </tr>
-    </table>
-	<table>
-        <tr>
-            <th class="command">vector.getX</th>
-            <th class="desc">returns x from a vector</th>
-        </tr>
-        <tr>
-            <td class="bold">Format</td>
-            <td>vector.getX(vector)</td>
-        </tr>
-    </table>
-	<table>
-        <tr>
-            <th class="command">vector.getY</th>
-            <th class="desc">returns y from a vector</th>
-        </tr>
-        <tr>
-            <td class="bold">Format</td>
-            <td>vector.getY(vector)</td>
-        </tr>
-    </table>
-	<table>
-        <tr>
-            <th class="command">vector.getZ</th>
-            <th class="desc">returns z from a vector</th>
-        </tr>
-        <tr>
-            <td class="bold">Format</td>
-            <td>vector.getZ(vector)</td>
-        </tr>
-    </table>
 </section>

文件差异内容过多而无法显示
+ 156 - 404
docu_minecraft_paper.php


+ 0 - 303
jan/4d_change_dimensions.txt

@@ -1,303 +0,0 @@
-sign.started(gamesignloc);
-event.load("function_key");
-event.load("living_pre_hurt");
-event.load("player_move");
-event.load("player_logout");
-event.load("player_giveup");
-event.load("player_join");
-event.load("block_break");
-
-gamename = "$a4D-Jump'n'Run";
-
-maxplayers = 1;
-
-x1 = loc.getX(Edge_1);
-x2 = loc.getX(Edge_2);
-x3 = loc.getX(Edge_3);
-
-y1 = loc.getY(Edge_1);
-y2 = loc.getY(Edge_2);
-y3 = loc.getY(Edge_3);
-
-z1 = loc.getZ(Edge_1);
-z2 = loc.getZ(Edge_2);
-z3 = loc.getZ(Edge_3);
-
-//XYZ -> WYZ -> XYW -> XYZ
-Dimension_Blocks = list.new();
-
-event.addMoveData(loc1, loc2, -1, -1);
-
-current_w = 0;
-current_x = x3;
-current_z = z3;
-currently_active_dimensions = 0; //0 = XYZ, 1 = WYZ, 2 = WYX, 3 = ZYX, 4 = ZYW, 5 = XYW
-current_layer = array.new(3, 2);
-current_layer[0] = current_w;//0 = W, 1 = X, 2 = Z
-current_layer[1] = current_x;//current_layer[a] 0 = W, 1 = X, 2 = Z
-current_layer[2] = current_z;
-x_difference = x2-x1;
-z_difference = z2-z2;
-w_difference = w2-w1;
-difference_array = array.new();
-difference_array[0] = x_difference;
-difference_array[1] = y_difference;
-difference_array[2] = z_difference;
-
-@wait
-wait();
-if(event == "living_pre_hurt") {
-	if(!isPlayer(living_entity)) {
-		goto("wait");
-	}
-	player = living_entity;
-}
-if(!player.hasMinigameId(player, script_id)) {
-	goto("wait");
-}
-if(event == "player_join"){
-	entity.teleport(player, Start_Pos);
-	player.clearInventory(player);
-	stacks.set(player, 7, "km:arrow_down");
-	stacks.set(player, 8, "km:arrow_up");
-	stacks.setActive(player, true);
-	for(layer_var = 0; layer_var < Layer_amount; layer_var++){
-		temp_list = list.new();
-		x_d = layer_var * Layer_difference_X;
-		y_d = layer_var * Layer_difference_Y;
-		z_d = layer_var * Layer_difference_Z;
-		for(x = x1 - x_d; x <= x2 - x_d; x++){
-			for(y = y1 - y_d; y <= y2 - y_d; y++){
-				for(z = z1 - z_d; z <= z2 - z_d; z++){
-					temp_loc = loc.new(games, x, y, z);
-					if(!block.isAir(temp_loc)){
-						D_Array = array.new(4);
-						D_Array[0] = x;//X
-						D_Array[1] = y;//Y
-						D_Array[2] = z;//Z
-						D_Array[3] = layer_var;//W
-						temp_array = array.new(2);
-						temp_array[0] = D_Array;
-						temp_array[1] = block.get(temp_loc);
-						list.add(Dimension_Blocks, temp_array);//Dimensional_Blocks -> Koords4D,Block
-					}
-				}
-			}
-		}
-	}
-	goto("wait");
-}
-if(event == "block_break"){
-	cancel = true;
-	goto("wait");
-}
-if(event == "living_pre_hurt") {
-	cancel = true;
-	goto("wait");
-}
-if(event == "function_key"){
-	if(key == 8){
-		goto("remove_layer");
-	}
-	if(key == 9){
-		goto("add_layer");
-	}
-	goto("wait");
-}
-if(event == "player_move"){
-	//if(current_layer[1] == finish_layer){
-	game_stop("You did it!");
-	//}
-	goto("wait");
-}
-if(event == "player_logout"){
-	game_stop(null);
-}
-if(event == "player_giveup"){
-	game_stop("You left :(");
-}
-goto("wait");
-
-@remove_layer
-if(current_layer[currently_active_dimensions] <= 0 || current_layer[currently_active_dimensions] > difference_array[currently_active_dimensions] - 1){
-	if(current_layer[currently_active_dimensions] == 0){
-		remove_blocks(current_layer);
-	}
-	current_layer[currently_active_dimensions]--;
-}else{
-	remove_blocks(current_layer);
-	current_layer[currently_active_dimensions]--;
-	place_blocks(current_layer);
-}
-goto("wait");
-
-@add_layer
-if(current_layer[currently_active_dimensions] >= difference_array[currently_active_dimensions] - 1 || current_layer[currently_active_dimensions] < 0){
-	if(current_layer[currently_active_dimensions] == difference_array[currently_active_dimensions] - 1){
-		remove_blocks(current_layer);
-	}
-	current_layer[currently_active_dimensions]++;// = 0;
-}else{
-	remove_blocks(current_layer);
-	current_layer[currently_active_dimensions]++;
-	place_blocks(current_layer);
-}
-goto("wait");
-
-@dimensional_turn_up
-remove_blocks(current_layer);//0 = XYZ, 1 = WYZ, 2 = WYX, 3 = ZYX, 4 = ZYW, 5 = XYW
-if(currently_active_dimensions == 0){//XYZ to WYZ
-	currently_active_dimensions++;
-	current_layer[1] = math.round(loc.getX(entity.getLocation(player)));
-}
-if(currently_active_dimensions == 1){//WYZ to WYX
-	currently_active_dimensions++;
-	current_layer[2] = math.round(loc.getZ(entity.getLocation(player)));
-}
-if(currently_active_dimensions == 2){//WYX to ZYX
-	currently_active_dimensions++;
-	current_layer[0] = math.round(loc.getX(entity.getLocation(player)));
-}
-if(currently_active_dimensions == 3){//ZYX to ZYW
-	currently_active_dimensions++;
-	current_layer[1] = math.round(loc.getZ(entity.getLocation(player)));
-}
-if(currently_active_dimensions == 4){//ZYW to XYW
-	currently_active_dimensions++;
-	current_layer[2] = math.round(loc.getX(entity.getLocation(player)));
-}
-if(currently_active_dimensions == 5){//XYW to XYZ
-	currently_active_dimensions = 0;
-	current_layer[0] = math.round(loc.getZ(entity.getLocation(player)));
-}
-place_blocks(current_layer);
-goto("wait");
-
-@dimensional_turn_down
-remove_blocks(current_layer);//0 = XYZ, 1 = WYZ, 2 = WYX, 3 = ZYX, 4 = ZYW, 5 = XYW
-if(currently_active_dimensions == 0){//XYZ to XYW
-	currently_active_dimensions = 5;
-	current_layer[2] = math.round(loc.getZ(entity.getLocation(player)));
-}
-if(currently_active_dimensions == 1){//XYW to ZYW
-	currently_active_dimensions--;
-	current_layer[1] = math.round(loc.getX(entity.getLocation(player)));
-}
-if(currently_active_dimensions == 2){//ZYW to ZYX
-	currently_active_dimensions--;
-	current_layer[0] = math.round(loc.getZ(entity.getLocation(player)));
-}
-if(currently_active_dimensions == 3){//ZYX to WYX
-	currently_active_dimensions--;
-	current_layer[2] = math.round(loc.getX(entity.getLocation(player)));
-}
-if(currently_active_dimensions == 4){//WYX to WYZ
-	currently_active_dimensions--;
-	current_layer[1] = math.round(loc.getZ(entity.getLocation(player)));
-}
-if(currently_active_dimensions == 5){//WYZ to XYZ
-	currently_active_dimensions--;
-	current_layer[0] = math.round(loc.getX(entity.getLocation(player)));
-}
-place_blocks(current_layer);
-goto("wait");
-
-
-
-function remove_blocks(current_layer){
-	for(a = 0; a < list.getSize($Dimension_Blocks); a++){
-		temp_array = list.getIndex($Dimension_Blocks, a);//Dimensional_Blocks -> Array[Koords4D,Block]
-		D_Array = temp_array[0];//temp_array[1] ist der Block, bei remove egal. 
-		//D_Array[0] = x, D_Array[1] = y, D_Array[2] = z, D_Array[3] = w
-		//0 = XYZ, 1 = WYZ, 2 = WYX, 3 = ZYX, 4 = ZYW, 5 = XYW
-		//x3+x-x1+x_d, y3+y-y1+y_d, z3+z-z1+z_d
-		if(currently_active_dimensions == 0){//0 = XYZ
-			X_place = D_Array[0];
-			Y_place = D_Array[1];
-			Z_place = D_Array[2];
-		}
-		if(currently_active_dimensions == 1){//1 = WYZ
-			X_place = D_Array[3];
-			Y_place = D_Array[1];	
-			Z_place = D_Array[2];
-		}
-		if(currently_active_dimensions == 2){//2 = WYX
-			X_place = D_Array[3];
-			Y_place = D_Array[1];
-			Z_place = D_Array[0];
-		}
-		if(currently_active_dimensions == 3){//3 = ZYX
-			X_place = D_Array[2];
-			Y_place = D_Array[1];
-			Z_place = D_Array[0];
-		}
-		if(currently_active_dimensions == 4){//4 = ZYW
-			X_place = D_Array[2];
-			Y_place = D_Array[1];
-			Z_place = D_Array[3];
-		}
-		if(currently_active_dimensions == 5){//5 = XYW
-			X_place = D_Array[0];
-			Y_place = D_Array[1];
-			Z_place = D_Array[3];
-		}
-		X_place = X_place + x3;
-		Y_place = Y_place + y3;
-		Z_place = Z_place + z3;
-		block.set(loc.new(games,X_place,Y_place,Z_place), "minecraft:air");
-	}
-}
-function place_blocks(current_layer){
-	for(a = 0; a < list.getSize($Dimension_Blocks); a++){
-		temp_array = list.getIndex($Dimension_Blocks, a);
-		D_Array = temp_array[0];//temp_array[1] ist der Block, bei remove egal. D_Array[0] = x, D_Array[1] = y, D_Array[2] = z, D_Array[3] = w
-		//0 = XYZ, 1 = WYZ, 2 = XYW
-		//x3+x-x1+x_d, y3+y-y1+y_d, z3+z-z1+z_d
-		if(currently_active_dimensions == 0){//0 = XYZ
-			X_place = D_Array[0];
-			Y_place = D_Array[1];
-			Z_place = D_Array[2];
-		}
-		if(currently_active_dimensions == 1){//1 = WYZ
-			X_place = D_Array[3];
-			Y_place = D_Array[1];	
-			Z_place = D_Array[2];
-		}
-		if(currently_active_dimensions == 2){//2 = WYX
-			X_place = D_Array[3];
-			Y_place = D_Array[1];
-			Z_place = D_Array[0];
-		}
-		if(currently_active_dimensions == 3){//3 = ZYX
-			X_place = D_Array[2];
-			Y_place = D_Array[1];
-			Z_place = D_Array[0];
-		}
-		if(currently_active_dimensions == 4){//4 = ZYW
-			X_place = D_Array[2];
-			Y_place = D_Array[1];
-			Z_place = D_Array[3];
-		}
-		if(currently_active_dimensions == 5){//5 = XYW
-			X_place = D_Array[0];
-			Y_place = D_Array[1];
-			Z_place = D_Array[3];
-		}
-		X_place = X_place + x3;
-		Y_place = Y_place + y3;
-		Z_place = Z_place + z3;
-		block.set(loc.new(games,X_place,Y_place,Z_place), temp_array[1]);
-	}
-}
-
-function game_stop(message){
-	remove_blocks($current_layer[currently_active_dimensions]);
-	place_blocks(0);
-	if(message != null){
-		msg.prefix($player, $gamename, message);
-	}
-	script = script.getFromId($script_id);
-	minigame.kickPlayer(script, $player);
-	minigame.term(script, $gamesignloc);
-	term();
-}

+ 40 - 32
jan/4d_j_r_core_2.txt → jan/4d_j_r_core.txt

@@ -16,14 +16,20 @@ maxplayers = 1;
 x1 = loc.getX(Edge_1);
 x2 = loc.getX(Edge_2);
 x3 = loc.getX(Edge_3);
+x4 = x3 + x2 - x1;
+Spawn_X = loc.getX(Start_Pos)-0.5;
 
 y1 = loc.getY(Edge_1);
 y2 = loc.getY(Edge_2);
 y3 = loc.getY(Edge_3);
+y4 = y3 + y2 - y1;
+Spawn_Y = loc.getY(Start_Pos);
 
 z1 = loc.getZ(Edge_1);
 z2 = loc.getZ(Edge_2);
 z3 = loc.getZ(Edge_3);
+z4 = z3 + z2 - z1;
+Spawn_Z = loc.getZ(Start_Pos)-0.5;
 
 //XYZ -> WYZ -> XYW -> XYZ
 Dimension_Blocks = list.new();
@@ -181,36 +187,36 @@ temp_layer = current_layer[currently_active_dimensions];
 temp_player_loc = entity.getLocation(player);
 
 if(currently_active_dimensions == 0){//XYZ to WYZ
-	currently_active_dimensions++;
-	current_layer[1] = math.roundDown(loc.getX(temp_player_loc)+0.5)-x3;
-	entity.teleport(player, loc.mod(Edge_3, temp_layer+0.5, loc.getY(temp_player_loc)-y3, loc.getZ(temp_player_loc)-z3));
+	currently_active_dimensions++;//0 = W, 1 = X, 2 = Z
+	current_layer[currently_active_dimensions] = math.roundDown(loc.getX(temp_player_loc))-Spawn_X;
+	entity.teleport(player, loc.mod(Edge_3, temp_layer+0.5, loc.getY(temp_player_loc)-Spawn_Y, loc.getZ(temp_player_loc)-Spawn_Z));
 }else{
 if(currently_active_dimensions == 1){//WYZ to WYX
 	currently_active_dimensions++;
-	current_layer[2] = math.roundDown(loc.getZ(entity.getLocation(player))+0.5)-z3;
-	entity.teleport(player, loc.mod(Edge_3, loc.getX(temp_player_loc)-x3, loc.getY(temp_player_loc)-y3, temp_layer+0.5));
+	current_layer[currently_active_dimensions] = math.roundDown(loc.getZ(entity.getLocation(player)))-Spawn_Z;
+	entity.teleport(player, loc.mod(Edge_3, loc.getX(temp_player_loc)-Spawn_X, loc.getY(temp_player_loc)-Spawn_Y, temp_layer+0.5));
 }else{
 if(currently_active_dimensions == 2){//WYX to ZYX
 	currently_active_dimensions++;
-	current_layer[0] = math.roundDown(loc.getX(entity.getLocation(player))+0.5)-x3;
-	entity.teleport(player, loc.mod(Edge_3, temp_layer+0.5, loc.getY(temp_player_loc)-y3, loc.getZ(temp_player_loc)-z3));
+	current_layer[currently_active_dimensions] = math.roundDown(loc.getX(entity.getLocation(player)))-Spawn_X;
+	entity.teleport(player, loc.mod(Edge_3, temp_layer+0.5, loc.getY(temp_player_loc)-Spawn_Y, loc.getZ(temp_player_loc)-Spawn_Z));
 }else{
 if(currently_active_dimensions == 3){//ZYX to ZYW
 	currently_active_dimensions++;
-	current_layer[1] = math.roundDown(loc.getZ(entity.getLocation(player))+0.5)-z3;
-	entity.teleport(player, loc.mod(Edge_3, loc.getX(temp_player_loc)-x3, loc.getY(temp_player_loc)-y3, temp_layer+0.5));
+	current_layer[currently_active_dimensions] = math.roundDown(loc.getZ(entity.getLocation(player)))-Spawn_Z;
+	entity.teleport(player, loc.mod(Edge_3, loc.getX(temp_player_loc)-Spawn_X, loc.getY(temp_player_loc)-Spawn_Y, temp_layer+0.5));
 }else{
 if(currently_active_dimensions == 4){//ZYW to XYW
 	currently_active_dimensions++;
-	current_layer[2] = math.roundDown(loc.getX(entity.getLocation(player))+0.5)-x3;
-	entity.teleport(player, loc.mod(Edge_3, temp_layer+0.5, loc.getY(temp_player_loc)-y3, loc.getZ(temp_player_loc)-z3));
+	current_layer[currently_active_dimensions] = math.roundDown(loc.getX(entity.getLocation(player)))-Spawn_X;
+	entity.teleport(player, loc.mod(Edge_3, temp_layer+0.5, loc.getY(temp_player_loc)-Spawn_Y, loc.getZ(temp_player_loc)-Spawn_Z));
 }else{
 if(currently_active_dimensions == 5){//XYW to XYZ
 	currently_active_dimensions = 0;
-	current_layer[0] = math.roundDown(loc.getZ(entity.getLocation(player))+0.5)-z3;
-	entity.teleport(player, loc.mod(Edge_3, loc.getX(temp_player_loc)-x3, loc.getY(temp_player_loc)-y3, temp_layer+0.5));
+	current_layer[currently_active_dimensions] = math.roundDown(loc.getZ(entity.getLocation(player)))-Spawn_Z;
+	entity.teleport(player, loc.mod(Edge_3, loc.getX(temp_player_loc)-Spawn_X, loc.getY(temp_player_loc)-Spawn_Y, temp_layer+0.5));
 }}}}}}
-if(currently_active_dimensions < 3){
+if(currently_active_dimensions < 3){//um es nicht bei jedem if-else schreiben zu m?ssen, und die layer aktiv zu halten.
 	current_layer[currently_active_dimensions+3] = current_layer[currently_active_dimensions]; 
 }else{
 	current_layer[currently_active_dimensions-3] = current_layer[currently_active_dimensions]; 
@@ -224,34 +230,34 @@ temp_layer = current_layer[currently_active_dimensions];
 temp_player_loc = entity.getLocation(player);
 
 if(currently_active_dimensions == 0){//XYZ to XYW
-	currently_active_dimensions = 5;
-	current_layer[2] = math.roundDown(loc.getZ(entity.getLocation(player))+0.5)-z3;
-	entity.teleport(player, loc.mod(Edge_3, loc.getX(temp_player_loc)-x3, loc.getY(temp_player_loc)-y3, temp_layer+0.5));
+	currently_active_dimensions = 5;//0 = W, 1 = X, 2 = Z, 3 = W, 4 = X, 5 = Z 
+	current_layer[currently_active_dimensions] = math.roundDown(loc.getZ(entity.getLocation(player)))-Spawn_Z;
+	entity.teleport(player, loc.mod(Edge_3, loc.getX(temp_player_loc)-Spawn_X, loc.getY(temp_player_loc)-Spawn_Y, temp_layer+0.5));
 }else{
-if(currently_active_dimensions == 1){//XYW to ZYW
+if(currently_active_dimensions == 1){//WYZ to XYZ
 	currently_active_dimensions--;
-	current_layer[1] = math.roundDown(loc.getX(entity.getLocation(player))+0.5)-x3;
-	entity.teleport(player, loc.mod(Edge_3, temp_layer+0.5, loc.getY(temp_player_loc)-y3, loc.getZ(temp_player_loc)-z3));
+	current_layer[currently_active_dimensions] = math.roundDown(loc.getX(entity.getLocation(player)))-Spawn_X;
+	entity.teleport(player, loc.mod(Edge_3, temp_layer+0.5, loc.getY(temp_player_loc)-Spawn_Y, loc.getZ(temp_player_loc)-Spawn_Z));
 }else{
-if(currently_active_dimensions == 2){//ZYW to ZYX
+if(currently_active_dimensions == 2){//WYX to WYZ
 	currently_active_dimensions--;
-	current_layer[0] = math.roundDown(loc.getZ(entity.getLocation(player))+0.5)-z3;
-	entity.teleport(player, loc.mod(Edge_3, loc.getX(temp_player_loc)-x3, loc.getY(temp_player_loc)-y3, temp_layer+0.5));
+	current_layer[currently_active_dimensions] = math.roundDown(loc.getZ(entity.getLocation(player)))-Spawn_Z;
+	entity.teleport(player, loc.mod(Edge_3, loc.getX(temp_player_loc)-Spawn_X, loc.getY(temp_player_loc)-Spawn_Y, temp_layer+0.5));
 }else{
 if(currently_active_dimensions == 3){//ZYX to WYX
 	currently_active_dimensions--;
-	current_layer[2] = math.roundDown(loc.getX(entity.getLocation(player))+0.5)-x3;
-	entity.teleport(player, loc.mod(Edge_3, temp_layer+0.5, loc.getY(temp_player_loc)-y3, loc.getZ(temp_player_loc)-z3));
+	current_layer[currently_active_dimensions] = math.roundDown(loc.getX(entity.getLocation(player)))-Spawn_X;
+	entity.teleport(player, loc.mod(Edge_3, temp_layer+0.5, loc.getY(temp_player_loc)-Spawn_Y, loc.getZ(temp_player_loc)-Spawn_Z));
 }else{
-if(currently_active_dimensions == 4){//WYX to WYZ
+if(currently_active_dimensions == 4){//ZYW to ZYX
 	currently_active_dimensions--;
-	current_layer[1] = math.roundDown(loc.getZ(entity.getLocation(player))+0.5)-z3;
-	entity.teleport(player, loc.mod(Edge_3, loc.getX(temp_player_loc)-x3, loc.getY(temp_player_loc)-y3, temp_layer+0.5));
+	current_layer[currently_active_dimensions] = math.roundDown(loc.getZ(entity.getLocation(player)))-Spawn_Z;
+	entity.teleport(player, loc.mod(Edge_3, loc.getX(temp_player_loc)-Spawn_X, loc.getY(temp_player_loc)-Spawn_Y, temp_layer+0.5));
 }else{
-if(currently_active_dimensions == 5){//WYZ to XYZ
+if(currently_active_dimensions == 5){//XYW to ZYW
 	currently_active_dimensions--;
-	current_layer[0] = math.roundDown(loc.getX(entity.getLocation(player))+0.5)-x3;
-	entity.teleport(player, loc.mod(Edge_3, temp_layer+0.5, loc.getY(temp_player_loc)-y3, loc.getZ(temp_player_loc)-z3));
+	current_layer[currently_active_dimensions] = math.roundDown(loc.getX(entity.getLocation(player)))-Spawn_X;
+	entity.teleport(player, loc.mod(Edge_3, temp_layer+0.5, loc.getY(temp_player_loc)-Spawn_Y, loc.getZ(temp_player_loc)-Spawn_Z));
 }}}}}}
 if(currently_active_dimensions < 3){
 	current_layer[currently_active_dimensions+3] = current_layer[currently_active_dimensions]; 
@@ -329,7 +335,9 @@ function place_blocks(current_layer){
 			Y_place = Y_place + $y3;
 			Z_place = Z_place + $z3;
 			temp_loc = loc.new($games,X_place,Y_place,Z_place);
-			block.set(temp_loc, temp_array[1]);
+			if(X_place < $x4+1 && Y_place < $y4+1 && Z_place < $z4+1){
+				block.set(temp_loc, temp_array[1]);
+			}
 		}
 	}
 }

+ 0 - 154
jan/4d_j_r_core_backup(old).txt

@@ -1,154 +0,0 @@
-sign.started(gamesignloc);
-event.load("function_key");
-event.load("living_pre_hurt");
-event.load("player_move");
-event.load("player_logout");
-event.load("player_giveup");
-event.load("player_join");
-event.load("block_break");
-
-gamename = "§a4D-Jump'n'Run";
-
-maxplayers = 1;
-
-x1 = loc.getX(Edge_1);
-x2 = loc.getX(Edge_2);
-x3 = loc.getX(Edge_3);
-
-y1 = loc.getY(Edge_1);
-y2 = loc.getY(Edge_2);
-y3 = loc.getY(Edge_3);
-
-z1 = loc.getZ(Edge_1);
-z2 = loc.getZ(Edge_2);
-z3 = loc.getZ(Edge_3);
-
-Layer = array.new(Layer_amount, 2);
-
-event.addMoveData(loc1, loc2, -1, -1);
-
-current_layer = 0;
-
-@wait
-wait();
-if(event == "living_pre_hurt") {
-	if(!isPlayer(living_entity)) {
-		goto("wait");
-	}
-	player = living_entity;
-}
-if(!player.hasMinigameId(player, script_id)) {
-	goto("wait");
-}
-if(event == "player_join"){
-	entity.teleport(player, Start_Pos);
-	player.clearInventory(player);
-	stacks.set(player, 7, "km:arrow_left");
-	stacks.set(player, 8, "km:arrow_right");
-	stacks.setActive(player, true);
-	for(layer_var = 0; layer_var < Layer_amount; layer_var++){
-		temp_list = list.new();
-		x_d = layer_var * Layer_difference_X;
-		y_d = layer_var * Layer_difference_Y;
-		z_d = layer_var * Layer_difference_Z;
-		for(x = x1 - x_d; x <= x2 - x_d; x++){
-			for(y = y1 - y_d; y <= y2 - y_d; y++){
-				for(z = z1 - z_d; z <= z2 - z_d; z++){
-					temp_loc = loc.new(games, x, y, z);
-					if(!block.isAir(temp_loc)){
-						temp_loc2 = loc.new(games, x3+x-x1+x_d, y3+y-y1+y_d, z3+z-z1+z_d);
-						list.add(temp_list, temp_loc2);
-					}
-				}
-			}
-		}
-		Layer[layer_var, 0] = temp_list;
-		Layer[layer_var, 1] = block_type_array[layer_var];
-	}
-	goto("wait");
-}
-if(event == "block_break"){
-	cancel = true;
-	goto("wait");
-}
-if(event == "living_pre_hurt") {
-	cancel = true;
-	goto("wait");
-}
-if(event == "function_key"){
-	if(key == 8){
-		goto("remove_layer");
-	}
-	if(key == 9){
-		goto("add_layer");
-	}
-	goto("wait");
-}
-if(event == "player_move"){
-	//if(current_layer == finish_layer){
-	game_stop("You did it!");
-	//}
-	goto("wait");
-}
-if(event == "player_logout"){
-	game_stop(null);
-}
-if(event == "player_giveup"){
-	game_stop("You left :(");
-}
-goto("wait");
-
-@remove_layer
-//remove_blocks(current_layer);
-if(current_layer <= 0 || current_layer > Layer_amount - 1){
-	if(current_layer == 0){
-		remove_blocks(current_layer);
-	}
-	current_layer--;// = Layer_amount - 1;
-}else{
-	remove_blocks(current_layer);
-	current_layer--;
-	place_blocks(current_layer);
-}
-//place_blocks(current_layer);
-goto("wait");
-
-@add_layer
-//remove_blocks(current_layer);
-if(current_layer >= Layer_amount - 1 || current_layer < 0){
-	if(current_layer == Layer_amount - 1){
-		remove_blocks(current_layer);
-	}
-	current_layer++;// = 0;
-}else{
-	remove_blocks(current_layer);
-	current_layer++;
-	place_blocks(current_layer);
-}
-//place_blocks(current_layer);
-goto("wait");
-
-function remove_blocks(current_layer){
-	temp_list = $Layer[current_layer, 0];
-	for(a = 0; a < list.getSize(temp_list); a++){
-		block.set(list.getIndex(temp_list, a), "minecraft:air");
-	}
-}
-function place_blocks(current_layer){
-	temp_list = $Layer[current_layer, 0];
-	for(a = 0; a < list.getSize(temp_list); a++){
-		block.set(list.getIndex(temp_list, a), $Layer[current_layer, 1]);
-	}
-}
-
-function game_stop(message){
-	remove_blocks($current_layer);
-	place_blocks(0);
-	if(message != null){
-		msg.prefix($player, $gamename, message);
-	}
-	script = script.getFromId($script_id);
-	minigame.kickPlayer(script, $player);
-	minigame.term(script, $gamesignloc);
-	term();
-}

+ 0 - 154
jan/4d_j_r_core_backup.txt

@@ -1,154 +0,0 @@
-sign.started(gamesignloc);
-event.load("function_key");
-event.load("living_pre_hurt");
-event.load("player_move");
-event.load("player_logout");
-event.load("player_giveup");
-event.load("player_join");
-event.load("block_break");
-
-gamename = "§a4D-Jump'n'Run";
-
-maxplayers = 1;
-
-x1 = loc.getX(Edge_1);
-x2 = loc.getX(Edge_2);
-x3 = loc.getX(Edge_3);
-
-y1 = loc.getY(Edge_1);
-y2 = loc.getY(Edge_2);
-y3 = loc.getY(Edge_3);
-
-z1 = loc.getZ(Edge_1);
-z2 = loc.getZ(Edge_2);
-z3 = loc.getZ(Edge_3);
-
-Layer = array.new(Layer_amount, 2);
-
-event.addMoveData(loc1, loc2, -1, -1);
-
-current_layer = 0;
-
-@wait
-wait();
-if(event == "living_pre_hurt") {
-	if(!isPlayer(living_entity)) {
-		goto("wait");
-	}
-	player = living_entity;
-}
-if(!player.hasMinigameId(player, script_id)) {
-	goto("wait");
-}
-if(event == "player_join"){
-	entity.teleport(player, Start_Pos);
-	player.clearInventory(player);
-	stacks.set(player, 7, "km:arrow_left");
-	stacks.set(player, 8, "km:arrow_right");
-	stacks.setActive(player, true);
-	for(layer_var = 0; layer_var < Layer_amount; layer_var++){
-		temp_list = list.new();
-		x_d = layer_var * Layer_difference_X;
-		y_d = layer_var * Layer_difference_Y;
-		z_d = layer_var * Layer_difference_Z;
-		for(x = x1 - x_d; x <= x2 - x_d; x++){
-			for(y = y1 - y_d; y <= y2 - y_d; y++){
-				for(z = z1 - z_d; z <= z2 - z_d; z++){
-					temp_loc = loc.new(games, x, y, z);
-					if(!block.isAir(temp_loc)){
-						temp_loc2 = loc.new(games, x3+x-x1+x_d, y3+y-y1+y_d, z3+z-z1+z_d);
-						list.add(temp_list, temp_loc2);
-					}
-				}
-			}
-		}
-		Layer[layer_var, 0] = temp_list;
-		Layer[layer_var, 1] = block_type_array[layer_var];
-	}
-	goto("wait");
-}
-if(event == "block_break"){
-	cancel = true;
-	goto("wait");
-}
-if(event == "living_pre_hurt") {
-	cancel = true;
-	goto("wait");
-}
-if(event == "function_key"){
-	if(key == 8){
-		goto("remove_layer");
-	}
-	if(key == 9){
-		goto("add_layer");
-	}
-	goto("wait");
-}
-if(event == "player_move"){
-	//if(current_layer == finish_layer){
-	game_stop("You did it!");
-	//}
-	goto("wait");
-}
-if(event == "player_logout"){
-	game_stop(null);
-}
-if(event == "player_giveup"){
-	game_stop("You left :(");
-}
-goto("wait");
-
-@remove_layer
-//remove_blocks(current_layer);
-if(current_layer <= 0 || current_layer > Layer_amount - 1){
-	if(current_layer == 0){
-		remove_blocks(current_layer);
-	}
-	current_layer--;// = Layer_amount - 1;
-}else{
-	remove_blocks(current_layer);
-	current_layer--;
-	place_blocks(current_layer);
-}
-//place_blocks(current_layer);
-goto("wait");
-
-@add_layer
-//remove_blocks(current_layer);
-if(current_layer >= Layer_amount - 1 || current_layer < 0){
-	if(current_layer == Layer_amount - 1){
-		remove_blocks(current_layer);
-	}
-	current_layer++;// = 0;
-}else{
-	remove_blocks(current_layer);
-	current_layer++;
-	place_blocks(current_layer);
-}
-//place_blocks(current_layer);
-goto("wait");
-
-function remove_blocks(current_layer){
-	temp_list = $Layer[current_layer, 0];
-	for(a = 0; a < list.getSize(temp_list); a++){
-		block.set(list.getIndex(temp_list, a), "minecraft:air");
-	}
-}
-function place_blocks(current_layer){
-	temp_list = $Layer[current_layer, 0];
-	for(a = 0; a < list.getSize(temp_list); a++){
-		block.set(list.getIndex(temp_list, a), $Layer[current_layer, 1]);
-	}
-}
-
-function game_stop(message){
-	remove_blocks($current_layer);
-	place_blocks(0);
-	if(message != null){
-		msg.prefix($player, $gamename, message);
-	}
-	script = script.getFromId($script_id);
-	minigame.kickPlayer(script, $player);
-	minigame.term(script, $gamesignloc);
-	term();
-}

+ 0 - 411
minigames/jumpnrun/4d/4d_j_r_core_old.txt

@@ -1,411 +0,0 @@
-sign.started(gamesignloc);
-event.load("function_key");
-event.load("living_pre_hurt");
-event.load("player_move");
-event.load("player_logout");
-event.load("player_giveup");
-event.load("player_join");
-event.load("block_break");
-
-games = world.getGames();
-
-gamename = "§a4D-Jump'n'Run";
-
-maxplayers = 1;
-
-x1 = loc.getX(Edge_1);
-x2 = loc.getX(Edge_2);
-x3 = loc.getX(Edge_3);
-
-y1 = loc.getY(Edge_1);
-y2 = loc.getY(Edge_2);
-y3 = loc.getY(Edge_3);
-
-z1 = loc.getZ(Edge_1);
-z2 = loc.getZ(Edge_2);
-z3 = loc.getZ(Edge_3);
-
-//XYZ -> WYZ -> XYW -> XYZ
-Dimension_Blocks = list.new();
-
-event.addMoveData(loc1, loc2, -1, -1);
-
-current_w = 0;
-current_x = 0;
-current_z = 0;
-currently_active_dimensions = 0; //0 = XYZ, 1 = WYZ, 2 = WYX, 3 = ZYX, 4 = ZYW, 5 = XYW
-current_layer = array.new(6);
-current_layer[0] = current_w;//0 = W, 1 = X, 2 = Z
-current_layer[1] = current_x;//current_layer[a] 0 = W, 1 = X, 2 = Z
-current_layer[2] = current_z;
-current_layer[3] = current_w;
-current_layer[4] = current_x;
-current_layer[5] = current_z;
-x_difference = x2-x1;
-z_difference = z2-z2;
-w_difference = Layer_amount;
-difference_array = array.new(6);
-difference_array[0] = w_difference;
-difference_array[1] = x_difference;
-difference_array[2] = z_difference;
-difference_array[3] = w_difference;
-difference_array[4] = x_difference;
-difference_array[5] = z_difference;
-
-@wait
-wait();
-if(event == "living_pre_hurt") {
-	if(!isPlayer(living_entity)) {
-		goto("wait");
-	}
-	player = living_entity;
-}
-if(!player.hasMinigameId(player, script_id)) {
-	goto("wait");
-}
-if(event == "player_join"){
-	entity.teleport(player, Start_Pos);
-	player.clearInventory(player);
-	stacks.set(player, 5, "km:arrow_left");
-	stacks.set(player, 6, "km:arrow_right");
-	stacks.set(player, 7, "km:arrow_down");
-	stacks.set(player, 8, "km:arrow_up");
-	stacks.setActive(player, true);
-	for(layer_var = 0; layer_var < Layer_amount; layer_var++){
-		temp_list = list.new();
-		x_d = layer_var * Layer_difference_X;
-		y_d = layer_var * Layer_difference_Y;
-		z_d = layer_var * Layer_difference_Z;
-		for(x = x1 - x_d; x <= x2 - x_d; x++){
-			for(y = y1 - y_d; y <= y2 - y_d; y++){
-				for(z = z1 - z_d; z <= z2 - z_d; z++){
-					temp_loc = loc.new(games, x, y, z);
-					if(!block.isAir(temp_loc)){
-						D_Array = array.new(4);
-						D_Array[0] = x - x1 + x_d;//X
-						D_Array[1] = y - y1 + y_d;//Y
-						D_Array[2] = z - z1 + z_d;//Z
-						D_Array[3] = layer_var;//W
-						temp_array = array.new(2);
-						temp_array[0] = D_Array;
-						temp_array[1] = block.getType(temp_loc);
-						list.add(Dimension_Blocks, temp_array);//Dimensional_Blocks -> Koords4D,Block
-					}
-				}
-			}
-		}
-	}
-	goto("wait");
-}
-if(event == "block_break"){
-	cancel = true;
-	goto("wait");
-}
-if(event == "living_pre_hurt") {
-	cancel = true;
-	goto("wait");
-}
-if(event == "function_key"){
-	if(key == 6){
-		goto("dimensional_turn_down");
-	}
-	if(key == 7){
-		goto("dimensional_turn_up");
-	}
-	if(key == 8){
-		goto("remove_layer");
-	}
-	if(key == 9){
-		goto("add_layer");
-	}
-	goto("wait");
-}
-if(event == "player_move"){
-	//if(current_layer[1] == finish_layer){
-	game_stop("You did it!");
-	//}
-	goto("wait");
-}
-if(event == "player_logout"){
-	game_stop(null);
-}
-if(event == "player_giveup"){
-	game_stop("You left :(");
-}
-goto("wait");
-
-@remove_layer
-if(current_layer[currently_active_dimensions] <= 0 || current_layer[currently_active_dimensions] > difference_array[currently_active_dimensions] - 1){
-	if(current_layer[currently_active_dimensions] == 0){
-		current_layer[currently_active_dimensions] = -1;
-		remove_blocks();
-	}
-	if(current_layer[currently_active_dimensions] > difference_array[currently_active_dimensions] - 1){
-		current_layer[currently_active_dimensions]--;
-	}
-}else{
-	remove_blocks();
-	current_layer[currently_active_dimensions]--;
-	place_blocks(current_layer);
-}
-if(currently_active_dimensions < 3){
-	current_layer[currently_active_dimensions+3] = current_layer[currently_active_dimensions]; 
-}else{
-	current_layer[currently_active_dimensions-3] = current_layer[currently_active_dimensions]; 
-}
-goto("wait");
-
-@add_layer
-if(current_layer[currently_active_dimensions] >= difference_array[currently_active_dimensions] - 1 || current_layer[currently_active_dimensions] < -1){
-	if(current_layer[currently_active_dimensions] == difference_array[currently_active_dimensions] - 1){
-		remove_blocks();
-	}
-	if(current_layer[currently_active_dimensions] < -1){
-		current_layer[currently_active_dimensions]++;
-	}
-}else{
-	remove_blocks();
-	current_layer[currently_active_dimensions]++;
-	place_blocks(current_layer);
-}
-if(currently_active_dimensions < 3){
-	current_layer[currently_active_dimensions+3] = current_layer[currently_active_dimensions]; 
-}else{
-	current_layer[currently_active_dimensions-3] = current_layer[currently_active_dimensions]; 
-}
-goto("wait");
-
-@dimensional_turn_up
-remove_blocks();//0 = XYZ, 1 = WYZ, 2 = WYX, 3 = ZYX, 4 = ZYW, 5 = XYW
-temp_layer = current_layer[currently_active_dimensions];
-temp_player_loc = entity.getLocation(player);
-
-if(currently_active_dimensions == 0){//XYZ to WYZ
-	currently_active_dimensions++;
-	current_layer[1] = math.roundDown(loc.getX(temp_player_loc)+0.5)-x3;
-	current_layer[4] = current_layer[1];
-	entity.teleport(player, loc.mod(Edge_3, temp_layer+0.5, loc.getY(temp_player_loc)-y3, loc.getZ(temp_player_loc)-z3));
-}else{
-if(currently_active_dimensions == 1){//WYZ to WYX
-	currently_active_dimensions++;
-	current_layer[2] = math.roundDown(loc.getZ(entity.getLocation(player))+0.5)-z3;
-	current_layer[5] = current_layer[2];
-	entity.teleport(player, loc.mod(Edge_3, loc.getX(temp_player_loc)-x3, loc.getY(temp_player_loc)-y3, temp_layer+0.5));
-}else{
-if(currently_active_dimensions == 2){//WYX to ZYX
-	currently_active_dimensions++;
-	current_layer[0] = math.roundDown(loc.getX(entity.getLocation(player))+0.5)-x3;
-	current_layer[3] = current_layer[0];
-	entity.teleport(player, loc.mod(Edge_3, temp_layer+0.5, loc.getY(temp_player_loc)-y3, loc.getZ(temp_player_loc)-z3));
-}else{
-if(currently_active_dimensions == 3){//ZYX to ZYW
-	currently_active_dimensions++;
-	current_layer[1] = math.roundDown(loc.getZ(entity.getLocation(player))+0.5)-z3;
-	current_layer[4] = current_layer[1];
-	entity.teleport(player, loc.mod(Edge_3, loc.getX(temp_player_loc)-x3, loc.getY(temp_player_loc)-y3, temp_layer+0.5));
-}else{
-if(currently_active_dimensions == 4){//ZYW to XYW
-	currently_active_dimensions++;
-	current_layer[2] = math.roundDown(loc.getX(entity.getLocation(player))+0.5)-x3;
-	current_layer[5] = current_layer[2];
-	entity.teleport(player, loc.mod(Edge_3, temp_layer+0.5, loc.getY(temp_player_loc)-y3, loc.getZ(temp_player_loc)-z3));
-}else{
-if(currently_active_dimensions == 5){//XYW to XYZ
-	currently_active_dimensions = 0;
-	current_layer[0] = math.roundDown(loc.getZ(entity.getLocation(player))+0.5)-z3;
-	current_layer[3] = current_layer[0];
-	entity.teleport(player, loc.mod(Edge_3, loc.getX(temp_player_loc)-x3, loc.getY(temp_player_loc)-y3, temp_layer+0.5));
-}}}}}}
-place_blocks(current_layer);
-goto("wait");
-
-@dimensional_turn_down
-remove_blocks();//0 = XYZ, 1 = WYZ, 2 = WYX, 3 = ZYX, 4 = ZYW, 5 = XYW
-temp_layer = current_layer[currently_active_dimensions];
-temp_player_loc = entity.getLocation(player);
-
-if(currently_active_dimensions == 0){//XYZ to XYW
-	currently_active_dimensions = 5;
-	current_layer[2] = math.roundDown(loc.getZ(entity.getLocation(player))+0.5)-z3;
-	current_layer[5] = current_layer[2];
-	entity.teleport(player, loc.mod(Edge_3, loc.getX(temp_player_loc)-x3, loc.getY(temp_player_loc)-y3, temp_layer+0.5));
-}else{
-if(currently_active_dimensions == 1){//XYW to ZYW
-	currently_active_dimensions--;
-	current_layer[1] = math.roundDown(loc.getX(entity.getLocation(player))+0.5)-x3;
-	current_layer[4] = current_layer[1];
-	entity.teleport(player, loc.mod(Edge_3, temp_layer+0.5, loc.getY(temp_player_loc)-y3, loc.getZ(temp_player_loc)-z3));
-}else{
-if(currently_active_dimensions == 2){//ZYW to ZYX
-	currently_active_dimensions--;
-	current_layer[0] = math.roundDown(loc.getZ(entity.getLocation(player))+0.5)-z3;
-	current_layer[3] = current_layer[0];
-	entity.teleport(player, loc.mod(Edge_3, loc.getX(temp_player_loc)-x3, loc.getY(temp_player_loc)-y3, temp_layer+0.5));
-}else{
-if(currently_active_dimensions == 3){//ZYX to WYX
-	currently_active_dimensions--;
-	current_layer[2] = math.roundDown(loc.getX(entity.getLocation(player))+0.5)-x3;
-	current_layer[5] = current_layer[2];
-	entity.teleport(player, loc.mod(Edge_3, temp_layer+0.5, loc.getY(temp_player_loc)-y3, loc.getZ(temp_player_loc)-z3));
-}else{
-if(currently_active_dimensions == 4){//WYX to WYZ
-	currently_active_dimensions--;
-	current_layer[1] = math.roundDown(loc.getZ(entity.getLocation(player))+0.5)-z3;
-	current_layer[4] = current_layer[1];
-	entity.teleport(player, loc.mod(Edge_3, loc.getX(temp_player_loc)-x3, loc.getY(temp_player_loc)-y3, temp_layer+0.5));
-}else{
-if(currently_active_dimensions == 5){//WYZ to XYZ
-	currently_active_dimensions--;
-	current_layer[0] = math.roundDown(loc.getX(entity.getLocation(player))+0.5)-x3;
-	current_layer[3] = current_layer[0];
-	entity.teleport(player, loc.mod(Edge_3, temp_layer+0.5, loc.getY(temp_player_loc)-y3, loc.getZ(temp_player_loc)-z3));
-}}}}}}
-place_blocks(current_layer);
-goto("wait");
-
-
-
-function remove_blocks(){
-	for(x = $x3; x < $x3 + $x2 - $x1 + 1; x++){
-		for(y = $y3; y < $y3 + $y2 - $y1 + 1; y++){
-			for(z = $z3; z < $z3 + $z2 - $z1 + 1; z++){
-				temp_loc = loc.new($games, x, y, z);
-				block.set(temp_loc, "minecraft:air");
-			}
-		}
-	}
-	/*for(a = 0; a < list.getSize($Dimension_Blocks); a++){
-		temp_array = list.getIndex($Dimension_Blocks, a);//Dimensional_Blocks -> Array[Koords4D,Block]
-		D_Array = temp_array[0];//temp_array[1] ist der Block, bei remove egal. 
-		//D_Array[0] = x, D_Array[1] = y, D_Array[2] = z, D_Array[3] = w
-		//0 = XYZ, 1 = WYZ, 2 = WYX, 3 = ZYX, 4 = ZYW, 5 = XYW
-		//x3+x-x1+x_d, y3+y-y1+y_d, z3+z-z1+z_d
-		X_place = 0;
-		Y_place = -1;
-		Z_place = 0;
-		if($currently_active_dimensions == 0){//0 = XYZ
-			if(D_Array[3] == current_layer[$currently_active_dimensions]){
-				X_place = D_Array[0];
-				Y_place = D_Array[1];
-				Z_place = D_Array[2];
-			}
-		}else{
-		if($currently_active_dimensions == 1){//1 = WYZ
-			if(D_Array[0] == current_layer[$currently_active_dimensions]){
-				X_place = D_Array[3];
-				Y_place = D_Array[1];	
-				Z_place = D_Array[2];
-
-			}
-		}else{
-		if($currently_active_dimensions == 2){//2 = WYX
-			if(D_Array[2] == current_layer[$currently_active_dimensions]){
-				X_place = D_Array[3];
-				Y_place = D_Array[1];	
-				Z_place = D_Array[0];
-			}
-		}else{
-		if($currently_active_dimensions == 3){//3 = ZYX
-			if(D_Array[3] == current_layer[$currently_active_dimensions]){
-				X_place = D_Array[2];
-				Y_place = D_Array[1];	
-				Z_place = D_Array[0];
-			}
-		}else{
-		if($currently_active_dimensions == 4){//4 = ZYW
-			if(D_Array[0] == current_layer[$currently_active_dimensions]){
-				X_place = D_Array[2];
-				Y_place = D_Array[1];	
-				Z_place = D_Array[3];
-			}
-		}else{
-		if($currently_active_dimensions == 5){//5 = XYW
-			if(D_Array[2] == current_layer[$currently_active_dimensions]){
-				X_place = D_Array[0];
-				Y_place = D_Array[1];	
-				Z_place = D_Array[3];
-			}
-		}}}}}}
-		if(Y_place > -1){
-			X_place = X_place + $x3;
-			Y_place = Y_place + $y3;
-			Z_place = Z_place + $z3;
-			temp_loc = loc.new($games, X_place, Y_place, Z_place);
-			block.set(temp_loc, "minecraft:air");
-		}
-	}*/
-}
-function place_blocks(current_layer){
-	for(a = 0; a < list.getSize($Dimension_Blocks); a++){
-		temp_array = list.getIndex($Dimension_Blocks, a);
-		D_Array = temp_array[0];//temp_array[1] ist der Block, bei remove egal. D_Array[0] = x, D_Array[1] = y, D_Array[2] = z, D_Array[3] = w
-		//0 = XYZ, 1 = WYZ, 2 = XYW
-		//x3+x-x1+x_d, y3+y-y1+y_d, z3+z-z1+z_d
-		X_place = 0;
-		Y_place = -1;
-		Z_place = 0;
-		if($currently_active_dimensions == 0){//0 = XYZ
-			if(D_Array[3] == current_layer[$currently_active_dimensions]){
-				X_place = D_Array[0];
-				Y_place = D_Array[1];
-				Z_place = D_Array[2];
-			}
-		}else{
-		if($currently_active_dimensions == 1){//1 = WYZ
-			if(D_Array[0] == current_layer[$currently_active_dimensions]){
-				X_place = D_Array[3];
-				Y_place = D_Array[1];
-				Z_place = D_Array[2];
-			}
-		}else{
-		if($currently_active_dimensions == 2){//2 = WYX
-			if(D_Array[2] == current_layer[$currently_active_dimensions]){
-				X_place = D_Array[3];
-				Y_place = D_Array[1];
-				Z_place = D_Array[0];
-			}
-		}else{
-		if($currently_active_dimensions == 3){//3 = ZYX
-			if(D_Array[3] == current_layer[$currently_active_dimensions]){
-				X_place = D_Array[2];
-				Y_place = D_Array[1];
-				Z_place = D_Array[0];
-			}
-		}else{
-		if($currently_active_dimensions == 4){//4 = ZYW
-			if(D_Array[0] == current_layer[$currently_active_dimensions]){
-				X_place = D_Array[2];
-				Y_place = D_Array[1];
-				Z_place = D_Array[3];
-			}
-		}else{
-		if($currently_active_dimensions == 5){//5 = XYW
-			if(D_Array[2] == current_layer[$currently_active_dimensions]){
-				X_place = D_Array[0];
-				Y_place = D_Array[1];
-				Z_place = D_Array[3];
-			}
-		}}}}}}
-		if(Y_place > -1){
-			X_place = X_place + $x3;
-			Y_place = Y_place + $y3;
-			Z_place = Z_place + $z3;
-			temp_loc = loc.new($games,X_place,Y_place,Z_place);
-			block.set(temp_loc, temp_array[1]);
-		}
-	}
-}
-
-function game_stop(message){
-	remove_blocks();
-	$currently_active_dimensions = 0;
-	$current_layer[$currently_active_dimensions] = 0;
-	place_blocks($current_layer);
-	if(message != null){
-		msg.prefix($player, $gamename, message);
-	}
-	script = script.getFromId($script_id);
-	minigame.kickPlayer(script, $player);
-	minigame.term(script, $gamesignloc);
-	term();
-}

+ 29 - 0
players.txt

@@ -0,0 +1,29 @@
+databank.workerExecute(databank.prepare("CREATE TABLE IF NOT EXISTS forgeplayers (old_id INT NOT NULL PRIMARY KEY, id BIGINT, uuid VARCHAR(60) NOT NULL)"));
+
+stmt = databank.prepare("SELECT id FROM minecraft.players;");
+result = databank.execute(stmt);
+while(databank.next(result)) {
+	id = databank.getInt(result, 1);
+	write(id);
+}
+databank.close(result);
+databank.close(stmt);
+
+function write(id) {
+	stmt = databank.prepare("INSERT INTO forgeplayers (old_id, uuid) VALUES (?,?)");
+	msg("dev", id);
+	databank.setInt(stmt, 1, id);
+	databank.setString(stmt, 2, text(player.getUuidFromId(id)));
+	databank.workerExecute(stmt);
+}
+
+
+stmt = databank.prepare("SELECT old_id,uuid FROM forgeplayers;");
+result = databank.execute(stmt);
+while(databank.next(result)) {
+	id = databank.getInt(result, 1);
+	uuid = databank.getString(result, 2);
+	msg("dev", id, " ", uuid);
+}
+databank.close(result);
+databank.close(stmt);

+ 2 - 2
startscript.txt

@@ -3,7 +3,7 @@ debug.setConsolePrint(true);
 clearscriptvars();
 limit.clear();
 
-setMOTD("§d§k# §eMentorMentos §7- §bCommunity Server §d§k# §f-  [§d1.16.4§f]\n§cMod Download §f-> §eminecraft§7.§ehammerle§7.§eme");
+setMOTD("§d§k# §eMentorMentos §7- §bCommunity Server §d§k# §f-  [§d1.16.5§f]\n§cMod Download §f-> §eminecraft§7.§ehammerle§7.§eme");
 
 script.start("system/tables");
 script.start("system/svars");
@@ -17,7 +17,7 @@ script.startNamed("Damage", "utils/u_error", "system/damage", "utils/u_general")
 script.startNamed("Doors", "utils/u_error", "system/doors", "utils/u_general");
 script.startNamed("Harvest", "utils/u_error", "survival/harvest", "utils/u_general");
 script.startNamed("Hawkeye", "utils/u_error", "system/hawkeye", "utils/u_general");
-script.startNamed("Herobrine", "utils/u_error", "survival/herobrine", "utils/u_general");
+//script.startNamed("Herobrine", "utils/u_error", "survival/herobrine", "utils/u_general");
 script.startNamed("Playtime", "system/playtime");
 script.startNamed("Pumpkin", "utils/u_error", "survival/pumpkin", "utils/u_general");
 script.startNamed("Voxel", "system/voxel");

+ 0 - 2
survival/survival.txt

@@ -1,5 +1,3 @@
-setMoney(114, 0);
-
 event.load("entity_click");
 event.load("container_click");
 event.load("inv_click");

+ 42 - 7
system/commands.txt

@@ -74,7 +74,7 @@ command.register("error", "Error-Logger");
 command.register("errordebug", "Debug-Logger");
 command.register("feed", "Fills hunger bar");
 command.register("fly", "Toggles fly");
-command.register("friend", "Friend-Commands");
+//command.register("friend", "Friend-Commands");
 command.register("game", "marvs minigame shit");
 command.register("gamemode", "Change gamemode");
 command.register("gamerule", "Manage gamerules");
@@ -101,6 +101,7 @@ command.register("list", "List all players online");
 command.register("mail", "Mail-Commands");
 command.register("mailbox", "Mailbox-Commands");
 command.register("memory", "Returns RAM-usage");
+command.register("mentos", "Special command for MentorMentos");
 command.register("msg", "Send a private message");
 command.register("mute", "Mutes a player");
 command.register("news", "Send Push-News to all players");
@@ -187,7 +188,7 @@ command.registerAlias("gm", "gamemode");
 command.registerAlias("p", "plot");
 command.registerAlias("coord", "coords");
 command.registerAlias("dt", "datatools");
-command.registerAlias("f", "friend");
+//command.registerAlias("f", "friend");
 command.registerAlias("l", "leave");
 command.registerAlias("v", "vanish");
 command.registerAlias("hub", "leave");
@@ -446,7 +447,6 @@ set.add(consoleCommands, "tempfly");
 set.add(consoleCommands, "unban");
 
 databank.workerExecute(databank.prepare("CREATE TABLE IF NOT EXISTS friends (player_id INT NOT NULL, friend_id INT NOT NULL, time BIGINT NOT NULL, PRIMARY KEY (player_id, friend_id), FOREIGN KEY (player_id) REFERENCES minecraft.players(id) ON DELETE RESTRICT);"));
-databank.workerExecute(databank.prepare("CREATE TABLE IF NOT EXISTS logoutdata (player_id INT NOT NULL PRIMARY KEY, logouttime BIGINT, FOREIGN KEY (player_id) REFERENCES minecraft.players(id) ON DELETE RESTRICT);"));
 databank.workerExecute(databank.prepare("CREATE TABLE IF NOT EXISTS tipps (tipp_key VARCHAR(20) PRIMARY KEY, tipp_value VARCHAR(255), tipp_loop BOOLEAN NOT NULL DEFAULT true);"));
 databank.workerExecute(databank.prepare("CREATE TABLE IF NOT EXISTS plotranks (plot_id INT NOT NULL, player_id INT NOT NULL, rank VARCHAR(10), PRIMARY KEY (plot_id, player_id), FOREIGN KEY (player_id) REFERENCES minecraft.players(id) ON DELETE RESTRICT);"));
 databank.workerExecute(databank.prepare("CREATE TABLE IF NOT EXISTS homes (player_id INT NOT NULL, name VARCHAR(20) NOT NULL, world_name VARCHAR(20) NOT NULL, x DOUBLE NOT NULL, y DOUBLE NOT NULL, z DOUBLE NOT NULL, yaw DOUBLE NOT NULL, pitch DOUBLE NOT NULL, PRIMARY KEY (player_id, name), FOREIGN KEY (player_id) REFERENCES minecraft.players(id) ON DELETE RESTRICT);"));
@@ -602,9 +602,14 @@ if(event == "vote") {
 			msg("online", "[", prefix_vote, "§r] " , text.link("minecraft-server-list.com", "https://minecraft-server-list.com/server/478200/vote/"));
 		}
 		now_time = time.getMillis();
+		last_vote_time = player.getLastVoteTime(p_id);
 		new_streak = player.getVoteStreak(p_id);
-		if(isFollowingDay(now_time, player.getLastVoteTime(p_id))) {
+		if(last_vote_time == 0) {
 			new_streak++;
+		} elseif(isFollowingDay(last_vote_time, now_time)) {
+			new_streak++;
+		} elseif(!isSameDay(last_vote_time, now_time)) {
+			new_streak = 1;
 		}
 		if(new_streak == 14) {
 			new_streak = 0;
@@ -2120,15 +2125,41 @@ var = script.getVar(script, var_name);
 msg.prefix(player, "§dScript", concat(var_name, " = ", var));
 goto("wait");
 
+@mentos
+if(size != 1) {
+	msg.prefix(player, prefix_commands, "/mentos <script id>");
+	goto("wait");
+}
+script_id = list.getIndex(args, 0);
+script = script.getFromId(script_id);
+if(script == null) {
+	msg.prefix(player, "§dScript", "Invalid id");
+	goto("wait");
+}
+var1 = script.getVar(script, "player_list");
+var2 = script.getVar(script, "founditems");
+if(var1 == null || var2 == null) {
+	msg.prefix(player, "§dScript", "Game is not Sammelfieber.");
+	goto("wait");
+}
+name = player.getName(player.get(list.getIndex(var1, 0)));
+points = text.number(list.getSize(var2));
+msg.prefix(player, "§dScript", concat(name, " ", points));
+goto("wait");
+
 @vote
 link1 = "https://minecraft-server.eu/vote/index/2227F";
 link2 = "https://minecraft-server-list.com/server/478200/vote/";
+msg(player, getSpacer());
 msg(player, "[", prefix_vote, "§r] ", text.link("minecraft-server.eu", link1));
 msg(player, "[", prefix_vote, "§r] ", text.link("minecraft-server-list.com", link2));
+msg(player, "[", prefix_vote, "§r] ", concat("Votepunkte: §6", text.number(player.getVotePoints(player))));
+msg(player, "[", prefix_vote, "§r] ", concat("Votestreak: §6", text.number(player.getVoteStreak(player))));
+msg(player, "[", prefix_vote, "§r] ", concat("Letzter Vote: §6", getTimeString(player.getLastVoteTime(player))));
 goto("wait");
 
 @voteshop
-inv.open(vote_inv, player, concat("Your vote points: §6", text.number(player.getVotePoints(player)), " §rStreak: §6", text.number(player.getVoteStreak(player))));
+inv.open(vote_inv, player, concat("Your vote points: §6", text.number(player.getVotePoints(player))));
 goto("wait");
 
 @voxel
@@ -6913,7 +6944,7 @@ if(read.player(seen_name) != null) {
 	msg.prefix(player, prefix_commands, "Dieser Spieler ist gerade online.");
 	goto("wait");
 }
-seenStatement = databank.prepare("SELECT logouttime FROM logoutdata WHERE player_id = ?;");
+seenStatement = databank.prepare("SELECT MAX(leave_time) FROM playtime WHERE player_id = ?;");
 databank.setInt(seenStatement, 1, player.getId(seen_uuid));
 result = databank.execute(seenStatement);
 varset = false;
@@ -6961,7 +6992,7 @@ table = table.new("§f", 12, 12);
 msg(sender, table.getStart(table));
 msg(sender, table.get(table, "Player", "Date"));
 msg(sender, table.getMiddle(table));
-lastseenStatement = databank.prepare("SELECT player_id, logouttime FROM logoutdata ORDER BY logouttime DESC LIMIT ?;");
+lastseenStatement = databank.prepare("SELECT player_id, MAX(leave_time) AS max_time FROM playtime GROUP BY player_id ORDER BY max_time DESC LIMIT ?;");
 databank.setInt(lastseenStatement, 1, amount);
 result = databank.execute(lastseenStatement);
 while(databank.next(result)) {
@@ -9480,6 +9511,10 @@ function setCommandHelps() {
 	command.addHelpChild(help, helpArg0);
 	command.addHelp(help);
 	
+	help = command.newHelp("mentos", "mentos");
+	command.addHelpChild(help, command.newHelpInt("id", 0, 1000000));
+	command.addHelp(help);
+	
 	help = command.newHelp("setservermessage", "setservermessage");
 	command.addHelpChild(help, command.newHelpString("message", true));
 	command.addHelp(help);

+ 2 - 2
system/hawkeye.txt

@@ -79,8 +79,8 @@ if(world.isSurvName(world_name)) {
 			goto("wait");
 		}
 		state = block.getState(block_loc);
-		state = text.replace(state, "Block{", "");
-		state = text.replace(state, "}", "");
+		state = text.replace(state, "Block\\{", "");
+		state = text.replace(state, "\\}", "");
 		if(text.length(state) > 1024) {
 			goto("wait");
 		}

+ 2 - 0
system/perms.txt

@@ -90,6 +90,7 @@ perm.registerGroup(0, "infopoint12");
 //Admin-Rechte
 perm.registerGroup(2, "isAdmin");
 perm.registerGroup(2, "isTeam");
+perm.registerGroup(2, "mentos");
 perm.registerGroup(2, "news");
 perm.registerGroup(2, "setmessage");
 perm.registerGroup(2, "setmessage.delete");
@@ -321,6 +322,7 @@ perm.registerGroup(9, "warn");
 perm.registerGroup(9, "kick");
 perm.registerGroup(9, "tempban");
 perm.registerGroup(9, "allsounds");
+perm.registerGroup(9, "color");
 perm.registerGroup(9, "perm");
 perm.registerGroup(9, "perm.toggle");
 perm.registerGroup(9, "skills.other");

+ 0 - 7
system/playtime.txt

@@ -27,11 +27,4 @@ leaveTimeStatement = databank.prepare("UPDATE playtime SET leave_time = ? WHERE
 databank.setLong(leaveTimeStatement, 1, time.getMillis());
 databank.setInt(leaveTimeStatement, 2, player_id);
 databank.workerExecute(leaveTimeStatement);
-//Leavetime für /seen und /lastseen
-nowtime = time.getMillis();
-timeStatement = databank.prepare("INSERT INTO logoutdata (player_id,logouttime) SELECT ?, ? ON DUPLICATE KEY UPDATE logoutdata.logouttime=?;", false);
-databank.setInt(timeStatement, 1, player.getID(player));
-databank.setLong(timeStatement, 2, nowtime);
-databank.setLong(timeStatement, 3, nowtime);
-databank.workerExecute(timeStatement);
 goto("wait");

+ 0 - 35
system/pumpkin.txt

@@ -1,35 +0,0 @@
-msg("dev", "§bPumpkinPie §rloaded.");
-event.load("block_click");
-
-times = map.new();
-pumpkin_wait_time = 3; //seconds
-
-pumpkin = read.item("minecraft:pumpkin_pie", 5, "PumpkinMinusOneEighthCake");
-lore_list = list.new();
-list.add(lore_list, "An almost whole pumpkin pie");
-list.add(lore_list, "Herobrine has already eaten a piece.");
-item.setLore(pumpkin, lore_list);
-
-pumpkin_loc = loc.new(world.getOverWorld(), 228, 71, 235);
-
-@wait
-wait();
-if(event == "block_click" && block_loc == pumpkin_loc) {
-	if(hand == "OFF_HAND") {
-		goto("wait");
-	}
-	if(action == "left") {
-		goto("wait");
-	}
-    player_uuid = player.getUuid(player);
-	now_time = time.getMillis();
-	time = map.getOrDefault(times, player_uuid, 0);
-	diff_time = (now_time - time) / 1000;
-	if(diff_time > pumpkin_wait_time) {
-		map.add(times, player_uuid, now_time);
-		player.giveItem(player, pumpkin);
-	} else {
-		msg.prefix(player, "§6FoodGiver", concat("Please wait for ", text.number(math.round(pumpkin_wait_time - diff_time)), " seconds."));
-	}
-}
-goto("wait");

+ 10 - 0
utils/u_general.txt

@@ -260,6 +260,16 @@ function isFollowingDay(timestamp_1, timestamp_2) {
 	return diff > 0 && diff < 86400000;
 }
 
+function isSameDay(timestamp_1, timestamp_2) {
+	cal_1 = time.new(timestamp_1);
+	cal_2 = time.new(timestamp_2);
+	time.nextDay(cal_1);
+	time.nextDay(cal_2);
+	mid_1 = time.from(cal_1);
+	mid_2 = time.from(cal_2);
+	return mid_1 == mid_2;
+}
+
 function player.hasMinigame(player) {
 	id_set = player.getMinigameIds(player);
 	if(set.getSize(id_set) > 0)  {

部分文件因为文件数量过多而无法显示