mirror of
				https://github.com/haselkern/Minecraft-ArmorStand.git
				synced 2025-11-04 05:14:06 +00:00 
			
		
		
		
	Lock Certain Slots
This commit is contained in:
		
							parent
							
								
									2295f5744b
								
							
						
					
					
						commit
						11f1eb6d57
					
				
					 4 changed files with 122 additions and 32 deletions
				
			
		
							
								
								
									
										
											BIN
										
									
								
								ic/slots.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								ic/slots.png
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 570 B  | 
							
								
								
									
										72
									
								
								index.htm
									
										
									
									
									
								
							
							
						
						
									
										72
									
								
								index.htm
									
										
									
									
									
								
							| 
						 | 
					@ -17,7 +17,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <div id="card">
 | 
					    <div id="card">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    	<h1>MINECRAFT ARMOR STAND</h1>
 | 
					        <h1>MINECRAFT ARMOR STAND</h1>
 | 
				
			||||||
        <div class="padding">
 | 
					        <div class="padding">
 | 
				
			||||||
            <center>
 | 
					            <center>
 | 
				
			||||||
                <a href="https://github.com/haselkern/Minecraft-ArmorStand" target="_blank"><img src="ic/github.png" alt="GitHub" title="GitHub" /></a>
 | 
					                <a href="https://github.com/haselkern/Minecraft-ArmorStand" target="_blank"><img src="ic/github.png" alt="GitHub" title="GitHub" /></a>
 | 
				
			||||||
| 
						 | 
					@ -33,16 +33,16 @@
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    	<div id="inputsection" class="padding">
 | 
					        <div id="inputsection" class="padding">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            <label><input type="checkbox" name="invisible">Invisible</label><br>
 | 
					            <label><input type="checkbox" name="invisible">Invisible</label><br>
 | 
				
			||||||
            <label><input type="checkbox" name="invulnerable">Invulnerable</label><br>
 | 
					            <label><input type="checkbox" name="invulnerable">Invulnerable</label><br>
 | 
				
			||||||
            <label><input type="checkbox" name="nobaseplate">No Base Plate</label><br>
 | 
					            <label><input type="checkbox" name="nobaseplate">No Base Plate</label><br>
 | 
				
			||||||
            <label><input type="checkbox" name="nogravity">No Gravity</label><br>
 | 
					            <label><input type="checkbox" name="nogravity">No Gravity</label><br>
 | 
				
			||||||
	    	<label><input type="checkbox" name="showarms">Show Arms</label><br>
 | 
					            <label><input type="checkbox" name="showarms">Show Arms</label><br>
 | 
				
			||||||
            <label><input type="checkbox" name="small">Small</label><br>
 | 
					            <label><input type="checkbox" name="small">Small</label><br>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	    	Rotation: <input type="range" name="rotation" min="0" max="360" value="0">
 | 
					            Rotation: <input type="range" name="rotation" min="0" max="360" value="0">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            <div class="evenly">
 | 
					            <div class="evenly">
 | 
				
			||||||
                <span>Head:</span><input type="range" name="headX" min="0" max="360" value="0"><input type="range" name="headY" min="0" max="360" value="0"><input type="range" name="headZ" min="0" max="360" value="0">
 | 
					                <span>Head:</span><input type="range" name="headX" min="0" max="360" value="0"><input type="range" name="headY" min="0" max="360" value="0"><input type="range" name="headZ" min="0" max="360" value="0">
 | 
				
			||||||
| 
						 | 
					@ -83,8 +83,47 @@
 | 
				
			||||||
                    <label><input type="checkbox" name="equipCustomHead">Use Helmet as player name for custom head</label>
 | 
					                    <label><input type="checkbox" name="equipCustomHead">Use Helmet as player name for custom head</label>
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
 | 
					            <br>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    	</div>
 | 
					            <!-- THANK YOU to reddit user Oozebull for this part. -->
 | 
				
			||||||
 | 
					            <label><input type="checkbox" name="usedisabledslots">Lock Slot Interaction</label>
 | 
				
			||||||
 | 
					            <div id="disabledslots" class="padding">
 | 
				
			||||||
 | 
					                <div>
 | 
				
			||||||
 | 
					                    <span class="first"> </span>
 | 
				
			||||||
 | 
					                    <span class="sprite" style="background-position: 0px   0px"></span>
 | 
				
			||||||
 | 
					                    <span class="sprite" style="background-position: 0px -16px"></span>
 | 
				
			||||||
 | 
					                    <span class="sprite" style="background-position: 0px -32px"></span>
 | 
				
			||||||
 | 
					                    <span class="sprite" style="background-position: 0px -48px"></span>
 | 
				
			||||||
 | 
					                    <span class="sprite" style="background-position: 0px -64px"></span>
 | 
				
			||||||
 | 
					                </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                <div>
 | 
				
			||||||
 | 
					                    <span class="first">Remove</span>
 | 
				
			||||||
 | 
					                    <span><input id="dH" type="checkbox"></input></span>
 | 
				
			||||||
 | 
					                    <span><input id="dC" type="checkbox"></input></span>
 | 
				
			||||||
 | 
					                    <span><input id="dL" type="checkbox"></input></span>
 | 
				
			||||||
 | 
					                    <span><input id="dB" type="checkbox"></input></span>
 | 
				
			||||||
 | 
					                    <span><input id="dW" type="checkbox"></input></span>
 | 
				
			||||||
 | 
					                </div>
 | 
				
			||||||
 | 
					                <div>
 | 
				
			||||||
 | 
					                    <span class="first">Replace</span>
 | 
				
			||||||
 | 
					                    <span><input id="rH" type="checkbox"></input></span>
 | 
				
			||||||
 | 
					                    <span><input id="rC" type="checkbox"></input></span>
 | 
				
			||||||
 | 
					                    <span><input id="rL" type="checkbox"></input></span>
 | 
				
			||||||
 | 
					                    <span><input id="rB" type="checkbox"></input></span>
 | 
				
			||||||
 | 
					                    <span><input id="rW" type="checkbox"></input></span>
 | 
				
			||||||
 | 
					                </div>
 | 
				
			||||||
 | 
					                <div>
 | 
				
			||||||
 | 
					                    <span class="first">Place</span>
 | 
				
			||||||
 | 
					                    <span><input id="pH" type="checkbox"></input></span>
 | 
				
			||||||
 | 
					                    <span><input id="pC" type="checkbox"></input></span>
 | 
				
			||||||
 | 
					                    <span><input id="pL" type="checkbox"></input></span>
 | 
				
			||||||
 | 
					                    <span><input id="pB" type="checkbox"></input></span>
 | 
				
			||||||
 | 
					                    <span><input id="pW" type="checkbox"></input></span>
 | 
				
			||||||
 | 
					                </div>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <div id="code" class="code"></div>
 | 
					        <div id="code" class="code"></div>
 | 
				
			||||||
        <div id="codeinfo" class="padding"></div>
 | 
					        <div id="codeinfo" class="padding"></div>
 | 
				
			||||||
| 
						 | 
					@ -92,34 +131,17 @@
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <div id="card">
 | 
					    <div id="card">
 | 
				
			||||||
        <span class="padding" style="cursor: pointer;" onclick="javascript:$('#tipsntricks').slideToggle();">
 | 
					        <span class="padding" style="cursor: pointer;" onclick="javascript:$('#getcommandblock').slideToggle();">
 | 
				
			||||||
            + Tips and Tricks for your Armor Stand
 | 
					            + Obtain a command block
 | 
				
			||||||
        </span>
 | 
					        </span>
 | 
				
			||||||
        <br>
 | 
					        <br>
 | 
				
			||||||
        <div id="tipsntricks">
 | 
					        <div id="getcommandblock">
 | 
				
			||||||
 | 
					 | 
				
			||||||
            <div class="padding">
 | 
					            <div class="padding">
 | 
				
			||||||
                If your command is longer than 100 characters, it needs to be executed with a <b>command block</b>. Obtain one by typing:
 | 
					                If your command is longer than 100 characters, it needs to be executed with a <b>command block</b>. Obtain one by typing:
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            <div class="code">
 | 
					            <div class="code">
 | 
				
			||||||
                /give @p command_block
 | 
					                /give @p command_block
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
 | 
					 | 
				
			||||||
            <div class="padding">
 | 
					 | 
				
			||||||
                <br>
 | 
					 | 
				
			||||||
                If you are a mapmaker you might not want players to take items out of the armor stand. If you want to lock all slots, replace n with 1 (or 0 if you want to unlock it).<br>
 | 
					 | 
				
			||||||
                If you want to <b>disable specific slots</b>, you have to add the numbers in following table up, and replace n with your result.
 | 
					 | 
				
			||||||
                <table>
 | 
					 | 
				
			||||||
                    <tr><td>Boots</td>       <td>2</td></tr>
 | 
					 | 
				
			||||||
                    <tr><td>Leggings</td>    <td>4</td></tr>
 | 
					 | 
				
			||||||
                    <tr><td>Chestplate</td>  <td>8</td></tr>
 | 
					 | 
				
			||||||
                    <tr><td>Helmet/Block</td><td>16</td></tr>
 | 
					 | 
				
			||||||
                    <tr><td>Sword/Block</td> <td>Not working :(</td></tr>
 | 
					 | 
				
			||||||
                </table>
 | 
					 | 
				
			||||||
            </div>
 | 
					 | 
				
			||||||
            <div class="code">
 | 
					 | 
				
			||||||
                /entitydata @e[r=2,ArmorStand] {DisabledSlots:n}
 | 
					 | 
				
			||||||
            </div>
 | 
					 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										56
									
								
								main.js
									
										
									
									
									
								
							
							
						
						
									
										56
									
								
								main.js
									
										
									
									
									
								
							| 
						 | 
					@ -40,6 +40,8 @@ var equipChestplate;
 | 
				
			||||||
var equipHelmet;
 | 
					var equipHelmet;
 | 
				
			||||||
var equipCustomHead;
 | 
					var equipCustomHead;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var useDisabledSlots;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//The rotation values are all in degrees.
 | 
					//The rotation values are all in degrees.
 | 
				
			||||||
var head = new THREE.Vector3(0,0,0);
 | 
					var head = new THREE.Vector3(0,0,0);
 | 
				
			||||||
var body = new THREE.Vector3(0,0,0);
 | 
					var body = new THREE.Vector3(0,0,0);
 | 
				
			||||||
| 
						 | 
					@ -93,8 +95,12 @@ $(document).ready(function(){
 | 
				
			||||||
	});
 | 
						});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	//Hide elements
 | 
						//Hide elements
 | 
				
			||||||
	$("#tipsntricks").hide();
 | 
						$("#getcommandblock").hide();
 | 
				
			||||||
	$("#troubleshooting").hide();
 | 
						$("#troubleshooting").hide();
 | 
				
			||||||
 | 
						$("#inputarms").hide();
 | 
				
			||||||
 | 
						$("#customequipment").hide();
 | 
				
			||||||
 | 
						$("#disabledslots").hide();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function setup(){
 | 
					function setup(){
 | 
				
			||||||
| 
						 | 
					@ -244,6 +250,8 @@ function handleInput(){
 | 
				
			||||||
	equipHelmet = getInput("equipHelmet");
 | 
						equipHelmet = getInput("equipHelmet");
 | 
				
			||||||
	equipCustomHead = getCheckBoxInput("equipCustomHead");
 | 
						equipCustomHead = getCheckBoxInput("equipCustomHead");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						useDisabledSlots = getCheckBoxInput("usedisabledslots");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	body.set(getRangeInput("bodyX"), getRangeInput("bodyY"), getRangeInput("bodyZ"));
 | 
						body.set(getRangeInput("bodyX"), getRangeInput("bodyY"), getRangeInput("bodyZ"));
 | 
				
			||||||
	head.set(getRangeInput("headX"), getRangeInput("headY"), getRangeInput("headZ"));
 | 
						head.set(getRangeInput("headX"), getRangeInput("headY"), getRangeInput("headZ"));
 | 
				
			||||||
| 
						 | 
					@ -270,16 +278,21 @@ function getInput(name){
 | 
				
			||||||
function updateUI(){
 | 
					function updateUI(){
 | 
				
			||||||
	//Hide/Show different inputs
 | 
						//Hide/Show different inputs
 | 
				
			||||||
	if(showArms)
 | 
						if(showArms)
 | 
				
			||||||
		$("#inputarms").show();
 | 
							$("#inputarms").slideDown();
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
		$("#inputarms").hide();
 | 
							$("#inputarms").slideUp();
 | 
				
			||||||
	if(useCustomEquipment)
 | 
						if(useCustomEquipment)
 | 
				
			||||||
		$("#customequipment").show();
 | 
							$("#customequipment").slideDown();
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
		$("#customequipment").hide();
 | 
							$("#customequipment").slideUp();
 | 
				
			||||||
 | 
						if(useDisabledSlots)
 | 
				
			||||||
 | 
							$("#disabledslots").slideDown();
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							$("#disabledslots").slideUp();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	$("#code").text(generateCode());
 | 
						$("#code").text(generateCode());
 | 
				
			||||||
	if(generateCode().length > 100){
 | 
						if(generateCode().length > 100){
 | 
				
			||||||
		$("#codeinfo").html("<b>Please note:</b> This command is too long to be executed from chat. You need to place it inside a command block. (See tips and tricks below.)");
 | 
							$("#codeinfo").html("<b>Please note:</b> This command is too long to be executed from chat. You need to place it inside a command block. (see below)");
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -359,6 +372,11 @@ function generateCode(){
 | 
				
			||||||
		tags.push("Equipment:["+equip.join(",")+"]");
 | 
							tags.push("Equipment:["+equip.join(",")+"]");
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						//DisabledSlots
 | 
				
			||||||
 | 
						if(useDisabledSlots){
 | 
				
			||||||
 | 
							tags.push("DisabledSlots:"+calculateDisabledSlotsFlag());
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	//Now the pose
 | 
						//Now the pose
 | 
				
			||||||
	var pose = [];
 | 
						var pose = [];
 | 
				
			||||||
	if(!isZero(body))
 | 
						if(!isZero(body))
 | 
				
			||||||
| 
						 | 
					@ -385,6 +403,32 @@ function generateCode(){
 | 
				
			||||||
	return code;
 | 
						return code;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function calculateDisabledSlotsFlag() {
 | 
				
			||||||
 | 
					    var dH = $("#dH").is(":checked") ? 1 << (4) : 0;
 | 
				
			||||||
 | 
					    var dC = $("#dC").is(":checked") ? 1 << (3) : 0;
 | 
				
			||||||
 | 
					    var dL = $("#dL").is(":checked") ? 1 << (2) : 0;
 | 
				
			||||||
 | 
					    var dB = $("#dB").is(":checked") ? 1 << (1) : 0;
 | 
				
			||||||
 | 
					    var dW = $("#dW").is(":checked") ? 1 << (0) : 0;
 | 
				
			||||||
 | 
					    var dR = dH + dC + dL + dB + dW;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    var rH = $("#rH").is(":checked") ? 1 << (4 + 8) : 0;
 | 
				
			||||||
 | 
					    var rC = $("#rC").is(":checked") ? 1 << (3 + 8) : 0;
 | 
				
			||||||
 | 
					    var rL = $("#rL").is(":checked") ? 1 << (2 + 8) : 0;
 | 
				
			||||||
 | 
					    var rB = $("#rB").is(":checked") ? 1 << (1 + 8) : 0;
 | 
				
			||||||
 | 
					    var rW = $("#rW").is(":checked") ? 1 << (0 + 8) : 0;
 | 
				
			||||||
 | 
					    var rR = rH + rC + rL + rB + rW;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    var pH = $("#pH").is(":checked") ? 1 << (4 + 16) : 0;
 | 
				
			||||||
 | 
					    var pC = $("#pC").is(":checked") ? 1 << (3 + 16) : 0;
 | 
				
			||||||
 | 
					    var pL = $("#pL").is(":checked") ? 1 << (2 + 16) : 0;
 | 
				
			||||||
 | 
					    var pB = $("#pB").is(":checked") ? 1 << (1 + 16) : 0;
 | 
				
			||||||
 | 
					    var pW = $("#pW").is(":checked") ? 1 << (0 + 16) : 0;
 | 
				
			||||||
 | 
					    var pR = pH + pC + pL + pB + pW;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    var result = dR + rR + pR;
 | 
				
			||||||
 | 
					    return result;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function isZero(vector){
 | 
					function isZero(vector){
 | 
				
			||||||
	return vector.x == 0 && vector.y == 0 && vector.z == 0;
 | 
						return vector.x == 0 && vector.y == 0 && vector.z == 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										24
									
								
								style.css
									
										
									
									
									
								
							
							
						
						
									
										24
									
								
								style.css
									
										
									
									
									
								
							| 
						 | 
					@ -66,3 +66,27 @@ a{
 | 
				
			||||||
#customequipment input[type=text]{
 | 
					#customequipment input[type=text]{
 | 
				
			||||||
	width: 100%;
 | 
						width: 100%;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#disabledslots{
 | 
				
			||||||
 | 
						display: block;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#disabledslots .first{
 | 
				
			||||||
 | 
						width: 60px;
 | 
				
			||||||
 | 
						display: inline-block;
 | 
				
			||||||
 | 
						clear: left;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#disabledslots span{
 | 
				
			||||||
 | 
						width: 16px;
 | 
				
			||||||
 | 
						height: 16px;
 | 
				
			||||||
 | 
					    display: inline-block;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#disabledslots .sprite{
 | 
				
			||||||
 | 
					    background-repeat: no-repeat;
 | 
				
			||||||
 | 
					    background-image: url("ic/slots.png");
 | 
				
			||||||
 | 
					    width: 16px;
 | 
				
			||||||
 | 
					    height: 16px;
 | 
				
			||||||
 | 
					    display: inline-block;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue